It usually takes a bit of work to gain confidence when it comes to using new parts. [Glitch] got his hands on this OLED display which is manufactured by Sabernetics and wanted to give it a whirl before building a project around it. He grabbed his Bus Pirate to help learn the ins and outs of the new part.
The 96×16 Dot-Matrix display uses the i2c protocol, keeping the pin count really low (six pins for: ground, reset, clock, data, chip select, and voltage). Since the Bus Pirate gives you command-line-like access to i2c it’s a natural choice for a first test. In fact, the tool has been our go-to device for that protocol for most projects.
The first commands sent are configuration values for the SSD1306 that drives the display. These configure contrast, voltage conversion, and other important values necessary to power on the display. It sprung to life, showing random pixels since the RAM had not yet been initialized. With that success [Glitch] moved on to the Bus Pirate’s scripting capabilities and ended up with a Python script that drives the demo seen above. Now that he knows the commands he needs, it’ll be a lot easier to write code for a microcontroller driver.
Hello from Saratoga Springs, NY!
Hello from Wingdale, NY
Hallo from Guilderland NY!
chip select on i2c?
do you mean it works with SPI or is this pin just an address bit to put… 2 displays together?
I still want one
@Icarus: Glitch is correct the I2C protocol has a fixed address. So in order to use multiple devices I added the chip select pin.
I do have extras available for sale. http://sabernetics.com/store/0-84-oled-display-96×16/
@FrankTheCat: hey, we’re nearly neighbors!
@icarus: it’s just an active-low chip select, completely independent of the I2C protocol. It can be driven with GPIO or decoded address signals for multiple devices sharing the same I2C address.
I believe Sabernetics has more of the display modules available for sale.
RPI?
I’m still suprised at how good OLED screens look.
The contrast reminds me of printed paper.