I'm using 'Nextion' as a general term to mean displays that have an onboard processor so the Arduino doesn't have to paint every pixel.
My application is displaying 20+ numeric fields at a 10Hz refresh rate.
I'm using 'Nextion' as a general term to mean displays that have an onboard processor so the Arduino doesn't have to paint every pixel.
My application is displaying 20+ numeric fields at a 10Hz refresh rate.
Are you displaying them at that rate for some reason ?
They are updated at that rate.
Have yoiu used a Nextion display?
I have never used a Nextion display
The processor in the smart display might be fast enough, but:
I think it is not possible to update so many fields at 10Hz rate.
There are professional smart displays, and if you run all your code in the display, then it might be possible. You have to look beyond the Nextion displays. For example a Raspberry Pi with a OLED displayMonitor.
What is your project ? Please give us a broader view.
Yes. At 3 Hz you can read individual numbers. Between 3 and 10 Hz you get an idea of how fast the data is changing.
Here's a pair of youtube video where the developer went from 10 to 27Hz giving a super snappy display. Even given youtube's frame rate limitations the results are clear.
I agree. I have used a Nextion and the Serial communication will be a limiting factor. Default is 9600 baud, and I have not experimented with reliability at faster rates. How many digits are in your number fields? The communication is ascii. Are there decimal points? The display of floats gets into other issues.
How many data field will be changing at any one time?
If you indeed want the UI with the rapidly changing numbers too fast to read but which give a sense of change like in the video you may only be able to do that with a limited set of numbers.
What is making the data change?
The displays in the posted links appear to be video.
I searched for baud rate info and found this page
https://unofficialnextion.com/t/what-baud-rate-should-i-use/1256/4
On person added the comment
"The T and K displays have an “official” maximum upload rate of 115200, but 250000 works sometimes, too. The P displays allow a reliable upload at 921600 baud when connected with short wires to a CP2102 USB-TTLserial adapter."
It's complicated as a single display size (such as 5") is available with 3 different CPU speeds.
I think the only 5" display recommended for current use is the Intelligent Series with a 200MHz processor.
I'm not clear how the baud rate for the program upload relates to the reliability of the baud rate for serial instructions and the ability of the screen to change change the pixels in response.
I do not think that the appearance of the screen you want is a good fit for the Nextion.
Here's the closet thing to a Nextion stress test that I've been able to find.
Based on the video creators setup video these two displays are probably running at 115200 bps and the refresh rate is set at 20Hz. I see 6 of the 16 fields being updated on a regular basis.
This test is comparing the speed of two versions of the same size display. They are being driven from a 'simhub' program running on a PC via a USB to serial adaptor.
Based on this video you might be able to do what you want.
Certainly you have a better chance with a Nextion than a display without a processor.
But can you read and interpret more than 20 of them at once as in whatever your project is ?
In addition to the Nextion, there are other options with a dedicated graphics processor: Diablo16, Picaso, Pixxi-28, FT813, BT815, BT817. Of them I have been able to use TFT with FT813, BT815 and BT817, in the Arduino IDE environment.
You must consider not only the speed of the screen's graphics processor, you must also consider that the MCU has good speed. AVR is excellent for learning, but it has its limitations compared to the basic SPI or Wire libraries, when moving to more advanced projects.
For example, the teensy 4 or 4.1 with its base 600 MHz, coupled with the fact that you can perform a certain degree of overclocking, and its fairly compact size
Other fairly fast options that I have been able to use in the Arduino IDE are: STM32F767 (216 MHz), STM32F746 (216 MHz), STM32F411 (100 Hz), STM32F407 (168 MHz), STM32F429 (180 MHz) and STM32F446 (180 MHz)
That isn't how humans parse visual information. The eye/brain focuses on a small area but your peripheral vision continuously scans for changes so the eye knows where to look next.
I presume, therefore, that you are only outputting values that change rather than 20+ values at 10Hz
That is standard practice regardless of the display type, however the worse case scenario is for all fields to change within one update cycle and the system needs to cope with that. If you look at the racing sim example on post #11 there are times where literally everything changes at once.
I agree that it is standard practice but that does not mean that is what you are doing
@mikb55 ,
I have a Nextion project that has a page with a waveform (graph) on it. All 4 available waveforms are used and there are 672 points in each waveform, so 2688 points in total. I found that if I tried to update the whole thing in one go then it would have errors if the baud rate was too high. I found that 38400 Baud works reliably, any faster is prone to errors, I assume because the processor on the Nextion cannot keep up. Each data point requires 10 bytes, including the terminating 0xff, 0xff, 0xff, so 26880 bytes in total.
I leave you to compare that to updating 20 numeric fields in one tenth of a second.
I agree with the other comments about not updating a field that has not changed, and not updating them faster than anyone can read them. Only you know if this is important or not.
In case it helps the Nextion in question is an NX8048K070_11
As for your question as phased, questions like that cannot be answered. How would anyone know? How would anyone know whether there is some other display they have not heard of that is faster?
Hi
I spent an awful lot of time playing with Nextion, after I pre-ordered my 3.2" enhanced version (before launch) way back in 2016 I think it was. I can tell you it is a very capable device. Back then there were no decent libraries to speak of, so the early adopters like myself, had to figure out its capabilities with just the Nextion Instruction set to hand.
Anyway to keep a long story short, I am presuming you will be sending mostly numerical values to the 20 or so fields of your project display. The best way to do this is Serial.print() as a plain ascii text, to a '.txt=' text box on Nextion. I have just run a quick sketch on Wokwi that shows you can can get 200 such prints out the TX on an Uno in a little over 300ms. That's @ 115200baud which I never had issues with using.
If you can use the Nextion Editor, and compile a page with 20 such text boxes - t0 to t19.
The you can plug in your Uno (with the example from Wokwi) to the Editor real time sim (debug) via the com port and watch just how fast the Nextion can go.
Be sure to edit this line in the sketch
Serial.print("\x22\xFF\xFF\xFF\n");
To
Serial.print("\x22\xFF\xFF\xFF");