Intro to BirdNET-Pi: Eavesdropping on my feathered friends (and how you can, too!)

2 Oct 2025

Instructions are here: Set up BirdNET-Pi on a Raspberry Pi Zero 2 W 🐦‍⬛

It’s autumn here in the greater Boston area, and my bird neighbors have finally calmed down from all their summer yelling. Yours too? Sounds like the perfect time for any good birb creeper citizen scientist to set up a spy ring for snooping on birbs passive acoustic monitoring station!

It is easier than ever to become the bird voyeur you were born to be, thanks to the BirdNET model trained and released by the Cornell Lab of Ornithology and the BirdNET-Pi application built on top of it by an open-source community. I’ve set up several of these now, for both myself and my parents; our BirdNET-Pi’s have been both an ongoing source of joy and a connection point with folks around us.

For example, here’s what I measured on May 6, from the microphone just outside my window in a semi-urban neighborhood:

Screenshot of bird detection bar chart from May 6

We can see that the House Sparrows (Passer domesticus) chorp from dawn to dusk, 5am-6pm; that a Blue Jay (Cyanocitta cristata) shows up around 4pm and just does not stop hollering for about an hour; and that our American Robin (Turdus migratorius) friends make a brief stopover shortly after 5am.

In contrast, a month before—on April 6—there was a much larger American Robin and Blue Jay presence, while the sparrows had not yet come into their own:1

Screenshot of bird detection bar chart from April 6

A month after—on June 6—the sparrows persist but their babies have fledged, so the jay is back to asserting auditory dominance:

Screenshot of bird detection bar chart from June 6

Over the last several months I have been fairly consistently chorping talking with folks about this installation, which is how I know that a bunch of other people would love to set up bird monitoring systems of their own, for themselves or others. To that end, I have written up my BirdNET-Pi setup instructions for you, person who wants to set up your own bird listening station as quickly and cheaply as possible!

To make set-up as straight-forward as possible, I detailed exactly what I did to set mine up, in a borderline-too-verbose way. I assume no prerequisite computer knowledge beyond a basic “at least occasionally uses a computer as part of daily life” starting point.

Instructions: Set up BirdNET-Pi on a Raspberry Pi Zero 2 W 🐦‍⬛

I look forward to hearing about the birb friends yelling around your homes! The rest of this post includes background on the BirdNET project and context around my particular installation—including cost, intentional [lack of] robustness, and privacy concerns.

Brief background and motivation

I’ve been aware of the excellent ecoacoustics work coming out of the Cornell Lab of Ornithology for a while, but I only encountered the BirdNET project about a year and a half ago. During the Recurse Center’s 2024 Never Graduate Week, Logan Williams presented Bird signs and cycles, February, 2024, a beautiful and compelling interactive visualization he created from recordings captured with his own BirdNET-Pi installation.

Screenshot of radial visualization of bird detections. [Logan Williams: Bird signs and cycles, February, 2024]

I encourage you to click through and explore his gorgeous data analysis.

I set up my first BirdNET-Pi as a gift for my dad.2 This necessitated testing the microphone out my own window. I wasn’t sure how well it would do, as I live in a decently noisy neighborhood, but it performed brilliantly. When I packed it up to send it off to my dad I acutely missed the new-found relationship with my new sparrow friends.

Later in the year my parents requested a second BirdNET-Pi installation (!) so that they could monitor birds on the other side of their yard. I decided to set one up for my home at the same time. All three are still actively in use!

Terminology: BirdNET vs BirdNET-Pi

Let’s take a pause to clarify some terminology that I found confusing when I got started:

While we’re at it with the definitions:

Project requirements

My BirdNET-Pi setup is a houseplant programming 🪴 project with the following initial requirements:

On a meta level, I had an additional requirement to document everything well enough that my set-up would be trivially easy to repeat for additional installations.

My installation met all of these requirements, and while its presentation can hardly be called sophisticated, it sure does work—and has continued to work, with minimal intervention, for over a year now.

Photo of microphone in dirty windowsill
My personal installation. Such elegance! (Yes, I do shut the window with the microphone there. No, it probably isn’t great for the microphone wire.)
Photo of Raspberry Pi Zero 2 W taped to a wall
Such grace!

***

Note that there is nothing particularly novel about my instructions as compared to the instructions provided by the BirdNET-Pi onboarding documentation—except that they are far more verbose, include the extra system administration tasks necessary for the “make it giftable” requirements, and bake in some small fixes needed to support longer-running installations on a Pi Zero (e.g., log file configuration).

Loads of other people have cool write-ups about their own setups, specific to their own requirements; if your use-case differs from mine I encourage you to seek those out—or create (and write up) your own instructions!

What does the BirdNET-Pi application…do?

The BirdNET-Pi application has two components: a classification pipeline that constantly analyzes recorded audio for bird sounds, and a small web server that hosts a website that visualizes those detections. The website also lets users configure the application’s various settings.

How does the classification pipeline work?

Spectrogram of detection recording
Spectrogram of an American Robin (Turdus migratorius) vocalization.

