Motor
Controlling BLDC ESC Motor with Arduino Uno
What is the BLDC ESC?
A brushless DC motor paired with an ESC for high-RPM applications like drones, RC vehicles, and cooling fan projects.
Specifications
| Motor type | Sensorless 3-phase brushless DC (BLDC) |
| ESC control input | Standard servo-style PWM, 50Hz, ~1ms (stop/min throttle) to ~2ms (full throttle) |
| Battery | 2S-4S LiPo typical for small hobby ESCs (7.4V-14.8V) — confirm your specific ESC's rated cell count before connecting a pack |
| Max current | ESC-dependent — commonly 20A-30A continuous on small hobby ESCs, check the label on yours |
| Startup | Most ESCs require an arming sequence (throttle held at minimum on power-up) and beep out cell count/status before responding to input |
BLDC ESC Pinout
| Pin | Name | Description |
|---|---|---|
| 1 | Motor wires (3) | 3-phase output from ESC to motor — order is arbitrary, swap any two to reverse rotation direction |
| 2 | Battery + / - | LiPo battery input to the ESC — observe polarity, reversing it can destroy the ESC instantly |
| 3 | Signal | PWM control input from the MCU, same as a standard servo signal |
| 4 | BEC + / - | Many ESCs feed regulated 5V back out on the signal connector's power pins (BEC) — can power your MCU's logic side if within its current rating |
Always run the arming/calibration sequence documented for your specific ESC before first use — sending a mid-range throttle value on power-up on an uncalibrated ESC is a common cause of "the motor won't start" confusion.
Setting Up BLDC ESC with Arduino Uno
Library
Servo by Arduino built-in
Built into the Arduino IDE — no install needed
Wiring
| Component pin | Arduino Uno pin | Note |
|---|---|---|
| Signal | D9 | Any PWM-capable pin works — the Servo library generates the pulse in software |
| BEC + / - | Not connected (leave BEC unused, or see notes) | Only connect if you specifically want to power the Uno's 5V rail from the ESC — most setups power the Uno separately over USB/barrel jack |
| Battery + / - | Separate LiPo pack — not the Arduino's supply | The ESC's main power path never touches the Arduino; only Signal and (optionally) BEC ground/power do |
| Motor wires (3) | BLDC motor phases — not connected to the Arduino | Swap any two wires if the motor spins the wrong direction |
Example code
Almost all hobby ESCs need to see minimum throttle (1000µs) right at power-on to arm — skipping the arming delay is the most common reason "the motor just does nothing." Keep the battery's ground common with the Arduino's ground even though power is separate, or the signal reference will float.
Related Guides & Projects

Arduino Uno R3 Pinout: Every Pin Explained (Digital, Analog, PWM, Power)
Complete Arduino Uno R3 pinout reference: all 14 digital pins, 6 analog inputs, PWM, UART, SPI, I2C, AREF, and power rails explained with wiring tips and common mistakes.

Ultimate Arduino Mega 2560 Pinout Guide: Complete Power & I/O Reference
Master the Arduino Mega 2560 pinout. Detailed reference for all 54 digital pins, 16 analog inputs, PWM, UARTs, SPI, I2C, interrupts, and power. Includes a printable table and practical wiring tips.

Interfacing HC-SR04 Ultrasonic Sensor with Arduino
Measure distance accurately using ultrasonic sound waves and an Arduino Uno — no complex math, no expensive hardware.
HC‑SR04 Ultrasound Distance Measurement with Arduino – Parking Alert (LCD & Buzzer)
Learn HC‑SR04 ultrasound distance measurement with Arduino Uno. Build a parking alert system with 16x2 LCD and buzzer – shows distance and beeps faster as you approach.