WeatherPaper ⛅ - Real-Time Weather on E-Paper Display
by Jeremy Ngai in Circuits > Electronics
732 Views, 9 Favorites, 0 Comments
WeatherPaper ⛅ - Real-Time Weather on E-Paper Display




No buttons. No backlights. No noise. Just the weather, sleek and quietly placed on your desk for you.
Opening apps to check the weather felt like a hassle... when the weather is just right outside. Why am I unlocking my phone, digging through apps, and getting hit with distraction—just to find out it's raining?
So I built something better.
WeatherPaper is a minimalist, always-on e-paper display that quietly shows the weather in real-time. No glowing screen. No noise. No attention-hogging. It just sits there, like a little window that tells you if you'll melt, freeze, or vibe today.
And now I barely even think about the weather app—because my desk tells me first.
If you like a clean setup, a gadget that doesn't need charging every few days, or want to feel less glued to your phone, this project is specifically for you.
Supplies
ESP32-C3 Supermini Development Board
WeAct 2.9" Black-White E-Paper Display Module
TP4056 Charging Module with booster
102025 3.7v Li-Po Battery
8 Pin JST 1.25mm Connector
Pliers
3D Printed Enclosure
2.4Ghz WiFi connection
Some of the links in this guide are affiliate links. If you buy through them, I may earn a small commission — at no extra cost to you. It helps support my projects, so thanks a ton!
Design and 3D Printing



The enclosure for this build is very simple. It consists of two parts: case and lids. Both parts were designed in TinkerCAD and were heavily inspired by jbergler. Big thanks to jbergler for making this project possible.
The 3D Models were later exported and manufactured by JLC3DP. The frosted look is achieved by using 8001 SLA Resin. After the models are in your hands, you can retouch them with sandpaper to remove leftover supports. Be careful not to sand it too aggressively.
The weather icons used in this project to show weather conditions were sourced from Flaticon. Big shoutouts to these talented designers for making WeatherPaper look extra sleek and readable.
Adjusting the Potentiometer! (IMPORTANT)

This step is very important, not to fry your ESP32 and your e-paper display. Do not skip this!
First things first, grab your 3.7V battery and your TP4056 Charging Module with Booster. Now, temporarily connect the battery's wire to the input of the charging module; this can be done using alligator clips and wire or anything, but don't solder them yet.
Using a small Philips screwdriver, slowly tune the potentiometer onboard and use a multimeter or anything that shows the voltage of the output. Clockwise increases voltage, counter-clockwise decreases. Carefully adjust the voltage to 5V (4.75V to 5.25V). You gotta be slow and patient!
Once you have dialled it in and confirmed the voltage is within 4.75V to 5.25V, you are good to go! Clean power = happy ESP.
Circuits and Soldering



Wiring this project is surprisingly simple. The main goal is to connect the ESP32 to the e-paper display using SPI, and make sure everything gets what it needs.
I started off on a breadboard to make sure everything was working well before soldering. Once things worked, I moved to a perfboard to make it permanent and portable.
Here's the general connection setup I used:
VCC to 3.3V/5V (doesn't matter because the e-paper itself had a voltage regulator)
GND to GND
SDA to GPIO6
SCL to GPIO4
CS to GPIO7
D/C to GPIO1
RES to GPIO2
BUSY to GPIO3
Some e-paper displays use a slightly different name for the pins, like DIN/CLK instead of SDA/SCL, but it's usually easy to figure out, so make sure you wire things up in SPI mode (not I2C!).
When it comes to soldering, I placed the ESP32 and TP4056 on a 40x60mm perfboard. Remember to tin both the wires and the pads before joining them together; this makes the joint neat and strong.
To make the project toggleable, I added 2 male pins on the battery's positive wire and used a jumper cap to toggle it.
Testing and Uploading Firmware


Before sealing everything inside the case, it's time to bring WeatherPaper to life by uploading the code to your ESP32. Make sure everything is wired up correctly and that your e-paper display is connected securely. This step will confirm that your hardware is working.
I used Arduino IDE for this project, along with a few libraries like GxEPD for the e-paper display, WiFi.h, and HTTPClient to fetch weather data. Don't forget to install these from the Library Manager if you haven't. Moving on to the API key for weather, I used OpenWeatherMap because it's easy to use and accurate. For fetching the current weather, you don't need a subscription; just make a free account and generate an API key.
You’ll need these libraries:
- esp32 (from Boards Manager)
- GxEPD (for the e-paper)
- WiFi.h
- HTTPClient.h
In Arduino IDE, you will need to enter your WiFi credentials and your country/city, as well as your API key in your code.
You can also set the refresh interval (fewer refreshes = longer battery life).
Once your code is ready, it's time to plug in your ESP32 using a USB cable, hit Upload, and cross your fingers (just kidding, it should work!).
If it all goes well, you will see the e-paper display refresh with actual weather info pulled from your API!
If it doesn't, don't panic! Open up Serial Monitor and set the baud rate to 115200, and see where it breaks. If nothing works, you might not have enabled USB CDC On Boot, Tools > UCB CDC On Boot > Enabled.
At this point, I like to test a few things before moving forward:
- Did it connect to WiFi?
- Is the display showing proper data?
- Does it deep sleep correctly and boot up after deep sleep?
If everything checks out, you are good to go for final assembly. If not, this is the perfect time to troubleshoot.
Downloads
Assembling the Body


Alright, now that everything is wired and soldered. It's time to give WeatherPaper a proper home. Because no one wants a naked PCB chilling on their desk!
For the enclosure, you can get as creative or as lazy as you want (no judgement!) I hot-glued the perfboard and the battery onto the back of the e-paper display. I went with a 3D printed enclosure with a translucent (or 'frosted') finish, which is manufactured by JLC3DP with 8001 Resin. Shout out to JLC3DP for making my project look fabulous!
I used Blu Tack to secure the display. Avoid hot glue or adhesives—you’ll want access later for recharging or re-flashing the ESP32.
The ESP32 has a tiny red LED as a power indicator. To save power and make it more aesthetic, I carefully flicked it off using a pen cutter. Be careful not to damage the PCB trace and components!
Once everything was in place, I fitted the lid and powered it on. It honestly looked like a piece of modern tech art. You might even forget it's electronic.
WeatherPaper is designed last a few months on a single charge, thanks to its large battery and deep sleep mode compatibility.
Conclusion and Final Thoughts

And that's it! You have just built WeatherPaper, a quiet little companion that brings real-world weather into your space without the noise of modern tech. No ads, no scrolling, no distractions — just a calm, always-on display that reminds you what the sky's up to.
This project was a blend of form and function: low power, high aesthetic, and a great way to explore e-paper displays, WiFi, and live data integration.
If you make your own, I'd love to see your remix! Add icons, make it solar-powered, print a fancier case, or even display tomorrow's forecast. I kept it minimal, but you can go wild!
Thanks for following along. Now go touch grass—but check the temperature on your WeatherPaper first!
Want to see more weirdly calm, low-power gadgets like this? Follow me! Feedback and suggestions welcome!
If you found this useful and want to support future projects, be sure to follow me! You're awesome.