Investigating open-source electronic speed controllers as we evaluate whether to build custom ESCs or use existing solutions
When building a custom flight control system, one of the first decisions is whether to source ESCs off-the-shelf or design our own. The market for 4-in-1 ESCs is mature — FlipSky, T-Motor, and Hobbywing all offer well-engineered boards at competitive prices. But there are trade-offs we need to consider: firmware transparency, current sensing accuracy, motor control algorithms, and the ability to adapt the hardware to our specific form factor.
This led us to investigate the VESC — an open-source ESC platform designed by Benjamin Vedder that pushes the boundaries of what’s possible in electronic speed control.
The VESC project started as a firmware-focused initiative and evolved into a full open-source hardware platform. Unlike proprietary ESCs where the motor control algorithms are black boxes, the VESC stack — both firmware and hardware — is fully transparent. This matters for us because it means we can study the current sensing design, the PWM generation approach, the BEMF measurement techniques, and the sensorless field-oriented control (FOC) implementation.
The VESC ecosystem supports a wide range of motor types and configurations, from simple brushed motors to complex three-phase BLDC motors with hall sensors or encoder feedback. Its current generation includes:
V4.x uses two shunt resistors for current sensing, while the newer V6 uses three shunt resistors for more precise three-phase current monitoring. The V4 hardware is fully open-sourced with KiCAD project files, while the V6 only provides schematics — a difference worth noting as we evaluate what we can learn from each.
We began with the VESC 4.12 hardware design, which is based on the FlipSky Benjamind ESC available through various online marketplaces. The KiCAD project is available at github.com/vedderb/bldc-hardware, and the v4.12 commit gives us a solid foundation.
The firmware compilation for the FlipSky 4.12 board is straightforward:
make 410
Here “410” refers to the shunt resistor configuration (1mOhm), not the version number. The memory footprint looks like this:
| Region | Used Size | Region Size | %age Used |
|---|---|---|---|
| flash | 15,312 B | 16 KB | 93.46% |
| flash2 | 436,352 B | 475,120 B | 91.84% |
| ram0 | 108,288 B | 128 KB | 82.62% |
| ram4 | 63,200 B | 62 KB | 99.55% |
| libif | 2 KB | 2 KB | 100.00% |
The flash2 region is particularly interesting — it’s used for storing the NVM (non-volatile memory) data including configuration, motor setup, and calibration parameters. This approach is worth studying for our own firmware design.
The VESC 6 represents a significant step up in current sensing capability. By using three shunt resistors (one per phase), it provides independent current measurement for each phase, enabling more accurate FOC control — especially important at low speeds and during dynamic maneuvers.
However, the VESC 6 only opens its schematics, not the full layout. This means we can study the circuit design but would need to do our own PCB layout if we wanted to produce a VESC 6-class board. The FlipSky V6 boards are available (some as simple as $8 USD for the most basic variant), so purchasing one for teardown analysis is a viable path forward.
Most FPV drones use simple duty-cycle-based ESCs that accept PWM signals and translate them directly to motor power. These are cheap, simple, and work well. But for applications that benefit from precise motor control — autonomous hovering, vibration damping, current-limited flight envelopes, or regenerative braking — the VESC’s FOC capabilities offer meaningful advantages.
The VESC platform also provides rich telemetry data: real-time current per phase, motor temperature estimates, input voltage, RPM estimates, and more. This data pipeline could inform our flight control algorithms in ways that standard ESC telemetry cannot.
For now, we’re keeping the door open. Our initial builds will use proven 4-in-1 ESCs from the market — the quality and reliability of off-the-shelf options is hard to beat. But the VESC research is valuable for two reasons:
Learning: The VESC hardware and firmware are excellent reference designs for anyone building motor controllers. The KiCAD project files give us complete visibility into the power stage design, microcontroller selection, and peripheral circuits.
Future capability: As our applications evolve toward more autonomous and precision-controlled flight, having the capability to design custom ESCs with advanced features like FOC, current limiting, and rich telemetry becomes an asset rather than a luxury.
The VESC project at github.com/vedderb/bldc-hardware is a goldmine for anyone interested in open-source motor control. Even if we don’t use VESC hardware in our final designs, studying it will inform every ESC-related decision we make.
The next step is to set up a test bench, flash the VESC firmware to a FlipSky 4.12 board, and compare its motor control characteristics against the ESCs we’re using in our initial builds. We want to quantify the difference in smoothness, current sensing accuracy, and telemetry richness before making any hardware decisions.
Are you looking for
Consulting Services,
Support Plans or
Training & Workshops?