ESC

From PaparazziUAV
Revision as of 07:24, 27 April 2016 by Mayrit (talk | contribs) (Regenerative brake problem of speed controllers mentioned)
Jump to navigation Jump to search

Introduction

ESC, Electric Speed Controllers, are required for controlling electric BLDC (brushless DC) motors.
While most standard ESC's will work well with fixedwing, rotorcraft have higher requirements which cheap controllers maybe poorly meet.

Positive features for rotorcraft:

  • Faster response to input signal (faster acceleration and slow down)
  • More thrust
  • Accept faster or other input signal (faster PWM input or I2C)

Beside these, they can also be less noisy.

Standard ESC can be used, but with a little work and an alternative firmware they will work better.

Big Heads-Up for Flyduino ESCs

Just to warn everyone using speed controllers with regenerative brake function such as the ones from FlyDuino: DO NOT TEST IT WHILE CONNECTED TO A LAB POWER SUPPLY ! The reverse current generated will damage the power supply or burn the Autopilot immediately.

Multiple ESC/BEC in one Aircraft

Most standard ESC come with a BEC (battery eliminator circuit) built in, which is supposed to supply servos and receiver with (mostly 5V) power.
Connecting multiple BECs in parallel can cause different problems through e.g different voltages and should be avoided.
Correct wiring examples can be found on the LisaMv2 page.

AVR (ATmega) based ESC

Simon Kirby develops an alternative firmware for ATMega based ESC 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.
  • Olimex AVRISP MKII Open Source Hardware Programmer capable of ICSP, TPI and PDI, based on LUFA

Related links

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

Front side Back side Back side Back side

Related links

BLHeli Setup tool
tutorial on oddcopter.com
bitdump/BLHeli git repository

Projects

Open BLDC

Open hardware and open software brushless controller project. From small low cost up to 200A continous hardware, but currenty under development.

Related links

Homepage
open-bldc git repository

Benjamin's custom ESC

Open source/hardware ESC with a bunch of features (for a full list, visit his blog).

  • 240A
  • 40x60mm PCB

Related links

Homepage/Blog
bldc git repository
bldc-tool git repository