Hobby king has been selling Turnigy SuperBrain Brushless motor controllers for quite some time. These BLDC motor controllers are unique for their functionality and price. Each of these units serves not only as controller but also logs various telemetry data of your system.
The only problem with these motor controllers is, that the shipped software is Win32 only. The Link dongle as such, is simple USBRs232 converter with some microcontroller. The maximum transfer speed is 9600Bauds.
I have been playing with the Superbrain controller for some time, and decided to sniff every transaction there is. All my knowledge has been put into single project that aims to be replacement for stock software – Tgypytool – as I call it.
This tool can be downloaded from github http://github.com/robots/Tgypytool.
What is supported:
- configuration read/write
- log read/clear
- log settings (no access to this feature so far)
- fw write (not tested yet)
The configuration is stored in text file, all available options are in the .py file. I suggest you first read out your config, and modify it. All values are stored as: parameter=value, each on its own line.
Log reading has been implemented. These devices store up to 8 run logs. Everytime log is downloaded, tgypytool splits the downloaded data into corresponding runs.
Another tool included is graphing tool. This tool should read downloaded log data and plot graphs of voltage, current, rpm, etc. I have yet to figure out how these values are calculated.
I have also included small README that includes small howto.
The playing with SuperBrains is not over, I have done little reverse engineering on the firmware – stay tuned for future post :-)

2 comments
Comments feed for this article
May 6, 2011 at 10:10
Adrian Scott-Murphy
Nice work.
How is the reverse engineering of the firmware going? I am interested in doing the same. Do you know what uC is used, and how much programming space is still available.
Adrian
May 6, 2011 at 10:19
Michal
Hi,
I have done some work on the throttle part, where the “adaptive” algorithm is. And I have successfully disabled it. I have tried to understand how the data is stored in the SPI flash, and how the motor commutation is programmed. I think I understand it a bit. But there is no time to work on the reverse engineering. It is probably easier to write the SW from scratch.
Once I find time, I will make a post about how to take the FW apart.
The chip is Silabs C8051F310. You can see it when you remove the shrink tubing from the ESC. I also had all the IO pins mapped, but I lost my notes :(