How To Flash BLHeli_S Firmware To EFM8BB21F16G

During the first time when I got my 1st ESC set up, I was stucked for a while and having a question in my head, ” How do I flash in the firmware?”. I am a pure Linux user. I don’t use Windows systems. Well, thanks to Google and I am able to find out a few ways. Somehow ended had to use the Windows Application and get the work done. In future, I will try to convert it to Linux when I have the time.

First get an Arduino Nano as the Interface module between BLHeliSuite and the Custom ESC. You will need to flash it with the provided HEX to the Arduino Nano.

The above image indicates the PINS to be connected to the Custom ESC for the 1st initial firmware loading. Load up the BLHeliSuite and select the serial port that is connected to the machine also select the Arduino 4way-interface

Next load up the Choose firmware dialog box.

Select the 4wArduino_Nano__16_PD3PD2v20005.hex and click Open then flash the firmware into the Arduino Nano. This you will have the Arduino Nano to be the Interface medium between the BLHeliSuite and the Custom ESC.

Below is the image on how to connect the wires to the custom ESC from the Arduino interface:


To load the initial firmware, you will need to pick the SILABS CS(4way-if) under the SELECT ATMEL/SILABS interface menu.

Select the right COM port and start to click on the CONNECT button and follow by the “Read Setup” button. If everything working, you will see something similar as below image.

From here, you can start to load up different firmware to experiment with the custom firmware to the custom ESC. Bear in mind, you may get smokes out of the MOSFETs. You will need to limit the current and voltage do to the settings and testings.

You can even swap the pins in the code and compile into HEX and upload to the ESC using this BLHELISuite. Of course, once this first initial version flashed in, you can start to use your FlightController to do a pass-thru for the firmware upgrades, settings and everything. I was testing on INAV 3.0 and it works great! Hope these will help some new comers whom wish to build and flash their own first firmware into a blank EFM8BB21F16G.

I had included the download link for users who interested to download and use it. For Linux users, can just use WINE to run it by typing “wine BLHeliSuite.exe” in the terminal to load the application up.


Stay tune for the next topic on how to compile and make the firmware.

Downloads:

Posted in ESC

What I Am Planning

Well, this site is to share all my RnD work to everyone who likes to build things from scratch. I am building drones since 6 years ago till now. At time my first drone was a big giant bird. I was using 500 X-Mode Alien Multicopter 500mm Quadcopter Frame. I picked that frame because the FC was just an Arduino running on MultiWii and some custom made receiver. Yeah, I am building everything my own even the receiver and transmitter. I developed the firmware for the receiver as well as the transmitter. Is using custom data packets using nRF24L01 modules. Now I am using EByte module which is identical to nRF24L01 and with more power you can go with.
The fun thing of this hobby is letting you to build everything by yourself. Is a lengthy and long way to learn everything but is worth it. Trust me, is worth it. You will learn the electronics part, mechanical part and firmware developments. You can just buy DJI and fly but it will not last. You will get bored and forget about it. Building it your own will just let you keep this hobby non-stop on going to build more and more things on it. I will slowly share out all the things that I had built for this project from Custom Radio Controller, Receiver, FC and ESC. In order to learn more, you need to share more to others 😉

My Current Project – RnD on ESC – Day 2

Finally came to an end where I need to redesign the schematic again for lesser components and trying to get power source from FC rather from itself. The whole idea is to cut costs and able to build it easily. Below is the diagram currently I am working on and going to test out the firmware on BLHELI_s with the version O_H_5 but with some minor modification on the code. I had accidentally swapped the pins at the MOSFETs side. Lets see how it goes once the board is back from JLCPCB.

Below is the image of the ESC I had designed (Generated from EasyEDA):

The Schematic:

As you can see, I am only using very little components here. Trying to make it as light as possible. Remember the power source for the ESC is from the FC. You need to build the FC with 3.3V and the raw power to drive the MOSFETs and motor.

The specification for this ESC design intended to run only on single cell and drain up to the lowest as possible. Below is the specifications of this design:

  • Operating from 0.8v ~ 4.2v (Theoretically from the buck-booster chip that I am using at FC). I would predicted as it will be flat at 2.5v as the minimum it can go.
  • Maximum rated 18A @ continuous and 45A @ pulsation mode.
  • Maximum support protocol upto DSHOT600.
  • Pass-Through mode supported through any FC. (Tested on INAV 3.0)
  • PCB designed only 2-Layers.
  • Only 1g for the weight of the ESC
  • Initial flash from C2CK and C2D pins for loading the firmware into the EFM8BB21F16G.

Now for the time being, I will just wait for the components arrival and start testing it and sharing the details again once I get the result.