Show HN: E-Paper 7-color display showing the current weather
github.com
github.com
https://soldered.com/product/inkplate-6color-color-e-paper-b...
Cheap e-ink projects are super fun and useful.
My display is this one: https://shop.pimoroni.com/products/inky-impression-7-3?varia... which seems to be cheaper.
edit: shocked at the prices!
Meanwhile you can get an esp32 + 2.8" tft screen + sd card for $15.
It's a frame that fetches the current weather and time at a location, has AI generate a photo with that location, and shows it.
How did we both independently arrive at this? I guess it was the most obvious thing to do?
Y'all like the Uber and Lyft of eink weather - but I've tagged others like this from HN.
Edit: soon as I find the time I'm building one too - all are inspirational for esp32 dev + key for FOSs home-automation
Maybe when I need a fun project I'll make a version that uses OpenStreetMaps + LAN-hosted Stable Diffusion tho, so worth a bookmark to remember to do that
- "A WiFi color eInk picture frame" https://news.ycombinator.com/item?id=35689706
- "Color E-Ink Display Photo Frame Pranks [Mom]" https://news.ycombinator.com/item?id=26977747
I was planning to turn them into color photo displays like in those two examples, but this is a neat application too.
I've been to Barcelona a couple of times and it's hard to imagine a day where you hit both temperatures?
Is the weather data in any way reliable? Or is it all just hallucinated stuff and I should just enjoy the animations? It could also be that I know Barcelona weather less then I thought and it's possible to hit 26 high and 2 low?
Why is this? Is it something particular about colour e-ink?
[1]: https://www.waveshare.com/wiki/7.3inch_e-Paper_HAT_(F)_Manua...
I don't really know why they recommend to clear the screen after leaving the same image in for 24 hours, but I think it's mostly a precaution and most likely not a real issue. But for my own sanity, I do clear it at 2am and then it's already drawn a new image at 8am, before I'm out of bed.
If memory serves, standard monochrome e-ink displays don’t suffer from burn-in.
[1]: https://www.waveshare.com/wiki/7.3inch_e-Paper_HAT_(F)_Manua...
I already have plenty of non-tiny computers that run Debian GNU/Linux. Suppose I wanted to run an e-paper display from one of those computers, using this code, just via a normal USB cable. I could do that, right? There's no reason I would have to use a Raspberry Pi or something similar?
The 7" E-Ink display is US$86, which is not too bad.
You could do this with a tiny microcontroller if you had the time and knowledge to do it. There's nothing magical about the displays other than strange supply voltages at times.
The more common problem is that they don't listen to USB. They take SPI or parallel digital interfaces to set the pixels. So you need some kind of intermediate interface and software to draw the display. Which is why people just slap an RPi into the mix and talk to that over more common protocols.
The RPis and friends just optimize the workflow - theres nothing particularly magic about they way they implement SPI or GPIO, they just have it out of the box because its such a common way to extend hobby computer boards.
I'm not particularly up to date with the tiny microcontroller ecosystem - if I wanted to execute this at lower cost and/or lower power, what would be some better options to consider?
[1]: https://github.com/blixt/sol-mate-eink/blob/main/epaper.py
There are dozens of different free weather APIs which could be called directly.
- Turn a colloquial name for a neighborhood into the exact latitude and longitude (I'm sure there's some API that can kind of do this but I don't know a free one that is as accurate as GPT)
- Adding to the previous point, if you say "Hogwarts" or "Tatooine" it will dutifully give you the weather of those too thanks to AI [1]
- Most importantly, write a Dall-E compatible prompt to generate an image with the actual weather conditions (and sun/moon etc)
From your second point, I'd have expected that to fail for Hogwarts or Tatooine.
Taken together, it sounds like you're blindly trusting the coordinates generated by AI, and will happily generate correct-looking results for any input. I'd call that hallucinating the weather. If I type in "Springfield" I'm gonna get results but I'm not gonna know if they're mine.
This may be an unreasonable level of concern for a fun app.
Yeah the second part I consider a bonus. Especially because I can use street names or slang for locations that no rigid API supports.
> Taken together, it sounds like you're blindly trusting the coordinates generated by AI
Actually I guess I do "blindly" trust the AI's coordinates more than a traditional location search service. Not sure how much you've tested it yourself, but I haven't gotten a single false latitude/longitude pair from GPT-4 unless the location was truly ambiguous, in which case it would be one of them. But as a European, I've definitely experienced rigid APIs happily giving me the weather for "Stockholm, NY" which apparently does exist, but wouldn't have been my first option...
But yeah, it is just a fun app, so I wouldn't want to make it more rigid either way!
Again, probably overboard for a fun app!
- Springfield in Illinois
- Sandwich in Massachusetts (the exact coords: https://www.google.com/maps/place/41%C2%B045'31.0%22N+70%C2%...)
I think that people underestimate how much non-AI technology fails in these cases. And the recovery path is to retry with more specificity in either case.
That's an excellent point!
Just browsed through your code and I see that you're calculating the positions of the sun and moon. Very cool! Really fun project!
I'm trying to understand the criticism here, so please give the GPT a shot with a few different locations (you can also do neighborhoods or fictional locations) and describe how this is a nut that can be cracked with non-LLM solutions:
I think people are just questioning the assumption that such a feature is a desirable or necessary feature of a weather display.
I definitely was a bit surprised to open the repo to a weather display and see the need for an OpenAI key without an explanation of which features were AI-powered.
But of course this is a personal project, so "Generate a representative AI image using the location and weather information" is a perfectly valid, and cool, challenge to set yourself and achieve.
I'm pretty sure real production use cases of these screens don't tend to use dithering though, focusing on contrast and readability.
Also, black and white are their own specific primary colors, they're not made out of a combination of other colors, so it's rather appropriate to call them colors in that context.
https://i.imgur.com/kmKiqbO.jpg
You can zoom in on the purples. I would say it looks like a wine purple IRL.
Edited to add: In the picture you can also see the white material at the bottom that is not part of the screen, I would say that is "true white". And the picture also has white pixels on the screen. That's the "dark purple" the review refers to in that case.
I made a palette for colour space conversions for reference: https://imgur.com/a/2vgFsT4
https://gist.github.com/blixt/44bbed23bee7f65b53fd3304781edd...
> Get the weather data for {location}. If the location is not on Earth (fictional or otherwise), pick the place on Earth that is most visually similar to the location. Before you get the weather, reason about which temperature unit is most likely to be used at the location in question. That is the temperature unit you should use when getting the weather.
Second: https://github.com/blixt/sol-mate-eink/blob/1236dbb66b80c838...
> Here is the weather for the location "{location}":
> {weather["status"]}
> Use Dall-E to generate a beautiful illustration of the location in the style of a wide post card filling up the entire image. Try to describe a scene that is iconic and aesthetically pleasing for the location specified above, but also one that can showcase the weather. (…)
I mean it’s a bit like a restaurant menu app that only shows you pictures or what you just ordered, right?
If you know the temperature, you don't need to do this exercise at all, you simply know based on experience, and it's more accurate, too. A few degrees difference can mean different clothes, different materials, different layering, etc.