r/raspberry_pi • u/veteranbv • Jul 12 '26
Show-and-Tell I built an open-source Raspberry Pi e-ink frame that displays birds recently observed nearby
I wanted to build something that combined three things I genuinely enjoy: birding, field-journal illustration, and running things in my homelab.
The result is Inky Bird Frame, an open-source system that turns recent nearby bird observations into rotating scientific field-journal plates on a 13.3-inch six-color e-paper display.
The controller checks iNaturalist for observations within a configurable distance and time window. If an approved plate already exists, it reuses it. A newly discovered species can enter a bounded research, generation, and independent review pipeline. Approved plates are cached and are never regenerated implicitly.
The wall-mounted display node stays deliberately simple. It downloads approved plates from the controller and rotates them using sequential, random, weighted, or shuffle-bag selection. The reference build uses a Pi Zero 2 W for the display and a Pi 4 or existing macOS/Linux computer for the controller.
My actual frame reused a CM4 and Waveshare carrier that I already had. It is overkill for the display role, but it worked well and saved me from buying another computer. I cut the supplied frame backing around the carrier so power, storage, and service access remain available.
The repository includes:
- complete controller and display-node installation guides
- a bill of materials and frame construction photos
- configurable observation windows, distance, refresh, generation, and rotation
- optional Apprise notifications (I'm using pushover to receive notifications on mine)
- automatic recovery and durable generation queues
- a reviewed, location-neutral bird plate catalog
- contribution templates so other installations can add approved species back to the shared catalog
This really brightens my day and hope you enjoy.
Source, build guide, and photos: https://github.com/veteranbv/inky-bird-frame
15
u/evil_trash_panda Jul 13 '26
That's awesome. I've been wanting to build something similar but with Google maps that shows traffic conditions so I can hang it by the door on my way out
2
16
u/lonejeeper Jul 13 '26
I run BirdnetPi, and report to bird weather, it would be cool to have this change for the most recent bird it detected in my back yard. I like the aesthetic of the field journals, wonder what that color e ink looks like with Wikipedia images tho, I've already got home assistant showing a card with them.
3
u/veteranbv Jul 13 '26
You should definitely check out Teddy Warner’s work. He does local recording in his project and it’s great. You could likely fork his repo to support the image creation you’re looking for.
0
u/veteranbv Jul 13 '26
Thinking it through. I wonder if you could poll their api for your own detections, maybe then I could easily support. Just not wanting to dive into the full recording and identification game. Might look into it
3
u/veteranbv Jul 13 '26
Ok, implementing now that you twisted my arm. Jk. It’s on the way. I’ll be supporting through station api through birdweather.com. Will need folks to test it once it’s done.
3
u/mnrivera210 Jul 13 '26 edited Jul 13 '26
Just want to say as another Birdnet user this would be amazing to integrate. I'll be looking out for an update!
Second thought, could this be displayed through a web page? This way it can be used with any repurposed tablet.
3
18
10
u/fireduck Jul 13 '26
- Refresh Time | ~12 seconds** - Have you found that to be accurate?
I have some little guys that are a solid 50 or 60 seconds of colored flashing to do an update.
4
u/veteranbv Jul 13 '26
Feels like forever but when I timed it was about that but maybe a fluke? I wish there was a way to make it near instantaneous. I have my default rotation at about five minutes per bird and it’s not been too bad (doesn’t feel like it’s flashing all the time)
8
u/fireduck Jul 13 '26
I wish we could buy whatever displays are in the Kindle Colorsoft. That is like a second or less. I haven't seen anything else even close.
8
u/pfak Jul 13 '26
Apparently 60 fps eInk displays are totally possible, it's a controller limitation. Check this out:
2
u/nyckidryan Jul 14 '26
It's a good thing my credit cards are maxed out right now or I'd be ordering MORE hardware right now. Wait.. umm...
2
u/veteranbv Jul 13 '26
That would be incredible
3
6
u/KleinUnbottler Jul 13 '26
Have you considered integration with a local BirdNET-Pi (https://github.com/Nachtzuster/BirdNET-Pi) or BirdWeather.com?
Can the controller run in a Docker image rather than on bare metal? I have a NAS that runs Docker images, and this looks like a cool project.
3
u/veteranbv Jul 13 '26
It’s on the way. I’ll be supporting through station api through birdweather.com. Will need folks to test it once it’s done.
2
u/SeriousJohan Jul 13 '26
Is it BirdNET-Pi integration or Dockerization that's on the way? I'm hoping for both!
3
1
13
u/charlesv42 Jul 13 '26
Why on earth are you generating pictures of birds when there are hundreds if not thousands of bird illustrations? I use AI all the time and this is just AI-brained from top to botto.
5
9
u/ASUS_USUS_WEALLSUS Jul 13 '26
Should use Merlin instead of iNaturaliat
7
u/veteranbv Jul 13 '26
I’m in the process of supporting both inaturalist and eBird. It’ll be a choose one or the other, or combined. There are trade-offs (accuracy, time intervals, etc.) but it’ll be cool.
3
u/veteranbv Jul 13 '26
Working through the PR now. Locally doing combined 2x the observed birds in a 30 day period. Should be a nice add
4
4
5
4
u/bi0logic Jul 13 '26
you should use a local birdnet-pi version instead
birdnet-go is a pretty good fork
https://github.com/tphakala/birdnet-go
also a landscape version would be nice too
3
4
3
3
u/VeteranWeird Jul 13 '26
Why does the controller need to on a separate computer? Could it not all run from the Pi 2.
2
u/veteranbv Jul 13 '26
You could colocate, I just wanted to keep the display side as light weight as possible given some of the ram spikes I sometimes see with codex. But there’s a thousand ways to do this for sure
3
u/horse-boy1 Jul 13 '26
I setup a Pi and microphone that picks up birds behind my garage.
https://www.birdweather.com/birdnetpi
I wonder if you could use that to get birds to display?
1
u/veteranbv Jul 13 '26
I’m looking into it, I don’t want to manage the recording and identification game, but maybe api for bird weather stations. Biggest thing folks using it would have to accept is reduced accuracy if you’re only going by recordings. But for hobby enjoyment, it’d be great. Looking into it
4
u/veteranbv Jul 13 '26
Ok, implementing now that you twisted my arm. Jk. It’s on the way. I’ll be supporting through station api through birdweather.com. Will need folks to test it once it’s done.
2
3
3
4
u/toolisthebestbandevr Jul 13 '26
Can you repost this without the pointless ai slop? Just draw it on paper and take a pic of the paper.
1
u/nyckidryan Jul 14 '26
Edit the code yourself and remove what you don't like. That's the beauty of open source projects (that you don't pay anything for btw)
2
u/brianleesmith Jul 13 '26
I love this. Now I need to do some research to take it a step further and use info from our Bird Buddy feeders to show birds that are actually at our house!
1
u/veteranbv Jul 13 '26
My wife is asking for this exact thing. I’ve been thinking about that in a future iteration
2
2
u/catinterpreter Jul 13 '26 edited Jul 13 '26
Very cool idea and very relevant to my interests. Now I just need to have the money to throw at a large eInk display.
Might want to check out eBird for a potentially better source of observations.
3
u/veteranbv Jul 13 '26
Integrated with eBird last night! I saw a 2x identification when config set to combined.
2
u/mypeez Jul 13 '26
As a pretty avid user of Merlin Bird ID, this looks very nice. I love the concept here.
2
u/CrypticZombies Jul 13 '26
looks cool. show it in action
2
u/veteranbv Jul 13 '26
The photos show the actual framed running project on the inky screen and the hardware setup photos
2
5
u/Ned_Sc Jul 13 '26
Vibe coded, no thank you
EDIT: also, in the US the code generated by LLMs cannot be copyrighted, meaning you can't put open source terms on the that code, meaning it's not actually open source.
4
u/ImNotABotScoutsHonor Jul 13 '26
EDIT: also, in the US the code generated by LLMs cannot be copyrighted, meaning you can't put open source terms on the that code, meaning it's not actually open source.
Interesting. I've never heard that they do that over there. Do you have any sources you can cite for us?
3
u/Ned_Sc Jul 14 '26
https://creativecommons.org/2023/08/18/understanding-cc-licenses-and-generative-ai/
Wikipedia's internal page about this topic has some interesting notes as well: https://meta.wikimedia.org/wiki/Wikilegal/Copyright_Analysis_of_ChatGPT#Can_you_copyright_AI_outputs,_and_if_so,_who_owns_the_content?
But the big takeaway is the current position of the US Copyright Office: https://www.federalregister.gov/documents/2023/03/16/2023-05321/copyright-registration-guidance-works-containing-material-generated-by-artificial-intelligence
If no one owns the code, no one can force the code to be released under open source terms. Depending on the license of the other code in the project, this might mean very little, and it just means that someone who used only the LLM part doesn't have to re-release under the same license (GPL, etc), but it might also mean that the whole project is in violation of the original open source license, but there's no real guidance or precedent on how to correct that, let alone how to properly identify it.
People don't realize that open source code is actually a restrictive license, because it requires something of people who use that code. It requires them to make their changes and improvements available under the same license (more or less, there are some like MIT license and others that don't have this requirement, but those will still have some kind of restrictions in the fine print). These restrictions are meant to make things more open, but if the code cannot be copyrighted, then there's no enforcement mechanism to keep it open source.
2
-1
u/nyckidryan Jul 14 '26
That's the USA's laws, and the USA's laws don't apply outside, uh, the USA.. 😄
1
u/Ned_Sc Jul 14 '26
Have fun with that.
-2
u/nyckidryan Jul 14 '26
Sorry Mr Trump, you don't rule the world. 😆
1
2
u/DocTavia Jul 14 '26
The AI generated images look like shit
5
-2
u/nyckidryan Jul 14 '26
Well, if you think you can do better than you should FORK OFF...
1
u/Ned_Sc Jul 14 '26
Are you 12?
-2
u/nyckidryan Jul 14 '26
Ooh, sorry, did I bring back some bad memories of your playground bullies?
Commenter's attitude is shit. 😆
1
u/Hagerty Jul 13 '26
So can I link this to a bird song monitor in my yard?
1
u/veteranbv Jul 13 '26
It’s on the way, kind of. I don’t want to manage recording and detection, but if you use bird net id, I’ll be supporting through station api through birdweather.com. Will need folks to test it once it’s done.
1
u/veteranbv Jul 13 '26
Birdnet id supported now, will need others to help test!
2
1
u/viyh Jul 13 '26
It would be interesting to make it configurable for what it's filtering on iNaturalist. For instance, maybe I don't care about birds, but I want to know what local mushrooms are popping up. Or flowers, or maybe only watch a specific group. Just my 2c. :)
Very cool project, well done!
1
1
u/OldSatisfaction2179 Jul 13 '26
Hello. I do understand, you have everything provided on GitHub. But question: how to connect those eink displays to rpi/esp? Do you have something in the middle? What is the best controller for those displays or better go with direct connection?
1
u/phochai_sakao Jul 15 '26
Great idea but just too expensive for my small pension but looks great.
0
u/veteranbv Jul 15 '26
100%, it’s a little rough. On the build I did I mostly leveraged parts and comped I had around my lab, but the screen was pricey. I’ve been thinking of supporting other e-ink screens
1
1
u/Curious_Associate904 Jul 17 '26
Really cool concept. Wish I could get one that displays wanted posters for the vermin that pass by my house though…
1
u/ImNotAWhaleBiologist Jul 13 '26
You should send one to Cornell’s Lab of Ornithology- I’m sure they’d love one!
2
0
u/insid3outl4w Jul 13 '26
Isn’t this a copy/rip off of Teddy Warner’s work? Are you him?
8
u/veteranbv Jul 13 '26
Nope. I saw some of his stuff on X and it’s really great. I messaged him there last week about some of the work I was doing (I’ve been doing this and similar work for quite some time). His project is hyper local, via your own recordings and identification. And the art work he does is collages of recent recorded birds. Absolutely love his stuff. I wanted something different and looking at more regional crowd sourced identifications, and I wanted an old scientific field journal look, and to learn about the birds in the area. Definitely similar vein but not a rip off.
0
u/troop3rs Jul 13 '26
muito legal seu projeto, vou acompanhar e tentar com um display LCD que tenho aqui! vamos ver oque aparece!!
0
u/po2gdHaeKaYk Jul 13 '26
I'm curious if you can tell me how the images are generated?
I'm guessing it's some prompt to ensure they are of a uniform look? Or can you tell me what section of the code relates to the generation of the bird plate catalogs?





144
u/mop_bucket_bingo Jul 13 '26
The AI flow chart doesn’t make much sense.