Skip to content

rburanyi/SSD1306

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C Library for SSD1306 0.96" OLED display

SSD1306 Description

Detailed information are described in Datasheet SSD1306.

Library

C library is aimed for driving 0.96" OLED display with SSD1306 driver 128x64 or 128x32 version through TWI's (I2C). Settings for particular versions:

  • 128x64 version
    • command argument SSD1306_SET_MUX_RATIO set to 0x3F (ssd1306.c)
    • command argument SSD1306_COM_PIN_CONF set to 0x12 (ssd1306.c)
    • END_PAGE_ADDR set to 7 (ssd1306.h)
  • 128x32 version
    • command argument SSD1306_SET_MUX_RATIO set to 0x1F (ssd1306.c)
    • command argument SSD1306_COM_PIN_CONF set to 0x02 (ssd1306.c)
    • END_PAGE_ADDR set to 3 (ssd1306.h)

Versions

  • 1.0.0 - basic functions. The first publication.
  • 2.0.0 - more changes:
  • 3.0.0 - simplified alphanumeric version
    • displaying alphanumeric characters
    • for one display applicable
    • only few RAM bytes consumption
    • !!! no graphic functions like drawLine

Dependencies

Font.c can be modified according to application requirements with form defined in font.c. Maximal permissible horizontal dimension is 8 bits.

Usage

Prior defined for MCU Atmega328p / Atmega8 / Atmega16. Need to be carefull with TWI ports definition.

PORT Atmega16 Atmega8 / Atmega328
SCL PC0 PC5
SDA PC1 PC4

Tested

Library was tested and proved with 0.96″ 128x64 and 128x32 OLED Display (SSD1306 driver) and Atmega328p.

Init OLED Sequence

Init sequence OLED display was defined according to page 64 (next to last page) of Datasheet SSD1306.

// +---------------------------+
// |      Set MUX Ratio        |
// +---------------------------+
// |        0xA8, 0x3F         |
// +---------------------------+
//              |
// +---------------------------+
// |    Set Display Offset     |
// +---------------------------+
// |        0xD3, 0x00         |
// +---------------------------+
//              |
// +---------------------------+
// |  Set Display Start Line   |
// +---------------------------+
// |          0x40             |
// +---------------------------+
//              |
// +---------------------------+
// |     Set Segment Remap     |
// +---------------------------+
// |       0xA0 / 0xA1         |
// +---------------------------+
//              |
// +---------------------------+
// |   Set COM Output Scan     |
// |        Direction          |
// +---------------------------+
// |       0xC0 / 0xC8         |
// +---------------------------+
//              |
// +---------------------------+
// |   Set COM Pins hardware   |
// |       configuration       |
// +---------------------------+
// |        0xDA, 0x02         |
// +---------------------------+
//              |
// +---------------------------+
// |   Set Contrast Control    |
// +---------------------------+
// |        0x81, 0x7F         |
// +---------------------------+
//              |
// +---------------------------+
// | Disable Entire Display On |
// +---------------------------+
// |          0xA4             |
// +---------------------------+
//              |
// +---------------------------+
// |    Set Normal Display     |
// +---------------------------+
// |          0xA6             |
// +---------------------------+
//              |
// +---------------------------+
// |    Set Osc Frequency      |
// +---------------------------+
// |       0xD5, 0x80          |
// +---------------------------+
//              |
// +---------------------------+
// |    Enable charge pump     |
// |        regulator          |
// +---------------------------+
// |       0x8D, 0x14          |
// +---------------------------+
//              |
// +---------------------------+
// |        Display On         |
// +---------------------------+
// |          0xAF             |
// +---------------------------+

Functions

Demonstration version v1.0.0

Demonstration version v2.0.0

Demonstration version v3.0.0

Acknowledgement

Links

About

C library for SSD1306 OLED Driver

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 95.9%
  • Makefile 3.8%
  • Shell 0.3%