There's a good reason why those tiny OLED displays are popping up all over the place. They are inexpensive, simple to program, and have a pleasing appearance. I was interested in finding out how much current they consumed so that I could better plan for battery-powered projects.
Materials & Techniques:
A low-cost multimeter (with a manual scale and an assumed accuracy of +/-10% at worst)
There are several different OLED displays (72x40, 96x16, 128x32, 64x32, 128x64-0.96, 128x64-1.3) to choose from.
Microcontroller (Adafruit nRF52840 Feather Express) and software (my ss_oled library) for use with an Arduino compatible board.
What about OLED displays that are both color and grayscale?
On Twitter, someone requested that I include a brief test of these small oled display. I could tell that the power consumption was high because the controller chip gets hot to the touch even when there isn't much to see on the screen. Unfortunately, my SSD1351 color OLED is no longer available for testing, but I do have an SSD1327 128x128 4-bit grayscale display to use in its place. Using the 'off' setting on the display, I measured 600uA. I measured the following values when the contrast (brightness) was set to its maximum setting:
Every pixel is off or black on the display when it is filled with color (0 - 2.5mA).
86mA is required to fill the display with color.
111mA is required to fill the display with color 2.
147mA is required to fill the display with color 3.
The color 15 was displayed on the screen after the display was reset due to a sagging 3.3v power supply.
In general, when compared to the monochrome SSD1306 displays, the display requires significantly more current to achieve the same pixel brightness.
What about the concept of active data writing?
In addition to the increased activity on the display controller, when the SCL or SDA lines are brought low, there will be current leaking through the pullup resistors. Pullup resistors for these displays are typically 4.7KOhm, which means that when the data and clock lines are active, approximately 700uA (3.3V / 4700 ohms) will leak through the resistors. I attempted a test in which I continuously wrote the same data to the display (using the same display and text as previously). According to the results, the reading was 1.47mA. Different pullup resistors, as well as different data being written, will yield a variety of different outcomes.