FPV Quadcopter part 2
Bottom view of quad with motors and ESC’s mounted
Hobby type RC electronic speed controllers usually have some degree of programability built into them to do things like set the battery type, motor timing, startup mode, etc. One of those features is a low voltage cut-off function which is designed to prevent the over-discharge of Lithium Polymer batteries by shutting down the motor when the battery level gets too low.
For multicopters, you need to disable the low voltage cut-off feature because if one of your motors suddenly cuts out, the ship will fall from the sky.
Some ESCs have special programming cards that let you visually program the functions with buttons. If a card is not available (there is no card for mine), then you have to program the ESC using your transmitter sticks to put the ESC into programming mode, then navigate the menu and make selections based on a schedule of beeps.
Well I like beeps as much as the next guy, but after reading the documentation that was supposed to be correct for my speed controllers (and especially looking over the chart below), I lost faith that I would successfully be able to transmitter-stick program the ESC’s.
Daunting ESC programming instructions
Fortunately, many of these cheap Turnigy/HobbyKing ESC’s use Amtel ATmega8 chips, and can be easily flashed using an AVR programmer to load an open source firmware written by RCgroups member Simon Kirby. There is a spreadsheet that shows which version of the firmware that you should use with which speed controller. This firmware eliminates the low-voltage cut-off protection, and is supposed to provide a great overall performance boost over the standard firmware.
ESC hooked up to AVR Programmer
I had never done any AVR programming before, but after reading the tutorial on RCGroups I was able to do it easily. Apparently, there is a GUI flashtool for Windows that makes it incredibly easy to do, but I use a Mac. For me the steps were as follows:
- Install AVRdude (instructions here)
- Download the firmware
- Identify the programming points on your ESC and connect them to the corresponding pins on the AVR programmer
- Connect the AVR programmer to USB
- Open a Terminal window and navigate to the directory where you saved the firmware (xxx.hex) and type in this command:
avrdude -c usbasp -p m8 -U flash:w:tgy.hex
(specify the correct file)
That should do it!
If it worked, you should see a bunch of Avrdude communication, ending with this:
avrdude: verifying ... avrdude: 1482 bytes of flash verified avrdude: safemode: Fuses OK avrdude done. Thank you.
If you don’t see that, well, I can’t help you.
There is one last thing to do with the ESC’s, which is to calibrate them to the full motion of your throttle stick, but I cannot do that yet, because my Turnigy 9x is still on backorder. I might be able to calibrate them using the software that came with my Free Flight flight controller/IMU board, but I have not tried yet. In fact, now that I think about it, it probably makes more sense to calibrate them to the flight controller, since it’s the flight controller that ultimately issues the motor control commands, and you end up calibrating the radio sticks to the flight controller later. Hmmm…
The xAircraft frame came with some motor mounts, but they were the wrong size for the Turnigy Park480 motors that I am using, so I adapted the motors by drilling some holes in both the frame, and the motor mounts that came with the Park480 motors.
I used 4mm banana plugs for the motor to ESC connections, but in retrospect, I would have chosen something shorter. Not to mention the weight. With 12 sets of bananas, you add 50 grams of brass!
I applied a new black shrink wrap to the ESCs before hooking them up to the motors.
ESC connected by bannana plugs
Stay Tuned!