I’m currently doing a project that uses a tiny SSD1306 based OLED display. I’ve searched all over the internet but couldn’t actually find any data on current measurements done by people so I thought I’d do a couple and put them up here!
The OLED I’m using is a standard 128×64 pixel version that can be found on every and any cheap electronics website anywhere (ahem eBay and Aliexpress) and the drivers are common everywhere. I’m using the initialization values from BuyDisplay.
I tested the OLED display with contrast on both ends of the spectrum (0x01 and 0x7F) along with various screen fills (0%, 25%, 50%, 75% and 100%) and varying clock speeds. This allowed me to see the relationships between current consumption and operation.
I used a 4.7ohm shunt resistor (measured at 4.5ohm) along side an STM32F0 Discovery board and an unbranded 0.96″ OLED display using the SSD1306 which I previously bought on eBay. It is worth noting that measurements were taken statically i.e. the memory buffer inside the SSD1306 was filled and no further data was sent. This was to minimize the effects of the SPI clock toggling though of course, current consumption will increase during memory writes. I used a Tenma 72-10410 for shunt resistor voltage measurements.
The current is pretty linearly proportional!
Current for contrast at 0x7F (mA) = 0.054124*ScreenFill + 1.444
Current for contrast at 0x01 (mA) = 0.047538*ScreenFill + 1.397
Both of these equations have R-squared values of 0.999+.
As can be seen, quiescent current is near identical for both contrasts. I also tested at various internal frequencies though this made less of a pronounced effect on the results. I’ve attached my results spreadsheet for those interested though current consumption can be worked out pretty accurately using the best fit equations above.