Flashing LED driver using an ESC

This article describes a driver for flashing LEDs using a repurposed ESC.


The ESC used is a Blue Series 12A, it has a 3 phase H bridge good for 12A and up to 16V battery. On board is a Atmega8 processor and voltage regulator to supply the processor from the battery. These can be purchased for about $7, and so are a cost effective hardware solution.

Design criteria:

  1. use ESC without any hardware modification;
  2. three output phases, LEDs connected between battery + and one of three output wires;
  3. minimise current drawn between LED on phases;
  4. shutdown as far as possible in daylight;
  5. some protection from excessive discharge; and
  6. develop application on Arduino IDE.

Criteria prevents full achievement of some objectives as it prevents full shutdown of the board, the MCU and BEC voltage regulators remain connected and draw current even when the MCU has been shut down.

Switching the LEDs on is achieved by turning the high side FET off and low side FET on for the relevant phase. It would be possible to leave the high side FET off at all times, but there is a slight reduction in current drawn if the high side FET is turned on whenever the low side FET is off. Of course, appropriate delays must be used when switching to allow for the speed of the FETs.

The servo lead provides a means of connecting an optional light sensor. A 3k3 resistor from +5 (red) to the signal wire (orange), and GL5506 CdS cell (LDR) from signal wire to ground (brown) using a 3 pin SIL header allow the firmware to detect daylight (~>10lx) and perform a processor shutdown. If nothing is connected to the servo connector, the flasher will operate normally.

The battery voltage is monitored via a 22k/5k1 voltage divider on pin 9 (PD5), and the firmware shuts down if the voltage drops below 10.3V, and remains shut down until reset.

The application randomises the flashing sequence and times, but is just a model that developers may alter for their own needs. It could for instance be altered to provide a three phase LED chaser display. The code suits Arduino IDE for the Arduino NG.


The resultant hex can be loaded via an ISP adapter such as the Hobbyking one above..

Download: flasher

A short video demonstration of the prototype is at: