From Open-BLDC
Jump to navigation Jump to search

Strip is the newest approach to create an Open-Source and Open-Hardware motor controller for UAV use (mainly Quadrocopters).

Hardware Mission

The mission is to create a usable motor controller that will be:

  • Cheap
  • Simple
  • Small

Reasons for Cheap:

  • Low entry point for newcomers, potential testers and developers
  • The market is spoiled by penny china motor controllers try to minimize the step up for higher quality controller
  • Not big financial headache when testing, crashing and burning (these things happen)

Reasons for Simple:

  • Easier to write a fully functional firmware making it possible for new developers to enter the project
  • Start simple add more features in the future

Reasons for Small:

  • because we can
  • small motor controller can be better mounted on a small quadrocopter that you can take with you and enjoy
  • because Esden likes it and is OCD about size of electronics :D



Power: (this is enough for most 30cm and 40cm multicopters with up to 10/4.5 props!) (these are theoretical numbers, no real life testing has been done yet) (although these are conservatively chosen numbers they may change or down)

  • 12V (3S)
  • ~12A peak
  • ~7A continuos


  • PPM
  • Serial
  • I2c (optional when CAN transceiver is removed and jumped)
  • CAN (optional with CAN transceiver and STM32f103 mounted) (currently default) (tested to up to 2MBit rate)

Hardware design decisions


Half bridge driver motivation. Probably any MCU we will want to use has IO that runs at 3V3 and can only drive/sink about 10mA-25mA per pin. This is not enough voltage or current to drive the mosfets and doing so would exceed the maximum current rating of the output pin possibly damaging the micro controller. We also dont' want to use P/N-FET solution if possible to decrease complexity, hassle of matching and diminished efficiency. This requires some drive circuitry to drive the MosFETs. There is a good paper about discrete drivers from TI Design And Application Guide For High Speed MOSFET Gate Drive Circuits. Using discretes, the high and low side drivers can be built for $0.40 per bridge (3x $0.40) plus another $0.50 for the high side power supply. High-Side Gate Drivers.

Another option is to use an IC for driving the half bridges. The common dedicated half bridge drivers or even high side low side drivers are more in the price range of $1.50 in quantity. Much more abundant buck converter driver chips are much cheaper. For example ADP3110A from Analog devices or ON semiconductor. These parts are available for about $0.22 in quantity! They are controlled in a bit different way then the commonly used drivers by not using two separate signals to control high and low sides of the half bridge. Instead they are driven by a PWM signal and an enable pin. This is not a problem for the PWM peripheral of the STM32 as it can be configured accordingly and one can achieve all three relevant states of the half bridge that way. Dead time is handled by the chip itself. This IC is limited to 24V on all high side driver pins which limits the battery voltage to 12 volts (3 cell li-Po battery).

Other chips in the same price range are available with Vbst maximums of 35V relative to ground [1] allowing battery voltages up to 23 volts (12V gate drive) or 30 volts (5V gate drive). In practice voltage spikes on the power stage output could push Vbst voltages higher than the battery voltage so battery voltages should be lower than the limits calculated above to allow for these transients.

MosFET motivation. Because Esden decided to go for the slim format of the controller the selection of MosFETs is already limited. Still we want to use a package format that is abundant providing us with a big selection of parts as well as price ranges depending on the needs. SO8 seems to be the right approach for the size and availability requirement. It is possible to find MosFETs in that package that will meet the 12V and 12A requirement in the $0.09 price range at quantity. That may be a bit optimistic but still is quite encouraging.


MCU motivation. We want a chip that provides enough processing power to run interesting control algorithms without costing arm and a leg. As we are already quite familiar with the STM32 family of devices the best choice seems to be the STM32F050C6. This part seems to be available at $1.20 at quantity. That is a good start for a low cost solution.

We should not be lazy though and just stick to this architecture. A chip that is very promising is the Freescale L series MCU that will be available Fall 2012. It seems to have everything needed for our application and is advertised to be available in the $0.30 price range at quantity.

We should not wait for the part to be available to start prototyping the controller though. As there is enough to be learned by still using the the more expensive STM32F05 series MCU.

Possibility to use STM32f1 with CAN interface as well as a CAN transceiver. To provide reasonably priced entry in CAN enabled UAV peripherals.

Software Mission

  • Remove complexity from the current codebase
  • Try to keep the driver and high level software separate as it is now and even strengthen the separation
  • Improve the PWM hardware module to support more and better PWM schemes
  • Get finally the adc sampling based BEMF sensing to work >_<
  • Add PPM (servo signal) input driver finally!!!
  • Firmware upgrade using a bootloader
  • many many more but less urgent

Current Status

Strip v0.1 top side
Strip v0.1 bottom side
Strip v0.1 top side without wires
Strip v0.1 bottom side without wires

For current TODO and issues please take a look at the github issue tracker.


55mm x 11.5mm without mounting holes.

67mm x 11.5mm with mounting holes. (Mounting hole locations compatible with AscTec motor controller holes.


Mostly done, the current measurement circuit needs more review.

Strip V0.1 schematic.


Completely routed.


90% of the parts found and located.


Ready to order prototype PCBs.