SingleCopter Throttle - Motor Won't Run - Solved

Setting up a singlecopter with Arducopter 3.6.8, and making good progress. I’ve worked out the flap controls, but still have a problem with the throttle control.

Configured FRAME_CLASS=8 and plugged the four servos into the Pixracer’s servo output channels 1-4 according to the instructions in the Docs. I plugged the ESC into the Pixracer’s channel 5 output.

I positioned the Pixracer vertically and changed the AHRS_ORIENTATION=24. Then I successfully performed the accelerometer, compass and radio calibrations.

The aileron, elevator and rudder controls work correctly as per transmitter inputs when the system is armed. The surfaces also make stabilizing corrections as they should.

When I advance the throttle however, the motor does not run. I can see the PWM values in the Mission Planner “status” tab for channel outputs 5 and 6 tracking my throttle stick inputs. However, the motor never turns on when I raise the throttle.

I tested the ESC separately on a servo tester and it and its connector are good.

Next I tried tinkering with the BRD_SAFETYOPTIONS parameter. I was unable to understand what the documented settings meant, so I simply tried all three settings individually and lo and behold, when set to 0 (zero), the motor spun up. Hallelulah.

Now onto tuning. The first test flight showed a strong tendency to oscillate in yaw so I will reduce the yaw PIDs.

Thanks,

Paul

Hey Paul,
I would like to see if I could get this working too. Can you provide more details about how? I loaded ArduCopter v3.6.11, changed FRAME_CLASS to 8 but none of the outputs are working properly. Servo outputs are not showing in MissionPlanner. Any help would be very much appreciated.

Could you reference which post? And, which servo outputs did you use for the four, like, Aileron, Elevon etc.

Thanks,
David

Hi David,

Welcome to the world of singlecopters.

Fame type = 0 for “plus” style quadcopter, frameclass = 8 for single as you have it.

To get the servo outputs to make a signal and drive servos, the system has to be armed. Once armed, the servos will work. I disconnected the motor so I could work on the servo throws and directions in peace. After arming, raise the throttle a bit so it stays armed otherwise it will time out and go back to the disarmed state.

This is how I arranged the servos in the flight controller outputs (from the ArduCopter chapter on single/coax copters):

I used only one motor and it was plugged into channel 5. It has to spin the prop counter-clockwise because that’s the way the stabilizing algorithm expects it - the control fins will not correct for the prop torque if you run the motor clockwise. I had it running CW thinking it wouldn’t matter but the machine just spun in yaw.

The SingleCopter application automatically sets the servo outputs so you shouldn’t change those values (SERVOn_FUNCTION = 33, 34, 35, ,36 and 37, etc.)

You’ll also have to set each of the four fin’s neutral position to about 15% tilt to oppose the prop torque.

Keep us apprised of your progress.

Paul

Hi Paul, Thanks for helping out, I really appreciate it. Yes, this single copter is going to be fun - providing I get it working.

As far as I can tell, the SERVOn_FUNCTIONS were not automatically set in my rig. I don’t understand why, but I did set the FRAME_TYPE and FRAME_CLASS to 0 and 8 respectively.

Regarding the Servo out,
SERVO1_FUNCTION = 33
SERVO2_FUNCTION = 34
SERVO3_FUNCTION = 35
SERVO4_FUNCTION = 36
SERVO5_FUNCTION = 37
and presto, the Servo Output is showing outputs, but what I didn’t understand was that the Function column would be labeled as motors. I kept trying to get Elevons and Rudder to work. I still can’t get SERVO5 to display and output, but that may be due to not being able to arm the board. I do not have any electronics connected at this point but it seems I can’t arm the board. I’ve set ARMING_CHECK = 0, left ARMING_RUDDER to 2 and left the BRD_SAFETYOPTION = 2 so the sticks would still arm the board.Could you provide me with directions on how to arm the board. I’m missing something really simple. Thanks, David

I’ve got BRD_SAFETYENABLE = 0 and BRD_SAFETY_OPTION = 0 on my configuration.

Remember to apply power to the servo rail for the servos to move; I sometimes forget and waste an hour troubleshooting.

Hey Paul. That was excellent advice. For some reason I missed an important step in all this, reboot the board. I’d make changes and expect to see them immediately function. I was getting frustrated because every evening upon returning to the project, the state of affairs was different. I got the board armed got the outputs I was expecting. Just this evening I constructed a crude mock up of a SingleCopter. All functions as described except the yaw control seems to be really unresponsive, sure the control surfaces move, but a lot slower than pitch and roll. Maybe that is a function that will sort itself out in the air.
I also loaded CoaxCopter (Frame 9) onto the board. It functions as described except for yaw. When inputting yaw, none of the control servos move as expected, but the motors do not change speed as suggested in the documentation.
Thanks for your help. I’ll be posting photos and instruction of my build just so others can follow along this adventure.

Hi Paul,
I haven’t had time to respond, but I appreciate your help and with your help, I managed to get it working. I think the “main” problem was not rebooting the board by disconnecting. I was able to get two functional design rigs working, one with PixRacer and another with Matek F405 Wing.