Embedded camera node for ESP32-S3 with a modular C++ architecture for real-time computer vision. This project demonstrates professional embedded CV engineering: camera bring-up, modular pipelines, and efficient processing on low-power microcontrollers.
Work-in-progress: This repository is part of the CCMCode Embedded Vision toolkit and serves as a portfolio-quality example of modern ESP-IDF C++ development.
- ESP-IDF C++ project with multi-component architecture (
camera_node,cv_pipeline,stream_server,utils,drivers) - Fully compiling project with ESP32-S3 target under WSL Ubuntu
- C++
CameraNodecomponent using theesp32-cameramanaged component - Real-time FPS measurement with
esp_timer
- C++ computer vision pipeline (
cv_pipeline) - Frame timing and lightweight profiling utilities
- Clean, extensible class-based architecture for embedded CV
- Color blob detector (HSV thresholding)
- ROI extraction + simple pre-processing steps
- MJPEG or raw frame Wi-Fi streaming server
- UART debug dashboard (FPS, memory, timings)
- Benchmarks across frame sizes & pixel formats
- Example: simple color-object tracker
For a detailed component diagram and explanation, see docs/architecture.md.
ccm-esp32-vision-node/
│
├── components/
│ ├── camera_node/ # Camera bring-up abstraction
│ ├── cv_pipeline/ # Modular image processing pipeline (WIP)
│ ├── stream_server/ # Wi-Fi streaming endpoint (planned)
│ ├── drivers/ # Camera/sensor-specific helpers
│ └── utils/ # Logging, timers, profiling
│
├── firmware/
│ ├── main/ # App entry point (main.cpp)
│ └── CMakeLists.txt # ESP-IDF project definition
│
├── docs/ # Architecture & benchmarks (planned)
└── examples/ # Sample demos (planned)
This project is being developed and tested with:
- Chip: ESP32-S3
- SDK: ESP-IDF (Linux / WSL)
- Host environment: Windows 10 + WSL Ubuntu
- Tooling: VS Code,
idf.py, CMake
Planned hardware targets include:
- ESP32-S3 dev boards with PSRAM
- Camera modules based on OV2640 / OV5640
Follow the official install instructions: https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/
git clone https://github.com/CahillMeyer/ccm-esp32-vision-node.git
cd ccm-esp32-vision-node/firmwareidf.py set-target esp32s3
idf.py menuconfigidf.py build
idf.py flash monitorThis project successfully:
- builds under WSL Ubuntu
- uses the esp32-camera managed component
- compiles a fully working C++ main loop
- initializes and reads from the camera
- produces frame timing (FPS) logs
Next steps will add actual image-processing functionality.
- Add CvPipeline grayscale + threshold stage
- Add frame buffer pre-processing (ROI, downsample)
- Add MJPEG Wi-Fi streaming server
- Add architecture diagrams
- Add host-side unit tests for pipeline components
- Add example demos (color tracking, region extraction)
MIT License
Cahill Meyer
Embedded Vision Engineer
GitHub: https://github.com/CahillMeyer