Pushing Limits: 30 FPS Video on SSD1106 OLED Display with Arduino Nano
Components and supplies
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Apps and online services
![]() |
| |||
![]() |
|
About this project
I wanted to push the limits of the OLED display. The SSD1106 is usually used for displaying text and some animations for simple projects. I wanted to see if real-time video could be streamed to the display. There were a lot of hurdles faced in this project. The most limiting factor was the bandwidth of the LED - micro-controller interface. I had to overclock the SPI connection to 2MHz using a fast and optimized library to be able to get enough bandwidth to transmit video. The UART interface that is used to receive the video from the computer runs at 1MHZ.
Another problem is that the OLED displays only have two colors, off and on. You cannot get gray scale video out of it. I tried to use dithering to get the illusion of shaded of gray. It works pretty good in my opinion. Let me know what you think of the project!
Code
Project Code
Upload the arduino code to the nano and use the python code to stream video to the display.https://github.com/SaadOjo/SSD1106_monitorSchematics
Connect the arduino to the display as shown
Manufacturing process
- Liquid Crystal Display (LCD): Technology, Manufacturing, and Future Outlook
- New HDMI‑APIX3 Converter Empowers Automotive Video & ADAS Testing
- How to Install the Kuman 3.5″ TFT Display on RetroPie – Step‑by‑Step Guide
- Build a Classic Pong Game on Arduino UNO with OLED Display – Step‑by‑Step Tutorial
- Display JPEG Photos and RGB565 Video on a 2.8″ TFT SPI Display with Arduino Nano
- Real-Time Arduino Weather Clock: OLED Display for Time, Date & Temperature
- Compact Programmable Pocket Power Supply with OLED Display – Arduino Compatible
- Build a Credit‑Card‑Sized Arduboy Clone with Arduino Nano & I2C OLED
- Build a Digital Settlers of Catan Dice with Arduino UNO & LCD Display
- Arduino UNO: Distance Measurement Using HC‑SR04 Ultrasonic Sensor and Adafruit OLED Display



