Building A Weather Display In Rust

We’ve seen a lot of weather displays over the years, and plenty of the more modern ones have been using some form of electronic paper. So what makes this particular build from [Harry Stern] different? The fact that the firmware running on the ESP32 microcontroller at its heart was developed in Rust.

The weather station itself is capable of operating for several months on its rechargeable NiMH battery bank. The Rust section of the project is in two parts, the first of which runs on a server which downloads the weather data and aggregates it into an image. The second part runs on the ESP32 using esp-idf which configures peripherals, turns on and connects to Wi-Fi, retrieves the image from the server, displays the image and then puts the display to sleep. By doing the heavy lifting on the server, the display should be able to run for longer than it would if everything was happening on the ESP32.

The project code is available from this GitHub page which should allow even Rust beginners to follow along, and the case file is also available for those with a 3D printer. [Harry] has a few upgrades planned for future releases as well, including a snap-fit case, a custom PCB, and improved voltage regulator for better battery life, and enhanced error handling for the weather API. And Rust isn’t the only interesting part of this project, either. As prices for e-paper displays continue to fall, more and more of them are found in projects like weather stations and even complete laptops which use these displays exclusively.

What’s Black, White, And Red On 20 Sides?

You won’t need to pack a full set of dice for your next game with this DIY Multifunctional Eink Gadget. [Sasa Karanović] brings us a fun device that combines a few essential aspects of tabletop gaming, D6, D12, and D20 dice rolling and a hero dashboard. While they have grand plans for a BLE networked future application, we admire the restraint to complete a V1 project before allowing scope-creep to run amok. Well played!

For this project, [Sasa] realized it needed to be battery powered and just choosing the right display for a battery powered application can be daunting. Even if you aren’t building this project, the video after the break includes a nice intro to electronic ink and low power microcontrollers for the uninitiated. We even see a graph of the completed board’s power draw from the button wake up, display refresh, and low power sleep. The project has some neat tips for building interaction into case design with the use of the display and a flexible bezel as integrated buttons. Continue reading “What’s Black, White, And Red On 20 Sides?”

Building A WiFi Picture Frame With An EInk Display

LCD photo frames never really caught on — by emitting light, they didn’t seamlessly blend in with a home’s decor in the way printed photos do. [Sprite_tm] decided to see if a color e-Ink screen could do any better, and whipped up a WiFi-enabled photo frame using a Waveshare display.

The part in question is a 5.65-inch display with 640 x 448 resolution, and is capable of displaying seven colors. It’s not designed to display photorealistic images, so much as display simple graphics with block colors. However, with some dithering, [Sprite_tm] suspected it might do an okay job. An algorithm that uses Floyd-Steinberg diffusion and the CIEDE2000 color space takes regular RGB images and breaks them down into dithered images that are displayed using the screen’s 7 available colors.

The build relies on an ESP32-C3, which drives the display and fetches new images daily over WiFi. Thanks to the e-Ink screen, which uses zero power when not updating, the whole setup runs off two AA batteries and a Natlinear LN2266 boost converter.

There are some limitations; the screen’s color space is altogether quite limited, and images don’t look very high-fidelity in such low resolution. However, it does an able job of displaying photos for a device that was never designed to do so. It looks rather handsome all wrapped up as a 3D printed picture frame, and [Sprite_tm]’s monkey test photos are very cute.

Files are on GitHub for those that wish to roll their own. We’ve seen similar works before, like this e-Ink wall-hanging newspaper display that keeps up with the times. If you’ve got your own neat e-ink build, hit us up on the tipsline!

Timeframe: The Little Desk Calendar That Could

Usually, the problem comes before the solution, but for [Stavros], the opposite happened. A 4.7″ E-Ink screen with integrated battery management and ESP32 caught his eye, and he bought it and started thinking about what he wanted to do with it. The Timeframe is a sleek desk calendar based around the integrated e-ink screen.

[Stavros] found the device’s MicroPython support was a little lackluster, and often failed to draw. He found a Platform.io project that used an older but modified library for driving the e-ink display which worked quite well. However, the older library didn’t support portrait orientation or other niceties. Rather than try and create something complex in C, he moved the complexity to a server environment he knew more about. With the help of CoPilot, he got some code that would wake up the ESP32 every half hour, download an image from a server, and then display it. A Python script uses a headless browser to visit Google Calendar, resize the window, take a screenshot, and then upload it.

