This is my approach to a tiny, lightweight, powerful, and state-of-the-art 4in1 BLHeli_S ESC. As of writing this, it is probably the world’s smallest and lightest ESC that has been designed so far. I developed it during my journey of building pepperF1SH — the world’s lightest brushless FPV quadcopter.
Recently some Chinese sellers picked up my design, removed the fishpepper logo, produced and started selling my design under their name. You can see a picture of the outdated revision 0.4 they copied here. They violate the license under which I shared the design with everybody. I wanted to have the design open so everyone can learn from it. It is really a pity that they decided to remove my logo and do not mention where they got their design from and sell it as theirs. Right now I am not sure if I am going to continue publishing my future designs under an open source license… This is the reason why you can not find my tiny brand-new ESC design with 2S support on my website yet.
Even though this thing is really tiny, it features all the features you nowadays expect from a state-of-the-art ESC. It has the same dimensions as my tinyFISH FC and both can be fitted perfectly into a low profile stack.
- 16x16mm M2 hole-to-hole spacing (20x20mm outer dimension)
- a total weight of 1.2g (!)
- DSHOT600 (rev 0.5 and higher)
- regenerative breaking
- 4.3A continuous current
- openhardware + opensource software
Please note that this board is for 1S operation only. Do not even try 2S, the board will be immediately releasing all it’s magic smoke and stop working…
This board uses some hacks to squeeze all components into this small form factor. It is something the other 1S ESC vendors used in the past as well, but it is against what you learn on how to design hardware. The EFM8BB10 microcontroller used on this ESC has an absolute maximum voltage rating of 4.2Volts and is powered directly from the Lipo without any voltage regulator in between. Looks like a perfect match for an 1S Lipo, right? — Not really. This is specified as absolute maximum rating, not something the device should be operated on permanently. One might argue that the 4.2V are never applied long, the voltage begins to drop instantly when you connect your copter as a typical vtx/camera combo draws around 0.4A. You have to remember that this ESC is running the Blheli_S firmware with regenerative breaking. So in principle the Voltage of 4.2V could be exceeded when the ESC tries to stop the spinning motors. All my prototypes have survived this so far, seems like they are quite robust and/or the moving mass on the tiny 1103 brushless motors I use is just not big enough to cause big voltage spikes. And as mentioned before, other ESC vendors did this in the past as well. Still, this causes a guilty conscience, poor little EFM8 CPUs.
Please refer to post “tinyPEPPER – how to build your own” for a detailed list of components and links to the open hardware design files. This should give you all the information you need to build your own tinyPEPPER ESC. If something is missing, please let me know!
– switched to efm8bb21 (pin compatible)
– better tabs (you can now solder from the side)
– added motor phase tabs
– initial release
You might wonder why I release all that for free. The reason is simple, I just love open source stuff. Most of my knowledge is based on tinkering with open source stuff since my childhood. This is my way to give something back to the community so please respect the license and release all work you do based on my design under the same license.
Please note that you need a recent version of Kicad to open the files. I compiled my own binaries from Kicad commit hash #efdfaeb.
You will need no special programmer for this, any usb to serial converter will do. The EFM8 devices come with a bootloader and I wrote a small python script that will do the flashing. Have a look at this tutorial on how to flash BLHeli_S to the tinyPEPPER ESC.
The latest revision is currently being test flown by three friends of mine and myself. An additional pepperF1SH copter that incorporates this ESC will be soon be sent out in the context of the pepperF1SH world tour 2017.
Where to buy
I do not sell this. You can not buy it from me. So for now you will have to build your own, this page should serve you all you need.
The first clones without proper credit start to pop up. I can not recommend to buy there as they do not care about who designed the stuff. But go ahead and buy there, I would probably do the same. Just feel some seconds guilty for supporting this theft 😉
- tinyPEPPER ESC (old) rev 0.4 on Banggood: relabeled as Racerstar Star4
Here is a list of recent blog posts covering the latest status of my tinyPEPPER ESC project:
Right now there is only a collection of single posts, i will update this project page soon.
- tinyPEPPER2 4in1 ESC — Are you ready for 2S on a sub 40g quadcopter? (5/16/2017)
- tinyFISH FC & tinyPEPPER ESC — Where to buy?! (5/9/2017)
- Racerstar F3D8 VS fishpepper tinyFISH FC (3/31/2017)
- tinyPEPPER ESC – How to build your own! [v0.5] (3/23/2017)
- pepperFIISH — 2S prototype thrust testing video (3/12/2017)
- pepperFIISH — 36g copter and 288g thrust (8:1), anyone? (3/11/2017)
- tinyPEPPER ESC – How to build your own! [v0.4] (2/21/2017)
- tinyPEPPER ESC – initial BLHeli_S flashing tutorial using the efm8 bootloader (2/21/2017)
- tinyPEPPER ESC – How to build your own! [v0.3] (2/15/2017)
- tinyPEPPER ESC — SNEAK PREVIEW: PCB Layout and BOM! (2/4/2017)
- tinyPEPPER ESC — soldering party! (1/30/2017)
- betaflight — custom motor ordering made easy (1/19/2017)
- tinyPEPPER – testing with an spracing f3 evo brushed (converted to brushless) (12/17/2016)
- tinyPEPPER – first prototype soldered (12/14/2016)
- uESC – blheli_s firmware adaption & testing the electronics (10/19/2016)
Please refer to my disclaimer that applies to all projects presented on this blog.
Your probably getting tired of hearing it, but thanks for all the great work.
I have picked up all of your pcb’s and have started building. So far I built a 1s ESC, and have started on the FC.
To be honest I am a total noob to electronics. I just got into building a few months ago. I am learning as I go.
I built what I call a full size FC (35×35). This is my first ESC.
My problem is with all the research I have done, I can’t find any info on how exactly to get the files on to the EFM8xx’s. I understand the hardware part of it. But what is used to copy and paste the files to flash them.
I’m sure this may seem like a stupid question to some, but at some point in time everyone here werein the same position.
Anyway, any help would be greatly appreciated. Its the only thing keeping it on the ground.
thanks in advance
Hi! Have you checked out the EFM8 flashing tutorial?
This should get you going 😉 If not, feel free to ask!
Thank you so much for the quick response.
Yes sir I’ve read the page, and I saw the github file. I’m guessing that I need to copy and paste it, but I don’t know where that would be. The hardware part I know, I’ve built several quads, and a lot of repairs. Outside of the flight configurators , I know next to nothing about programming.
I did see on the silabs site there are tools that can be downloaded. There’s a flash programmer utility, a toolstick which you mention, and a Kiel uVision.
Again thank you for your help
I wrote a programming tool in python. I am not sure if it runs under windows, I use Linux as my operating system.
The instructions for the tool are here:
All you need is an usb2serial adapter of your choice.
There is also a serial bootloader tool from silabs:
This might be better suited for you if you use windows.
To keep the EFMBB8 safe, I’m trying to run the EFMBB8 VDD/GND from a 3.3V 1A voltage regulator while the rest of the circuit is powered directly from the 1S lipo. Once armed and the motors try to spin the Flight controller and EFMBB8 reboots. All works fine if I power everything from the Lipo bypassing the regulator. Do you know if other things need changed when powering the EFMBB8 from a regulated circuit rather than directly from 1S lipo?
Unfortunately this will not work. The efm8 can not drive the P channel mosfet in that case.
This is an awesome project, Thanks for providing this!
I have a question related to tinyPepper, where do I connect the LiPo? I downloaded the git repo for 0.4 and in the doc folder looked at the front and back SVG.
Not sure, did i miss something there?
There are two pads in the center. See this image:
VCC and GND
How do you set the throttle ranges ?
Just use DSHOT 😉 No need to calibrate/set throttle ranges.
My number one motor on my Lumenier tinyPEPPER 4 in 1 is stuttering above mid throttle and doesn’t spin up as smoothly as the other three. I have only run the motors through the blheli configurator and have updated to latest version of blheli_s. The motor is lightly warm to the touch after the short motor runs while the other three are cool. I am I looking at an ESC issue or a motor issue here? Is there anyway to tell without swapping the symptomatic motor out?
Does this always happen or only on full Lipos ? If only on full Lipo you might want to read this 😉
Hi, wanted to know, i’m willing to make my own ESC with blheli.
Where did you find the pinouts etc?
I searched on the blheli github but didn’t find any infos-
Nice work and keep going 🙂
There was no documentation on the pinout. I did some reading in the blheli source and added a new hardware variant to match my layout. Achim and SSkaug gave me some hints 😉
Recently I got a set of tinyFISH FC & tinyPEPPER ESC from China, they do have proper names and even URL linked back to this site printed on their PCBs.
Not sure if that’s adequate credit given, works for me.
Only a matter of time I guess! Racerstar appear to have nicked your design, no credit given 🙁
China has picked it up:
HV batteries, it appears with a max of 4.2, 4.35 maybe a no no. All I have is 1S HV, think it will ruin my day?
You can try. But I can not guarantee that it works. The efm8 absolute maximum rating is 4.2V. I accidently had them running at 5V for some minutes without any damage. You can always charge your HV lipos to 4.2V only. Of course you loose some capacity 😉
If you had them run at 5v for a few minutes, I will push them to 4.35 for the few seconds that power level stays. 🙂 Thanks for the reply.
Do it at your own risk, you might fry it. If it works for you it is not for sure that other EFM8 charges will survive this. Keep in mind that 4.2V already defines the absolute maximum rating, this is not recommended by the manufacturer but works ok for me. The new 1-2S design I am working on does not have this issue, the EFM8 run on regulated 3.3V 😉
Super neat! Can’t wait to try building.
For those in the US I was able to find all the components at Digikey (had to make a few substitutions but I think they’re all equivalent). If you’re interested I have copies of the BOM updated with digikey part #s here:
I have seen as KiCad is updated to latest version there are some library changes and all.
https://github.com/fishpepper/tinyPEPPER – This Design is created using which version of the KiCad? I am not able to Open project properly in Stable release of 4.0.5 Windows.
You need to compile kicad from source. Use kicad commit hash #efdfaeb.
Hello,What is your version of the software about KiCad?I do not open it.It reminds me that I need to open it with a higher version.Hope to get your reply,thank you!
You will need a recent version from kicad. I compiled my own binaries from kicad commit hash #efdfaeb.
I’m getting the boards and the parts to come here soon.
Thanks for your awesome design contribution to the open community!
I’m not too familiar with BLHeli_S, but is there a custom firmware repo you can point to us for this board to work straight out of the assembly? I see your python script to flash the uC, but I don’t know what binaries/codes I should be uploading…
Also, I’d appreciate if you could teach us about how you chose the components, trial and error bits that helped you learn more.
The tinyPEPPER esc needs the hex file O_L_5_*.HEX. Simply go to the blheli_s github repo and download the latest O_L_5_… hex file (e.g. this one)
Hey Simon any release date for the esc design files 🙂 as you know i have successfully built the TinyFishFC and it misses it little esc brother 🙂
There were some delays in testing the boards. I hope to get them ready next week.
i was not aware that dshot300 is possible what a nice suprise 🙂 well 1s then nothing to do
Super awesome project. *Hats off*
I know it’s still under progress, but may I ask what you are using for bldc controller and FETs besides your 8bit uC?
Been thinking about trying my hand in making one myself.
Happy new year!
I will probably release the schematics and design files next weekend.
The new PCB is on its way. I use EFM8BB10 CPUs and IRLML6244 and IRLML2244 mosfets. Make sure to buy genuine, the chinese copies from aliexpress are really really bad (high RDSon and low current).
wanting for your release 🙂 , are you considering of using BB2? and maybe support for 2S?
It uses EFM8BB10. There is no need for the BB2. DSHOT300 is more than enough 😉
Unfortunately 2S is not possible with this simplified design approach, I could not find mosfet drivers small enough for this layout.
Are the mosfets the only component on the ESC that is restricting 2s comparability? As in are all caps and resistors 10v ready
No, the whole design is for 1S only. 2S will blow up the CPUs and the mosfets will not switch correctly. For 2S one needs FET drivers and a proper voltage regulator for the CPUs. I might do a 2S version some day, but this will take some time 😉