Speeding up writing to HX8357 based Adafruit 3.5" TFT

I have recently started to use this display with a Gen3 device and the Adafruit_HX8357_RK library. Writing similar sized areas (pixels) compared to a ILI9341 and a Photon appears to be considerably slower. I have changed the default SPI speed in the Adafruit_HX8357 library from 24MHz to 32MHz which is the maximum bus speed for Gen3. This helps, but aside from this change could anyone in the community with more experience of this display and controller suggest any speed-ups or streamlining of the Adafruit based libraries?

That's comparing apples with pears :wink:
On the Photon max SPI speed is 60MHz - how does it compare with SPI1 (max. 30MHz)?
Are the ILI9341 and the HX8357 using the same pixel depth?
What does similar size mean exactly? (slightly increased diagonal doesn't look much but can make a big difference in pixel count)

Are the ILI9341 and the HX8357 using the same pixel depth?

Yes

On the Photon max SPI speed is 60MHz - how does it compare with SPI1 (max. 30MHz)?

The documents say 32MHz is the maximum speed for SPI for Gen3. So I appreciate the base maximum speed is 50% of the Photon so you are correct to say this is comparing apples with pears but that is not what I am asking.

Writing an image (same .bmp file) is more than double the time - this could be the new imageReader class whereas with the ILI9341 I baked my own. I just wondered if there were any speed up ideas for this display/controller otherwise I think I need to look at Nextion.

This raises the question: Does your timing include the time required for reading the data from external storage or is the image already RAM based (in both cases) and sent to the display from there via DMA?

Comparing the display speed should not include the acquisition of the data from whatever source as well.

My timings were merely qualitative not quantitative. Looking at the costs of building a display mother board using a 3.5" TFT touch screen with a HX8357 based display controlled via SPI (like the Adafruit 3.5" TFT featherwing) versus a Nextion 3.5" display module I have come to the conclusion that it makes sense to go with the Nextion - I would likely be ordering displays in 100s and the magic number for cost is always minimum 1000.

Looking at the posts on using Nextion Editor it appears that there are now some workarounds to the main short-comings of the display control software. Are there any libraries that help accelerate the use of these displays?

Have you looked at my (admittedly dated) port of the ITEAD_Nextion library?

Not yet - I have looked at a few Youtube videos of workarounds to the limitations of the Editor and I have searched and read a few of the topics posted on solving certain problems (like repeated button press handling). So what is dated about your port of the ITEAD_Nextion library? Has the Nextion library moved on since? It appears the Nextion Editor is still rather fiddly to use.

I haven’t added wrappers for the new features introduced with the “Enhanced” and “Intelligen” series.
While the features are still available via raw UART communication there are no comfortable wrappers.

At one time I intended to rewrite the library into a fully OOP version and commit this as PR on their repo but due to the less than helpful moderators (@peekay123 knows what I mean :wink: ) in their community back then I have stopped investing time into their library.
The hardware has potential but when you are not made feel welcome it’s little fun.

1 Like

That’s a shame that the Nextion community isn’t well moderated - I have seen a number of comments about this. I will close this topic as solved and I will look at the library and start thinking about what my requirements are.

1 Like