Home        Store        Docs        Blog

BlueESC firmware compatible with Afro Slim 20A ESC?

(philippot) #1


I wonder if I may flash (with small code adjustement) the BlueESC firmware within a Afro Slim ESC 20A.

I’m building an arduino application which is driving one BLDC from which I’d like to get feedback information (actual motor speed, temperature …).

I’m particularly interested in your clear protocol I2C description which is not easy to find in the case of the SimonK firmware (tgy-2013-09-20 release). Maybe your protocol I2C description (http://docs.bluerobotics.com/bluesc/) is also applicable for SimonK ESC ?


(Rusty) #2

Hi Philip,

The BlueESC has a different pin configuration than the Afro ESCs, but the code should work the same if compiled with the “afro_nfet.inc” configuration file. I’d be happy to compile it for you if you’re interested.

Note that the Afro ESC doesn’t have a current sensor but you should still get voltage, temp, and RPM. You’ll have to find a way to access the SDA and SCL pads for I2C.

Our code is just an adaptation of the SimonK (tgy) firmware. You can find our files with modifications here:



(philippot) #3

Hi Rusty,

Thank you for your information. By reading your reply, I’m not sure whether your adaptation of the SimonK (tgy) firmware includes the way to access data (rpm, voltage…) through I2C protocol. If yes I’m interested in your code compiled with the “afro_nfet.inc” configuration file because I could not break the code of twimaster.c from MikroKopter.

Up to now I succeeded to set rpm target through I2C. I was surprised that I had to cut the shrink wrap in order to solder the I2c wires onto the pads. It is a pity that the I2c communication does not become a driving standard for ESC.




(Rusty) #4


Our adaptation of the SimonK firmware does include an easy way to access data through I2C.

Attached is a zip file containing the afro_nfet.hex file compiled with 16 different I2C addresses. See here for info on how to reprogram the ESC: http://docs.bluerobotics.com/bluesc/#assigning-isup2supc-addresses

You’ll still have to cut the heat shrink to access the pads for the I2C communication.

I haven’t had a chance to test these files with the AfroESC, but I’ll try to do that in the near future. Please let me know if you have success.


afro_nfet_firmware_2015-08-16_d190d7f (160 KB)

(philippot) #5


Thank you very much for your file. The setting of target speed works correctly. The 16bit size of this data allow a very smooth change of speed. I have not tested the data reading yet.

The compiling of the Blue Robotics Arduino_I2C_ESC library failed within the MPIDE dedicated for Chipkit board. It is not so bad because I intend any way to program it within MPLABx.



(Rusty) #6

Great! Glad you got the speed setting working. We have not tested the Arduino_I2C_ESC library with MPIDE, unfortunately.