Bin day e-ink display

ElectronicsE-ink

The e-ink bin day display

I have a terrible habit of forgetting to put the bins out, and forgetting if it’s recycling or regular rubbish, and figured a nice updating reminder somewhere I’m likely to see it could be a good solution to do this. I also decided this was going to be a weekend project, and I had to finish it in two days, otherwise it would just languish as I continually fiddled with it. (perfect is the enemy of done, as they say).

Knowing how bad I am at forgetting bins, I know I’d also be rubbish about remembering to charge something, and don’t want a wire dangling and trapsing around from wherever I put it, so an E-ink display, microcontroller and li-po battery made the most sense.

Looking at my supplies, I had a XIAO ESP32-C6 and a handful of Raspberry Pi Pico w’s. It only really needs to update once a day, and can be in sleep mode the rest of the time, that should reduce battery usage. From what I can remember the esps have a much better low power/sleep mode. My instinct was to start researching the two, and compare sleep modes, maybe run some tests - then I reminded myself my target is to actually get it DONE, so went with the esp32 - hoping I was correct about what I remembered.

Next came deciding how it would work. if it connects to the Wifi, it can pull the date and time from NTP, then check how many days until the next thursday (collection day) and alternate between recycling and rubbish. Should be fairly easy, downside is that it probably won’t work around holidays when the collection dates get changed, and sometimes they get changed at random. Perhaps the council has an API? a quick google later and it seems they probably don’t (they don’t really have the money to even collect the bins, so them spending anything on an API seems unlikely). Perhaps I can somehow scrape the website? ah but it would need to input my postcode and other things, and then that’s getting quite demanding for a little esp32…damn. After a bit more googling I found the wonderful UKBinCollectionData repo by robbrad (https://github.com/robbrad/UKBinCollectionData) which does all of the hard work for me. I can just put this on my server and have it present a json the esp32 can read. Perfect.

A quick test later and that works! excellent, now I just need to test putting the esp32 to sleep, I sleep it for 2 minutes, and as far as I can tell that’s working.

So the code is now set, once a day my server runs the collection data and generates a json, then 15 minutes later, the esp32 wakes up, reads the json, updates the display and goes to sleep for 24 hours. It’ll take a day to confirm it’s fully working, but shorter tests seem to suggest it is. I made sure to add a little “Last updated on” to the display, just so I know if it stops updating for any reason - as it’s not going to be obvious on an e-ink display.

One last minute addition I add is that on collection day and the day before, it changes from a yellow banner to a Red one (hooray for 3 colour e-ink displays) so hopefully I notice it more.

Time to decide where I’m going to put it. I settle on the side of the fridge, so it’s immediately visible when I walk into the kitchen, hopefully that should be noticable enough

Now for the case. I design a rough box in onshape that will house the screen an innards. The screen fits nicely. I add some slots for some magnets, so it can be stuck onto the side of the fridge. I designed a nice little shelf for the esp to sit on so the USB is still accessible for charging, but it doesn’t quite fit (cables always take up more room than I think). It’s now 9:30pm on Sunday, Do I have time to make the adjustments I need and a few more test prints? not really, so I go the lazy route, I make remove the shelf, make the box a bit deeper and resort to just stuffing everything in it underneath the screen. It’s far from perfect, but it is at least done.

I want to add some more pictures of the case/setup to the gallery, hopefully I’ll get around to that at some point, but for now, the project is done, and I actually managed to finish something in time.

Photos