BasicESC "OPTO" Variant I2C-enabled Firmware

Intrigued by the implication of optical isolation on the PWM line, my team acquired these ESCs:

Afro ESC 30Amp OPTO Multi-rotor Motor Speed Controller (SimonK Firmware)

They appeared to be identical to the BasicESCs, with the exception of lacking a 5V BEC (sans the regulator) and associated lead.

In the past, we had used BlueESC firmware - flashed to the BasicESCs - to successfully enable I2C communications.
. . . . However. When flashing the same firmware to these seemingly identical variants, any subsequent signal input or power cycle of the freshly programmed ESC caused one or more MOSFETS (verified to be n-channel) to blow violently.

We are attempting to determine the cause of this failure, and will then decide whether to continue pursuing these optically-isolated ESCs or to revert to the stock BasicESCs (with reverse-enabled FW) provided by BlueRobotics.

Failure conditions:

  • 4S (14.8V) Supply
  • Programmed using ArduinoUSBlinker via the kkMulticopter Flash Tool, and blueesc_firmware_2015-07-09_a34f109 with I2C address 1.
  • During and after programming, NO thruster was connected: This point is currently a prime suspect.
  • First failure: After programming, the reset button of the Arduino was pressed, resulting in the immediate smoking and subsequent “pop” of two MOSFETs (Top Black, Top Yellow).
  • Second failure: In an attempt to circumvent the above failure mode, the ESC was removed from power immediately after programming. Still without a thruster attached, the ESC was plugged back into power, and immediately smoked and popped - one MOSFET ( Bottom Yellow) was blown.

The lack of connected thruster in both failure modes seems like it could be an issue, though I’ve not enough knowledge regarding these ESCs’ initialization procedure to make any such conclusion.

Mainly, I’m hoping that perhaps another individual (or BlueRobotics) has purchased these same ESCs and experimented with reprogramming them successfully, and may comment on their process.

Thank you.


So after further research on our work from yesteryear, I found that we did not directly use the BlueESC firmware, but another variant assembled by Rusty per another forum-goer’s request:

This is the firmware we had used previously to run the BasicESCs with I2C.
The FW files have been successfully loaded onto the “Opto” variants through the standard ArduinoUSBlinker + kkMulticopter flash tool, with no further issues. Works as anticipate - it’s merely a shame it took me two ESCs to realize my oversight.

Thank you.


Looks like you figured out the issue. The pinout of the Afro ESC is different than the BlueESC so they have different firmware files with different configurations. Bummer that it led to damage for you! As a note, I would always recommend using a current limited power supply when testing new ESC firmware. That will help to minimize damage.

Also, the “OPTO” version of the ESCs are not actually opto-isolated. I know that sounds crazy. Apparently, there used to be several models of opto-isolated ESCs and because of that, they didn’t have BECs. Somehow the term “opto” now means “no BEC” instead of “opto-isolated”. That seems to be the case for every recent “opto” ESC that I can find.


1 Like


Thank you for confirmation on the lack of optical isolation!

I was further examining the boards and failed to find any form of isolating component, so I began to suspect the same conclusion (no isolation). Fairly disappointing for our purposes, as it will require us to implement isolation discretely - alas, no real harm done.

Hopefully other users with similar goals may avoid the same misconception.

Thank you,
Evan Williams

1 Like