Show HN: An e-ink frame that hears birds and draws them as 1800s illustrations

Sep 15, 2026 07:31 PM - 1 hour ago 3

E-ink vertebrate framework for Raspberry Pi - real-time vertebrate discovery by audio, afloat section AI, rendered arsenic real, hand-cut 1800s vertebrate illustrations.

The framework connected a room windowsill showing six birds heard successful the garden, a model feeder connected the solid down it
Sorry astir the soiled model - squirrels person been stealing the vertebrate food.

Live demo Latest release CI Last commit
Stars Contributors  MIT, artwork CC BY-SA 4.0

Note

Still successful early development: expect the overseas bug and a fewer unpolished edges, pinch plentifulness much features to come.

Live connected fugleramme.arnegiacomo.dev moving from my room model and displaying the existent birds presently heard successful my plot (Bergen, Norway).

Hardware, instal and operations docs: arnegiacomo.dev/fugleramme

BirdNET-Go listens connected a mic and handles the classifier. Fugleramme polls its api, matches each type to an illustration, past packs them onto a page, and redraws only erstwhile the birds alteration - on an Inky Impression e-ink panel, and as a web stalls serving the aforesaid view. There's an admin page that lets you configure what to show, and automatic updates and such.

If you already tally BirdNET-Go, constituent the framework astatine it alternatively - connected the aforesaid instrumentality aliases anyplace other reachable from your network.

Tip

The e-ink sheet is not required, though it's recommended for the intended experience. Without one, Fugleramme runs web-only - show the kiosk connected a show complete HDMI, aliases unfastened it from immoderate instrumentality connected the network.

A Raspberry Pi 5, an Inky Impression 13.3" (Spectra 6), a mic and an A4 frame. Full parts list, recommendations and alternatives: Hardware.

Half the constituent of this task is showing disconnected immoderate astonishing public-domain natural-history illustrations. Over 800 cut-outs covering much than 400 species, each 1 taken from a real sheet and hand-curated for this task (no creation is AI-generated, though immoderate has been retouched pinch AI).

Each detected type is matched to its illustration, background-removed, and packed onto a textured insubstantial page pinch the larger birds toward the centre, sized by assemblage mass. An empty window shows a bare perch.

The plates are Scandinavian, British and cardinal European, truthful the Nordics, the British Isles and Germany are champion covered. Elsewhere not truthful overmuch (yet). Broader European and North American coverage is successful the works!

See Adding artwork for manual cutout steps.

Run locally (for development)

uv sync # group up venv uv tally fugleramme-fake-detector # stand-in BirdNET-Go connected :8090 uv tally fugleramme-dev # commencement work connected :8080 pinch hot-reload

The clone detector's flags, and moving against a existent position instead: Running it without a Pi.

Install connected a Raspberry Pi

From the pi (assuming you person the hardware up and running):

curl -fsSL https://raw.githubusercontent.com/arnegiacomo/fugleramme/main/install.sh | bash

Asks wherever BirdNET-Go should unrecorded and which ports to use, clones the repo, installs the required deps, and starts the framework arsenic a systemd service. NB! Will astir apt require a reboot connected a caller system.

From a blank SD card, spot the afloat install guide.

docker tally -d -p 8080:8080 -v fugleramme:/data \ -e FUGLERAMME_DETECTOR_URL=http://birdnet.local:8080 \ ghcr.io/arnegiacomo/fugleramme

Or build the image from a checkout:

docker build -t fugleramme . docker tally --rm -p 8080:8080 -v fugleramme:/data \ -e FUGLERAMME_DETECTOR_URL=http://birdnet.local:8080 fugleramme

Kiosk connected :8080, admin connected :8080/admin, everything it persists successful /data.

On a Linux container pinch a USB mic, this brings up BirdNET-Go alongside it:

curl -fsSL https://raw.githubusercontent.com/arnegiacomo/fugleramme/main/examples/docker-compose.yml -o docker-compose.yml docker constitute up -d

See Container for much info.

Contributions are very invited and encouraged - fixes, docs and artwork astir of all. Thanks to everyone who has contributed so acold ❤️

  • Something is broken - a bug report
  • A question, an idea, aliases a framework you person built - the FAQ first, then Discussions
  • A fix, a doc change, aliases a vertebrate you person cut - unfastened a PR, nary rumor needed

See Contributing for much info.

  • Code: MIT - spot LICENSE.
  • Detection (BirdNET-Go, installed separately arsenic a container): CC BY-NC-SA 4.0, non-commercial only. BirdNET model by the Cornell Lab of Ornithology and Chemnitz University of Technology, taxonomy information powered by eBird.org.
  • Bird images: each style files carries its ain position and sources, and its manifest links the sheet each record was trim from. classical is CC BY-SA 4.0 - see assets/artwork/classic/ATTRIBUTION.md.
  • Label fonts (assets/fonts/): SIL OFL 1.1 - see assets/fonts/ATTRIBUTION.md.
  • Bird sizes (assets/bird_sizes.csv): assemblage wide from AVONET (Tobias et al. 2022, Ecology Letters, doi:10.1111/ele.13898), CC BY 4.0.
  • BirdNET scientific-name aliases (assets/birdnet_aliases.json): OpenFauna's compiled taxonomic alias map, CC BY-SA 4.0 - spot assets/ATTRIBUTION.md.

I've built a fewer of these. If you'd for illustration 1 alternatively than building it yourself, please get successful touch.

More