The next-generation BBS software

  • Real hardware a chip on your shelf
  • Free software GPL v3 or later
  • No internet needed a local network is enough
  • You write the rules and you are the appeal
  • No ads no one sells your time
  • No platforms nobody in the middle
  • No hosting fees it runs at your place
  • No outside costs your power, your Wi-Fi
  • No cloud nobody else's server
  • Old and new a 1980s computer can join

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.

  1. Get the hardware

    An ESP32-CAM on its USB programmer board, with the card slot empty. What you need

  2. Flash it

    Press Install on the ESP32-CAM in the panel on the rightin the panel below and pick the port. How it goes

  3. Pair it

    Type LINK PAIR on your board, then power the sat up. Pairing

  4. Place it

    Anywhere in radio range with 5 V, and a motion sensor if you like. Placing it

The hardware

ESP32-CAMA small camera board seated on a USB programmer boardCamera sat 1.1.0
BUY
This browser cannot talk to a serial port. Chrome or Edge on a desktop or laptop can, and so can Firefox from version 151.This page has to be served over https for a browser to allow it near a serial port.

Version 1.1.0, released 2026-09-29.

What is inside it, and under what terms

Your board needs µnleashed BBS 1.2.0 or later, with an SD card for the pictures.

BUY links are affiliate links: buying through them helps support µnleashed.

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.

PHOTOSCAM 2CAMYOUR BOARD
  1. Pair once

    LINK PAIR on 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.

  2. 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.

  3. 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.

  4. 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

Flashing it

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

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.

  1. On the board, as the sysop, switch on the link with CONFIG link and the camera sat with CONFIG camsat. The board needs its SD card in.
  2. Type LINK PAIR. The board opens pairing for two minutes.
  3. Power the sat up. A sat that is not paired to anything waits five minutes after it starts, its red LED double-blinking.
  4. The board asks something like Pair camsat "camsat-6cc8" 20:50:0d:18:6c:c8, code 4821? (y/N). Answer Y.
  5. 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 backWhat it is doing
a double blink every secondpairing: waiting for a board
a slow blinkpaired, looking for its board
a short blip every 3 secondsconnected
littaking a picture
a fast flickerIO0 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.

PIRESP32-CAM
VCC5V or 3V3, whichever the sensor wants
GNDGND
OUTGPIO 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.

SNAPSHOT 3YOUR BOARDCAM 2CAM 3CAM 4numbers 2 to 9, set in CONFIG sats

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.

one Wi-Fi channel, up to 5 boardsCAMOWNERBOARD 2BOARD 3each board its own pairing and its own key

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.

CommandWhoWhat
SNAPSHOT [n or name]callers, as the sysop setsa photo from the default camera, or camera n or name
CAMERAstaffevery camera on the board: up, busy or down
CAMERA <n or name>staffone sat: its link and signal, sensor, memory, photos taken
SATS [n]callers, as the sysop setsthe camera sats: number, name, and whether each is awake
LINKstaffevery device paired on the link, and the boards sharing one
LINK NAME n namesysopa sat's name in the camera list
LINK SHARE nsysop, the owneropen sat n to one more board, for two minutes
CONFIG satssysopevery paired sat, and pairing a new one
CONFIG sat <name>sysopone sat: its name, camera number, what this board takes from it, and its camera settings (size, quality, watermark, flash, timelapse, motion, picture, sleep)
CONFIG photossysopthe 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.