Skip to content
Buy 10+ on select items — save 10% auto-applied
Free US shipping on orders $35+
Order by 3pm ET — ships same-day from the US
Worldwide shipping via DHL
Skip to main content

ESP32-CAM MicroPython: Firmware Compatibility and Wi-Fi Notes

November 27, 2023 1184 views

ESP32-CAM Camera: Run MicroPython with WiFi support | ShillehTek
Project

Compatibility notes for the older ESP32-CAM MicroPython video, with a current Arduino setup guide for the Kuongshun OV3660 USB-C board.

Choose the Guide for Your Camera Board

Using ShillehTek's Kuongshun ESP32-CAM V2.0 with an OV3660 camera? Start with the current ESP32-CAM V2.0 manual. It explains the onboard USB-C/CH340C connection and Arduino browser-streaming setup.

This article accompanies an older MicroPython video. Its camera firmware and commands are version-specific. The linked LeMaRiva project documents OV2640-based boards; a prebuilt image from that project must not be assumed compatible with an OV3660 sensor or a different board pin map.

Original Video

The video demonstrates a MicroPython workflow on the hardware and software used at the time. Check the compatibility notes below before following its installation steps on a different board.

What You Need

  • An ESP32 camera board with a known sensor model and camera pin mapping.
  • A USB data cable. A board with onboard USB-to-serial, such as the Kuongshun V2.0, connects directly. A bare ESP32-CAM without USB requires a compatible external serial adapter and board-specific wiring.
  • A computer with Thonny or another MicroPython REPL client.
  • A camera-enabled MicroPython firmware release that explicitly supports your processor, sensor, memory, and pin mapping.
  • A 2.4 GHz Wi-Fi network for the network portion.

Installing standard ESP32 MicroPython firmware does not automatically install a camera driver. An import camera failure usually means the required module is absent from the firmware.

Firmware and Flashing

  1. Identify the board revision and camera sensor before choosing firmware. Read the maintainer's supported hardware, release notes, and examples.
  2. For the historical workflow, consult the LeMaRiva camera-driver repository. Its documented OV2640 support is not verification of this store's OV3660 board.
  3. Use the flashing command, tool version, and flash address specified for the exact firmware artifact. A merged image and a single application image can require different addresses; do not substitute a filename in an old command and assume it is correct.
  4. Identify the correct serial port and follow the board's download-mode instructions. Flashing a new firmware replaces the existing program; back up scripts first, and only erase flash when the firmware instructions require it.
  5. After flashing, exit download mode, reset the board, and select the corresponding MicroPython serial connection in Thonny.

Use Espressif's esptool documentation for the installed tool version. Older tutorials use command spellings such as esptool.py and write_flash; newer versions may use different spellings. This article does not supply a verified OV3660 MicroPython firmware image.

Check the Camera and Wi-Fi Separately

First run the firmware maintainer's smallest camera-initialization and single-capture example using that board's pin map and supported frame-buffer settings. Begin at a low resolution. A successful capture should return image bytes; check for an error or failed capture before attempting to save or transmit them.

Then follow the network example for that MicroPython version to activate station mode and connect to your 2.4 GHz access point. Check the connection status with a timeout so a wrong password does not leave the script waiting forever. Keep credentials in a local configuration file and do not share them in logs or screenshots.

Capture is not streaming: Printing the number of captured bytes only confirms a capture operation. Browser video requires an HTTP/MJPEG server or another explicit image-transfer implementation. This article does not include a complete streaming server.

Cleanup and Troubleshooting

  • Release camera resources using the cleanup function provided by the installed driver. LeMaRiva's driver provides camera.deinit(); use it when you are finished with the camera or before deliberately reinitializing it.
  • Disconnect Wi-Fi when the application is finished using it. It is not necessary to disconnect between every image capture.
  • For missing packages, use the package installer supported by your firmware. Older builds use upip; current MicroPython documentation describes mip and mpremote mip. Do not assume a package command from the video exists in every release.
  • For camera initialization errors, check the sensor/firmware match, pin configuration, ribbon seating with power disconnected, memory settings, and power supply.
  • For a fresh Kuongshun OV3660 setup, use the Arduino CameraWebServer walkthrough before attempting a custom MicroPython firmware.

References: MicroPython ESP32 quick reference and package management. Match the documentation version to your installed firmware.