Pawcast: Cat-Themed E-Ink Weather Display
Print Profile(1)

Description
Are you tired of your partner asking you what the weather is going to be today so she knows what to wear?
This ESP32-powered project fixes that for you! By fetching weather forecast data from OpenWeatherMap and displaying the maximum temperature and conditions using a fun cat vibe illustration on a Crowpanel 4.2-inch E-Ink screen, all your partner has to do is look at the funny little cat box!
What's special? The device determines whether it's sunny, cold, rainy, or hot, and shows a matching kitty to reflect the clothes you should wear today!
Features:
- 🐱 Cat visual changes based on weather
- 📡 Uses OpenWeatherMap forecast API
- 🔋 Battery-friendly with deep sleep
- 🧠 Works fully offline once weather is fetched
- 🖼️ Uses GxEPD2 and custom fonts for high-quality rendering
How It Works:
- Connects to Wi-Fi using stored credentials
- Fetches 3-hourly forecast data for the configured city
- Calculates:
- Max temperature
- Most frequent condition
- Local time of city from weather timestamp
- Classifies weather into one of 5 moods:
- hot / warm / cold / freezing / raining
- Renders:
- Mood-based cat image
- Temperature + weather icon
- Update time based on city's local time
- Goes to deep sleep until next scheduled refresh (e.g., 5AM, 12PM, 5PM)
Bill of Materials (BOM):
| Qty | Item | Notes |
|---|---|---|
| 1 | Crowpanel 4.2" E-Ink Display | Pretty accessible, I just ordered mine from Aliexpress. |
| 1 | LiPo Battery (3.7V, 1000–2000mAh) | SH 1.0, check + and - connection before buying, I soldered my own. |
| 1 | USB-C cable | For programming & power |
Libraries Required (Install in Arduino IDE):
- GxEPD2 (for E-Ink)
- ArduinoJson (v6+)
- WiFi (default for ESP32)
- HTTPClient (default)
- Adafruit GFX (installed with GxEPD2)
Setup Instructions:
✅ Step 1: Download the Zip and Prepare the Code
- In the setup, replace your Wi-Fi SSID and password
- Replace the city name and OpenWeatherMap API key
- Potentially change the time zone information, I haven't tested the code that chooses its last updated time thoroughly enough to know if it works 100% of the time.
You can get a free API key here: https://openweathermap.org/api
✅ Step 2: Flash the Code
- Choose the correct board: ESP32S3 Dev Module
- In tools set PSRAM → OPI PSRAM and Partition Scheme → Huge App (I don't know why, I got this from a tutorial for the crowpanel and if I don't do it then it doesn't work.)
- Upload via USB-C using Arduino IDE (if you get an upload error at the last second lower the upload speed in tools until it works, even if it's agonizingly slow)
✅ Step 3: Power & Run
- On boot, the device will:
- Connect to Wi-Fi
- Fetch forecast
- Display cat + weather
- Sleep until the next refresh window
🧷 Assembly Details – No Extra Screws Needed! 🔩
The custom back panel is designed to attach directly to the CrowPanel using the existing screws on the device — no need to source extra hardware!
Once the back is mounted, the front and back snap together with a satisfying, secure click, holding everything neatly in place without wobbles or adhesives.
🛠️ Customization Ideas I haven't gotten around to:
Feel free to modify the code or the model based on your own needs. Make your own fun little weather station! Have fun with it! Here are some ideas I had but didn't get around to.
- Add WiFiManager to allow Wi-Fi + city config via browser
- Show multiple-day forecast using different pages or rotation (I can't test this, I broke the buttons on my crowpanel…)
- Replace cat images with other designs or weather-specific memes












Comment & Rating (1)