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 :-)

3 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 :(
December 29, 2012 at 07:46
Bruce Snider
Hi Michal,
What you came up with here is great. Unfortunately, I don’t know how run the program. I use Ubuntu Linux most of the time, but I am not that savvy to do all the lower level linux stuff. I don’t know how to make the program run. I was wondering if you could tell me how step-by-step… haha maybe you don’t have enough time!
My interest in using the program is that I want to set the cutoff voltage to something like 14.0 volts. The current cutoffs are 12V or 15V, which does not seem ideal for my 5 cell Lipo. I believe there is a lot of voltage drop so that the voltage across the ESC can drop to 15 V, while the open circuit voltage left at the battery is still a safe amount. I would like to try a somewhat lower cutoff voltage.
The file tgypytool.py looks like a source code for the program, is that right? Now how do I adjust it to work for 14.0V, and make it work?
Anyway, thanks for coming up with this. I am interested to use it, if I can somehow learn what I need to do!
I checked something on the internet, it appears that the PY file is a source code in the “Python” language, is that right? Haha, I think this will take lots of time to learn!!
Best Regards, Bruce Snider