Comparison of 3 different techniques for driving an SPI OLED display. The Adafruit SSD1306 library, the u8glib and some code I threw together myself.
https://github.com/adafruit/Adafruit_SSD1306
https://code.google.com/p/u8glib/
Arduino sketches used in this video:
Adafruit sketch: http://hastebin.com/awiwiwatas.avrasm
u8glib sketch: http://hastebin.com/mefuhayega.coffee
Julian's sketch: http://hastebin.com/irivukulef.coffee
font.h: http://hastebin.com/wizowutuji.vala (this font file is required by Julian's code and sits in the same folder as the .ino file)
https://github.com/adafruit/Adafruit_SSD1306
https://code.google.com/p/u8glib/
Arduino sketches used in this video:
Adafruit sketch: http://hastebin.com/awiwiwatas.avrasm
u8glib sketch: http://hastebin.com/mefuhayega.coffee
Julian's sketch: http://hastebin.com/irivukulef.coffee
font.h: http://hastebin.com/wizowutuji.vala (this font file is required by Julian's code and sits in the same folder as the .ino file)
I wonder if we can drive a SPI display with I2C interface?
How you connect this oled?
Do you know a driver SSD1306 for AVR but not ARDUINO? I dont work with arduino
Sketches links are dead.
Nowadays, there's an Arduino "ss_oled" library by Lary Bank that runs even faster (4ms latency, 250 fps on i2c interface, 1 MHZ). It also includes many useful font styles and sizes, text wrap feature, text scrolling, drawing graphics and so on… ;-))
I'd be curious if you could do this refresh rate test again with current versions of the libraries to see if they have been optimized to run faster after 6 years.
I know this is a very old video but I noticed that Julian is using Software SPI with the Adafruit library.
With Hardware SPI I get around 4500.
Brilliant subbed!
muito obrigado
Have a look at the SPI speed…
I2C is slow but SPI can be very fast.
Using an MCU that can do DMA and getting the DMA to feed the SPI for the data transfer also means it can happen in background while you do other stuff.
where I can get upir lib? the links do not work anymore…
I can't find your code in hastebin any more…. any chance we can have it somewhere else? π π π
when you use static unsigned long can you put register in there?
what speed is the spi set to?
Why does it need to be super fast, are you aiming at playing Fortnite on it?
FYI – updating a 128×32 OLED using 8MHz SPI on a pic32mx takes 1.24ms. So I guess your 128×64 should take about 2.5ms to refresh.
Does the greater amount of text printed in the first test (as compared to the second) make the first run slower?