When I first heard about BirdNET-Pi, I knew I wanted to give it a try — a way to automatically detect and identify bird species from my backyard using a simple Raspberry Pi without shelling out several hundred dollars for a dedicated device seemed like a good idea.
I decided to set up BirdNET-Pi on a Raspberry Pi Zero 2W, thinking it would be a relatively straightforward process. While it was a rewarding project, it also came with a few unexpected challenges, from tricky WiFi issues to microphone compatibility problems.
I wanted to share my experience: the hardware I used, the resources that helped, the obstacles I hit (and how I solved them), and some tips to make your own setup a little smoother – other people’s posts and forum threads were so helpful, I hope that someone is able to make their setup a little bit smoother from mine own small contribution.
Hardware Used
- Raspberry Pi Zero 2W
- MicroSD Card (U3)
- Power supply
- USB lavalier microphone + USB to Micro USB adapter
- Optional items I used
- Micro-HDMI to Micro-HDMI cable (connected to standalone extra monitor)
- Monitor for troubleshooting / setup
- Keyboard with USB for troubleshooting / setup
- Computer with SD card reader for imaging the SD card with raspberry pi per setup instructions
- WiFi router (with 2.4GHz band)
Software & Key Resources
- OS: Raspberry Pi OS Lite (Bullseye version)
(Note: newer versions may now work, but Bullseye was stable for this project.) - BirdNET-Pi GitHub Wiki guides:
- Reddit resources and helpful threads:
Initial Setup and Obstacles
WiFi Challenges
- Raspberry Pi Zero 2W doesn’t work reliably with 5GHz WiFi.
- Setting WiFi via editing
wpa_supplicant.conf
after imaging didn’t work — had to reimage with correct 2.4GHz settings baked into the image.- Note: I have had some success with this – when I’ve had connection issues (twice over about a week), I turned on the hotspot on my phone, edited the wpa_supplicant.conf file to match the hotspot, rebooted the pi and it worked…then edited the file again back to the main router WiFi, rebooted…and it worked. I can’t explain why.
- This doesn’t take long, so if you think you need to reimage the SD card just do it.
- Note: I have had some success with this – when I’ve had connection issues (twice over about a week), I turned on the hotspot on my phone, edited the wpa_supplicant.conf file to match the hotspot, rebooted the pi and it worked…then edited the file again back to the main router WiFi, rebooted…and it worked. I can’t explain why.
- Additional router setting tweak: Set 2.4GHz WiFi mode to N only (not b/g/n mixed).
- Note: I changed back to b/g/n mixed after a day or so and it ran fine, until it didn’t and I had to switch it back while testing my hotspot (see above).
Imaging and OS
- Selected an older, stable version of Pi OS (Bullseye) rather than the newest (because some reports mentioned issues with BirdNET-Pi installs).
- Make sure you’re selecting a 64-bit image – needed for BirdNET-Pi
- Be sure to click through the tabs before imaging and set the username, password, and enable SSH.
Installation and First Boot
- Installation of BirdNET-Pi after flashing SD card took ~30–45 minutes.
- Needed a reboot after install.
- Logging in via
birdnetpi1.local
(default loginbirdnet
, no password).
Microphone Issues and Solutions
- Initial micro-USB mic didn’t work (USB recognition problems? Incompatibility?)
- Swapped to an older USB lavalier microphone using a USB to Micro USB adapter — worked immediately.
- Adjusted sound card settings (reference: Adjusting your sound card guide).
Software Tweaks and Key Fixes
- Strange bird results (wrong continents):
- Double-checked Latitude and Longitude settings (were correct).
- Switched BirdNET model to a newer version (older model gave bad results).
- I wasn’t able to connect via the browser given the stock setup (birdnetpi1.local) after a day or two…I’ve since connected directly via the IP address.
- If you’re not sure what your IP is, try looking in your router – it should identify as “birdnetpi” under device name. I’ve also seen some forum posts about issues with a hostname ending in a number which would make “birdnet1” problematic.

- Recording settings:
- Changed recording length from 15s to 30s.
- Matched extraction length to 30s.
- Privacy settings:
- Lowered privacy threshold to 1% to allow more identifications.
Additional / Future Items
- I noticed that it seemed to be running slow (backlog of analysis) and got some help from handy ChatGPT to create a Crontab job to record the pi CPU core temperature. Sure enough it was getting close enough to throttling temps (80C I believe) at times during load spikes that I decided to look for a way to increase cooling.
- Using what I had, I drilled some holes in the plastic case and am testing a 30mm fan connected to the 5V power pins. So far, very good results.
- I’d like to find/make a better case that actually holds the fan (fan is virtually silent)
- Perhaps including the ability to turn it off and on only when a threshold temp is reached (say, 60C). That is not possible directly from the power pins, and would need a 3rd party board, or some wiring + transistor/resistor, I believe.