A few people have asked me to document my DIY BirdNET setup. Here it is.

The software stack I use is based on BirdNET-Go, which is a bird vocalization classifier and dashboard. Under the hood it uses BirdNET-Analyzer and the BirdNET 2.4 model. In broad strokes, BirdNET splits 48 kHz audio into three-second segments, converts them into log-mel spectrograms, and runs a convolutional neural network over those images to estimate species probabilities, with location and date used as extra context for filtering the results.

My setup is split across two Raspberry Pis. The outdoor Raspberry Pi 3 A+ captures audio from a Clippy EM272Z1 microphone through a Ugreen US205 USB sound card and publishes a 48 kHz mono LPCM stream over RTSP. An indoor Raspberry Pi 4 runs BirdNET-Go, pulls that stream over RTSP/TCP, exports clips, and serves the web dashboard.

Hardware

Before building a BirdNET station yourself, I strongly recommend reading the BirdNET-Go hardware recommendations from the project authors. I followed that page when choosing the microphone, and it is a much better starting point than guessing your way through Raspberry Pi models, sound cards, and microphones.

The outdoor half lives in an IP54 weatherproof box on the balcony, powered through an IP44 extension lead. It is still a practical build rather than a polished one: the Raspberry Pi, power, sensor, and cable routing all share the same enclosure, because getting a reliable microphone outdoors mattered more to me than making the first version elegant.

The current outdoor enclosure on the balcony.

The current outdoor enclosure on the balcony.

The microphone itself is mounted under the balcony ceiling and connected back to the enclosure with a 3.5 mm extension cable. This is still a temporary setup, with electrical tape standing in for a more elegant fixture, because part of the exercise was simply to test microphone placement before committing to something cleaner. There is still work to be done there.

The windshield matters a lot. It improves outdoor audio quality tremendously. Pro tip: use double-sided adhesive tape to attach it to the microphone. The first time I skipped that, the wind carried it off.

The microphone mounted under the balcony ceiling.

The microphone mounted under the balcony ceiling.

Inside the box, besides the Raspberry Pi and audio hardware, I also keep a Govee H5179 thermo-hygrometer. I already had it at home and it had very little use before, so it became enclosure telemetry. One of the obvious risks of keeping electronics outdoors is condensation, so I export the Govee readings into a local Prometheus and watch the relative humidity metrics in my local Grafana instead of guessing.

I also keep about 300 g of silica gel sachets inside. In practice they pretty much saturate after one heavier rainfall, so I treat them as temporary help rather than a long-term answer. A more permanent fix would be a small heating element, but I decided against that because I did not want to run extra wiring into the enclosure.

Another upgrade I want to make before summer is better cooling for the outdoor Raspberry Pi. Right now it only has the small heatsink that came in the Botland kit, but my early estimates suggest I may not be able to keep the CPU below 70 °C in summer without switching to a larger heatsink or adding a fan. On the Raspberry Pi 3 A+, that is also the maximum configurable temp_soft_limit, beyond which the CPU is throttled down to 1.2 GHz.

Inside the box: Raspberry Pi, Govee sensor and silica gel.

Inside the box: Raspberry Pi, Govee sensor and silica gel.

Bird Detections

The variety is what it is. This is still a microphone on a ninth-floor balcony in a densely populated area, so I am not expecting spectacular species diversity. Even so, I think the results are great for this location, especially around dawn.

BirdNET-Go daily activity view from a typical April day.

BirdNET-Go daily activity view from a typical April day.

Bill of Materials

This is the BOM for the outdoor side. The Raspberry Pi 4 that runs BirdNET-Go also runs all my home automation.

At current prices, that outdoor-side BOM comes to roughly 739 PLN before shipping.