This firmware transforms your Raspberry Pi into a high quality webcam. It works reliably, boots quickly, and gets out of your way.
Show-me webcam is proudly powered by peterbay's uvc-gadget.
- Raspberry Pi Zero with or without Wifi
- Raspberry Pi Zero Camera Adapter/Ribbon (The one that comes with the camera may not fit)
- Raspberry Pi Camera or Raspberry Pi High-Quality Camera
- A compatible lens if you use the HQ Camera sensor
- Micro SD card (at least 64MB)
- A case or mounting plate (optional)
- The camera is known to work on Linux, Windows 10 and Mac OS
- The camera is known to work with Zoom, Teams, Jitsi, Firefox and Chrome
- Here's a compatibility matrix as far as we could test. Let us know if you had the chance to test other variants:
Raspberry Pi \ Camera version | v1 5MP | v2 8MP | High Quality 12MP |
---|---|---|---|
Pi Zero v1.3 (without Wifi) | ✓ | ✓ | ✓ |
Pi Zero W (with Wifi) | ✓ | ✓ | ✓ |
Pi 4+ | ✓ | ✓ |
- Watch the introduction video
- Assemble the camera with the Raspberry Pi
- Download the latest release (see below)
- Use Etcher or
dd
to write the image to the Micro SD card - Use the USB data port (the one in the middle of the Raspberry Pi, not the one on the edge) to connect to a computer
- Smile & Enjoy!
We release new versions of this firmware regularly at the release tab: https://github.com/showmewebcam/showmewebcam/releases
After booting, the built-in LED will blink three times quickly to show you it's ready.
When the camera is in use the LED will be lit. In addition,
GPIO 21 pin is set to HIGH
, so an
external LED or another payload can be triggered with this pin to indicate that
the camera is in use.
For debugging, a 115200 baud serial interface is provided as a ttyACM
device:
- Use screen, minicom, picocom or the included
smwc-expect
script to connect to it - Use username:
root
, passwordroot
Also, there is a serial interface on the 40-pin header: https://pinout.xyz/pinout/uart
Linux example:
$ ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 sep 25 14:03 /dev/ttyACM0
$ sudo screen /dev/ttyACM0 115200
Mac OS example:
$ ls -l /dev/tty.*
crw-rw-rw- 1 root wheel 9, 18 Dec 7 13:14 /dev/tty.usbmodem13103
$ screen /dev/tty.usbmodem13103 115200
If the terminal is blank try pressing enter to see the login prompt. To exit
the session, use Ctrl-A \
(screen) or Ctrl-A X
(minicom & picocom).
Warning: This serial debug interface is automatically enabled and is controlled
by the file called enable-serial-debug
in the /boot
folder. This is a potential
security issue. For now, you should strongly consider disabling this feature by
removing the file after you have finished customizing the webcam.
From version 1.80, on Linux, you can see what happens by watching dmesg
before you plug in the webcam:
$ sudo dmesg -w
If you only see the ttyACM
device show up, but not the webcam, it's likely you
have not plugged in the camera cable correctly, or the camera cable has gone bad.
If you see nothing, maybe your USB cable is bad, or you have plugged in the cable to the wrong port.
Log in to the debug interface and execute:
/usr/bin/camera-ctl
This tool will allow you to show and tweak all available camera parameters.
Additionally it will save your settings to /boot/camera.txt
if you choose to
do so. This will handle remounting /boot
automatically.
Log in to the debug interface. Then list all tweakable parameters:
/usr/bin/v4l2-ctl -L | less
Then you can apply parameters on the fly, e.g.
/usr/bin/v4l2-ctl -c auto_exposure_bias=15
/usr/bin/v4l2-ctl -c contrast=3
Mount the SD card on your computer, edit a file called camera.txt
in
/boot
and put all parameters you want overridden, e.g:
# Tweak the auto exposure bias
auto_exposure_bias=15
# Tweak the contrast
contrast=3
You can edit camera.txt
on-target by remounting /boot
read-write:
mount -o remount,rw /boot
Clone or download this repository. Then inside it:
- Download the latest Buildroot stable from https://buildroot.org/download.html
- Extract it and rename it to
buildroot
- Run build command:
./build-showmewebcam.sh raspberrypi0w
to build Raspberry Pi Zero W (with Wifi) image../build-showmewebcam.sh raspberrypi0
to build Raspberry Pi Zero (without Wifi) image../build-showmewebcam.sh raspberrypi4
to build Raspberry Pi 4 image.- IMPORTANT: If you didn't rename your Buildroot directory to
buildroot
or if you put it somewhere else you need to set the Buildroot path manually, e.g.BUILDROOT_DIR=../buildroot ./build-showmewebcam.sh raspberrypi0
- The resulting image
sdcard.img
will be in theoutput/$BOARDNAME/images
folder - If you add a
camera.txt
file to the root of this repository, the contents will be automatically added to/boot/camera.txt
- David Hunt: http://www.davidhunt.ie/raspberry-pi-zero-with-pi-camera-as-usb-webcam/
- Petr Vavřín: uvc-gadget
- Buildroot
- ARM fever: https://armphibian.wordpress.com/2019/10/01/how-to-build-raspberry-pi-zero-w-buildroot-image/
- The repository icon is attributed to the GNOME project