I spent money on a domain so I might as well use it.

BirdNet-Go: But We Have Bird Monitoring At Home

BirdNet is "a research platform that aims at recognizing birds by sound at scale" out of the Cornell Lab of Ornithology. BirdNet-Go bundles a model from the BirdNet project into an easy to use platform for bird monitoring.

For me this was one of those projects where I had the parts sitting around for a while but only just got around to actually putting it all together... Luckily setting up BirdNet-Go was really easy once I finally tried to do it.

As far as getting all the parts there is a recommended hardware page in the repo. Based off there advice I went with:

  • An old unused Raspberry Pi 4 I had.
  • A 400gb micro-sd card I already had in the RPi. Some people set up NAS shares for archiving recordings. I personally don't care about the raw samples so I'm not going to retain them long term.
  • A UGREEN USB to Audio Jack Sound Card Adapter. It was pretty cheap, under $15.
  • The Clippy EM272 Mono Microphone they recommended on the wiki.

Installation

I grabbed the Raspberry Pi Imager and selected the Raspberry Pi OS Lite 64bit as the image option. The Lite option is recommended by their docs since the unit will run headless. In the installer I made sure to set the following:

  • hostname, username and password
  • Wireless connection, I use Omada APs and one is already set so the back porch can get good coverage.
  • SSH enabled, password based

Once its done flashing and the device was booted up all I had to do was get BirdNet-Go on it. Usually I reach for Docker when I can but this device is only going to host BirdNet-Go and I have a limited amount of time for this project. So instead I went with their installation script. Its simple and interactive. They really did a nice job.

After BirdNet-Go was installed I just had to get the device into position. I am fortunate to have plenty of birds near my porch so I was able to keep my RPi inside while running the mic cable outside, but under a covered roof. Otherwise I would have to handle weather proofing, running power, longer range internet, etc. I was not sure if I we get could sound reception next to the house but the mic is doing well so far!

Customization and Birdweather Support

Once the device is setup you can go into the dashboard (on port 8080 by default) to customize the installation. Most options that you need to set are configured during the guided installation in the script. Make sure to enable authentication since its off by default. Also please don't expose the device to the internet. Thankfully you an instead set up integration with Birdweather.

Birdweather sells their own hardware but they are also a citizen science initiative to collaboratively monitor birds. They have documentation you can follow to make an account and get an API key for the BirdNet-Go dashboard. There is a live map you can view to see if anyone monitoring already in your area!

Now to be very clear: this involves adding a station marker to the public map. If you are running the station at your home you are effectively marking your house. The station information on Birdweather does not contain any personally identifying information or even linkage to a username but its still something important to consider. Especially if someone knows you have a station and there are no stations in your area it would be easier to figure out your house.

Closing thoughts

"I love birds" ~ Usidore, the Blue

I am excited to look back a year from now and see what birds have been identified. The dashboard lets you see aggregate species information over different time spans. Also if you want to ID birds on the go there are BirdNet and Merlin android apps. Both are developed by the Cornell lab. I believe Merlin uses a different model that is more focused on offline on-device identification but I can't find the specifics on it. Merlin is the app I usually use.