The display and Pi Zero combination is elegant. However a Pi Zero W 2 is too sluggish in a standard desktop environment. Furthermore browsing is so slow that timeouts keep leading to failures.
Chances are that the combo is only being used for a kiosk style display that is fairly simple.
In my case I just wanted to display information obtained from a JK BMS (Battery Management System) to monitor a 15.5 kW bank of LiFePO4 batteries. The sample code uses random numbers to simulate the BMS measurements.
The approach taken was to use Raspberry Lite (no desktop) and install xserver to deal with the GUI. Python and the Tkinter package were used to produce the display. More complex displays should be possible using the Matplotlib Python package.
Python script zerodisplay.py includes a comment section that is a guide to intstalling xserver and do the required tweaks. The code section does the display work. zerodisplay.py.zip (2.6 KB)
Thanks for sharing your approach, running Lite with X server is a clever workaround for keeping performance smooth on the Pi Zero W 2. The zerodisplay.py setup sounds like a great way to get a lightweight GUI up and running
Of course a 3D printed case for the Waveshare and Pi Zero can be handy. The zip file contains photos, STL files and the Openscad scad file. There is a comments section at the start of the scad file
I’ve 3D printed a case for the display/Pi and posted a photo plus a zip file with other photos, STL files and the Openscad .scad file. There is a big comments file at the start of the .scad file.
The display uses a Pi Zero and the Waveshare 7 inch configured as a desktop.
The display code includes Tkinter as the GUI. In the photo you can actually see at the top the desktop icons.
This arrangement I have found works very well for my application. I update the screen every minute.
There was certainly a massive learning process to get it operating.
You are getting away with using the Desktop because Tkinter is running without the full overhead (just using Xserver) and you only refresh the screen once a minute.
In your case the Desktop is exposed to the user which is probably OK for you but in my case that would lead to grand kids making strange things happen.
I still think you would be better off using Raspberry Lite (no Desktop), installing Xserver for the GUI and automatically starting the Python script that uses Tkinter to display the weather data. I’ve documented how to do that and used my instructions to setup from a new SD card.
However you have a setup that is working fine so why mess with it.