HeliQuad rudder 4th servo not mixing with the collective - acting as tail rudder

As the title states, I am trying to do the same as here:


I loaded the param file, went through the configs, everything is fine, I can enable/disable the motor, control the servos, the gyros seem and compensating fine but the 4th servo (POT 4) is reacting like a rudder from a 120 degree CPPM heli when it should be working collectively with the other 3 servos to lift and fly. What did I do wrong? I laid out the servos exactly as in the link, the connections are the same, using FS0i10 single wire conector, radio is fine, reacts normally on screen but the physical servo only responds to rudder (yaw) inputs when it should be working with the other 3 and raising lowering collective pitch for lift/decent and roll. Frame class and type are set correctly (same WLToys drone). I also setup the motor interlock on channel 8. The link says to use traditional helicopter firmware, which I did. I am also using NUTX but it doesnt make a difference what OS I use, same output so I am assuming I missed a step. Any help would be GREATLY appreciated!

Please post a param file so we can look at your setup. Thanks!

Thanks Bill, unfortunately I blew away the config a few hours after this post and decided to try it again with PX4 flightstack using the reaper 500 frame. I am going through the setup now and will post once I finish (assuming I still have an issue). I also went through the entire setup again (reset all sensors and radio), just in case. I will post the param file once I finish. The PX4 flightstack (latest version) is different so I am trying to correlate the settings I had prior into the new param.

Reaper-PX4.param (24.3 KB)

Here is the new Reaper 500 param file, but I think it may be working. Please review and see if you find anything alarmingly wrong while I replace all my servos (with better ones). I planned to do this anyways today (when I got paid) with all brand new servos as the ones on the original design are terrible with horrible zeroing in my opinion.

Thank so much in advance! I am new to Pixhawk but not to flying planes and helis (mainly helis, all T-Rex 600/700/800) so forgive my learning curve. I have been flying since I was 14 (44 now) so I am very familiar with radios, CPPM, ETC but the Pixhawk is a tad confusing in the beginning.

Seems to still be ‘off’ but possibly better using PX4 flightstack with the Reaper 500 model chosen. I will follow-up once I have wired the new servos. I went out and bought new mini’s across the board and replaced all 4 so I am re-wiring them and then will test. I am also wondering if its signal noise interrupting the control but I will prove or disprove this later today. I have all servos powered from a separate UBEC off the battery so the volts are not an issue. The servo rail can pull as much or as little as needed without interrupting the main power supply to the PIX. I then grounded the common UBEC directly to the servo rail (all 4 servo positives were pulled from the servo and wired directly to the positive off the UBEC), negative was wired directly to POT MAIN OUT 7, POT MAIN OUT 8 for ESC, and POT MAIN OUT 1-4 for servos according to the wiring layout on http://ardupilot.org/copter/docs/heliquads.htm

Same issue, POT 4 servo moves independent of the collective other 3 servos. Same .param file I posted above, I have gone through all RC calibration (although the roll to the left always gives me an error) but it does finish, I have calibrated my senors, and gone through EVERYTHING, shielded my servo leads (moved away from any noise) but I cannot figure this one out. Any help is GREATLY appreciated!

I don’t recognize this param file. Are you running PX4 software or arducopter software. If it is not arducopter then I’m not sure I can help. I don’t know anything about PX4 software.

It was PX4 but not anymore, I redid the firmware last night and will post later today (same result on either firmware).

Bill here is the latest .params file using Ground Control and chibios. I formatted the SD, flashed sub firmware (just to completely wipe the config), then back to arducopter and went through the entire setup again. This time it seems better and almost is right. Can you review my .params file and make sure it looks right and I did it right? Thank you so much in advance! This time I didnt use any param files from the http://ardupilot.org/copter/docs/heliquads.html site, this time I just set the frame type and type to match, this may be what did it but I would like you to confirm. Every time I tried this in the past, I imported the .param file from the site, this time, no, just set the types and configured it fresh and have better results.

CP_Drone_Final_Build.param (22.4 KB)

New build (using chibios) seems to be working far better but POT 4 is still moving a tad slower than the rest. All brand new servos, less than 1 day old so thats the case (plus I moved a different servo into that POT with the same results). Its almost there but I am wondering how to tweak the 4th (POT 4) servo setting. I already confirmed in the parameter list they all match (RC_) so I am assuming its something in the config.

1 other thing I was wondering was if the PX4 is acting up on POT4, could I reconfigure POT4 to use POT5 then move the servo lead (as a test)? Is this type of thing possible with PX4? If so then I would like to move the output for POT4 to POT5 (MAIN OUT 5) and have it handle like it was POT4 to test if its the PIXHAWK. I am asking if we can reconfigure the POTs independent of the config so POT5 (MAIN OUT5) would become POT4 (MAIN OUT 4) and still handle the collective pitching and control, and POT4 would become POT5 (inactive)?

In reviewing your param file, I noticed that RCMAP_PITCH was 6 and RCMAP_ROLL was 1. this seems a bit odd to me. was this done intentionally? do you have a special transmitter/receiver for this?

I did notice that it doesn’t seem like you set your max and min collective (H_COL_MAX and H_COL_MIN) as well as the collective for zero pitch (H_COL_MID).

I am not familiar with tuning these vehicles. You may want to review our tuning guide for helicopters. You may also want to search this site to see if someone discusses tuning their heliquad.

