Drivers for OLED displays and portable GUI

Discuss development of drivers for external hardware and components, such as LCD screens, sensors, motor drivers, etc.
Target audience: Users and developers of drivers.
User avatar
Posts: 4940
Joined: Fri Jul 18, 2014 8:01 am
Location: UK

Re: Drivers for OLED displays and portable GUI

Post by pythoncoder » Sun Jan 24, 2021 9:19 am

Now also supports a couple of monochrome ePaper displays:
No, I haven't built a seismograph - this is just a mockup. And I know seismograph data doesn't actually look like this sinc function...
Peter Hinch

Posts: 11
Joined: Sun Jan 03, 2021 10:15 am

Re: Drivers for OLED displays and portable GUI

Post by rahmed » Sun Jan 24, 2021 1:06 pm

pythoncoder wrote:
Mon Sep 24, 2018 8:21 am
This nanogui project is intended to provide a simple GUI and graph plotting module portable to any display whose driver is subclassed from framebuf and which meets some other very simple requirements. The GUI is aimed at the display of sensor data. It has no provision for user input which must be handled in the application. To save RAM it uses 8 bit colour. Widgets are drawn using graphics primitives and hence may be scaled to very small displays.

If user input is required the official LCD160CR display with touch overlay should be used, with a GUI available here or for large 4.3" SSD1963 displays this one.

Display drivers are provided for Adafruit 1.5, 1.27 and 0.96 inch colour OLED displays. There is also the official SSD1306 driver for monochrome OLED displays. These may be used:
  • Alone (inheriting the framebuf graphics primitives).
  • With the CWriter class to display text in arbitrary fonts and colours.
  • Or with nanogui which builds on the CWriter class.
Some sample images. Small OLED displays are hard to photograph well. In practice they are very good with clear colours and extreme contrast. The following are samples from the test scripts running on a Pyboard with a 1.27" Adafruit display.

The meter levels, LED text strings and colours change dynamically as the data changes.

Analog clock. The widget is actually capable of displaying vectors of varying length, as straight line pointers or as arrows.

The plot module displaying analog data being captured in (slow) real time.

The Nokia 5110 with this driver may also be used with the monochrome Writer class to display arbitrary fonts, but the resolution of these displays is probably inadequate for the GUI.
Thank you for the update and I will give it a try

Post Reply