Skip to the content
PCBKitNew board
4 layers72.1 × 49 mmEde, the printed circuit board in 3D

KiCad adaptation of EasyDIY-ESC

Size
72.1 × 49 mm
Copper layers
4
Thickness
4.69 mm
Parts
114
Nets
81
Pads
304
Tracks, vias
516, 256
Pours
32
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
12 Oct 2022
Updated
5 Nov 2022

Overview

Ede is an open-source printed circuit board by intible, from the intible/ede repository on GitHub. It is a 4-layer board of 72.1 × 49 mm with 114 parts on 81 nets, routed with 516 tracks and 256 vias.

It is built around the STH0548S12, U3216 and MDP10N027TH, with the SM4007PL among its other parts. Its parts include 28 resistors, 21 capacitors, 12 connectors, 7 ICs and 6 transistors.

Main components

4

README

README.md

EasyDIY ESC

Note: 'main' branch is under development, there is a change to use KiCad as compared to v0.5.2 (current HEAD of feature/v0_5_2, i.e. git SHA1 - e55e314)

The target for this EV motor controller is to power small EVs like EBikes or EScooters like Xiaomi M365, and offer better customizability and repairability.

Main objectives:

  • Easy to build and repair DIY: It uses DC-DC modules, a development board instead of an uC chip, SMD passive components are all 0805 or bigger, and ICs are SOIC8 or SOIC14. No fine pitch components.

  • Popular components: Uses the popular Bluepill STM32F103 board, meaning it is easy to develop firmware for it. Uses popular components / footprints / pinouts. Meaning you should have no problems with part availability, and if you do, you will be able to change most parts with equivalents depending on availability or prefrence, without need to change the pcb layout.

  • Possible to add custom electronics: For reusing this motor controller on different devices, you can extend the electrocnis with a custom header on top of the Bluepill. This means you can use all available pins and access and extend with: CAN, UARTs, etc.

  • Possibility to buy the SMD parts pre-soldered: While we went to great extend do make this board easy to DIY by humans (as opposed to robots in a factory), we acknowledge there are many who lack the skill/time/motivation to solder all SMDs themselves. So all SMDs are on the same side, in large stock at lcsc (at the time of writing), so the board can be ordered with SMDs pre-assembled by JLCPCB for a decent price.

  • Compactness: Despite using only big DIY friendly parts, we tried to keep the board as small as possible: ~ 73mm x 49mm

  • Good Power/Size ratio: Our initial estimation (untested) is that the upper limit for phase current should be ~78A. As for max continuous “battery amps”, it heavily depends on the cooling!

ES Thread:

https://endless-sphere.com/forums/viewtopic.php?f=30&t=114537

Building Tips:

Bus Bars

Bus bars are recommended for anything else than very low current. (extra copper wires soldered to the exposed copper strips of the PCB, or at very least a lot of solder on the exposed strips)

Bulk electrolytic capacitors (XC.... )

We went for a total of ~1000uF, which should be enough for most usecases. You need more capacitance the more power you plan to use, and the longer (and thinner) your battery wires are. So you can probably also get away with less if you have short thick battery wires.
Choose voltage rating ~ 1.5x your max battery voltage for a long lifetime. For 48v nominal (54.6V max) battery voltage, 80V or more is recommended. The total capacitance of the electrolytic capacitors is more important than the exact combination of values. 1 big + 3 small is almost the same as 3 medium of the same total value. More smaller capacitors have the advantage of lower ESR, lower inductance, and redundancy in case one fails)

Bulk ceramic/MLC capacitors: (XC.... )

As much as possible. These need to compensate for the high frequency weakness of the electrolytic capacitors. Overrating voltage rating is recommended. (author chose 100V for the “default” for 3.3v, 5v and 12v). Definitely fill all open footprints.

Capacitors - the rest

Values are consolidated for easy buying. Voltage rating is 25V or higher regardless if they are on the 12v, 5v, or 3v3 rail on the default design, however you can choose a smaller voltage rating for the 5v and 3v3 rails..
All parts are 0805 mlc (2 electrolytic exceptions, C8 and C10 from the 12v and 5v rails)

Snubbers (RSx, CSx)

These are RC snubbers. The current values for the R and C are random, they are here only for the footprints. Do not fit them (yet). The real values (if necessary at all) will be computed after we build the controller and see what ringing we get. Purpose of the snubbers is to dampen that ringing. (if you choose different parts than the one we compute the snubbers for, you might need to compute the snubbers yourself). These components are not present in the pick-and-place or BOM files.

Optional Capacitors (OCx)

