A thin lavalier microphone pokes out from under the eaves of a house in Bergen, Norway, its cable running back through a closed window. Somewhere inside, a picture frame on the wall quietly redraws itself: a chaffinch fades in beside a blackbird, because both of them were singing in the garden ten minutes ago.
That frame is Fugleramme, built by Arne Giacomo Munthe-Kaas. Instead of showing bird detections as a list of species names on a dashboard, it turns them into a collage of natural-history illustrations that changes as the garden changes. His installation has logged roughly 2,600 detections across 37 species so far. When nothing is calling outside, the frame falls back to a drawing of an empty perch.
What is actually behind the glass
The recommended build is a Raspberry Pi 5 with 2 GB of RAM, a Pimoroni Inky Impression 13.3-inch Spectra 6 E Ink panel, and a USB microphone (he uses a Boya BY-M3). The Inky drives over SPI on the Pi’s 40-pin GPIO header, and Pimoroni’s Python library handles the refresh, so there is no soldering in this build at all. The panel is 1600 x 1200 and physically A4, which is why it drops straight into a standard IKEA RODALM frame with the Pi mounted behind it. One detail worth copying: he left the back open and fitted an active cooler, because BirdNET inference runs continuously and keeps the Pi warm all day.
How the software stack fits together
BirdNET-Go (https://github.com/tphakala/birdnet-go) does the listening and classification, and it all runs on the Pi with no cloud round trip. Fugleramme sits on top of it and polls the BirdNET-Go API for recent detections, matches each species to artwork, lays out the collage, and pushes a new frame to the display only when the lineup changes. That last part is the gotcha of any E Ink project: a full refresh takes seconds and flashes the panel, so you redraw on change, not on a timer. The art took the real patience: public-domain plates from the 1800s, each bird cut out by hand, given a transparent background, and dropped onto a paper texture. Larger birds get pulled toward the middle by body mass. Coverage is strongest for Northern Europe, with North American species listed as next up.
Worth stealing for a thesis build
The E Ink panel is optional. Fugleramme serves the same view over HTTP, so you can prototype on an HDMI monitor or a phone before spending on a Spectra 6 panel. That makes it a sensible capstone shape: get BirdNET-Go classifying from a USB mic first, confirm your species list looks sane over a week, then add the display. Full write-up is at Hackster. If detections stop the moment you plug the display in, check your USB port allocation before you blame the classifier.
Frequently Asked Questions
How does the frame know which birds are outside?
A USB lavalier microphone tucked under the roof feeds BirdNET-Go, which runs the BirdNET classifier locally on the Raspberry Pi 5. Fugleramme polls its API for recent detections and only redraws the collage when the species lineup changes.
What parts do I need and can I start cheaper?
The full build is a Raspberry Pi 5 (2 GB), a Pimoroni Inky Impression 13.3-inch Spectra 6 panel, a USB mic, an active cooler, and an A4 picture frame. The E Ink panel is the expensive part and it is optional at first, since Fugleramme also serves the same view over HTTP to any browser.
What will I learn if I build this?
Running an audio classification model on-device instead of in the cloud, polling a local REST API and turning its output into a rendered image, driving an SPI E Ink panel from the Pi’s GPIO header, and thermal planning for a board that runs inference around the clock. That is a solid mix of embedded, ML, and systems work for a capstone or thesis project.