The hardest part of the exercise was getting authentication with Google working reliably. A white sleek 3D printed case wraps the whole affair in an aesthetically pleasing shell. So far, this has been a great story of someone building something for themselves and using their strengths. Where’s the hack?

The hack comes when [Stavros] tried squeezing his calendar into a case that was too tight and cracked the screen. Suddenly a large portion of the screen wouldn’t draw. He turned what was broken into something new by mapping out the area that didn’t draw and converting the Python to draw weather information with Pillow rather than screenshot a webpage: clever reuse and a way to make good out of a bad accident.

The code is up on GitLab, and the 3D files for the case are available on Printables. You can also find the project on Hackaday.io, as it was an entry into our recently concluded Low-Power Contest. Unfortunately, while the Timeframe is pretty power efficient, it doesn’t last as long as this calendar with a 50-year battery life.

Low Power Challenge: Keep Plants Green And Clean With E-Paper Smart Tags

There are plenty of reasons to devote oneself to the care of houseplants — after all, a room full of bright, glossy-leaved plants can be a joy to behold, and that’s not even one of the more tangible benefits they bring. But as any green thumb knows, there’s a fine line between a healthy, vibrant plant and one that’s soon to give up the ghost.

If your thumb tends less toward green and more toward the brown and crusty side of things, something like [Jon]’s Smart Plant system might be just the thing for you. These low-power plant tags are built around increasingly ubiquitous e-Paper displays, like the kind you might find in a retail shelf price tag system. The current version of [Jon]’s tags uses a Waveshare 2.9″ tricolor display and a PCB with capacitive probes that stick into the plant’s soil. An ESP32-S lives on the top section of the PCB, along with a 1,000 mAh LiPo pack that’s charged off USB-C. The design includes an optional solar panel for keeping the battery topped off, which may or may not help depending on the plant’s place in your personal jungle.

In addition to the soil moisture sensor, the Smart Tag has an ambient temperature and humidity sensor and a light sensor — everything to keep your plant happy. The power-hungry sensors are only powered on when the Smart Tag pops out of deep sleep; this gives and estimated five to six weeks runtime between charges, without solar charging of course. The e-Paper display shows custom graphics of the plant’s current environmental state, and the same data is also available via Home Assistant thanks to the ESPHome firmware.

These are nice-looking plant tags that can really pull a lot of weight in keeping plants healthy. Check out the other offerings in our Low Power Challenge Contest, and maybe get an entry together yourself.

An E-Ink Progress Bar For Your Unborn Child

Having a child is a major milestone in a person’s life, and there’s a long list of things to get done before that little bundle of joy kicks and screams its way into the world. What better way to make sure you’ve still got time to paint the nursery and assemble the crib than to have an automated loading screen that shows just how far along the organic 3D printing process is?

This fetal development tracker was put together by [mokas] using Adafruit’s ESP32-S2 powered MagTag. As the name implies, the all-in-one electronic ink development board is designed so that it can be adhered to a metallic surface with integrated magnets. The idea is that you can pop a battery in the low-power device, stick it on your refrigerator, and have a regularly updated display of…well, whatever you want. Continue reading “An E-Ink Progress Bar For Your Unborn Child”

A two picture montage of the blackout logger, the left picture being the front e-ink display of the data logger in a black case and the second picture of the back of the data logger, with the raspberry pi pico show attached to an e-ink display, both sitting on a wooden table.

Blackout Logger Keeps Track Of Power Outages

[Dmytro Panin] lives in Kyiv, Ukraine where there have been rolling blackouts to stabilize the power grid. To help keep track of when the blackouts might happen, be they planned or emergency, and to get more information on how long the blackouts last, [Dmytro] has created a blackout logger.

The build consists of a Raspberry Pi Pico that connects to a DS3231 real time clock (RTC) with a Waveshare 3.7 inch eInk display which [Dmytro] puts into a custom 3D printed case. The RTC has it’s own small power supply, often times from a coin cell battery attached to the module, allowing it to keep time when the module and other devices attached to it are powered off.

The Raspberry Pi Pico is programmed to “poll” every 30 seconds, writing the current time to a file. Should the unit lose power, the last time, within a 30 second window, is available when power is restored and the unit wakes up again. Since the RTC has kept the current time, there is enough information to display the duration of the blackout. The eInk screen ensures that the information is readily available, even when there is no power.

War is not the only reason blackouts can occur and we’ve covered some issues with blackouts in Texas and California in the US.