I have a Trex 550E heli fitted with a Pixhawk. It has been flying very well. I decided to install it, in a Bell222 Helicopter body.
During the install, I updated to to the latest firmware. During my first run ups on the bench it all worked OK except thre throttle would not operate, the swash worked fine. On removal from the body, I checked all the wiring. I plugged the ESC wiring into channel 14 on the SBUS system, and it worked OK on that, but it had no safety system.
I tried another Pixhawk, with the same results.
Has anybody had this fault or can help me solve it. Thank you
Please provide a param file so we can see your setup, what was the previous version of arducopter software?
What made you decide to go to channel 14. What channel did you have it on before that?
Param file attachedProblem Heli 180218.param (13.5 KB)
I’m on 3.5.5 now., I was on the latest firmware, availble last December the, last time flew it, due to the weather.
I tried channel 14 to get a straight through one, with no restrictions and that worked
Your param file shows that the main rotor RSC is assigned to ch8 servo. So you can either put the ESC out on channel 8 or change the servo14_function to 31 and put the servo8_function to 0.
OK tried that,and runs but there is no safety switch for that channel. I also have emergency cut, and that does not work either
Just so I can understand where the change might have taken place that broke this feature. Did your previous version of software that worked have the servo output parameters in the parameter list?
Params for end December Last Flight
222 build 221217.param (13.6 KB)
Your SERVO8_MIN is 1100 and SERVO8_MAX is 1900. I’m not sure that will work with most heli ESC’s because 1100 might be above the minimum initialization value for your ESC, so it will refuse to enable. Most require a range of 1000-2000. The old param file had those 1100 and 1900 values as well, but it might be not allowing your ESC to initialize after you did the firmware upgrade.
I think I see what happened. You got bitten by the change in parameters for the min, max, and reverse of the RSC output servo. The parameters that handled this in previous versions was H_RSC_PWM_MIN, H_RSC_PWM_MAX, and H_RSC_PWM_REV. In 3.5.5 that was changed so it used the parameters set for the servo it was assigned. So if you used channel 8 then the parameters are SERVO8_MIN, SERVO8_MAX and SERVO8_REVERSED. Looking at you param file from the previous version, your min and max were 1000 and 2000 respectively. And like Chris said the values for channel 8 are 1100 and 1900. So try changing them and see if that works.
looks if this could be the fault. I’ll try it in the morning, might be able to sleep to-night now.
@bnsgeyer do you think we should do a PR to 3.6 to change the defaults to 1000 and 2000 for SERVO8 for heli? Otherwise users doing a fresh install could end up trying to figure out why their ESC fails to initialize and starting at those values for pistons with throttle servo is normal anyway before setting the range.
I suppose it would have to be determined if setting those to 1000 and 2000 would affect multi-rotors in some way, and if it does we’ll have another if heli_frame statement in the code…
Yes I think that would be wise.
I think we can do it now that it doesn’t require an IF Frame statement. I think we can do it based on the Frame type or class parameter. That way it doesn’t require a unique build for the heli frame.
Looking at SRV_Channel.cpp the global defaults are set to 1100 and 1900 and I’m not 100% sure of the reasoning for that.
Altering Servo 8 did not work. I’ve gone back to V3.5.3 And the throttle works with the params supplied. I’m now going through the params that were working last December and checking if any cause problems.
Make sure you did not accidentally reverse the servo output on SERVO8
This is confusing because in the old code the REV param was 1 for normal
In the new code 0 is normal, 1 is reversed. That was thought to make more sense somehow. So your parameter entries should look like this with 3.5.5.
Geoff, failing all else, if it will not work with Copter 3.5.5, try the ArduHeli 3.5.5 build and see if it works there. There is some extra parameters in the ArduHeli build that will not affect anything else just to try it. The code that affects this SHOULD be the same between the stable Copter build and ArduHeli build, and I have flown the ArduHeli builds for months before this was PR’d to Copter stable. But it would be an easy check.
Well I went through V3.5.4 And had it all working. So then I updated again to 3.5.5. And got that working with the Servo8 numbers altered as you suggested. When I tried alterering them before, they made no difference.
How do I install your firmware?
It is good you got it working! The current ArduHeli build has features you will likely not need for your particular helicopter. The things that are different in the ArduHeli builds are noted on the page, and those builds are not done unless the features in them are tested from a separate branch first, and determined to be stable. And from there, selected features are PR’d to get into Copter.
If you wish to fly it or test it simply download the build that is suitable for your Pixhawk (-v2 for older Pixhawks, -v3 for newer ones with 2MB usable flash like PH 2.1, -v4 for Pixracer), and install it using the Custom Firmware File option in your ground station.
Thanks Chris & Bill again for your help.
I’ve attached a Photo of the converted Trex 550E Helicopter
That’s a nice looking heli! Just curious where did you find the scale 222 body for a 550 frame? I am assuming it was a 600 body and it probably fits. Some of the kits I have seen require reversing the tail rotor gearbox and rotating the head the other way.
How much finishing work was required on the scale body?
It’s a FUNKEY Scale Fuselage Bell 222 .30 (550) size RED Color with Retractable Landing Gear. I brought it second hand. It didn’t look like it had been flown, but was a nice built job. You have to be a Surgeon to fit the copter in