Close

ili9341 speed up rectangles. it is faster as well.

A project log for spi write up to 64 colors at a time on Arduino!

amg8833 equivilent sensor thermal cam is a perfect example of how to write faster with spi lcd displays. 128x128 sample fast on Arduino.

jamesdanielvjamesdanielv 10/10/2018 at 16:100 Comments

here are the pinouts for my display. might be in different order on other peoples versions but should be compatible with adafruit drivers. i did a side by side compare of my spi burst vs normal driver. it is already 2x speed (even without faster i/o). keep in mind that individual pixel writes will be slower unless using rectangle mode. rectangle mode only allows for one color at a time. i have methods that allow up to 256 colors at a time! (so far writing 16x16 pixels at a time with little command overhead, with this display resolution likely 32x32 at a time with scaling x2) 

i used leds as voltage drop to pins, only. cs line requires pull down resistor in this case. (this also is why that led has enough current to light)

you can see i scratched surface to expose copper traces. i tested with continuity meter, and verified that wide traces are all to gnd, and narrow are to pins. will cut the traces except the one that is to backlighting, and solder in 2.2k surface mount resistors, and then another surface mount to gnd, this will half the voltage and i will no longer need to use a bread board or need the leds to lower voltage. read carefully when getting these displays. it was only 12$, but requires delicate work and at least 2 2.2k resistors per line that is input to display for devices that output 5v. adafruits displays have built in voltage shifters. (i'm not a sponsor, just pointing the headache free facts)

i tested adafruits drivers performance and rectangle fills writes time was about 3,007,884 microseconds

in the bottom picture  with my optimizations just for spi burst, time was half that time. look st line for rectangles. this is the only one i used spi bursting in. what my method does is send spi, then do the work while spi is in process, when work is done it is ready for next spi. normal drivers send spi, wait for spi to complete, then process shifting and loading memory.

it will be a little faster once the i/o is pin writes is optimized as well. however since spi clock rate is the limiter beyond spi bursts, the i/o pin performance will not improve it as much.

Discussions