Hi,
Yesterday, I tried out my Arduccopter for the first time in a few months.
The newest software (2.6) was on the APM1.
I was getting delighted to see that all the occasional motor starts had gone that used to happen when "connecting" MAVLink etc. Before I got cheering too loudly however, the copter decided to apply full throttle to 1 motor, flip over, make the first scratch in my 6 year old laptop display, brealking off its USB connector and finally trying to cut my wrist before calming down.
That can't be!! I know the advice to remove props or power off BLCs when on the bench .. but hmm I cannot remove 4 props before tuning each PID param, and without power on the RC bus I there is some calibration and configuration that cannot be done.
Why does this happen? Doesn't APM use hardware PWM generators for BLC control outputs? Do they possibly get glitchy or jitter when the CPU disabled interrupts or is unresponsive to them?
Is the problem really the use of faulty Arduino PWM generation libraries?
I'd be happy to hear what the experience and opinions are here. If possible, I will try write a glitch (and Arduino) free fix and test and contrib that. The way it is currently, with ferocious copter attacks on the bench, is no quite satisfactory for me... (I have several other systems like MK and DJI, and never seen a glitch in those... for me, connecting copter to PC with power on is and should be a safe practise).
Regards
Soren
Replies
Are your motor starts happening during reboots? IMO there is a bug in the boot loader of Arduino that interferes with one of the hardware timers.
I've been using AC from version 0 and have never had the problem, mainly because I never power the motors with a flight battery until I'm ready to fly. I use USB power to run the radio like this:
http://diydrones.com/profiles/blogs/simple-apm-2560-power-hack
This should solve all your issues.
Hi,
Sorry it was about an APM1 but I posted it in the APM2 thread. However my APM2 on a plane also has some throttle glitches when powering up and when "connecting'" MAVLink.
I see in void APM_RC_APM1::OutputCh(uint8_t ch, uint16_t pwm) that outputs go to the bare silicon without use of Arduino libs. And the rest of the code looks good.
Anyone who knows what the problem could be?
Regards
Soren