I have built an oscilloscope using a Feather M0 and 3.5 inch tft display (pid:2050). You can see it in operation at https://www.youtube.com/watch?v=s2gPyz4bXjo. I realize I could get a Chinese kit cheaper than even the cost of the display but what fun would that have been.
I’m pretty happy with the way it is right now but I want to take the scope to the next level. The current problem I’m trying to address has to do with showing individual points across the screen. When looking at a relatively slow-moving signal it is satisfactory to put a pixel at each location representing the time value and the voltage value. But if the signal has a high slew rate (relative to the sweep speed) the voltage at “this” point in time can be quite a bit different that the voltage at the previous point in time. This makes for pixels that are quite a distance apart and thus a display that is difficult to see. I believe the solution is to draw a line between the points rather than just lighting up individual points.
Trouble is drawing lines seems really slow. I’m using SPI since I don’t have the pins to use the 8-bit interface. I’m using SW SPI since my early speed testing showed SW to be quicker. But when I went back to look over my speed testing I rediscovered when I draw individual points SW SPI is indeed faster. But if I draw a line, HW SPI is faster (as long as the line is straight). A straight line is one that has either x1==x2 or y1==y2. I understand that the HX8357 library takes advantage of features of the controller chip that allow drawing n consecutive points faster than n individual points. What I don’t understand is why there would be a difference in speed advantage of SW SPI vs HW SPI for lines vs points.
3.5″ TFT 320×480 + Touchscreen Breakout Board w/MicroSD Socket – HXD8357D: Add some jazz & pizazz to your project with a color touchscreen LCD. This TFT display is big (3.5″ diagonal) bright (6 white-LED backlight) and colorful! 480×320 pixels with individual RGB pixel control, this has way more resolution than a black and white 128×64 display, and double our 2.8″ TFT. As a bonus, this display has a resistive touchscreen attached to it already, so you can detect finger presses anywhere on the screen. Read more.
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.