Main Content

Interfacing SSD1306 Based I2C 128x64 OLED Module With ATtiny85 Without Frame Buffer in Assembly Code

First of all, this is not another Arduino Sketch or Project. The Assembly Language fascinates me and I am using it to write codes for different Industrial control solutions. Previously, I did not work with any Graphic Display modules. Getting some leisure time due to lockdown, I started playing with this cheap OLED module. Initially, I started the project using ATmega32A but migrated to ATtiny85 to lower its power consumption for being able to run it through 4-20mA current loop found in the industries.

The following components have been used to build the project:

Electronic Components:
SSD1306 128x64 I2C OLED Display Module - 1 no.
ATtiny85 in DIP-8 package - 1 no.
8-pin DIP IC base - 2 nos.
6mm Tactile Push-button - 4 nos.
3”x2” Generic PCB - 1 no.
Resistor (4.7K) - 6 nos.
Resistor (10K) - 1 no.
10-pin FRC Shrouded Male Header - 1 no.
Male Single Row Straight Berg Strip (2.54mm) - 4 pins
Female Single Row Straight Berg Strip (2.54mm) - 4 pins
Male Single Row 90 degree Berg Strip (2.54mm) - 2 pins
Single Strand Wire - 0.2 mtr. (approx.)

Tools:
Multimeter
Soldering Iron and Solder Wire
Wire Cutters
Tweezers
USBasp AVR programmer

Software:
AVR Studio 4
MikroElectronika GLCD Font Creator ver 1.2
PROGISP ver 1.72”

Link to article