All parts marked OCx are optional GS Capacitors for the mosfets. If you insist on using old/bad mosfets with high Crss, you'll need to compensate for that with additional Cgs. That being said, please avoid high Crss mosfets, and you don't need to use the OCx. We expect none of the recommended FETs to need these. These are footprints only to offer flexibility if needed. These components are not present in the pick-and-place or BOM files.

FETs

The default FETs are available from aliexpress at the time of writing. They are cheap and have good specs. (low Rds on, low Crss, 100v, etc). You can solder them “standing” on the the throughhole/module side, or bent flat on the opposite (smd) side. In either case, it is recommended that the thick part of the leads is in contact with (soldered to) the board. The thin part of the leads can carry significantly less current.

You can use a fet of your choosing, but please be aware that old Fets (such as the famous 4110 or 3077) have huge Crss, leading to a tiny Ciss/Crss ratio. This ratio needs to be bigger than roughly your max battery voltage, so you will need to compute and add the optional Cgs capacitors (OCx). Small Ciss/Crss results in ringing / parastic turn on (which leads to failure). That being said, it’s best to just use Fets with Ciss/Crss > ~100, nowadays they’re easy to find. See the spreadsheet with alternative parts.

Attaching the FETs to a heatsink: the FETs need to be electrically isolated from the heatsink, but well connected thermally. The options for this are:

  • Mica glass (“traditional option”, cheap, easy to find)
  • Ceramics (saw this as a new option, never tried it)
  • Polymer pads
  • Kapton Tape

Unfortunately in focusing on making the board small we crammed the FETs very close together. This means some mica or ceramic pads will not fit - and it’s very hard to cut them afaik. So for this version we’re probably stuck with polymer / kapton.

Testing

  • v0.5 build has been tested by mxlemming with MESC FOC firmware on F401CC black pill board

Known issues/limitations:

  • Mosfet temp sensor missing - you can add it to the expansion board.
  • Many connectors are not present (example: CAN) - you can add them to the expansion board.

FAQ

  • What’s with those 2 solder jumpers? They are power for your uart-connected board. If it’s a 5v board, solder the 5v solder jumper, if it needs 3.3v solder the 3v3 jumper. Never solder both!

  • Can you assemble it for me? You can get the SMD side pre-assembled at jlcpcb (at the time of design all parts were in stock for jlcpcb SMT service). So you’ll only need to solder the through-hole parts and the modules. Currently there is no plan on selling any assembled PCBs.

  • I want more power!!! This might not go well. So good luck, you’ll probably need it. Please don't blame us when it goes up in smoke. But do let us know how it goes. Disclamer aside, here are some basic suggestions:

    • Stack another 1mohm shunt on top of the other. This will double the max current you can read.
    • Add thick bus bars to the board.
    • Add more/ bigger bulk caps!
    • Use appropriate wires (thick!)
  • I want more voltage!!!! Realistic limit is 15s lipo. For more than that the ESC will need serious redesign. Some bottlenecks that cross my mind:

    • default 12v dc module is 72v limited,
    • some of the recommended mosfets are not capable of more voltage,
    • voltage sense divider needs adjustment, etc.
    • PS: I would have loved to make it 20s capable, but did not find any small 100-12v DC-DC module. If you know of one, please let us know in our ES thread, and next version might be 20s / 74v capable. Also, I added 3 through hole pads for easy mounting of any 12V module via wires :)
  • Your part X is bad, I recommend Y! We tried to find cheap but decent parts for this controller. Cheap almost always implies a compromise in some other areas, so you might not like our pick :) It should be fairly easy to switch to other parts on your own: we used mostly standard and popular footprints and packages If you know better parts or have better solutions, please let us know on our ES thread. We like learning new things. ....except if you’re going to suggest 3077 or 4110 mosfets. Those things are dinosaurs. They were the biggest baddest thing around during their time, but nowadays belong to a museum. Or a kid’s t-shirt. Please stop recommending them. See our thread for details.

  • Where can I buy parts? Lcsc.com, mouser.com. Aliexpress if needed. I designed this with jlcpcb smt assembly in mind, so all SMDs were in stock at lcsc when I designed the PCB. Also most of the Through-hole parts. Some exceptions, and where to buy them:

    • Default mosfets - aliexpress.
    • 12v module - mouser
    • 5v module - aliexpress. There is a fixed voltage one, we recommend that one!
    • Bluepill - aliexpress. Don’t know a better source these days.
    • Jst headers - aliexpress
    • Bluepill headers - aliexpress
  • Why do the battery wires go in seemingly random places in the middle of the board? If you have the battery wires at the edge, then the full battery current will need to go through a portion of the battery “traces” of the PCB. I’ve placed them near the middle switch node, so with a tiny exception, the current through the traces is ⅓ of the battery current.

  • This whole thing is amateur work! Yeah, totally true. We are amateurs working on a generic low power ESC for free. If by this you refer to any specific mistake / set of mistakes, we would love to know about it! Post in the ES thread. Thanks!