Thank you Bill, no nothing was done intentionally. This was posted right after a fresh, clean build. All I did was format SD card, install sub, then copter (to wipe the firmware), then set the frame type/class and calibrate radio, then the sensors and posted the param file. I use a Flysky FS-i10 (10 channel) with my drone (and all helis, T-Rex 600/700/700), its a normal 10 channel radio (nothing fancy or unique), 120 CPPM (set for the swash in the model and matched in GC), all trims were off, everything was set to default in this model.

interestingly enough, I switched the RCMAP_PITCH and RCMAP_ROL channels and it seems better (looks like the servos are pitching correctly now), I will check my collective settings next. The only thing I can say on that regards is my radio calibration often takes 2 or 3 attempts, this last one I thought was good but guess not.


HUGE difference once I changed the RCMAP PITCH/ROLL channels, and EVEN bigger change when I fixed the collective points. Now they all 4 move in sync across the board and LOCK on the pitch (before it was wishy washy), now its solid.

Next issue is to make sure the 4 rotors pitch correctly for flight then I will be almost ready to test it! Thank you so much for the help so far!!

1 Like

Bill is there a similar parameter(s) for the servo control, I.E. servo speed and min/max throw? What I am looking to do now is to increase the AIL/ELE control and tweak the servo behavior. For example, if I give FULL right aileron input (MODE 2 - right ginble all the way right), I want the servos to throw to the max (as far as they can so I can set the endpoints, same with elevator) so I just need to know what to tweak to interact with those inputs.

As always thanks in advance, your help has moved my light-years past where I was yesterday!!

OK Bill, quick update, as of now, I have solved all issues with collective, servo movement, ETC. When I throttle upwards, all 4 pitch down and when I throttle down, all 4 pitch up (negative). This works perfectly now! Rudder control, now when I yaw left, servos 1/2 goes neg, servo 3/4 goes positive, same with yaw right, servo 3/4 goes neg, servo 1/4 goes positive (causing the vehicle to yaw left/right). Perfect, when I roll left, servos 2 and 3 go neg, servos 1/4 go positive, same for rolling right (reverse servo throw). Perfect, so I can control lift (pos/neg pitch of all 4 blades), I can roll left/right.

My only last issue is with the forward and backward tilts.

Last thing to solve is the elevator control (forward/backward tilt). Right now if I try to tilt forward, servo 1/3 should go negative, and 2/4 positive (forward tilt), instead what is happening is servo 3 (top left) is going positive, servo 1 is going negative (this is right the two front servos need to go neg). Servo 2 is going positive, which is correct but servo 4 is going negative (incorrect).

How can I adjust the servo 3 and servo 4 to do the opposite of what they are doing in a forward tilt command (right gimble pressed forward in a MODE 2 radio) BUT have it remain the same for lift pitch (collective)? Basically I just need to tell servo 3/4 that forward/backward pitch is reversed but nothing else needs to be changed in the pitches (lift, yaw, roll left/right)?

Servos go like this (according to http://ardupilot.org/copter/docs/heliquads.html):

3 1
2 4

Servo 3 top left
Servo 1 top right
Servo 2 bottom left
Servo 4 bottom right

To me it seems that the elevator has the wrong servo (or POT) chosen, probably because of the radio issue that caused the channels to screw up the collective that you solved earlier. Once I figure this out, in the air she goes!

Never mind Bill, you pointed me in the right direction, again, the issue above was caused by incorrect channel. I fixed it and now they all pitch properly. Soon I will be test flying it and will follow-up (but I am waiting for new blades so it may be a week or two). In the meantime I am going to continue to fine tune it! Thank you so much!

I am glad you were able to figure it out on your own. Sometimes it is best when you can figure out yourself, you become much more familiar with the software. Sorry I wasn’t more responsive yesterday.
Now that you have it set up so you are getting the correct responses from the servos, please post your latest param file. I would like to see your setup and ensure that you there is nothing out of the ordinary. One other thing you can do while you wait for your blades is to check to see if the servos are responding correctly to disturbances. You shouldn’t have to arm but you do need to have some P gain on the pitch and roll PIDs. The test is basically putting roll or pitch rate on the aircraft and then see if the outputs to the servos are to stop the roll or pitch rate. This tells you that you haven’t reversed anything incorrectly. You can easily reverse an RC input and the servo output and it all looks good for control but the controller will make the wrong input for disturbances.

Thanks Bill! I was out of town all weekend, Sat in NYC with daughter, and yesterday in Boston with son so I didnt have time till now to reply. I will pull the latest param and post it, but I have gone through everything, it is pitching correctly across the board for all movements correctly (lift/roll/pitch/yaw) and compensating correctly for stabilization. Remember I have been flying collective pitch heli’s since I was a wee lad so I am more than familiar with how it works. To be honest, I am an advanced flyer, my 700 and 800’s only use tail HH gyro with nothing on the FBL or any flybars themselves. I prefer the manual control and I do not like nor rely on FBL systems. I have had them all, align, ikon, to vbar (official and clones) and I still prefer to fly without FBL gyro. I like full control over my birds, I dont need nor want any type of automatic compensation (rather it be for wind or to stabilize the bird in normal flight). I even asked in a different forum if its possible to disable all compensation and have a flight mode where its purely my input, nothing else. In my opinion this is lacking from PX4 copter, we should be able to make and run a flight mode without any type of compensation, only human input and the pixhawk simply controls the collective pitching.

The Pixhawk was the only way I could figure out how to write my own config and control custom drones so this is why it was chosen for this project but not for a stabilization gyro, more for the collective pitching across all four CP blades in collective movement for flight.