Dan Demole
Build Reference

Avian Visitors

A live, illustrated collage of the birds identified in your yard — one Pi listens, one Pi displays. Original project by Teddy Warner (theodore.net).

2
Stations (mic + frame)
~$62–117
Station 1 (mic)
~$365
Station 2 (frame)
~$427–482
Full build
333
Species illustrated
15 min
Frame refresh
Two independent builds. Station 1 (mic) listens and identifies birds — it's fully functional and viewable in any browser on its own. Station 2 (frame) is optional and just mirrors Station 1's output onto a wall-mounted e-ink display. You can build Station 1 alone, use it for a while, then add Station 2 later.
Section 00

How the two stations talk

STATION 1 — MIC Pi + BirdNET mic listens 24/7, identifies species, builds collage birdnet.local home WiFi / LAN screenshot every 15 min (only if birds changed) STATION 2 — FRAME Pi e-ink 13.3" mats + pushes image to the panel optional Can also skip Station 1 entirely and pull from BirdWeather by ZIP code or station ID — no mic required.
System overview — Station 1 does the listening and identification; Station 2 just displays the result.
Section 01

Station 1 — Bird Mic Listener

One Raspberry Pi, one USB lavalier mic. Runs BirdNET-Pi (Cornell's acoustic classifier) 24/7 and builds the live collage as a local website.

Raspberry Pi (4B / 5 / 3A+ / Zero 2W) microSD (≥32GB) lavalier USB mic (window or outdoor) USB-C Pi power supply MIC STATION — PARTS
Assembly is plug-and-play: mic into a USB port, SD card in the slot, power via USB-C. No soldering.

Parts list — Station 1

PartQtyPriceBuy
Raspberry Pi (4B, 5, 3A+, or Zero 2W)1~$25–80
MicroSD card (≥32GB)1~$10
USB lavalier microphone1$16.95
Raspberry Pi power supply1~$10
Station 1 total~$62–117
Grey area: price swings entirely on which Pi you use — a Pi 3A+ ($25ish) vs. a Pi 5 ($80ish) both work; performance difference is negligible for this workload. If you plan to mount outside rather than in a window, add a weatherproof enclosure — that part is not in the project's official BOM and its cost isn't accounted for above.

Build steps — Station 1

  1. FLASHUse Raspberry Pi Imager → pick Raspberry Pi OS Lite (64-bit). In the customisation dialog set: username, WiFi SSID + password, hostname birdnet, and enable SSH with password auth.
  2. MOUNTPlug the USB mic into the Pi. Place it in a window, or mount it outside (weatherproofing needed if so).
  3. BOOTInsert the SD card, power on, wait ~60–90 seconds for first boot.
  4. SSH INFrom another computer on the same network:
    ssh <your-username>@birdnet.local
  5. INSTALLRun the installer:
    curl -s https://raw.githubusercontent.com/Twarner491/AvianVisitors/avian-visitors/newinstaller.sh | bash
    Clones the repo, installs BirdNET-Pi, wires up the collage overlay. Takes 20–40 minutes and reboots automatically when done.
  6. DONECollage: http://birdnet.local/ — Stock BirdNET-Pi admin UI: http://birdnet.local/index.php
Section 02

Station 2 — E-Ink Wall Frame (optional)

A second Pi drives a Pimoroni Inky Impression 13.3" e-ink panel, mounted in a wood frame. It screenshots Station 1's collage, mats it, and pushes it to the display every 15 minutes when something changes.

13.3" Inky Impression (Spectra 6 e-ink, 1600×1200) FRAME STATION — SIDE PROFILE Pi 3A+ / Zero 2W 40-pin GPIO HAT stack, mounted behind panel Flat USB power cable runs down to a wall adapter
The Pi mounts directly on the panel's 40-pin header, and both sit inside the A4 wood frame — no separate cabling needed between Pi and display.

Parts list — Station 2

PartQtyPriceBuy
Raspberry Pi 3 A+ or Zero 2 W1~$25–35
Pimoroni Inky Impression 13.3" (Spectra 6)1$299.99
A4 wood photo frame1$21.99
Long, flat micro-USB cable1$7.99
Flat USB power brick1$7.59
Station 2 total (per project's own figure)~$365
Not shown: CAD + 3D-print files for the panel backing (fits either Pi board by press-fit, no fasteners) are in the repo's frame/hardware/ folder — you'll need access to a 3D printer or a print service if you want that exact mount instead of designing your own bracket.

Build steps — Station 2

  1. FLASHSame as Station 1: Raspberry Pi Imager → OS Lite (64-bit) → this time set hostname birdpic, SSH enabled.
  2. MOUNTPress the Pi onto the panel's 40-pin header, seat both into the printed backing, power up.
  3. SSH IN + CLONE
    ssh <your-username>@birdpic.local
    sudo apt update && sudo apt install -y git
    git clone https://github.com/Twarner491/AvianVisitors
    cd AvianVisitors/frame
  4. CHOOSE SOURCEPick how the frame gets its birds, then run one of:
    # Default — pairs with your Station 1 mic on the same network
    ./install.sh
    
    # No mic: pull from BirdWeather for any ZIP code
    ./install.sh --bird-weather --zip 94107
    
    # No mic: follow one specific public BirdWeather station
    ./install.sh --station-id 12345
    
    # Point at a mic hosted at a public URL
    ./install.sh --image-url https://bird.onethreenine.net/frame.png?k=YOUR_FRAME_KEY
    Enables SPI + I2C, installs dependencies and a systemd timer, writes ~/.birdframe/config.toml, reboots once.
  5. TUNE (optional)Toggle species-name labels anytime:
    birdframe-names on
    birdframe-names off
    If your frame uses a different mat than the A4/A5 default, set opening in the config file — 0.7071 is the default A5 ratio, up to 0.98 for a bare panel, ~0.84 as a B5 starting point.
Grey area: the bundled illustration set (666 images, 333 species) is centered on the Western US. If your local birds aren't in that set, the installer flags and skips them until you generate replacements — see below.
Section 03

Optional — Restyle or regenerate illustrations

Needed if you want a different art style, or your region's birds aren't in the bundled Western-US set.

RequiresCost / TypeGet it
Gemini API keyPaid — billing must be enabled for image generation
eBird API keyFree — used to filter species by region
pip install -r ~/BirdNET-Pi/avian/scripts/requirements.txt
export GEMINI_API_KEY='your-key'

python3 ~/BirdNET-Pi/avian/scripts/pregen.py --labels ~/BirdNET-Pi/model/labels.txt --force
python3 ~/BirdNET-Pi/avian/scripts/cutout.py
python3 ~/BirdNET-Pi/avian/scripts/build_masks.py

# optional region filter (needs EBIRD_API_KEY set)
python3 ~/BirdNET-Pi/avian/scripts/pregen.py --ebird-region US-CA

Community-shared illustration bundles for other regions/styles: illustration-bundles.md — worth checking before generating your own, may save the Gemini cost entirely.

Section 04

Total cost summary

BuildRange
Station 1 only (mic, viewable in browser)~$62–117
Station 2 only (frame — needs Station 1 or BirdWeather)~$365
Full build (both stations)~$427–482
Pre-built alternative: Teddy sells both as kits if you'd rather not source parts — mic kit and frame kit. Kit pricing wasn't itemized in the sources checked here — check the store pages directly.
Section 05

Sources & further content

License note: CC-BY-NC-SA-4.0, inherited from BirdNET-Pi. Non-commercial use only.

Prices, links, and part numbers pulled directly from the project's GitHub READMEs. Amazon prices fluctuate — verify before buying.