User Tools

Site Tools




Deprecated: Use the Raspberry Pi Zero solution instead.


The WIO-CAM can only handle one stream client at a time.
Make sure the right board type is selected for ESP32-CAM.


WIO Version 1.14+
Running the CAM in WIO context reduces the fps to 10 at QVGA resolution. (Higher rates are possible.)


Setting Value
WIO type CAM
Board type ESP32-CAM


WEB Browser

http://<WIO IP>:8081/stream


mjpg:<WIO IP>:8081:tcp:stream:<rotate90>

The rotate90 option can be 'left' or 'right'.
This will swap from landscape to portrait, and should only be used if it is physically not possible to adjust the camera.
Alternative use a camera with a longer connection:


Note: Not compatible with andRoc.


Some ports can be controlled with an output:

  • Bus = WIO ID

All other settings are default.

GPIO Usage Output Type
4 Flash LED 1 Accessory
- Snapshot 2 Accessory
- Snapshot + Flash 3 Accessory
12 H position servo 1 Servo
13 V position servo 2 Servo
2,14,15 Output 4,5,6 Accessory

File names used for snapshots on SPIFFS are generated:


The zeros represent the lower 32 bit part of the millisecond counter.
Existing files will be overwritten.

Arduino IDE

The ESP32-CAM board does not feature an USB connector, so a separate USB programmer board is needed.
There are many clones of this ESP32-CAM board. Important is documentation on how to connect and program the board, and which camera is mounted.
This test board must be programmed in the Arduino IDE with the ESP32 Wrover Module board type:

The mounted camera must be selected in CAM.h.
For this test board select:


:!: The GPIO0 must be connected to the ground pin to be able to program the ESP32-CAM.
Sometimes the reset button must be pressed too to be able to flash the WIO firmware.

Power Supply

After the sketch have been uploaded, the ESP32-CAM needs a solid 5V power supply to be able to startup WiFi.
The USB FTDI232 board cannot provide the needed current, so the voltage will drop, and the ESP32-CAM will generate a Brownout exception.


  • GPIO04 = Flash LED
  • GPIO33 = on board LED
  • GPIO16 = Seems to be used by the camera. (I2S)


Its easy to create a camera control by using Outputs as "Push buttons" in Rocview.

Control Address Type Value ON Value OFF Delay Remark
Snapshot 2 Accessory - - - Use address 3 for activating flash light
Horizontal move 1 Servo 0…180 255 0…9
Horizontal step plus 1 Servo 181…190 255 - Step size is value ON - 180
Horizontal step min 1 Servo 191…200 255 - Step size is value ON - 190
Vertical move 2 Servo 0…180 255 0…9
Vertical step plus 2 Servo 181…190 255 - Step size is value ON - 180
Vertical step min 2 Servo 191…200 255 - Step size is value ON - 190
Position reset - Servo 250 255 - Resets both servos to 90° position.

An OFF value of 255 prevents setting the position again at the OFF command.

Rotate 180°

Set in the USRCNF.h the CAM_ROTATE180 to true:

// CAM
#define CAM_ROTATE180 true

arduino/wio-cam-en.txt · Last modified: 2023/01/06 08:02 by rjversluis