<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OLED Graphic Displays on Embedded Systems Development</title><link>https://applied-ee.github.io/embedded/docs/screens-displays/oled-graphic-displays/</link><description>Recent content in OLED Graphic Displays on Embedded Systems Development</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://applied-ee.github.io/embedded/docs/screens-displays/oled-graphic-displays/index.xml" rel="self" type="application/rss+xml"/><item><title>SSD1306 — The Ubiquitous OLED</title><link>https://applied-ee.github.io/embedded/docs/screens-displays/oled-graphic-displays/ssd1306-basics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/screens-displays/oled-graphic-displays/ssd1306-basics/</guid><description>&lt;h1 id="ssd1306--the-ubiquitous-oled"&gt;SSD1306 — The Ubiquitous OLED&lt;a class="anchor" href="#ssd1306--the-ubiquitous-oled"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The SSD1306 is to OLEDs what the HD44780 is to character LCDs — the one that shows up first in every embedded project. These tiny monochrome OLED modules (usually 0.96&amp;quot; at 128x64 or 0.91&amp;quot; at 128x32) appear in every &amp;ldquo;getting started with displays&amp;rdquo; tutorial for good reason: they&amp;rsquo;re cheap (often under $3), need no backlight since OLEDs are self-emitting, have excellent contrast, and work over I²C with just four wires. For small status displays, sensor readouts, or debug output, they&amp;rsquo;re hard to beat.&lt;/p&gt;</description></item><item><title>SH1106 &amp; Other Controllers</title><link>https://applied-ee.github.io/embedded/docs/screens-displays/oled-graphic-displays/sh1106-and-alternatives/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/screens-displays/oled-graphic-displays/sh1106-and-alternatives/</guid><description>&lt;h1 id="sh1106--other-controllers"&gt;SH1106 &amp;amp; Other Controllers&lt;a class="anchor" href="#sh1106--other-controllers"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The SSD1306 gets all the attention, but it&amp;rsquo;s not the only OLED controller out there. The SH1106 is probably the second most common, and there are a handful of others worth knowing about — especially beyond the 128x64 monochrome sweet spot. Understanding the differences matters because using the wrong driver for a controller produces garbled output or nothing at all, and the modules often look physically identical.&lt;/p&gt;</description></item><item><title>Framebuffer Strategies for Small OLEDs</title><link>https://applied-ee.github.io/embedded/docs/screens-displays/oled-graphic-displays/framebuffer-strategies/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/screens-displays/oled-graphic-displays/framebuffer-strategies/</guid><description>&lt;h1 id="framebuffer-strategies-for-small-oleds"&gt;Framebuffer Strategies for Small OLEDs&lt;a class="anchor" href="#framebuffer-strategies-for-small-oleds"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;On a desktop, allocating a framebuffer is trivial — but on a microcontroller with 2-20KB of RAM, a 1024-byte buffer for a 128x64 monochrome display is a meaningful chunk of total memory. For larger or grayscale displays, the buffer grows fast. How drawing and flushing and flushing pixels to the display has real implications for both RAM usage and update speed.&lt;/p&gt;
&lt;h2 id="full-framebuffer"&gt;Full Framebuffer&lt;a class="anchor" href="#full-framebuffer"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The simplest approach: allocate a buffer in RAM that mirrors the entire display contents. Draw everything into the buffer using the graphics library, then flush the whole thing to the display in one transfer. For a 128x64 monochrome OLED, that&amp;rsquo;s 1024 bytes — very manageable on most modern MCUs. The advantage is simplicity: pixels can be drawn in any order, text layered over graphics, and the library handles all the pixel math in RAM before anything touches the bus.&lt;/p&gt;</description></item></channel></rss>