Discover our garden visitors
Create a simple way for my wife and me to see which birds visit the garden, including those we hear but do not manage to see.
A Personal Engineering Project
A BirdNET-Go monitoring system created for my wife and me to discover the birds around our home—combining wildlife, Linux, Docker, audio processing and a little engineering curiosity.
The Story
This project started because my wife wanted to know which birds were visiting our garden.
We can hear plenty of birds, especially early in the morning, but identifying them by sound is not always easy. BirdNET-Go offered a way to listen continuously and suggest likely species from their calls.
Before installing the application, I investigated which microphone would be suitable. The microphone would determine the quality of the audio supplied to BirdNET-Go, so it needed to capture clear calls, work reliably with Linux and remain reasonably priced.
After comparing different USB microphone options, I selected the FIFINE K669B USB Condenser Microphone. Its plug-and-play USB connection, cardioid pickup pattern and good balance between price and audio quality made it a practical choice for the project.
What began as a small and enjoyable home project soon became a useful practical exercise involving Linux audio devices, Docker hardware access, application configuration, troubleshooting, custom metrics and Grafana monitoring.
The Original Requirement
The success criterion was intentionally simple: the system should be easy to access, run without constant attention and provide useful bird detections that we could both enjoy.
Project Objectives
Create a simple way for my wife and me to see which birds visit the garden, including those we hear but do not manage to see.
Research a microphone that offered clear audio capture, Linux compatibility, USB connectivity and good value.
Use a dedicated microphone and Linux system to monitor bird calls throughout the day.
Present detections through a straightforward web interface rather than requiring technical commands.
Expose useful metrics so the application and detection pipeline can be monitored through Prometheus and Grafana.
Ensure the technology continues to support the original purpose: enjoying and learning more about the wildlife around our home.
Hardware Research
The microphone was a key project dependency. Poor audio quality or unreliable Linux support would limit the effectiveness of the entire detection pipeline.
Selected Hardware
I chose the FIFINE K669B after comparing several options. It provided the required USB connectivity, useful directional pickup and Linux compatibility while remaining affordable for a garden monitoring project.
A direct USB connection avoided the need for an additional audio interface.
The microphone needed to be recognised through ALSA and work reliably with the Linux host.
Cardioid pickup helped focus on useful garden audio while reducing some unwanted surrounding noise.
The project required suitable audio quality without investing in specialist recording equipment.
How It Works
Project Components
Audio Capture
Host Platform
Application
Container Platform
Metrics
Visualisation
Project Journey
The project began with a simple request from my wife: can we find out which birds visit the garden?
Compared USB microphone options, considering audio quality, Linux compatibility, reliability, cost and ease of installation.
Chose the FIFINE K669B USB Condenser Microphone as a practical balance of clear audio capture, plug-and-play support and affordability.
Configured the USB audio device on Linux and made it available inside the Docker container.
Adjusted audio-device configuration, sample rate, gain, privacy filters and detection thresholds.
Created a custom exporter and connected the workload to Prometheus and Grafana.
Engineering Challenges
The project included genuine troubleshooting challenges, particularly around microphone selection, Linux audio and detection settings.
The quality of the detections depended heavily on selecting a microphone capable of capturing birdsong clearly while remaining affordable and compatible with Linux.
I researched several USB microphone options and compared audio quality, connection method, Linux compatibility, reliability and overall cost. I selected the FIFINE K669B USB Condenser Microphone because it offered plug-and-play USB connectivity, cardioid audio capture and good value without requiring specialist audio equipment.
The microphone connected directly to the Linux host and provided a suitable audio source for continuous BirdNET monitoring.
The application initially selected the wrong audio interface and could not reliably access the USB microphone.
Inspected the available ALSA devices on the host and configured BirdNET-Go to use the correct hardware interface.
The application could receive live audio from the garden microphone.
The container reported repeated ALSA errors while attempting to open the capture device.
Tested the microphone directly on the host, reviewed the active audio stream and changed the application configuration to use the appropriate plughw device.
The audio pipeline could be investigated methodically rather than through trial and error.
The application was receiving audio, but detections were not consistently passing the configured filters.
Reviewed confidence thresholds, privacy filtering, dynamic thresholds, microphone gain and species-processing logs.
The project provided practical experience tuning a machine-learning workload rather than simply installing it.
BirdNET-Go did not initially expose every metric required by the wider monitoring platform.
Developed a custom Prometheus exporter for detection and application data.
The workload became part of the same observability platform as the wider infrastructure.
Why the Project Matters
Some projects are valuable because they bring technology into everyday life in a simple and enjoyable way.
The project gave my wife and me a new way to notice and discuss the wildlife visiting our garden.
The technical work was driven by a clear personal outcome rather than adding another service for its own sake.
A detection on the screen often encourages us to look into the garden and see whether we can spot the bird ourselves.
The system can reveal visitors that may otherwise go unnoticed, particularly early in the morning.
Technical Value
BirdNET-Go differs from most other applications in the Engineering Lab because it depends on physical audio hardware and continuous real-time processing.
This made it a useful test of hardware research, Docker device access, Linux permissions, ALSA configuration, resource management and application-specific monitoring.
It also demonstrated that the wider observability platform could support a specialist machine-learning workload rather than only standard infrastructure services.
Skills Demonstrated
Lessons Learned
User value can be straightforward. In this case, the goal was helping my wife see which birds visit our garden.
Hardware selection should be treated as an engineering decision. The microphone needed to meet functional, compatibility and cost requirements before the rest of the system could succeed.
Hardware integration introduces a different class of troubleshooting from purely software-based containers.
Machine-learning applications require tuning and interpretation. Receiving audio does not automatically mean useful detections will be produced.
Most importantly, a project is more enjoyable when the technology remains connected to the reason it was created.
Garden Monitoring
The system continues to provide a small window into the wildlife around our home while contributing a distinctive real-world workload to the Engineering Lab.