Are you referring to my internet connection?Are you connected wire-less or wired?
This is the screen I'm currently using from piHut. Based on their wiki, I connected it like this. Because the screen is 240x240, it should be easier to process because it has a lower resolution to display. The frame rate does not need to be extremely fast; even one frame per second will be fine. Just as long as the map can redraw the updated location on the screen as I walk to show the current location.The Pi itself should not have any speed problems, the built-in GPU is pretty good and has no problem displaying web pages on a full HD monitor.
The display response will be excruciatingly slow if it is using SPI (or worse I2C) to drive a relatively large screen, though.
For fast screen updates it needs a display that is driven from the Pi onboard GPU; either through HDMI or the DSI ribbon connection.
Something like this should work OK on a Pi 3 or Pi 4 etc. that has the DSI port:
5" DSI Capacitive Touch Display for Raspberry Pi (800×480)
Apart from the Official Raspberry Pi Touchscreen Display, we don't often see many DSI interface displays for the Raspberry Pi. This capacitive touch display is one of those rare treasures, using the simple DSI ribbon cable connection to the Raspberry Pi - avoiding bulky HDMI solutions for an...thepihut.com
Look at the Pi 3A Plus if you want something a bit cheaper & more compact (lower profile) than the normal Pi 3 / Pi 4. You can find them on ebay occasionally, I've just got a couple of them.
Raspberry Pi 3 Model A+ 512MB 64-bit Quad-Core Single Board Computer
Raspberry Pi - SC0130(j) - Raspberry Pi 3 Model A+ 512MB 64-bit Quad-Core Single Board Computer - <p>Introducing the latest flavour of Raspberry Pi - thewww.rapidonline.com
For info, that 800 x 480 display, which is not particularly high resolution, needs 768K Bytes transferred per video frame, if only using 16 bit colour.
Even if you can push SPI to 16Mbit, that would take 384 mS for each full screen redraw, not counting any overhead or control data etc. when using an SPI display of that resolution.
Roughly 2.5 frames per second.
Any serious resolution display screen that needs to update smoothly overall from graphics scrolling or for video etc. can only work via one of the dedicated display interfaces from the GPU.
No board without a GPU is likely to be suitable.
A Pi Zero could work with a screen that has HDMI in; eg. possibly something like this one that comes with an HDMI interface board:
4.3" 800x480 Raspberry Pi Touch Screen TFT LCD Display w/HDMI Board
ER-TFTV043A1-7 is 4.3"raspberry pi screen display in 800x480 resolution with small hdmi driver board,optional touch panel,touch driver,remote control,power.www.buydisplay.com
The screen itself is SPI, which means it is very slow for graphics.This is the screen I'm currently using from piHut. Based on their wiki, I connected it like this. Because the screen is 240x240, it should be easier to process because it has a lower resolution to display. The frame rate does not need to be extremely fast; even one frame per second will be fine. Just as long as the map can redraw the updated location on the screen as I walk to show the current location.
Can I get an adapter or converter to connect my screen to the HDMI port on my Pi Zero 2 W, as opposed to the last link you posted?
If a 1 frame/second is OK and things are too slow then there is a slow spot somewhere in your program/hardware.The frame rate does not need to be extremely fast; even one frame per second will be fine.
rjenkinsgb Thank you for your detailed response. I would like to learn more about this topic in order to better myself and educate myself, but I also hope to be able to share my knowledge with others in the near future, as you are doing here. One of the project's primary goals was to try to get it to function on these low-cost displays. The plan was to make it open source and allow others to learn, as I am, how to interface these low-cost devices to make them work in the real world and in the field.The screen itself is SPI, which means it is very slow for graphics.
The display graphics need to be recreated in software rather than using the OS drivers and GPU; it also appears that's done in Python, which will slow it down further.
There is no practical way that I am aware of to use such an SPI screen with any form of HDMI adapter; they are designed to drive screens with fast interfaces that can update at video rates.
However, there are small circular displays with parallel interfaces that do work with an appropriate HDMI interface board:
Raspberry PI 7" Touchscreen Display OPT Capacitive/Resistive Touch
ER-TFTV070A1-7 is 1024×600 high resolution tft lcd display with optional USB port capacitive or resistive touch panel designed for Raspberry Pi,various systems.www.buydisplay.com
Note that you need to select the HDMI driver board option as well as the display, so around $44 for the set.
ps. Note that you can buy connectors such as these on ebay, to avoid using a full size HDMI cable in a small device:
DIY HDMI Cable: Right-angle HDMI Plug Adapter, DIY HDMI Ribbon Cable 5055652907844 | eBay
Find many great new & used options and get the best deals for DIY HDMI Cable: Right-angle HDMI Plug Adapter, DIY HDMI Ribbon Cable at the best online prices at eBay! Free delivery for many products.www.ebay.co.uk
HDMI Male Adapter Type A HDMI Cable Adapter FPC Ribbon For DIY | eBay
Find many great new & used options and get the best deals for HDMI Male Adapter Type A HDMI Cable Adapter FPC Ribbon For DIY at the best online prices at eBay! Free delivery for many products.www.ebay.co.uk
They link using flexible flat ribbon.
Hi ronsimpson,If a 1 frame/second is OK and things are too slow then there is a slow spot somewhere in your program/hardware.
Do you have an oscilloscope?
The display can go up to 16mhz. I do not think Python can clock that fast. You will need to clock=0, output data, clock=1, get the next data ready. Data can be 12, 16, or 18 bits. (3 outputs x 16 x240 x240 = 2,764,800) You could look at the clock line and see how fast. You can update the display, then measure the time with a scope or you can do it in software. There is a chance you are burning 50% of the time in updating. If you move the LCD driver to C or machine code you will need to watch that you stay under 16mhz.
You could write a "1" to the LCD, update the entire LCD, increment the "1" and loop. See how fast the display runs. If python can only write to ports at 3 million times a second, then you are limited to 1 frame/second with no other tasks running.
Found this data for the Pi 1 and Pi 2. We know Pi 3 & 4 are faster. This table gives me the idea that even on a Pi 4 you will never get close to 1mhz using Python.
View attachment 138409
According to your table, the C language appears to be the more efficient language.
Looking at the screen you linked to above, it appears to be comparable to the one I have. Mine has a ribbon as well, but it is attached to a driver board with an SPI output. Is this where I could find a solution if I get my hands on a bare screen without this driver board and attach it to a different driver board?
Is the driver between the screen and the Pi the bottleneck? If that's the case, could I utilise another microcontroller, such as the Pico, to act as a bridge? It can drive the displays (though not at high resolutions, as I am finding out), but if the Pi could send the data more efficiently and allow the driver microcontroller to handle some of the load, I might be able to do a bit better. What are your thoughts on this?
I did a fresh bare minimum os setup yesterday on the zero 2 w, (previous was done on zero 1 w). The new Pi has a bit better performance as it's running on arm8 and 64 bit vs arm6 of the pi zero 1. I made a basic chromium startup and linked it to the leaflet maps example page which initially it loads a bit slower, but does not crash and when it's loaded it can actually keep up when panning around the map. The screen is currently running on my normal hdmi screen so performance will drop when shifting over to SPI, but I will try to get the page as fast responsive as possible and load as little as needed and then attempt to get the intended screen functional.It's down to the hardware (panel driver IC or ICs) used within the display panel itself. If it only supports SPI, then nothing can speed it up.
If it supports DSI, DPI or HDMI, then a direct video connection from the Pi is possible, and all the graphics creation can be done directly in the GPU rather than in the system RAM and separately copied out to the display.
Could this use a smart watch? Use the ESP32 to host a server and be an access point, connect to it with a smart watch and display whatever is on the server. The watch could also supply position information. Or, is this barking up the wrong tree?
Mike.
Hi Pommie,Could this use a smart watch? Use the ESP32 to host a server and be an access point, connect to it with a smart watch and display whatever is on the server. The watch could also supply position information. Or, is this barking up the wrong tree?
Mike.
Hi ronsimpson,With a dual core CPU, you could use Python to do most of your work on one core.
AND
Use the second core to send information to the display. (Graphics Processor)
I feel it is taking you 0.8Seconds to update the display and that could be pushed off and core 2.
It is common to use one CPU to do I/O and display functions.
As far as I'm aware most smart watches are more fitness based, and are really too small to have web browsers.I'm assuming that a smart watch has a web browser as part of the operating system.
Mike.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?