…that’s it!

The website then pulls data from that database to display the most recent detections, the recordings and spectrograms of those detections, and the daily summary graphs.

Photo of ipad on wall, ipad is displaying the BirdNET-Pi website
The BirdNET-Pi application’s website, displayed on the semi-permanent viewing station my parents set up on an old iPad.

Privacy considerations

I am generally a privacy and spyware-conscious person, and my background is in audio signal analysis; I do not have (and do not ever plan to have) any of the always-listening “assistants” running in my spaces. And yet, I willingly built and deployed this always-listening device and installed it in my home! What gives?

Here are the considerations I made, which you should probably consider before installing one around your home:

In sum, If you trust the people who have access to your Wi-Fi network, and disclose the presence of the microphone to anyone who would otherwise have a reasonable expectation of privacy in that space, you’re probably good to go.6

Additional BirdNET-Pi benefits

  1. Delighting one’s corespondents with astute avian analyses:
Screenshot of text message accompanying photo of birdnet plot: 'Turdus migratorius really going to town these dayss'
  1. Getting notifications7 about new visitors:
Screenshot of phone lock screen with notifications about newly-detected hawk and flicker calls
  1. Receiving messages like this from other BirdNET-Pi hosts:
    Screenshot of message from 'Mom': Wow! I just saw a ruby crowned kinglet in the backyard today! Birdnet kept saying it was there but I finally saw it :)

    and

    Screenshot of message from 'Mom': I just heard a sandhill crane and bird net confirmed it!

    and

    Screenshot of message from 'Dad': Birdnet seems by unable to load on either iPad or phone, just freezes while loading. We’ve restarted the arduino (sp), anything else easy to try? Wireless network seems ok. No rush but when you get a chance. Did mom tell you it logged a Cooper’s hawk then she saw it in a tree outside the window?

…okay, well, that last one is just to give you a dose of reality. We’ve since diagnosed and fixed that issue, and are back successfully detecting birds at our respective homes. More importantly: a Cooper’s hawk!!

Next steps, output interpretation, and other errant thoughts

You will be unsurprised to learn that I have a lot of follow-up ideas about potential next steps, ways to investigate and tune an installation settings for a specific site, ways to make the installation more robust, interpreting the results, etc. In the interest of getting these instructions published ASAP,8 I’m going to save those thoughts—plus output interpretation—for a future post. Suffice it to say, they exist.

If you use these instructions—or are otherwise inspired to set up a BirdNET-Pi of your own—please let me know! If you know me in real life and want assistance or company while you run through a set up, or want me to just set one up for you, also let me know. I’d love to help!

Once yours is up and running? Be as vocal about the cool things you’re learning about your bird neighbors as my bluejay neighbor is at 4am of a spring morning. 🙃

***

One final time, the instructions: Set up BirdNET-Pi on a Raspberry Pi Zero 2 W 🐦‍⬛

I am grateful to the folks at the Cornell Lab of Ornithology and elsewhere who spent time and energy building the various stages of this detection system, taking on tasks such as data collection, data curation, model training, model evaluation, model open-sourcing, application development, application maintenance, and documentation. It takes a village to make a model.

Thanks also to mcguirepr89 and Nachtzuster for BirdNET-Pi creation and stewardship; Logan Williams for introducing me to BirdNET-Pi in the first place; DK for the word “chorp”; CCE both for the friendly encouragement to write this post in the first place and assistance in figuring out that one Wi-Fi Configuration Situation™; and AF for helping it actually get out the door.9


Footnotes

  1. Read: set up their nests in the trees nearby.↩︎

  2. A Father’s Day present—belatedly delivered in August.↩︎

  3. This is an important distinction if you’re reading the repository’s documentation or looking up help elsewhere on the internet! The links tend to bounce between the ‘mcguirepr89’ and ‘Nachtzuster’ repos without warning, and it is very easy to spend time in a debugging hole while inadvertently reading docs or code for the opposite fork. Be ye warned!↩︎

  4. While I knew my dad could do debugging himself, it felt like it would be unkind to give the gift of a non-functional computer and the task of trying to make it function… Happy Father’s Day indeed! 🥳↩︎

  5. This is something that I wish folks with Alexas/Google Homes/etc in their spaces would also proactively disclose, but here we are.↩︎

  6. If you don’t trust the people who have access to a Wi-Fi network, do not configure your BirdNET-Pi to connect to it!! Have it connect to your phone hotspot or something. Or, don’t install a BirdNET-Pi there at all.↩︎

  7. I haven’t added this notifications piece to my set-up instructions yet, but will add it in a future post.↩︎

  8. “ASAP.” Hah! I first drafted this in…April? And it is now October. I guess we now know what was possible, and that it is temporally unimpressive!↩︎

  9. It took me long enough to publish my initial write-up that I have had to fully abandon my original opening sentence, which I am bummed about. The delay also explains why all my examples came from the spring….

    For posterity, here is that original opening line, so that you can appreciate what could have been:

    It’s late spring here in the greater Boston area, and the birds are going fucking nuts.

    ↩︎