Change log v0.5 -> v0.5.2

Schematic

  • Changes:
    • changed voltage sense resistors to 10x lower value (basic jlcpcb resistors -> cheaper)
    • removed pin 20 from GND (for blackpill compatibility)
    • removed thermal reliefs
    • replaced some parts with more cost-effective equivalents (basic parts jlcpcb)
    • changed diodes to a bigger more rugged version (more inline with the philosophy of this controller)
    • changed voltage sense divider so max read voltage is 100V (20s compatibility)
    • added circuitry for a ntc temp sensor for mosfets.
    • changed the electrolytic caps from the 12V and 5V rails to MLCC (still more capacitance than manufacturer recommends)
    • swapped ntc pins: MOSFET Temp -> A0, and Motor Temp -> A1 (for compatibility with EBiCS v2)
    • changed pinout of HALL JST connector - now you can use, additionally to a 6 pin connector for motors with temp NTC sensor, a 5pin connector on pins 1-5 and it will directly be compatible with the cable of a motor without temp sensor (M365 would be a popular example)

PCB Design

  • added 3 through hole pads for vbat, 12v, and gnd for easy connection with wires of any dc-dc module for more flexibility
  • moved JST connectors away from bluepill for better fitting (increased board width by 1mm)
  • many minor layout changes

Change log v0.1 -> v0.5

Schematic

  • Fixes:

    • added voltage divider for the voltage follower op-amp
    • added connection between the 3 2k2 resistors and 3V3 on hall sensor inputs
    • changed decoupling caps of the 3 power stages from VBAT-Shunt to VBAT-GND
  • Changes

    • replaced "default" mosfets with much better model
    • replaced shunts with 1mOhm (much lower value)
    • connected bluepill pin 20 to GND
    • changed the RC from the phase wire of the power stages to snubbers
    • replaced opamp with better model
    • changed Opamp 2 to be the voltage follower for easier routing
    • replaced vattery connectors with 2 pads for wire soldering
    • removed one of the connectors for hall sensors, replaced the other one with JST PH.
    • pinout changes for leaving CAN pins free
    • replaced mini 360 with MP1584EN (is bigger, but there is a non-adjustable 5V version, which is less error-prone to use.)
    • changed all ceramic decoupling capacitors for 3v3 and 5v to 10uF 0805
    • changed all bootstrap capacitors to 10uF 0805
    • added 1 ceramic decoupling capacitor per power stage (for a total of 2)
    • increased gain of opamps to 10 (from 8)
    • consolidated pullup R values to 2k2
    • consolidated many other C and R values
    • removed diode and cap from the hall sensor 5v rail
    • removed extension board headers (will be mounted on top of the bluepill on the same pins)
    • replaced electrolytic caps with bigger values and bigger voltage ratings

PCB design:

  • Fixes:

    • Moved the decoupling capacitor close to the bus bars (GND was through a long thin trace which rendered it almost useless)
  • Changes:

    • moved to 4 layer board (Ground Planes rule!)
    • moved the opamp non-inverting input resistors near the shunt - so they get the potential of that local ground (not of the GND near the opamp)
    • stacked DC-DC modules
    • removed expansion board headers
    • added 3 JST PH headers for basic functions
    • moved vbat rail at the edge of the board and GND rail in the middle
    • major redesign of everything
    • greatly reduced the size

Parts

