ZEF100 10A I2C Brushless Controller

This small and lightweight module is ideally suitable for quadrotors brushless motor control.

4 x ZEF100 I2C BLC

The I2C control bus allows to use it in microcontroller based stabilization/navigation systems. NoVa, SkyMixer50 Evo1 , SkyMixer50 DIY quadrotors are ZEF100 successfully equipped.



Table of contents


ZEF100 35 x 15.5mm

ZEF100 2grams each

ZEF100 standard quadrotor equipment


Hardware Revision History 

Click on version number of previous releases to get Hardware & Software support

Version # Release Date Release Notes
v1.00 02/2010

Initial release



  • Designed for multi-rotor helicopters
  • 8bit Throttle control thru I2C bus
  • 10A continuous @ TA = 25°C
  • 35 x 15.5 mm w/o cables (1.38 x 0.61")
  • 2grams (0.07oz)
  • Fast reaction time, essential for multi-rotor stabilization
  • 5.3V to 16V operation (2 cells to 3 cells Lipo battery)
  • Open source firmware
  • No BEC circuitry, no battery voltage control


Power Supply Connection

Power supply pads take place near the polarity symbols (+/-) visible on the bottom side of the controller.

Wire gauge must match your motor consumption.

ENSURE THAT THE POLARITY IS CORRECT. Incorrect polarity could permanently damage the controller.

ZEF100 v1.00 Power & Motor Connection

Motor Connection

Connect your motor to the side of the controller that has three power pads.

If you decide to solder the motor wires directly to the controller, you may find it convenient to temporarily connect the motor leads to the controller and test for proper rotation before permanently solder them.

To change the rotation of the motor, swap any two motor wire connections.

NEVER SHORT MOTOR WIRES. Shorting motor connections could permanently damage the controller.

I2C Bus Connection


ZEF100 v1.00 I2C Bus Connection


I2C Serial Communications

..under construction...

Important note: Here is assumed that the I2C protocol is mastered by the host system programmer.

The ZEF100 BLC communicates with Master (microcontroller) through a serial I2C interface and support standard (100 kbits/sec), and fast (400 kbits/sec) speed modes. The serial I2C is a bidirectional 2-wire data bus communication protocol using open-drain SCL (Serial CLock) and SDA (Serial DAta) lines.

Serial Clock Pin (SCL)

SCL is the serial clock pin of the I2C interface. The BLC act only as a slave and the SCL pin accepts only external serial clocks.

The input data from the Master device is shifted into the SDA pin on the rising edges of SCL.

The SCL pin is an opendrain driver. Therefore, it needs a pull-up resistor from the host system VDD line to the SCL pin.

Serial Data Pin (SDA)

SDA is the serial data pin of the I2C interface. The BLC Address byte and Throttle Command byte are written (input) though the SDA pin. Except for start and stop conditions, the data on the SDA pin must be stable during the high period of the clock. The high or low state of the SDA pin can only change when the clock signal on the SCL pin is low.

The SDA pin is an opendrain driver. Therefore, it needs a pull-up resistor from the host system VDD line to the SDA pin.

BLC Addressing

The ZEF100 BLC can only be addressed as a slave. Once addressed, it can receive a Throttle Command byte.

  • The Master starts communication by sending a START bit.
  • The first byte after the START bit is always the Address byte of the device, which includes the BLC Slave Address (7 bits), and R/W bit always cleared (only write operation is allowed)
    Table below shows the details of the address byte.
  • Then, the BLC expects a Throttle Command byte in the following clocks.
    Table below shows the details of the throttle command byte range.
  • After the device receives the Throttle command byte, it outputs an Acknowledge bit.



Slave address

(7 bits)

I2C address byte

(slave address + R/W bit cleared)

0 40 (0x28) 0x50
1 41 (0x29) 0x52
2 42 (0x2A) 0x54
3 43 (0x2B) 0x56
4 44 (0x2C) 0x58
5 45 (0x2D) 0x5A
6 46 (0x2E) 0x5C
7 47 (0x2F) 0x5E


Throttle Values

State Value (Throttle Command byte)
Stop 0 --> 9 (0x00 --> 0x09)
Iddle 10 --> 25 (0x0A --> 0x19)
Run 26 --> 243 (0x1A --> 0xF3)
Max 243 --> 255 (0xF3 --> 0xFF)



ZEF100 hardware was designed to match with Bernhard Konze's low cost BLC open source software.

Source code is available here (search for 6a i2c-r09.zip link)