OLEDscope Demonstrates That Vector-Based Displays Are Not Limited to CRTs Anymore!

Single-pixel images drawn on a 128x128 OLED by a 10-cent 32-bit RISC-V microcontroller.

baldengineer
10 months ago Displays

A 128x128 pixel OLED matrix is an inexpensive display option. Typically, the controllers perform a raster scan to provide a persistence of vision effect. Two embedded hackers, Charles Lohr and Görg Pflug, found ways to (ab)use an SSD1306 controller to create an OLED-based vectorscope.

Analog oscilloscopes are CRTs that draw voltage waveforms across the vertical (X-axis) while sweeping across time (Y-axis.) A vectorscope is similar, but it does not sweep. Instead, it drives the electron beam to a specific x and y coordinate pair. By moving the beam rapidly, both instruments create a persistence of vision (POV) display.

(Note: Analog and modern digital oscilloscopes often have an "X-Y mode" that operates similarly to a vectorscope.)

Lohr and Soor's method of driving these OLED screens is very similar to this analog display technique. In OLEDscope's case, a single pixel is active like the beam of a CRT's electron gun. A microcontroller updates the screen while moving the pixel around to draw images, giving a similar POV effect to analog displays.

Görg Pflug "Spacewar" demo

Pflug's original hack worked on the SSD1306 controller used by 64-by-64 pixel displays. Lohr took that effort in a different direction and found the SSD1327 has a similar, but undocumented, register/mode suitable for 128 by 128 OLEDs. To draw the images, Lohr picked the MCU-CH32V003 from WCH. This 10-cent microcontroller has a 32-bit RISC-V core and runs up to 48 MHz.

The CH32V003 seems to be a favorite of Lohr. For example, we previously covered Lohr's software-defined flyback for a Nixie tube. In that project, a FET and transformer generated the high voltage necessary to drive the Nixie tube with a CH32V003 microcontroller serving as a software-based closed-loop flyback controller.

One reason for using the CH32V003 is because it supports USB through a software-based stack (also created by Lohr). This functionality means the OLED Vectorscope can interact with a PC to receive data for its display via WebHID. This site has a simulation of the display with some examples.

Frame-by-frame (POV happens even with the camera!)

Currently, the OLED Vectorscope draws images at 16 kilohertz. But Lohr believes there might be a way to update the display faster. If you have ideas on updating these registers or want to grab the source code, check out the OLEDscope GitHub repository.

baldengineer

Electronics enthusiast, Bald Engineer, and freelance content creator. AddOhms on YouTube. KN6FGY.

Latest Articles