114
QtyValueFootprintReferences
1410uIntible:C_0805_2012Metric_EDEC1, C2, C3, C4, C7, C8, C9, C11, C12, C13, C14, C15, C16, C18
122.2KIntible:R_0805_2012Metric_EDER3, R5, R14, R19, R20, R21, R22, R23, R24, R31, R32, R33
7100nIntible:C_0805_2012Metric_EDEC5, C6, C10, C19, C20, C21, C22
6100Intible:R_0805_2012Metric_small_EDER6, R8, R9, R10, R11, R13
610nIntible:C_0805_2012Metric_EDEOC1, OC2, OC3, OC4, OC5, OC6
62.2uIntible:C_1206_3216Metric_EDEXC4, XC5, XC6, XC7, XC8, XC9
622KIntible:R_0805_2012Metric_small_EDER7, R12, R15, R16, R17, R18
64.7Intible:R_0805_2012Metric_small_EDERG1, RG2, RG3, RG4, RG5, RG6
6MDP10N027Intible:TO-220-3_Vertical_EDEQ1, Q2, Q3, Q4, Q5, Q6
5Conn_01x01Intible:THT_1x_ID_2.8_OD_4J1, J2, J3, J4, J6
30.001Intible:R_2512_6332Metric_EDESH1, SH2, SH3
3100uIntible:CP_Radial_D8.0mm_P3.50mm_EDEXC1, XC2, XC3
31nIntible:C_0805_2012Metric_EDECS1, CS2, CS3
32.2Intible:R_0805_2012Metric_small_EDERS1, RS2, RS3
3Conn_01x01Intible:THT_1x_ID_1_OD_2J9, J10, J11
3SM4007PLIntible:D_SOD-123_EDED1, D2, D3
3U3216Intible:SOIC-8_3.9x4.9mm_P1.27mm_EDEU5, U6, U7
2,
210KIntible:R_0805_2012Metric_small_EDER4, R25
2Conn_01x04Intible:JST_PH_B4B-PH-K_1x04_P2.00mm_Vertical_EDEJ7, J8
2SolderJumper_2_OpenIntible:SolderJumper-2_small_EDEJP1, JP2
1Intible:MountingHole_3.1mm
110KIntible:THT_2x_P2.54_ID_0.7_OD_1.3NTC1
11MIntible:R_0805_2012Metric_small_EDER1
133KIntible:R_0805_2012Metric_small_EDER2
1680uIntible:CP_Radial_D12.5mm_P5.00mm_EDEXC0
1Conn_01x01Intible:TestPoint_Pad_D1.4mm_EDEJ12
1Conn_01x06Intible:JST_PH_B6B-PH-K_1x06_P2.00mm_Vertical_EDEJ5
1MP1584EN_4pinIntible:MP1584EN_4pinU4
1NCS20034DR2GIntible:SOIC-14_3.9x8.7mm_P1.27mm_EDEU2
1STH0548S12Intible:STH0548S12U3
1YAAJ_BluePillIntible:YAAJ_BluepillU1

Questions

How big is the Ede PCB?

It measures 72.1 × 49 mm and has 4 copper layers, 4.69 mm thick.

What parts does the Ede use?

114 parts, built around the STH0548S12, U3216, MDP10N027TH and SM4007PL. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Ede KiCad files?

From the intible/ede repository on GitHub, at the commit this page was made from: the board is ede.kicad_pcb and its schematic ede.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Ede design in my own project?

Its repository states no licence, so its author keeps all rights: ask intible before reusing the design.

Similar boards

  • 2 layers44 × 32 mmMIDI guy, the printed circuit board in 3D

    MIDI guy

    kinoshita-lab/MIDI-guy

    SAM2695 based tiny synthesizer

    42 parts67MIT
  • 4 layers50 × 59 mmKapula, the printed circuit board in 3D

    Kapula

    tejeez/geckokapula

    EFR32-based handheld transceiver

    166 parts65
  • 2 layers38.5 × 43 mmStepper monitor, the printed circuit board in 3D

    Stepper monitor

    zapta/ble_stepper_motor_analyzer

    A low cost stepper motor analyzer that uses wireless BLE link to display the data in real time on a Windows/Mac/Linux PC.

    58 parts58
  • 4 layers51.4 × 60.6 mmGb rp2040 cart, the printed circuit board in 3D

    Gb rp2040 cart

    deltabeard/DBGC

    A Game Boy cartridge using the Raspberry Pi RP2040 with RTC and MBC support.

    67 parts57
  • 4 layers288.5 × 95 mmOTTO Beta Main, the printed circuit board in 3D

    OTTO Beta Main

    bitfieldaudio/otto-hardware

    OTTO hardware files for upcoming beta. WORK IN PROGRESS

    331 parts37
  • 2 layers65 × 56 mmPiscsi, the printed circuit board in 3D

    Piscsi

    PiSCSI/piscsi-hw

    Hardware Repository for PiSCSI

    97 parts27
  • 2 layers56 × 32 mmMIDI UART interface san, the printed circuit board in 3D

    MIDI UART interface san

    kinoshita-lab/MIDI-UART-interface-san

    Handy interface PCB for MIDI and microcontrollers.

    37 parts20
  • 2 layers70 × 65 mmFluepdot, the printed circuit board in 3D

    Fluepdot

    Fluepke/Fluepdot

    Project for controlling Annax flipdot panels used by the Berliner Verkehrsbetriebe

    116 parts17AGPL-3.0