BinPal - the friendly recycling reminder

BinPal is a happy WiFi fridge magnet that helps you recycle!

Similar projects worth following
Forgot to bring out the recycling again? No more ... BinPal will remind you of your recycling duties, saves the planet and looks terrific on your fridge.


Keeping track of the recycling schedule apparently is hard.  I must have missed the card-board pick-up so many times in a row, we could have easily build a sizable carboard-fortress. As I am obviously not entirely up to the task, I needed a little helper to save the planet - meet BinPal.

I started by researching the web for bin reminders and stumbled upon a Google calendar reminder project by Andreas Spieß.  (

Although I liked the way he used Google calendar to keep track of the pick-up times, I thought it was lacking in a few ways which I could improve upon.

  • Needs to be small-ish and look nice, bulky plastic boxes not allowed
  • No cable, battery operated with a few weeks of battery life
  • Kid friendly interface
  • Drop resistant
  • Needs to notify visually, no beeping
  • Ideally needs to live in the kitchen as it is the centre of the house
  • ESP32 based as I still have a few Lolin32 lites 
  • Charging via USB, battery monitoring would be cool

What I ended up with is an extremely simple design that just comprises of 4 components:

  • ESP32 Lolin32 lite
  • HX1230 display (this is a display that was all over Aliexpress a year ago and is similar to the Nokia 5110 monochrome LCD). Not sure if is is still available but I have a few of theses still laying around and they are perfect for a low power, always on display
  • Two TTP223 capacitive touch modules
  • Some old LiPo batteries I still had from my PlaySport Camera - actually one of the first action cameras back when Kodak was still alive  
All component are either recycled (battery from dead camera), outdated (discontinued HX1230 display) or surplus from other project. So I rather give tham a new life than throwing them out eventually.

As I am using the backlight of the LCD for notification there are no extra components needed. 

The case is built from a few piece of laser-cut plywood but it could be built from mostly any material - only one cut-out for the display is needed. The capacitive touch buttons work reliably through a few millimetres of anything (apart from metal). 

So how does it work?

The basic operation of BinPal is to connect to Google App Script every morning to check if there is a new task to be done and show it on the display. If there is a new task one of the 4 corresponding icon is highlighted (bio, paper, plastics, trash). 

The user has the ability to select any icon (banana button) and delete the active reminder (bin button). If the reminder has not been deleted by 8pm, the backlight of the display starts to blink to draw even more attention to the open task.

Although this sounds rather simple, It required some trickery to pull off.

Get the tasks from Google:

Ideally one would like to pull the calendar directly from Google calendar but this proves to be rather difficult with ESP32. Instead we use a short Google App script that checks the Calendar for new recycling duties and provides the information via a REST API. This work-around also has the advantage that we can synchronize the time simultaneously without using an additional NTP service.

Sleeping beauty:

To be able to run a few weeks on battery at a time, the ESP32 needs to sleep as much as possible. However, the maximum sleep duration of the ESP32 is just over an hour so we need to make sure that if we wake up, we go right back to sleep again until it is time to fetch the calendar again. Additionally, the user might wake up the device in order to delete a notification or to check the battery monitor. All this combined makes it rather difficult to keep accurate time throughout the day. The solution for me was to heavily utilize the ULP processor of the ESP32 for time keeping as it can perform simple operations while the ESP32 is asleep. I use the ULP for blinking the LCD backlight and counting the seconds during sleep. 

Although the ULP is supposed to run at 8MHz, the...

Read more »


Lightburn file to laser-cut & engrave plywood front plate

lbrn2 - 178.97 kB - 06/04/2022 at 17:54



ULP header file - place in same folder as BinPal_Reminder_u8.ino

h - 304.00 bytes - 06/04/2022 at 16:13



ULP assembler code - place in same folder as BinPal_Reminder_u8.ino

Assembler Source File - 2.20 kB - 06/04/2022 at 16:12



Main Arduino file

ino - 28.80 kB - 06/04/2022 at 16:12



Google App Script

plain - 1.28 kB - 06/04/2022 at 16:12


View all 6 files

  • 1 × Lolin32 lite
  • 1 × HX1230 display
  • 1 × TTP223 touch module
  • 1 × LiPo battery - any 1S cell will do

  • Thoughts for version 0.2

    Dominic Buchstaller06/10/2022 at 18:05 0 comments

    I am just getting the components together for version 0.2. I ordered a nice ST756R LCD displays that is much bigger (47x30mm) than the HX1230 and also has a higher resolution. I also want to reduce the overall thickness in the next iteration. For that I got a thinner battery (4mm) and consider using thin 2mm acrylic for the front-plate. Maybe I‘ll try to color fill the engraved plastic - yellow on black would look rather nice I think.

  • Version 0.1

    Dominic Buchstaller06/10/2022 at 17:55 0 comments

    This is the initial prototype. All wood and hot-glue for the moment but the basic software features are there. One drawback of the current 4 logo design is that you are essentially limited to 4 unchangeable reminder items. It would be nice to have this rather generic. Will maybe go to full-screen icons in the next version.

View all 2 project logs

  • 1
    Making a BinPal

    There is really not much to build a basic BinPal - just take a piece of plywood, cut a hole for the LCD display and hot-glue all the components to the back.

    Next step is the wiring - this again is really straight-forward. Simply connect the GND and VCC pins of touch buttons and display to GND and 3.3V of the ESP32. Then connect all the pins of the display to the ESP following the pin-mapping in the Arduino sketch. All required files can be found in the files section.

    Now connect the touch modules and the battery to the ESP32, load up the Arduino sketch and flash the firmware to the ESP.

    Finally cover the back and the sides with some more plywood, add a few magnets and hot-glue everything together. Voila - you made a BinPal!

View all instructions

Enjoy this project?



Martin wrote 06/08/2022 at 12:29 point

Luckily, in our city the different recycling bins are available any time. So it's enough, that full bags of empty bottles remind me of taking them outside.

  Are you sure? yes | no

Dominic Buchstaller wrote 06/08/2022 at 14:34 point

To be fair we have a few of those somewhere too but that usually involves driving the bins around town…

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates