Monday, November 13, 2017

BLHeli as car ESC (brushless)


BLHeli as car ESC (brushless)

 Required parts and tools

- BLHeli Suite (description based on version 17.6.14.9.0.1)
  https://blhelisuite.wordpress.com/
- Flasher: Arduino UNO (a lot of other boards are supported by BLHeli Suite too)
- USB cable for Arduino UNO
- BLHeli ESC
- Six wires

Idea


Brushless ESCs for cars are usually quite expensive compared to airplane/quad ESCs, and  if you don't need a lot of power even the smallest ESCs are oversized.
Most airplane/quadcopter ESCs just know one direction, but with BLHeli there's a firmware that supports also bi-directional mode.

I used the cheapest I could find on aliexpress, '16A ESC for drone' in transparent shrink tube. They don't have a bootloader, therefor the first step is to flash them. I used a cheap Arduino UNO clone 'MEGA328P CH340G Arduino Compatible'.

Wiring

The ESC has six solder pads, and I prepared 6 needles glued together and wired to the Ardunio. The solder pads on the ESC are (from center to plus wire): MOSI, MISO, SCK, 5V, GND, RST. On the Ardunio  D10=RST, D11=MOSI, D12=MISO, D13=SCK, and GND=GND, 5V=5V. To actually program the ESC I removed a little bit of shrink tube above the pads, that I closed with hot glue after programming and writing the setup.

BLHELI flash pins, and mapping to Arduino UNO pin, as table and picture:
  • Atmel pin RST  <-> Arduino UNO pin 10
  • Atmel pin GND  <-> Arduino UNO pin GND
  • Atmel pin VCC  <-> Arduino UNO pin 5V
  • Atmel pin SCK  <-> Arduino UNO pin 13
  • Atmel pin MISO <-> Arduino UNO pin 12
  • Atmel pin MOSI <-> Arduino UNO pin 11
  

Flashing

The firmware for this specific ESC is SUNRISE_BLHELI_SLIM_30A, according to the seller, and this works also for the 16A ESCs. There are three versions available, I tried MULTI which can't be individually programmed, then MAIN which has no bi-directional mode and then TAIL which is the smallest of all versions.

I've used the following setup:

Low Voltage Limiter: 3.2 Volt/cell
Governor Mode: Off (voltage is proportional to TX, rpm is not (no rpm control by the ESC)
Startup Power: 1 (default)
Temperature Protection: On
Low RPM Power Protect: On
Brake on Stop: On
Motor Direction: Bi-Directinal
Demag Compenation: Off
PWM Frequency/Damped: Damped light
Enable PWM Input: Off (On a car keep it off, also to avoid signal errors)
Motor Timing: Medium (Unless your know the motor needs other settings keep the default)
Input Polarity: Positive
PPM Min Throttle: 1000 (change it from the default)
PPM Medium Throttle: 1500 (change it from the default)
PPM Max Throttle: 2000 (change it from the default)
Startup Beep Volume: 60 (low volume startup beep (motor vibration))
Beacon Volume: 200
Beacon Delay: Infinite (no beacon beep)



The drawback of this ESC is that you need to flash it every time you want to change the settings. There are other more expensive and bigger ESCs available with BLHELI that can be programmed using the one-wire protocol, they have more flash memory with the BLHELI bootloder. If you have one of these you can use the Arduino as one-wire adapter, and there's no need to flash the firmware to change settings.

Conclusion

A small and cheap brushless ESC for smaller cars is quite easy to make.




No comments:

Post a Comment