18650 Pack
2S · 7.4V nom / 8.4V full
BAT+ · BAT−
L298N
Motor Driver
ENA IN1 IN2 IN3 IN4 ENB
OUT1/2 · OUT3/4
ESP32
BRAIN
GPIO25=ENA GPIO26=IN1
GPIO27=IN2 GPIO14=IN3
GPIO12=IN4 GPIO13=ENB
GPIO5=TRIG GPIO18=ECHO
GPIO19=SERVO GPIO4=BUZZ
GPIO21=SDA GPIO22=SCL
GPIO23=NEO GPIO15=BTN
3.3V · 5V(Vin) · GND
HC-SR04
Ultrasonic Sensor
VCC · TRIG · ECHO · GND
OLED 128×64
I²C Display
VCC · SDA · SCL · GND
Servo Motor
Signal · VCC · GND
5V external power
NeoPixel
WS2812B LED Strip
DIN · VCC · GND
Buzzer
Active · + · −
Push Button
GPIO15 → BTN → GND
Left BO Motor
OUT1 · OUT2
Right BO Motor
OUT3 · OUT4
Voltage
Divider
330 Ω
BAT+ 7.4V→VIN
5V→ESP32 Vin
5V→HC-SR04 VCC
3.3V
5V ext→Servo
5V→NeoPixel
COMMON GND RAIL
ENA·GPIO25
ENB·GPIO13
TRIG·GPIO5
ECHO÷VD·GPIO18
SDA·GPIO21
SCL·GPIO22
SIG·GPIO19
GPIO23→330Ω→DIN
GPIO4→Buzzer+
GPIO15
ECHO (via Voltage Divider)
⚡ Common GND Rail — All modules share this
ESP32 GND
L298N GND
HC-SR04 GND
OLED GND
Servo GND
NeoPixel GND
Buzzer GND (−)
Push Button GND
Left BO Motor GND (via L298N)
Right BO Motor GND (via L298N)
⚡ ESP32 — GPIO Map
GPIO 25→ L298N ENA PWM speed A
GPIO 26→ L298N IN1 Dir A
GPIO 27→ L298N IN2 Dir A
GPIO 14→ L298N IN3 Dir B
GPIO 12→ L298N IN4 Dir B
GPIO 13→ L298N ENB PWM speed B
GPIO 5→ HC-SR04 TRIG 10µs pulse
GPIO 18← HC-SR04 ECHO ÷VD 3.3V safe
GPIO 19→ Servo Signal 50Hz PWM
GPIO 21→ OLED SDA I²C
GPIO 22→ OLED SCL I²C
GPIO 23→ 330Ω → NeoPixel DIN WS2812B
GPIO 4→ Buzzer + Active buzzer
GPIO 15← Push Button → GND INPUT_PULLUP
🔧 L298N — Connections
VIN / +12V← BAT+ (7.4V) Motor power
GND↔ Common GND
5V OUT→ ESP32 Vin, HC-SR04 VCC Onboard reg
ENA← GPIO 25 PWM Speed ctrl A
IN1/IN2← GPIO 26 / GPIO 27 Direction A
IN3/IN4← GPIO 14 / GPIO 12 Direction B
ENB← GPIO 13 PWM Speed ctrl B
OUT1/OUT2→ Left BO Motor H-bridge A
OUT3/OUT4→ Right BO Motor H-bridge B
🔋 Power & Peripherals
18650 BAT+→ L298N VIN 7.4–8.4V
18650 BAT−→ Common GND Rail
L298N 5V→ ESP32 Vin + HC-SR04 VCC Regulated
ESP32 3.3V→ OLED VCC 3.3V out
5V ext→ Servo VCC, NeoPixel VCC Direct 5V
ECHO ÷VD1kΩ + 2kΩ divider 5V→3.3V
NeoPixel330Ω series on DIN Protects data
OLED addr0x3C (default) I²C
BTN pullINPUT_PULLUP on GPIO15 LOW=pressed
⚠ Important Notes:
• HC-SR04 ECHO outputs 5V — ESP32 GPIO is 3.3V tolerant only. Use a voltage divider (1kΩ + 2kΩ) or logic level shifter to protect the ESP32.
• Servo & NeoPixel draw significant current at 5V — power them directly from the 5V supply, not from the ESP32's 3.3V pin.
• GPIO 12 on ESP32 is a strapping pin — boot may fail if pulled HIGH during startup. Verify your motor driver state at power-on.
• NeoPixel DIN — always add a 300–500Ω series resistor to suppress ringing and protect the first LED.
• All GND connections must share a common reference — float GND between modules causes erratic behaviour.