Skip to content
MCU Atlas
ESP32ESP32Draft

Expanded ESP32-CAM webcam server

A friendlier, feature-rich version of Espressif's camera example for the $8 ESP32-CAM board.

Difficulty:BeginnerCost:Under $15Source available

Key Facts

  • Chip: ESP32 (AI-Thinker ESP32-CAM)
  • Camera: OV2640
  • Stream: MJPEG over HTTP
  • Framework: Arduino

About This Project

This project extends the stock Espressif CameraWebServer sketch for the AI-Thinker ESP32-CAM, adding a cleaner UI, saved settings, a standalone stream viewer, OTA updates, LED control and an embeddable stream endpoint. It is a practical base for DIY security cams, 3D-printer monitors and timelapse rigs, and the README covers common power and flashing pitfalls with these boards.

Source & Attribution

Source: GitHub
License: LGPL-2.1
Last verified: 10/16/2026
How to Build It
An expanded version of Espressif's CameraWebServer example for the cheap AI-Thinker ESP32-CAM. It adds lamp control, view rotation, a cleaner UI, saved settings and better stability, turning the module into a simple Wi-Fi webcam with an MJPEG stream and still capture.

Parts Needed

  • AI-Thinker ESP32-CAM with OV2640
  • 3.3V USB-serial adapter (FTDI or CH340) or an ESP32-CAM-MB programmer
  • Jumper wires
  • Solid 5V supply

Steps

  1. 1

    Set up the Arduino IDE

    Install the latest stable Arduino IDE and Espressif ESP32 core. The author doesn't support development builds.

  2. 2

    Wire for programming

    Cross the adapter's TX and RX to the ESP32-CAM's RX and TX, supply 5V and GND, and hold GPIO0 to GND at power-up to enter flash mode. Use a 3.3V logic adapter, never a 5V one.

  3. 3

    Get the sketch

    Download the release zip, unpack it into your sketchbook folder and rename the folder so it matches the .ino name (drop the version number).

  4. 4

    Configure

    Copy the example network config to myconfig.h and enter your Wi-Fi details. The default camera pinout is AI-Thinker; select another if you have a different module.

  5. 5

    Upload and run

    Select the AI Thinker ESP32-CAM board and upload. Then remove the GPIO0 jumper, reset, and open the IP address shown in the serial monitor.

  6. 6

    Tips

    Avoid PlatformIO builds for now (the README notes the stream drops). Only one stream can run at a time. Most dropouts come from weak Wi-Fi or power, so keep the module close to the router.

Parts List (BOM)
Partial parts list
partial
PartQtyRoleEst. PriceBuy
1main board$6–$12View
USB-serial adapter (FTDI/CH340) or ESP32-CAM-MB
1programmer——
Estimated Total$6–$12 USD

Not included: 3D-printed case, wire, solder, USB cable

Download CSV

Related Projects

Watchy: open-source ESP32 e-ink smartwatch
Illustration
ESP32Draft
An open-source smartwatch with a 1.54in e-paper screen and ESP32, hackable watch faces in Arduino.
Beginner·Under $15·Code
2 parts listed
Low-power ESP32 e-paper weather display (7.5in)
Illustration
ESP32Draft
A wall-mounted 7.5in e-paper weather display on an ESP32 that runs for months on one battery charge.
Intermediate·Cost varies·Code
5 parts listed
OpenEPaperLink: reuse e-ink shelf labels with an ESP32 access point
ESP32ESP32-S3Draft
Turns cheap second-hand electronic shelf labels into a Wi-Fi-managed e-ink display fleet via an ESP32 access point.
Advanced·Under $15·Code
3 parts listed