Camera sat
A camera sat (sat, short for satellite) is eyes for your board, anywhere in radio range: an ESP32-CAM, from about $15, at the window, in the garden or over the workbench. It takes the picture, your board files it, and callers browse it like any other photo on the board.
Get the hardware
An ESP32-CAM on its USB programmer board, with the card slot empty. What you need
Flash it
Press Install on the ESP32-CAM in the panel on the rightin the panel below and pick the port. How it goes
Pair it
Type
LINK PAIRon your board, then power the sat up. PairingPlace it
Anywhere in radio range with 5 V, and a motion sensor if you like. Placing it
The hardware
Before you start: Chrome or Edge on a desktop or laptop, a USB cable that carries data, and the micro SD slot empty. And a board on µnleashed BBS 1.2.0 or later, with an SD card of its own, to pair it with.
How it works
A sat talks to your board straight from one chip to the other, over the radio every ESP32 already has. Nothing goes through your router.
Pair once
LINK PAIRon the board, power on the sat, and the two agree a key only they hold. A four-digit code on each end proves nobody got in the middle.The board asks
A caller types
SNAPSHOT, the timelapse comes round, or the sat's motion sensor sees something. The sat wakes its camera and takes the shot.The picture comes home
Over ESP-NOW, chip to chip, every frame sealed with the pair's key. A frame that does not open is dropped, whoever sent it.
Filed in Photos
The board names it, dates it and files it on its card, exactly like a snap from a camera built into the board.
What you need
- An ESP32-CAM, the AI-Thinker design sold under many names: an ESP32 with 4 MB of flash, PSRAM and an OV2640 camera, about the size of a stamp. It is the same board the installer offers as a board of its own; here it runs the sat's small program instead. The tested boards page has a picture.
- Its ESP32-CAM-MB, the USB programmer board it plugs into, which makes installing one click. A bare ESP32-CAM works with any 3.3 V USB-serial adapter too: hold IO0 to GND while you reset it, and let go once the writing starts.
- No SD card. Leave the slot empty: the board keeps the pictures, the sat never does.
- 5 V where you put it. The camera and the radio draw a few hundred mA while it takes a picture.
- A board on µnleashed BBS 1.2.0 or later, with an SD card. The link and the board's camera list arrived in 1.2.0, and Photos lives on the board's card. Any board will do, the plain ESP32 dev board included. On the wired Ethernet board, set up Wi-Fi as well: sats talk over the radio, and that board joins Wi-Fi beside the cable from firmware 1.2.1.
- Optional: a PIR motion sensor, for a picture whenever something moves.
Flashing it
- Take the micro SD card out, if there is one, and leave the slot empty. A card holds one of the chip's start-up pins high, and with that pin high the board starts as usual instead of taking new software.
- Seat the ESP32-CAM on its ESP32-CAM-MB and plug it in with a cable that carries data. The MB puts it into its flashing mode by itself: no buttons.
- Press Install on the ESP32-CAM and pick the port. If you are not sure which one it is, unplug it, look at the list, plug it back in, and take the one that appeared.
- The erase question. On a new ESP32-CAM, tick Erase everything first. To update a sat that is already paired, leave it unticked: the new firmware goes on, and the pairing stays where it is.
- Done. There is no Wi-Fi step: a sat never joins your network. Its red LED double-blinks every second, which means it is waiting for a board to pair with.
- If the installer says Failed to initialize, the card is still in, or the board is not in its flashing mode. Take the card out and press the button again.
- The MB has a CH340 USB-serial chip, which Windows and macOS sometimes need a driver for: see when the board does not appear.
Pairing it
Pairing needs your hands on both ends, inside a two-minute window. Nothing pairs from the air alone, and that is what makes the sat yours.
- On the board, as the sysop, switch on the link with
CONFIG linkand the camera sat withCONFIG camsat. The board needs its SD card in. - Type
LINK PAIR. The board opens pairing for two minutes. - Power the sat up. A sat that is not paired to anything waits five minutes after it starts, its red LED double-blinking.
- The board asks something like
Pair camsat "camsat-6cc8" 20:50:0d:18:6c:c8, code 4821? (y/N). Answer Y. - Check the code. The sat prints the same four digits on its serial console. If you can see it, check it matches and tell the board so. Matching codes rule out anybody in the middle.
From then on it finds its board by itself after every power cut, and follows it when the router changes channel.
Starting again: hold IO0, the button on the MB, for five seconds while the sat is running. It forgets its pairing and restarts, ready to pair. Holding IO0 while it powers up does something else: that is the chip's flashing mode.
| Red LED on the back | What it is doing |
|---|---|
| a double blink every second | pairing: waiting for a board |
| a slow blink | paired, looking for its board |
| a short blip every 3 seconds | connected |
| lit | taking a picture |
| a fast flicker | IO0 held: about to forget its pairing |
The bright white LED on the front is the flash. It stays off unless the board's settings ask for it.
Placing it
Anywhere its radio reaches your board's: a window, a shed, a shelf over the bench. The board stays on your Wi-Fi as always, and the sat finds it on the same channel by itself.
A motion sensor. Wire a PIR sensor to the sat and it asks the board for a picture whenever something moves, with a hold-off so one visitor is not fifty photos.
| PIR | ESP32-CAM |
|---|---|
| VCC | 5V or 3V3, whichever the sensor wants |
| GND | GND |
| OUT | GPIO 13 |
Then on the board, CONFIG camsat and its Motion page: Sensor yes, Hold s for the seconds between motion photos (10 to 3,600), and Pin at 13. The sat can use 14, 15 or 2 instead, if that is where you wired it.
On a battery. Turn Sleep on in CONFIG camsat and the sat sleeps between pictures, waking on its timer or when the sensor sees movement.
A timelapse is a picture every so often, on the board's own clock: the Timelapse page of CONFIG camsat.
More than one camera
From firmware 1.2.0, a camera sat is not one camera for one board.
Several cameras on one board. Pair as many camera sats as you like, up to the link's eight, and each gets a camera number that stays put: 2 to 9, set in CONFIG sats, or left to the board, which takes the lowest free. SATS lists them for callers, and SNAPSHOT 3 takes a picture from camera 3. Callers still get one allowance across every camera on the board.
One camera, shared by up to five boards. Two boards on the same Wi-Fi channel, which in practice means behind the same router, can both use the camera in the window. The first board to pair it is its owner: its sysop types LINK SHARE and the sat's number, and the other board's sysop then has two minutes to LINK PAIR as usual. Each board has its own pairing and its own key, so no board can open another's traffic. The owner's settings are the ones the camera uses; a caller's snap goes to the board it was asked from, and a timelapse or motion picture goes to every board that wants it.
On the board
Each paired sat is a camera in the board's own camera list, under the name the link gives it, and the board's commands work the same whether a camera is built in or a sat.
| Command | Who | What |
|---|---|---|
SNAPSHOT [n or name] | callers, as the sysop sets | a photo from the default camera, or camera n or name |
CAMERA | staff | every camera on the board: up, busy or down |
CAMERA <n or name> | staff | one sat: its link and signal, sensor, memory, photos taken |
SATS [n] | callers, as the sysop sets | the camera sats: number, name, and whether each is awake |
LINK | staff | every device paired on the link, and the boards sharing one |
LINK NAME n name | sysop | a sat's name in the camera list |
LINK SHARE n | sysop, the owner | open sat n to one more board, for two minutes |
CONFIG sats | sysop | every paired sat, and pairing a new one |
CONFIG sat <name> | sysop | one sat: its name, camera number, what this board takes from it, and its camera settings (size, quality, watermark, flash, timelapse, motion, picture, sleep) |
CONFIG photos | sysop | the photo system: which camera SNAPSHOT uses when none is named, the limits, and how long pictures are kept |
Pictures land in the Photos area under FILES, named like a built-in camera's: SNAP-20260926-114523.JPG for a caller's, and timelapse/TL-... and motion/MO-... for the board's own. Callers get one allowance across every camera on the board, and a picture at 1024x768 takes about nine seconds from the command to the file, measured on the bench.
On a board with a screen, the picture goes up as it arrives. From firmware 1.2.1 a photo from a sat takes the glass for a minute, whole and uncropped, with the camera, the caller who asked for it and the time under it; a newer one replaces it and starts the minute again, and a minute after the last the status screen comes back. CONFIG photos says which kinds show it: snaps and motion shots as shipped, timelapse off, since a frame a minute would hold the screen for ever.
The whole sat familyHow callers use the camera
The source
The sat's firmware and the board's half of it are at github.com/rwmech/unleashed_camsat, GPL v3 or later. The link it speaks is specified in LINK.md in the µnleashed BBS repository, so anybody can build a sat of their own.