XIAO Cam is a small camera built around the Seeed Studio XIAO ESP32-S3 Sense microcontroller. It displays a live camera feed on a 1.28" round touchscreen, captures photos to a microSD card with a button press, and lets you browse your shots through a swipe-based gallery; housed inside a custom 3D printed case. It's for people who are interested in a simple hardware build that actually serves a function..
XIAO Cam is a custom point-and-shoot camera built from scratch. I did everything myself, from the 3d printed case to the firmware and component selection.
I made this because I wanted to sharpen my CAD skills. I challenged myself to build something that actually works as a real device, and looks professional. Plus I've wanted to buy a digi cam for a while and i thought why not make it myself.
- Power on using the slide switch on the side camera
- The round screen shows a live camera feed automatically on boot
- Press the shutter button on the right side of the case to take a photo β it saves instantly to the SD card
- Swipe up on the touchscreen to open the photo gallery Swipe left or right to browse your saved photoss
- Swipe down to return to the live viewfinder
- Charge via the USB-C port on the XIAO esp32 s3 sense
P.s. There is a placeholder to attach a lanyard to the camera for practicality.
π OnShape CAD model (public link): [https://cad.onshape.com/documents/d0d02c920c1d3887f88da338/w/cd12746e145d8d660cbdb08a/e/dfaf3792be18770a6bf41023]
Required Libraries:
TFT_eSPI by Bodmer TJpg_Decoder by Bodmer Seeed_Arduino_RoundDisplay by Seeed Studio ESP32 board package by Espressif (via Board Manager)er)
#Steps before flashing:
- Cut J3 on the Sense expansion board β see Hardware Note below
- In TFT_eSPI/User_Setup_Select.h, uncomment:
cpp #include
- In Arduino IDE: Tools β Board β XIAO_ESP32S3
- Tools β PSRAM β OPI PSRAM β do not skip this, camera will not work without it
- Upload firmware/xiao_cam/xiao_cam.ino
Files and their functions:
- xiao_cam.inoMain : loop and state machine
- config.hAll : pin definitions and settings
- camera.h : Camera init and frame
- capturesd_card.hSD card init, save photos, list files
- gallery.hSwipe-based photo gallery
The XIAO ESP32-S3 Sense and the Round Display both have SD card pull-up resistors on the same SPI lines. This causes a conflict and neither SD slot will work unless you fix it.
Steps to Fix:
- Remove the camera ribbon cable from the Sense board Flip the Sense expansion board over and find the J3 solder jumperr
- Slice through the solder bridge with a hobby knife
- Verify with a multimeter that there is no continuity across J3.
This disables the sd card slot of the esp32-sense (don't worry, it's reversible. Just solder J3 back))
- Seeed studio Xiao Esp32-s3 sense
- 3.7v 400mah rechargeable Lipo Battery
- Xiao Esp32 S3 1.28" round touch screen Display
- Seeed studio OV5640 Camera
- Tactile switch
- Slide switch
| Component | Quantity | Est. Cost (USD) | Purchase Links |
|---|---|---|---|
| Seeed studio Xiao Esp32-s3 sense | 1 | $16.50 | https://www.aliexpress.com/item/1005006988111963.html |
| Xiao Esp32 S3 1.28in round touch screen | 1 | $21.00 | https://www.aliexpress.com/item/1005006989795918.html |
| ** Tactile Switch Set (20pcs)** | 1 | $1.20 | https://www.aliexpress.com/item/1005005845072975.html |
| ** Brass Inserts** | 1 | $2.50 | https://www.aliexpress.com/item/1005008684741327.html |
| ** 3.7V 400mAh LiPo Battery** | 1 | $0.50 | https://digilog.pk/products/3-7v-300mah-602030-rechargeable-lithium-polymer-battery-lipo-cells |
| Total Build Cost: | ~$43.00 |
Happy Building :)