24 Es ESP32

Element 24 of 86 — The Periodic Table of Robotics

ESP32

Boards & Brains

A tiny, cheap microcontroller with WiFi and Bluetooth built right in — the go-to chip for connected robots and IoT projects.

Espressif ESP32

For less than the price of a coffee, the ESP32 puts a dual-core processor, WiFi, and Bluetooth on a board smaller than a credit card. It’s remarkable what a few pounds of silicon can do these days.

What is ESP32?

ESP32 is a microcontroller system-on-chip (SoC) made by Espressif Systems. The original ESP32 packs two Xtensa LX6 cores running up to 240 MHz, 520 KB of SRAM, and — crucially — both 802.11 b/g/n WiFi and Bluetooth 4.2 (plus BLE) baked right onto the chip. No extra modules, no extra cost.

The chip family has grown since the original. The ESP32-S3 adds faster cores and USB OTG. The ESP32-C3 is a single-core RISC-V variant for ultra-budget builds. The ESP32-CAM variant bolts on a camera module for a complete vision system at pocket-money prices.

You can program it with Arduino-style C++, MicroPython, or CircuitPython. Development boards like the DOIT DevKit, the Wemos D32, and the M5Stack family expose all those pins in a breadboard-friendly form, so you’re never far from getting code running.

What’s on the chip

The thing that sets the ESP32 apart is how much sits inside one chip. Two CPU cores, the radios for WiFi and Bluetooth, and all the usual robot peripherals — no add-on modules required:

flowchart TB
    subgraph ESP32["ESP32 SoC"]
        C0["Core 0<br/>(often runs WiFi)"]
        C1["Core 1<br/>(your code)"]
        WIFI["WiFi 802.11 b/g/n"]
        BT["Bluetooth + BLE"]
        PERIPH["GPIO · PWM · ADC<br/>I2C · SPI · UART"]
    end
    C1 --> PERIPH
    C0 --> WIFI
    C0 --> BT
    PERIPH --> ROBOT["Motors, sensors,<br/>servos"]
    WIFI --> NET["Phone / dashboard /<br/>MQTT broker"]

Running the network stack on one core while your control loop runs on the other is the ESP32’s superpower — your robot can stay responsive even while it’s busy talking over WiFi.

Why robot builders care

Most microcontrollers make you add a separate WiFi or Bluetooth module if you want wireless — that’s extra components, extra wiring, and extra things to go wrong. The ESP32 skips all of that. You can stream sensor data to a dashboard, receive commands over MQTT, or connect to a mobile app without touching a single extra chip.

That makes it perfect for:

  • Remote-controlled robots — receive joystick commands over WiFi or Bluetooth from a phone or laptop.
  • Telemetry — push battery voltage, motor speeds, or sensor readings to a server in real time.
  • Camera bots — the ESP32-CAM streams live video over HTTP with just a handful of lines of code.
  • Swarm experiments — multiple cheap ESP32 nodes can talk to each other or to a central broker using MQTT.

The dual-core architecture also means you can run your control loop on one core while the WiFi stack runs on the other — no awkward juggling of network calls inside your robot’s main loop.

Get started

The easiest first step is to install MicroPython on an ESP32 board and get it talking wirelessly. Kevin’s guide How to Install MicroPython covers the flashing process step by step, and MicroPython’s network module makes connecting to WiFi a five-line job.

Once the board is online, try sending commands over MQTT — it’s a lightweight publish/subscribe protocol that works brilliantly for robot control. The MicroPython Robotics Projects course builds real moving robots with MicroPython and covers exactly this kind of wireless control.

If you want to go further with vision, the post Stream ESP32CAM Video shows how to grab a live video stream from an ESP32-CAM and process it in Python on a Raspberry Pi — a great foundation for a camera-equipped rover.

Pick up a dev board, flash MicroPython, and watch your robot gain eyes and ears over the air.

Reacts well with

More Boards & Brains

Learn more on KevsRobots

Courses
Projects to build
Articles to read

Share this element

This page is awesome? Show some love!

Did you find this content useful?


If you found this high quality content useful please consider supporting my work, so I can continue to create more content for you.

I give away all my content for free: Weekly video content on YouTube, 3d Printable designs, Programs and Code, Reviews and Project write-ups, but 98% of visitors don't give back, they simply read/watch, download and go. If everyone who reads or watches my content, who likes it, helps fund it just a little, my future would be more secure for years to come. A price of a cup of coffee is all I ask.

There are a couple of ways you can support my work financially:


If you can't afford to provide any financial support, you can also help me grow my influence by doing the following:


Thank you again for your support and helping me grow my hobby into a business I can sustain.
- Kevin McAleer

What are you looking for?
Watch Videos Get Ideas Learn Something Read a Review Read the Blog Search
... Z Z z