Targetting M5 Stack Unit Cam S3, should work on any S3 with OV2640. Requires PSRAM. M8 8Servo controller supported! Modules can be run separately! you can use camera and no servos, or servos and no camera.
servo control with direct gpio
vr/ar viewer for racing rig
CIF 60p
SVGA 30p
HD 15p
Tested with ESP-IDF 5.4.
All settings can be configured through menuconfig.
Supports Logging to UDP, can receive with nc -u -l 55557
if ESP_UDP_LOG is enabled
The SSID and Network key must be set before compiling. You can set it with IDF or from the config directly
cd esp32_sender
idf.py menuconfig
in sdkconfig:
CONFIG_ESP_WIFI_SSID="MyNetwork"
CONFIG_ESP_WIFI_PASSWORD="MyKey"
Requires ESP-IDF and esp32_camera fragment mode: https://github.com/arms22/esp32-camera-fragment-mode
cd esp32_sender
idf.py -p PORT build flash monitor
pip3 install -r ./python_receiver/requirements.txt
The easiest way to conenct is with the scanning and launching script 'main.py'. This file will broadcast for any running cameras and list the IP addresses. You can select 1-2 cameras and pass them to the QT or GL viewers.
python3 python_receiver/main.py
Yuu can also launch a viewer directly by specifying the addresses
python3.exe python_receiver/qtcontroller.py <esp32_ip>
For the VR/OpenGL viewer: (work in progress)
python3.exe python_receiver/vrcontroller.py <esp32_ip_1> <esp32_ip_2:optional>
- Send camera stream with very low latency.
- Redirect logs to UDP
- Servo Control not fully implemented
- receives low latency camera
- does not send control info
- receives low latency camera
- receives second camera
- second camera not drawing fast enough
- coded like a wild monkey did it
- does not send control info