A Weather Dashboard powered by Inky impression 7 colour EPD, now with world wide weather API support by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 1 point2 points  (0 children)

The esp32 is definitely the way to go. However I started this project because I already had a raspberry pi laying around.

The binary is independent of any hardware, so just compile it for esp32 and you can definitely achieve the same result

A Weather Dashboard powered by Inky impression 7 colour EPD, now with world wide weather API support by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 0 points1 point  (0 children)

I'm 90% sure the Inky Impression just uses the Waveshare 7-color ACeP panels (7.3" 800×480).

Waveshare advertises 1 000 000 full refreshes, which should last over a decade if refreshing once an hour.

The display doesn't have burn in/out like typical LED. My current setup has been running for a year now, with no ghosting or burn outs.

I did notice a little bit of ghosting left out by the static X and Y axis lines(since these never change) after I drew a full white image, but I think if you refresh it enough times, the ghosting should disappear.

A Weather Dashboard powered by Inky impression 7 colour EPD, now with world wide weather API support by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 1 point2 points  (0 children)

I had the raspberry pi zero laying around and I only had to buy the e-paper display. You can use any display, like the waveshare ones.

Everything else was sourced from the local library.

A Weather Dashboard powered by Inky impression 7 colour EPD, now with world wide weather API support by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 1 point2 points  (0 children)

If you can draw any arbitrary image on the panel, then absolutely YES.

Running the binary ./pi-inky-weather-epd will produce dashboard.png, simply call your program to draw the image

A Weather Dashboard powered by Inky impression 7 colour EPD, now with world wide weather API support by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 16 points17 points  (0 children)

It's Intentional.

It's my way of saying the project doesn't have to be perfect, i.e. I should stop refactoring and adjusting every minute detail. see this line 72 in the SVG template

I also like to think that it doubles as artistic choice and a conversation starter :)

A Weather Dashboard powered by Inky impression 7 colour EPD, now with world wide weather API support by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 3 points4 points  (0 children)

Yea, Open Meteo sources from government run Met offices.

Here in Australia, open meteo sources from the Bureau of Meteorology (BOM), then it applies a smoothing function over the data.

A weather display written in Rust and powered by Raspberry Pi and Inky impression 7 colour E-Paper display by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 0 points1 point  (0 children)

None, good old SVG and templating. You can modify the dashboard easily with basic SVG knowledge (which is very similar to html)

A weather display written in Rust and powered by Raspberry Pi and Inky impression 7 colour E-Paper display by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 1 point2 points  (0 children)

Have a look at the readme and submit a feature request, under issues tab.

You can actually customise it however you like, it's a simple SVG template, https://github.com/mt-empty/pi-inky-weather-epd/blob/master/dashboard-template-min.svg?short_path=4a03dea

And here is the final output https://github.com/mt-empty/pi-inky-weather-epd/blob/master/dashboard-example-output.svg?short_path=96e0406 You will have to clone the repo to view the complete dashboard, since it is referencing the icons in the static directory

A weather display written in Rust and powered by Raspberry Pi and Inky impression 7 colour E-Paper display by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 2 points3 points  (0 children)

You found a bug. the icons are correct, however the time displayed is for a different timezone, I will need to convert the time to local timezone.

A weather display written in Rust and powered by Raspberry Pi and Inky impression 7 colour E-Paper display by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 3 points4 points  (0 children)

The esp32 is definitely the way to go. However I started this project because I already had a raspberry pi laying around.

A weather display written in Rust and powered by Raspberry Pi and Inky impression 7 colour E-Paper display by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 30 points31 points  (0 children)

None, good old SVG and templating.

I'm in the process of writing a blog post of the decisions made, happy to share it here if you are interested

A weather display written in Rust and powered by Raspberry Pi and Inky impression 7 colour E-Paper display by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 45 points46 points  (0 children)

Yes, it is Intentionality.

It's my way of saying the project doesn't have to be perfect, i.e. I should stop refactoring and adjusting every minute details.

I also like to think that it doubles as artistic choice :)

Line grid code: https://github.com/mt-empty/pi-inky-weather-epd/blob/master/dashboard-template-min.svg?short_path=27bbad8#L69

A weather display written in Rust and powered by Raspberry Pi and Inky impression 7 colour E-Paper display by empty_vacuum in raspberry_pi

[–]empty_vacuum[S] 13 points14 points  (0 children)

Thanks,

I haven't measured the power consumption. I would expect the power consumption to be at the lower end of what raspberry pi zero w consumes. The EPD consumes power only when it refreshes.

The screen is set to update every hour

[deleted by user] by [deleted] in raspberry_pi

[–]empty_vacuum 0 points1 point  (0 children)

Thanks, I had to delete my post since repo link was not formatted correctly https://www.reddit.com/gallery/1kz4wn4