<div dir="ltr">I second the sentiment about the Adafruit library. They are easy to get you going with experiments, but are notoriously clunky, and often make less-than-ideal technical decisions. You might have to forgo some features (such as printing images, certain shapes etc), but the majority of that can be recreated if you need it I guess.<div>As you already found out, SPI is the fastest option, and you might even experiment with increasing the SPI clock rate (in theory it can go up to like 20Mhz); the maximum reliable rate you can achieve will be dependent on the cabling/board and the display itself.</div><div>Since you already have a Teensy 4, I suggest you switch to that. Teensy LC is not easy to source anymore, and the price difference is not worth the loss in performance (4.0 can go up to 1Ghz if needed!). I suspect you will not need it, but if you really want to squeeze out all possible performance from your system, it pays off to look into hardware peripherals such as DMA, which will save you some cycles for transfering data around etc. </div><div>Unfortunately, the protocols for those displays are not always straightforward, so making your own library from the ground up might be too much of a hassle (plus, you are locking yourself with a single display controller). Some let you update only parts of the display, rather than refresh the whole matrix every time, although it's not always laid out in a convenient manner. A common approach is to build your menu screens in a way that will avoid drawing stuff if it does not change, such as the title of a menu, decorative graphics etc.</div><div>Using a display as feedback is awesome, however don't forget you can use LEDs and toggle buttons as feedback mechanisms as well. Updating a series of LEDs driven by a shift register is super fast (and you can use it with the SPI you have currently, just sacrificing an extra GPIO for chip select) and could save you some space and computation time on your display. Plus, lights look cool!</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 16 Jun 2024 at 03:49, Benjamin Tremblay via Synth-diy <<a href="mailto:synth-diy@synth-diy.org">synth-diy@synth-diy.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I’ve been working on some virtual synth code, and also learning how to send nrpn midi messages. It’s all going well but for midi controller and synth projects I envision a paged Oled display with virtual knob animation and maybe a touchscreen. <br>
What kind of hardware do I need for this? I purchased 2” and 3” displays from Amazon and tried out sample code on an arduino mega and then ran it on a Teensy LC.  I have a teensy 4 and a pico and some Stm32F401 boards. <br>
I am using the Adafruit gfx library and so far using an offscreen canvas is too slow.<br>
Should I use a 1-bit display? Repainting the screens is sluggish; maybe 2fps max. Should I use a faster SPI implementation? I know teensy LC is slow. Should I use another graphics library? <br>
I’m going to assume displays are nice for things like waveform editing and such. I have seen some fast oscilloscope demos on Oled displays. <br>
Hm.<br>
<br>
Benjamin Tremblay<br>
________________________________________________________<br>
This is the Synth-diy mailing list<br>
Submit email to: <a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
View archive at: <a href="https://synth-diy.org/pipermail/synth-diy/" rel="noreferrer" target="_blank">https://synth-diy.org/pipermail/synth-diy/</a><br>
Check your settings at: <a href="https://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" target="_blank">https://synth-diy.org/mailman/listinfo/synth-diy</a><br>
Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><br>
</blockquote></div>