Difference between revisions of "ESC"

From PaparazziUAV
Jump to navigation Jump to search
m (add non ope nesc pagelink)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
__TOC__
__TOC__


=Introduction=
= Introduction =


ESC, '''E'''lectric '''S'''peed '''C'''ontrollers, are required for controlling electric motors
ESC, '''E'''lectric '''S'''peed '''C'''ontrollers, are required for controlling electric BLDC (brushless DC) motors.<br/>
While most standard ESC's will work well with fixedwing, rotorcraft have higher requirements
While most standard ESC's will work well with fixedwing, rotorcraft have higher requirements which cheap controllers maybe poorly meet.


Positive features for rotorcraft:
Positive features for rotorcraft:


* Faster response to input signal
* Faster response to input signal (faster acceleration and slow down)
* Higher torque
* More thrust
* Accept higher or other input signal (higher PWM input or I2C)
* Accept faster or other input signal (faster PWM input or I2C)
* Less noise
 
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.
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.<br/>
Connecting multiple BECs in parallel can cause different problems through e.g different voltages and should be avoided.<br/>
Correct wiring examples can be found on the [[Lisa/M_v20#Examples_of_Airborne_Equipment_Electrical_Connections|LisaMv2 page]].


= AVR (ATmega) based ESC =
= AVR (ATmega) based ESC =


Simon Kirby develops an alternative firmware for ATmega based brushless motor controller, written in assembly.
Simon Kirby develops an alternative firmware for ATMega based ESC controller, written in assembly.


Features:
Features:
Line 34: Line 44:


Any ISP programmer will do the job, just some popular: <br/>
Any ISP programmer will do the job, just some popular: <br/>
[http://www.fischl.de/usbasp/ usbasp] There are tons of cheap chinese copies out there. (use with [http://www.nongnu.org/avrdude/ avrdude]) <br/>
* [http://www.fischl.de/usbasp/ usbasp] There are tons of cheap chinese copies out there. <br/>
[http://shop.myavr.de/Programmer%20und%20Bridges/mySmartUSB%20light.htm?sp=article.sp.php&artID=200006 mySmartUSB light] Noob friendly software.
* [https://www.olimex.com/Products/AVR/Programmers/AVR-ISP-MK2/ Olimex AVRISP MKII] Open Source Hardware Programmer capable of ICSP, TPI and PDI, based on [http://fourwalledcubicle.com/LUFA.php LUFA]
 


==Related links==
==Related links==
Line 65: Line 74:
* [http://www.silabs.com/products/mcu/Pages/ToolStick.aspx Silicon Labs Toolstick] available at [http://at.mouser.com/ProductDetail/Silicon-Labs/TOOLSTICK850-B-SK/?qs=sGAEpiMZZMuqBwn8WqcFUs%2fwPRHCOTglcuiSRjY%2fEIM%3d Mouser] for 8€ (requires [http://www.hacksmods.com/2012/05/silicon-labs-usb-toolstick-mod-for-blheli-flashing/ little modification])
* [http://www.silabs.com/products/mcu/Pages/ToolStick.aspx Silicon Labs Toolstick] available at [http://at.mouser.com/ProductDetail/Silicon-Labs/TOOLSTICK850-B-SK/?qs=sGAEpiMZZMuqBwn8WqcFUs%2fwPRHCOTglcuiSRjY%2fEIM%3d Mouser] for 8€ (requires [http://www.hacksmods.com/2012/05/silicon-labs-usb-toolstick-mod-for-blheli-flashing/ little modification])


[[File:SiLabs_Toolstick_front.jpg|300px|Front side]]
[[File:SiLabs_Toolstick_front.jpg|200px|Front side]]
[[File:SiLabs_Toolstick_back.jpg|300px|Back side]]
[[File:SiLabs_Toolstick_back.jpg|200px|Back side]]
[[File:SiLabs_Toolstick_Front_dia.jpeg|300px|Back side]]
[[File:SiLabs_Toolstick_Front_dia.jpeg|200px|Back side]]
[[File:SiLabs_Toolstick_Back_dia.jpeg|300px|Back side]]
[[File:SiLabs_Toolstick_Back_dia.jpeg|200px|Back side]]


==Related links==
==Related links==


* [http://www.helifreak.com/blog.php?u=144146&blogcategoryid=119 BLHeli Setup tool]
[http://www.helifreak.com/blog.php?u=144146&blogcategoryid=119 BLHeli Setup tool]<br/>
* [http://oddcopter.com/2012/07/18/flashing-silabs-escs-with-blheli-firmware/ tutorial on oddcopter.com]
[http://oddcopter.com/2012/07/18/flashing-silabs-escs-with-blheli-firmware/ tutorial on oddcopter.com]<br/>
* [https://github.com/bitdump/BLHeli bitdump/BLHeli] git repository
[https://github.com/bitdump/BLHeli bitdump/BLHeli] git repository


= Projects =


= Open BLDC =
== Open BLDC ==


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


Anyone wanna help ? :) <br/>
=== Related links ===
 
[http://open-bldc.org/wiki/Open-BLDC Homepage] <br/>
[https://github.com/open-bldc open-bldc] git repository
 
== Benjamin's custom ESC ==
 
Open source/hardware ESC with a bunch of features (for a full list, visit his blog). <br/>
* 240A 
* 40x60mm PCB
 
=== Related links ===
 
[http://vedder.se/2014/01/a-custom-bldc-motor-controller/ Homepage/Blog] <br/>
[https://github.com/vedderb/bldc bldc] git repository <br/>
[https://github.com/vedderb/bldc-tool bldc-tool] git repository <br/>


==Related links==
= Non open ESC =
 
== Alpha ESC's ==


* [http://open-bldc.org/wiki/Open-BLDC Homepage] <br/>
Sadly a closed source ESC only mentioned here since there is a module to read out the telemetry spit out by the Alpha ESC
* [https://github.com/open-bldc open-bldc] git repository
Read about it here [[alpha_esc_with_telemetry_output]]


[[Category:Hardware]]
[[Category:Hardware]]

Latest revision as of 08:00, 28 March 2018

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

Non open ESC

Alpha ESC's

Sadly a closed source ESC only mentioned here since there is a module to read out the telemetry spit out by the Alpha ESC Read about it here alpha_esc_with_telemetry_output