tinyPEPPER 4in1 ESC — blheli_s, tiny, light, and open hardware

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 pepperF1SHthe 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.

Specifications:

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 (!)
  • BLHeli_S
  • 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…

Circuit board

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.

Open Hardware

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!

Changelog:

v0.5:
– switched to efm8bb21 (pin compatible)
– better tabs (you can now solder from the side)

v0.4:
– added motor phase tabs

v0.3:
– 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.

Flashing

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.

Status

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 😉

News

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.

Disclaimer

Please refer to my disclaimer that applies to all projects presented on this blog.

37 thoughts on “tinyPEPPER 4in1 ESC — blheli_s, tiny, light, and open hardware

  1. Mike Primeaux

    hey Simon,
    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

    Reply
      1. Mike Primeaux

        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

        Reply
        1. fishpepper Post author

          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:
          https://fishpepper.de/2016/10/15/efm8-bootloader-flash-tool-efm8load-py/

          All you need is an usb2serial adapter of your choice.
          There is also a serial bootloader tool from silabs:
          https://www.silabs.com/documents/public/application-notes/an945-efm8-factory-bootloader-user-guide.pdf
          This might be better suited for you if you use windows.

          Reply
  2. Josh

    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?

    Reply
    1. fishpepper Post author

      Unfortunately this will not work. The efm8 can not drive the P channel mosfet in that case.

      Reply
  3. Torsten

    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?

    Reply
    1. fishpepper Post author

      Just use DSHOT 😉 No need to calibrate/set throttle ranges.

      Reply
  4. Allen

    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?

    Reply
    1. fishpepper Post author

      Does this always happen or only on full Lipos ? If only on full Lipo you might want to read this 😉

      Reply
  5. Phil

    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 🙂

    Reply
    1. fishpepper Post author

      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 😉

      Reply
  6. Kwong

    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.

    http://imgur.com/qJGDGMy

    Reply
  7. Kevin Austin

    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?

    Reply
    1. fishpepper Post author

      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 😉

      Reply
      1. Kevin Austin

        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.

        Reply
        1. fishpepper Post author

          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 😉

          Reply
  8. mhvdrone

    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:

    https://docs.google.com/spreadsheets/d/1o9CkWSYWpz4Zyp-rfTQf-Zp24hv0e36ef1bGu6-hkeE/edit?usp=sharing

    https://docs.google.com/spreadsheets/d/1lamhIpTX52tD2ILiv2F8QD0Uboo3U0TM6IQQG_ND_T0/edit?usp=sharing

    Reply
    1. fishpepper Post author

      You need to compile kicad from source. Use kicad commit hash #efdfaeb.

      Reply
  9. HuiHu

    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!

    Reply
    1. fishpepper Post author

      You will need a recent version from kicad. I compiled my own binaries from kicad commit hash #efdfaeb.

      Reply
  10. Daniel

    Hi fishpepper,

    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.

    Cheers,

    Reply
  11. Sevim

    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 🙂

    Reply
    1. fishpepper Post author

      There were some delays in testing the boards. I hope to get them ready next week.

      Reply
  12. sevo

    i was not aware that dshot300 is possible what a nice suprise 🙂 well 1s then nothing to do

    Reply
  13. Daniel

    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!

    Reply
    1. fishpepper Post author

      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).

      Reply
      1. sevo

        wanting for your release 🙂 , are you considering of using BB2? and maybe support for 2S?

        Reply
        1. fishpepper Post author

          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.

          Reply
          1. Jacob

            Are the mosfets the only component on the ESC that is restricting 2s comparability? As in are all caps and resistors 10v ready

          2. fishpepper Post author

            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 😉

Leave a Reply

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