TrojanC

Development and Guides

ArduinoQuadcopter

BLHeli on Hobbywing Skywalker 20A

This post will explain how to install BLHeli on a Hobbywing Skywalker 20A ESC. The steps might by simmilar to other Skywalker ESC – and even for other SiLabs ESC.

REMEMBER: Whenever you flash your ESC firmware, YOU are talking responsibility for your actions. If you get the magic white smoke while following this guide, it was a risk YOU choose to take.

I recently bought 4 Skywalker 20A’s for a quadcopter. Out of the box it flew OK. If you are a beginner, it might be good enough for you to start with, as the quad is not very responsive with the  stock firmware as what it is with BLHeli.

Recommendation: I wouldn’t recommend these ESC for 250 or smaller size quads, as they are quite heavy with the build-in BEC. You might rather want to have a look at a ESC that doesnt have a BEC and get a standalone BEC if your quad’s PCB doesn’t have one built in.

For this excercise your will need

  • Arduino Uno (Nano or other will work too)
  • Very fine solder tip (and the skills that goes with it)
  • Male cables to plug into Arduino (female for Nano)
  • BHeliSuite and BLHeli Software

1. Get the require software

First download BLHeliSuite from https://blhelisuite.wordpress.com/

Download the latest source code https://github.com/bitdump/BLHeli
Click on “Download Zip” and save it on your computer

Extract both the zip files you downloaded. In the source code. Find the supported ESCs reference BLHeli-master\SiLabs\BLHeli supported SiLabs ESCs.pdf
Find your ESC in the document to find out what pads you need to solder to.

 

Skywalker 20A Bottom Skywalker 20A Top
(Images taken from BLHeli document)

2. Prepare an Arduino

  • Connect the Arduino to the computer, and find out on which COM Port it is running by looking at Windows Device Manager
  • Open BLHeliSuite. Choose the correct port for your Arduino at the bottom of the UI
    Select “Make Interfaces” tab. Select your board, and select “Arduino 4way-interface”
    BLHeliSuite - Make Interfaces
  • At the next prompt choose the [B D 2 3] option
    BLHeliSuite-InterfaceOptions
  • At the file prompt select the “*PB3PB4*” file and select open
    BLHeliSuite - ChooseFirmwarepng
  • Select “Yes” to flash the Arduino
    BLHeliSuite-ConfirmFlash
  • A dialog will open indicating that it is connecting to the Arduino, and busy flashing. When it is done you should get a similar prompt indicating that the flash is a success.
    BLHeliSuite-FlashComplete
  • Your Arduino is now ready to be used to flash your ESCs

3. Power limiting circuit

Whenever you mess around with firmware on your ESCs it is wise to use a power limiting circuit between your battery and the ESCs. Sometimes during the flashing process the ESCs might accidentally fire up FEDs in a wrong order while reading/writing the the ESC chip causing it to short circuit. A current limiting circuit will prevent the ESC from frying. You can Google how to make a current limiting circuit (I will post my current limiting device when I get more time)

4. Solder the C2 pins to the ESC

At this step you have a few options on how you want to connect the Arduino to the ESCs Pads as indicated above. Some people use something to clamp onto the ESC using a washing peg or something similar.

SIDE NOTE: The pads are only used temporarily. After you have flashed the ESCs they will have the BLHeli Bootloader which allows you to program them from the servo lead.

Solder the red, white and black wires as you identified in the document provided with the BLHeli source code.

Once that is done, connect the cables to the Arduino as follow (don’t power up anything yet – Arduino + ESC all unplugged!):

  • Black -> GND
  • White -> D12
  • Red -> D11

5. Flash the ESC with BLHeli

If you haven’t done it yet – PLEASE REMOVE YOUR PROPS!!
(You can also leave your motor disconnected from the ESC if yours aren’t soldered to the ESC)

  • Connect your Arduino to the PC
  • Open BLHeliSuite and make sure you have the correct port for your Arduino is selected below
  • At the top menu select “Select ATMEL / SILABS Interface”
    Choose “SILABS C2 (4way-if)”
    BLHeliSuite-SelectInterface
  • Now power up the ESC (with your current limiting circuit in between)
  • Click “Connect” at the bottom of the screen
  • Click “Flash BLHeli”
  • At the prompt select the firmware for your ESC. In my case I have a Skywalker 20A and I want to use it for a MULTI-rotor. Click “OK” once you found the firmware that you wanted
    BLHeliSuite-FlashAssistant
  • Click “Yes” at the warning
    BLHeliSuite-Warning
  • Close the prompt when it is done
  • Click on “Read Setup” to load the current configuration of your ESC
  • Now you can change the settings as your require
    BLHeliSuite-Settings
  • The main settings I changed was
    • Motor Timing: Medium High
    • PWM Frequency: Damped Light (also known as active bracking, causing the motor to brake itself when the motor needs to slow down)
    • PPM Min/Max Throttle: 1100/1800 (this was really just to avoid having to calibrate them)
    • Programming by TX: Disabled (mainly because I don’t want to accidentally enter programming mode)
    • ESC Name: I enter the location of the motor on the quad.
  • Once you are happy with your settings hit “Write Setup”
    BLHeliSuite-WriteOK
  • You may now hit “Disconnect” and unplug everything
  • Now you are done with one ESC, repeat the process for all ESCs and make sure you have the settings the same on each ESC
  • Next time you want to change settings on the ESC you can just use the servo cable (I will write a post on that too)

 

3 thoughts on “BLHeli on Hobbywing Skywalker 20A

  • Thank you. This is very helpful.

    Reply
  • Awesome! Well done Charl, you are a legend! 😉

    Reply
  • Works with 30A ESC as well. I’m not sure with the limitations as the motor I’m using draws only 10A

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *