Close
0%
0%

Proton AI Core Vision+

ESP32-S3 camera board with 5MP OV5640, ICM-42670 IMU, I2S mic and microSD — open source vision co-processor for robotics.

Public Chat
Similar projects worth following
What it is

An open source ESP32-S3 development board built around one idea:
run the camera, IMU, microphone and SD card at the same time,
without losing peripherals to pin conflicts. This is the third
revision and the first where all of it works together.

Hardware

- ESP32-S3-WROOM-1-N16R8 (16 MB flash, 8 MB octal PSRAM)
- OV5640 5 MP camera on an FPC
- ICM-42670-P 6-axis IMU
- ICS-43434 I2S microphone (input only)
- microSD
- Qwiic / STEMMA QT I2C connector
- USB-C, LiPo charging
- ATECC608B (not provisioned in v1)

No hardware AI accelerator — inference runs on the S3 via ESP-DL.

What it's for

A vision co-processor. Your main controller handles motion and
real-time control; this board handles the camera, blob and colour
detection, image processing and light ESP-DL inference, then sends
compact results back over I2C or UART.

What this is

An ESP32-S3 board that runs a 5 MP camera, a 6-axis IMU, an I2S microphone and a microSD card at the same time, and hands the results to a host controller over I2C or UART.

That last sentence is the whole design brief. It is not meant to be your main controller. It is meant to be the thing your main controller asks "is there a red object, and where is it."

Why it exists

If you want vision on a small robot today, the usual answer is one of the cheap ESP32-S3 camera boards. They work, they cost almost nothing, and for a lot of projects that is the correct choice. I will say that plainly because it is true.

Where they start to hurt is when you want more than the camera. Add an IMU and you are wiring a breakout. Add a microphone and you are fighting for pins. Add an SD card and something stops working. The parts are all cheap and available. Getting them to coexist on one ESP32-S3, with a camera already consuming most of the GPIO, is the actual problem.

It works either way. Connect it via I2C or UART to a Raspberry Pi, RP2040, STM32, or any other host computer, and let it handle image processing, IMU, recording to an SD card, and audio capture via the microphone while the host computer takes care of everything else. Alternatively, since the S3 has its own radio module and doesn’t require a host computer at all, you can run it over Wi-Fi or as a standalone camera node on the device itself, using all its features simultaneously.

However, this device is not a robot’s main controller. It has no GPIO header or motor driver; the only connector available to the user is the Qwiic I2C port. This device is designed to be placed alongside another device, not to replace it.

Three revisions, and the first one was posted here to be taken apart

About a year ago I published the first prototype on r/esp32. Two criticisms came back repeatedly:

microSD placement. The socket was somewhere that made the card awkward to reach and fought for space with everything around it.

The antenna keep-out under the WROOM module. This was the serious one.

The ESP32-S3-WROOM-1 has its antenna printed into the module. Espressif specifies a keep-out region underneath and around it — no copper, no ground plane, no traces, no components — and the antenna end is supposed to overhang the edge of the carrier board. Put a ground plane under there and the antenna detunes and range collapses. The first revision did not respect that properly.

Both drove revision two. The keep-out fix is not a patch you apply later. It changes where everything else on the board is allowed to sit, so it forced a re-plan of the whole layout.

Revision three is the first one where all the peripherals run simultaneously. That sounds like a low bar. It was most of the work.

Hardware

ESP32-S3-WROOM-1-N16R8 — 16 MB flash, 8 MB octal PSRAM. The PSRAM is not optional here. A 5 MP frame does not fit anywhere else, and octal was chosen over quad for bandwidth. The cost of that choice is real: octal PSRAM consumes GPIO35, 36 and 37, which you do not get back.

OV5640, 5 MP, on an FPC. Connected over the parallel DVP interface. This is the single largest consumer of pins on the board.

ICM-42670-P — 6-axis IMU. This is the part that is genuinely hard to find already on a camera board at this size. If the board is going on a robot, knowing how it is oriented while it is looking at something is worth more than it sounds.

ICS-43434 — I2S MEMS microphone. Input only. There is no audio output on this board and there never was — the brief was vision, and audio out did not belong in it.

microSD — for logging frames and captured datasets locally. Loading ESP-DL models from the card rather than baking them into firmware is something I'm working on now. The point is that swappinga model shouldn't mean reflashing the board  particularly in a classroom, where a teacher on r/esp32 described spending an hour getting students through capture, annotation...

Read more »

proton-ai-core-vision-plus-schematic.pdf

Adobe Portable Document Format - 568.42 kB - 08/26/2026 at 07:40

Preview

.DS_Store

ds_store - 10.00 kB - 08/26/2026 at 07:40

Download

03_status_led.ino

ino - 3.33 kB - 08/26/2026 at 07:40

Download

.DS_Store

ds_store - 10.00 kB - 08/26/2026 at 07:40

Download

01_camera_capture.ino

ino - 3.82 kB - 08/26/2026 at 07:40

Download

View all 13 files

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates