Warning: Non-technical people may want to look away now!
It seems that brushless motor controllers are a dark art to many… unless you happen to be SimonK, or Ellis Ware – the man behind Pulsar.
After having a bit of a run-in with the 120A HobbyKing X-Car Beast speed controllers we had (in that they don’t support reverse without pause!!!!), we started looking for alternative options. After a quick chat with Ellis from Pulsar, one of the “easier” speed controllers to get to do the “right thing” for featherweight robots is the Turnigy TZ85A.
Ellis advised that, although some people haven’t always had successful results, it has been possible to get the Turnigy TZ85A controllers running the SimonK firmware. Of course, we weren’t aware if the hardware had changed since Ellis last touched them which could lead to us frying an ESC or two in the process.
SimonK’s firmware is the go-to firmware for brushless speed controllers, it seems – so we figured we could probably make it work, even if it wasn’t quite right. So, we headed to the HobbyKing website, and ordered 4 of the TZ85As just in case we broke stuff – if not, we’d got some spares.
Then came the job of building the firmware. SimonK’s firmware is a bit of a do-it-yourself job, especially if you want to turn on extra features. There are two key changes that have to be made if you’re using them for drive in a featherweight:
- RC_PULS_REVERSE needs to be set to 1 so you can get R/C Car-style reversing
- COMP_PWM should probably be set to 1 as well – it seems to enable regenerative braking!
Build it (using “make” on Linux-based operating systems), and tweak the rest later (you might want to adjust dead-zone in the middle among other things). The file you want at the end of it is the file called “bs.hex” – Note: bs_nfet.hex also exists – make sure you get the one called “bs.hex”.
Then you need to flash it to the TZ85A. Remove the four screws, remove the plastic half of the casing (the metal half is a heatsink and isn’t very firmly attached!). Pop your Atmega programming tool over the Atmega8 on the board, and fire up the kkMulticopter software. Flash from the bs.hex file you generated earlier and a few seconds later (it should take ~10-20 seconds max), you should’ve managed to reprogram your ESC.
Of course, you still don’t know if it works yet – so, very, very carefully, hook it up to a receiver, and a power source with a low current limit fuse (Maybe 5A max). Ideally a quick disconnect connector as well just in case. Then go somewhere where if it explodes you’re not going to impale bits of ESC into the walls, or anything else (Ellis – I’m looking at you here)….. then plug in the power – all being well, there will be a nice ascending scale from the motor, and it’ll just work. If it doesn’t – unplug the power immediately!
Thankfully, our fears were unfounded, as this morning we got the tones we expected from the motor, and everything seems happy.
Thank you to Ellis from Pulsar for helping us out – and thank you to SimonK for the new firmware.