User Tools

Site Tools


arduino:displays_for_classic_arduinos:tiny_oled_displays_and_classic_arduinos

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
arduino:displays_for_classic_arduinos:tiny_oled_displays_and_classic_arduinos [2018/01/28 04:19]
mithat [Libraries]
arduino:displays_for_classic_arduinos:tiny_oled_displays_and_classic_arduinos [2018/01/28 06:08] (current)
mithat
Line 1: Line 1:
-====== Small OLED Displays and the Arduino Uno ======+====== Tiny OLED displays and classic Arduinos ======
  
 ===== Summary evaluation ===== ===== Summary evaluation =====
  
-Very small 128x64 OLED display modules offering both SPI and I2C interfaces via SSD1306 controller have been around for a few years. The most popular size is [[https://www.ebay.com/sch/i.html?_odkw=0.96oled+ssd1306&_osacat=0&_from=R40&_trksid=p2045573.m570.l1313.TR0.TRC0.H0.X0.96+oled+ssd1306.TRS0&_nkw=0.96+oled+ssd1306&_sacat=0 | 0.96"]], but a larger [[https://www.ebay.com/sch/i.html?_odkw=oled+ssd1306&_osacat=0&_from=R40&_trksid=p2045573.m570.l1313.TR0.TRC0.A0.H0.X1.3%22+oled+ssd1306+.TRS1&_nkw=1.3%22+oled+ssd1306+&_sacat=0|1.3"]] version is also available. They are priced very reasonably, and owing to their small physical size they offer high DPI. Since they are monochrome devices, the expected data load they present to the microcontroller is, unlike TFT displays, relatively low.+Very small 128x64 OLED display modules offering both SPI and I2C interfaces via an SSD1306 controller IC have been around for a few years. The most popular size is [[https://www.ebay.com/sch/i.html?_odkw=0.96oled+ssd1306&_osacat=0&_from=R40&_trksid=p2045573.m570.l1313.TR0.TRC0.H0.X0.96+oled+ssd1306.TRS0&_nkw=0.96+oled+ssd1306&_sacat=0 | 0.96"]], but a larger [[https://www.ebay.com/sch/i.html?_odkw=oled+ssd1306&_osacat=0&_from=R40&_trksid=p2045573.m570.l1313.TR0.TRC0.A0.H0.X1.3%22+oled+ssd1306+.TRS1&_nkw=1.3%22+oled+ssd1306+&_sacat=0|1.3"]] version is also available. They are priced very reasonably, and owing to their small physical size they offer high DPI. Since they are monochrome devices, the expected data load they present to the microcontroller is, unlike TFT displays, relatively low.
  
-The 1.3" size in particular is an attractive alternative to the [[arduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos|Nokia 5110 display]] as a display that isn't surplus and offers a more modern appearance. They are also a promising alternative to [[arduino:displays_for_classic_arduinos:1.8_and_1.44_tft_displays_and_classic_arduinos|1.8" and 1.44" TFT displays]], whose data requirements leaves speed wanting with the wimpy little Uno/Nano/Pro Mini.+The 1.3" size in particular is an attractive alternative to the [[arduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos|Nokia 5110 display]] in that it isn't surplus and offers a more modern appearance. They are also a promising alternative to [[arduino:displays_for_classic_arduinos:1.8_and_1.44_tft_displays_and_classic_arduinos|1.8" and 1.44" TFT displays]], whose data requirements leaves speed wanting with the wimpy little Uno/Nano/Pro Mini.
  
-In the tests that follow, I am striving to answer first whether the rendering updates will be fast enough for reasonable use and second whether there will be any memory left to do anything interesting. They are certainly fast enough, but the required program storage and dynamic memory space isn't trivial.+In the tests that follow, I am striving to answer first whether the rendering updates will be fast enough for reasonable use and second whether there will be any memory left to do anything interesting. 
 + 
 +They are certainly fast enough, but the required program storage and dynamic memory isn't trivial.
  
 ===== Tests ===== ===== Tests =====
  
-There are more libraries than the ones below available for the SSD1306 interface IC. I only used these because results for the [[arduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos|Nokia 5110 displays]] give us an idea regarding how various libraries might scale. Both tests were done with a 16 MHz 5V Nano using a module I ordered from an Asian source.((The modules are purported to be 5V tolerant, but you might want to use level shifters anyway if you're going to use a 5V board.)) I only tested the SPI interface. I2C interfaces are expected to be slower, but they might still be fast enough.+There are more libraries than the ones below available for the SSD1306 interface IC. I only used these because results for the [[arduino:displays_for_classic_arduinos:nokia_5110_displays_and_classic_arduinos|Nokia 5110 display]] give us an idea regarding how various libraries might scale. Both tests were done with a 16 MHz 5V Nano using a module I ordered from an Asian source.((The modules are purported to be 5V tolerant, but you might want to use level shifters anyway if you're going to use a 5V board.)) I only tested the SPI interface. I2C interfaces are expected to be slower, but they might still be fast enough.
  
 ==== U8g2 ==== ==== U8g2 ====
  
 Oli Kraus' [[https://github.com/olikraus/u8g2/wiki | U8g2]] is intended to be a common platform for interfacing to a whole bunch of different monochrome displays. It supports the SSD1306 controller chip out of the box. Oli Kraus' [[https://github.com/olikraus/u8g2/wiki | U8g2]] is intended to be a common platform for interfacing to a whole bunch of different monochrome displays. It supports the SSD1306 controller chip out of the box.
 +
 +The frame update time of 76 ms with a 16 MHz processor (the inverse of the fps noted in the [[ display_SSD1306_OLED_u8g2.ino | source code]]) is respectable, and 
 +character change artifacts are not objectionable. Memory use is on the order of 46% of program storage space and 28% of dynamic memory on a Nano.
  
 The flickering seen in the video isn't present in real life. The flickering seen in the video isn't present in real life.
  
-FIXME video+{{youtube>tFJz17VbPao?560x315&rel=0}}
  
 [[display_SSD1306_OLED_u8g2.ino | source code]] [[display_SSD1306_OLED_u8g2.ino | source code]]
Line 25: Line 30:
 ==== U8glib ==== ==== U8glib ====
  
-Before there was U8g2, there was [[https://github.com/olikraus/u8glib/wiki | U8glib]]. While this version of the library is no longer maintained, it doesn't mean it doesn't have value. It's constructors are a little less bewildering than U8g2 and so may be better suited to beginners. +Before there was U8g2, there was [[https://github.com/olikraus/u8glib/wiki | U8glib]]. While this version of the library is no longer maintained, it doesn't mean it doesn't have value. It's constructors are a little less bewildering than U8g2 and so may be better suited to beginners
 + 
 +The frame update time of FIXME with a 16 MHz processor (the inverse of the fps noted in the [[ display_SSD1306_OLED_u8glib.ino | source code]]) is respectable, and  
 +character change artifacts are not objectionable. Memory use is on the order of 56% of program storage space and 13% of dynamic memory on a Nano.
  
 The flickering seen in the video isn't present in real life. The flickering seen in the video isn't present in real life.
  
-FIXME video+{{youtube>Vt-n3HNQwLA?560x315&rel=0}}
  
 [[display_SSD1306_OLED_u8glib.ino | source code]] [[display_SSD1306_OLED_u8glib.ino | source code]]
arduino/displays_for_classic_arduinos/tiny_oled_displays_and_classic_arduinos.1517113189.txt.gz · Last modified: 2018/01/28 04:19 by mithat