ESC
ESC (electric speed controllers) are required for controlling / driving brushless dc motors.
While most standard esc's will work well with fixedwing, rotorcraft have higher requirements.
Positive features for rotorcraft:
- faster response to input signal !
- higher torque
- accept higher or other input signal (higher pwm input or I2C)
- less noise
Standard ESC can be used, but with a little work and an alternative firmware they will work better.
AVR (ATmega) based ESC
Simon Kirby develops an alternative firmware for ATmega based brushless motor controller, written in assembly.
Features:
- 16MHz operation on most boards
- 16-bit output PWM with full clock rate resolution (~18kHz PWM with a POWER_RANGE of 800 steps)
- 24-bit timing and PWM pulse tracking at full clock rate resolution
- ICP-based pulse time recording (on supported hardware) for zero PWM input control jitter
- Immediate PWM input to PWM output for best possible multicopter response (but NOT where soft start or really any significant current limiting is needed!)
- Accepts any PWM update rate (minimum ~5microseconds PWM low time)
- Optimized interrupt code (very low minimum PWM and reduced full throttle bump)
- Configurable board pin assignments by include file
- Smooth starting in most cases
- Forward and reverse commutation supported, including RC-car style reverse-neutral-forward PWM ranges, with optional braking
Programmer
Any ISP programmer will do the job, just some popular:
usbasp There are tons of cheap chinese copies out there. (use with avrdude)
mySmartUSB light Noob friendly software.
Documents
Hardware compatibility table (Openpilot)
Hardware compatibility table (google docs)
sim-/tgy git repository.
SiLabs based ESC
Some newer ESC are build with a Silicon Labs MCU with a Intel 8051 core.
They have a C2 programming interface and therefore need a special programmer.
Steffen Skaug provides an alternative firmware, written in assembly.
Features:
- Can be configured for helicopter MAIN motor or TAIL motor operation. Or as MULTIcopter motor operation.
- Main motor operation has governor functionality and multicopter motor operation has closed loop functionality.
- Motor operation can be damped for fast motor retardation.
- Many parameters can be programmed, either from PC applications for setup and configuration, or from the TX.
- Supports 1kHz, 2kHz, 4kHz, 8kHz or 12kHz positive or negative pwm as input signal, as well as regular 1-2ms PPM signal.
The easiest way is to program and set up the esc with the BLHeli setup tool (no surce available :( ).
Programmer
owsilprog uses a Arduino
Silicon Labs Toolstick available at Mouser for 8€ (requires little modification)
Documents
BLHeli Setup tool
tutorial on oddcopter.com
bitdump/BLHeli git repository
Open BLDC
Open hardware / open software brushless controller project.
From small low cost up to 200A continous hardware, but currenty under development.
Anyone wanna help ? :)
Documents