Run, Developer, Run!

Low Power eInk Weather Gadget

Weather Gadget on LilyGO T5s V2.8 Thumbnail

Weather Gadget on LilyGO T5s V2.8

Weather Gadget on LilyGO T5s V2.8

Taking a glance at the weather when leaving your cozy bunker is a very useful thing. It allows you to prepare for the ever-changing conditions and select protective gear according to the situation. You definitely need one!

To achieve that, of course, you can use your portable computing device (aka smartphone). But trust me, it is much more convenient when a nifty screen describing current and predicted weather condition resides on a shelf near the exit airlock. And it much simpler to build one then you might think.

As information is rarely updated, the natural choice for display is e-ink technology. A lot of engineers are using Raspberry Pi to drive it. But even Pi Zero is too much overhead for the simple task of downloading JSON file and presenting it on the screen (and I'm not even speaking about bringing node.js to the equation). It is like using a sixteen wheeler for door-to-door pizza delivery.

Much more suitable for the job is ESP32 system-on-a-chip. Recently I've discovered awesome boards from LilyGO. It has an 2.7" black/white/red e-ink display and wifi/bluetooth. Boards are programmable from Arduino IDE without shady software. Could be powered from literary everything: power bank, battery salvaged from your old mp3 player, LIR2450 coin cell battery... As it refreshes once in an hour you will get months of runtime - so combined with wifi - no wires on your shelf. Also, it has an sd card reader, 4 programmable buttons and pins for the speaker and microphone, in case you want some extra functionality.

Board comes assembled, with an e-ink display. From your side, you only need to connect to power source (connector included, just connect wires together) and upload some software. LilyGO will take care of charging your battery (up to 500mA). See:

→ Bill of materials

Uploading software is easy. Just connect the board to a USB port and upload via Arduino IDE (no need to flash sd card). There is a lot of weather display code in the web. I've modified one of examples a bit to show data useful to me. See setup instructions and troubleshooting on GitHub. I think that temperature graph and probability of precipitation are most important things about weather so I've added them. So in my case display looks like this:

Weather Gadget Thumbnail

Weather Gadget

Weather Gadget

  1. Red Alerts for the weather if any
  2. Current temperature (and "feels like" temperature)
  3. Humidity and wind
  4. Temperature graph in next 24 hours
  5. Probability of precipitation in next 24 hours

The software connects to your wifi, downloads the latest data from OpenWeather API, redraws the e-ink display, then goes to sleep for 30 minutes. I've also added ping to If the board will not ping it for some time (because of a dead battery or software error), I will get a notification to my email from

Source on Github

Speaking about power consuption, board and software mentioned in the post is working for ≈6 weeks on a single charge of 500mAh battery. During ≈5 second refresh device draws 0.11A 0.5W then goes to sleep.

Of course, you can put the board in some photo frame as people usually tend to do. But for me, the current aesthetic looks cool. Also, the weather is just one of the examples of what you can do with this awesome board. See more examples.

UPD If you need a bigger screen, you can look at new LILYGO T5-4.7 which features 4.7" black/white e-ink and slot for 18650 battery. I would say that for a weaher needs 2.7" black/white/red is more suitable.

Comments are on HACKADAY



Me on Twitter, Mastodon and Github

We have RSS!

© 20xx

Hosted on Cloudflare Pages, which is awesome!