{"id":29476,"date":"2020-02-10T15:50:14","date_gmt":"2020-02-10T07:50:14","guid":{"rendered":"\/blog\/?p=29476"},"modified":"2021-03-15T18:26:30","modified_gmt":"2021-03-15T10:26:30","slug":"how-to-use-arduino-oled-i2c-display-with-ssd1306","status":"publish","type":"post","link":"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/","title":{"rendered":"How to use Arduino OLED I2C Display with SSD1306 \/ SSD1315"},"content":{"rendered":"\n<p>The SSD1306 is a popular choice when it comes to picking an OLED 128\u00d764 I2C display to use alongside an Arduino. However, there are other options in the OLED family as well. In today&#8217;s post, we&#8217;ll be introducing the Arduino OLED display options available here at Seeed and providing a simple tutorial on how to get started with using an OLED I2C Display Module! <\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1030\" height=\"601\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2021\/03\/Week-8-11-1030x601.png\" alt=\"\" class=\"wp-image-41388\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-1030x601.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-300x175.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-768x448.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-1536x896.png 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-2048x1195.png 2048w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-1024x597.png 1024w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure><\/div>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Lets get started with a quick introduction to the SSD1306!<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Introduction to the SSD1306 OLED Display Chip<\/strong><\/h2>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2021\/03\/httpsstatics3.seeedstudio.comseeedimg2017-03vxjhoffztxnsjnqc3civdouq.jpg\" alt=\"\" class=\"wp-image-41380\" width=\"500\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/httpsstatics3.seeedstudio.comseeedimg2017-03vxjhoffztxnsjnqc3civdouq.jpg 700w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/httpsstatics3.seeedstudio.comseeedimg2017-03vxjhoffztxnsjnqc3civdouq-300x225.jpg 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption><a href=\"https:\/\/www.seeedstudio.com\/Raspberry-Pi-0-91-OLED-Display-Module.html\">Raspberry Pi 0.91&#8217;OLED Display Module<\/a> (SSD1306)<\/figcaption><\/figure><\/div>\n\n\n\n<p>The SSD1306 is a 128&#215;64 dot single chip driver with a controller that&#8217;s used for graphic display systems. It&#8217;s commonly integrated into OLED display modules like the one seen above for Arduino, Raspberry Pi, or other microcontroller usages. <\/p>\n\n\n\n<p>With embedded colour contrast and brightness control, alongside display RAM, oscillator, the SSD1306 is a chip that not only consumes minimal power, but also does not require many external components for functionality!<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Other features include:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Internal Charge Pump Regulator <\/li><li>RAM Write Synchronisation Signal<\/li><li>Programmable Frame Rate with Multiplexing Ratio<\/li><li>On-chip Oscillator <\/li><li>Wide Operating Temperatures (-40\u00baC to 85\u00baC)<\/li><\/ul>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><em><strong>Note:<\/strong> The features and specifications may differ based on the design of the display modules which are integrated with the SSD1306.<\/em><\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Interested to find out more about this chip? Read more in the <a aria-label=\" (opens in a new tab)\" href=\"https:\/\/cdn-shop.adafruit.com\/datasheets\/SSD1306.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">SSD1306 Datasheet <\/a>and its relevant libraries!<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Alternative OLED Display Modules at Seeed<\/strong><\/h2>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Here at Seeed, we only carry an <a href=\"https:\/\/www.seeedstudio.com\/Raspberry-Pi-0-96-OLED-Display-Module.html?utm_source=blog&amp;utm_medium=blog\">SSD1306 OLED Display Module for the Raspberry Pi<\/a>, which can be easily paired with a <a href=\"https:\/\/www.seeedstudio.com\/Raspberry-Pi-4-Computer-Model-B-4GB-p-4077.html\">Raspberry Pi<\/a> through it&#8217;s GPIO pins. If you&#8217;re looking for an OLED Display for your Arduino projects, however, don&#8217;t worry as we carry other similar options that are worth checking out!<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong><a href=\"https:\/\/www.seeedstudio.com\/Grove-OLED-Display-0-96-SSD1315-p-4294.html\">Grove &#8211; OLED Display 0.96&#8243; (SSD1315)<\/a><\/strong><\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2021\/03\/Grove-OLED-Display-0.9622-SSD1315-1-1030x773.jpg\" alt=\"\" class=\"wp-image-41390\" width=\"500\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Grove-OLED-Display-0.9622-SSD1315-1-1030x773.jpg 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Grove-OLED-Display-0.9622-SSD1315-1-300x225.jpg 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Grove-OLED-Display-0.9622-SSD1315-1-768x577.jpg 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Grove-OLED-Display-0.9622-SSD1315-1-1024x769.jpg 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Grove-OLED-Display-0.9622-SSD1315-1.jpg 1400w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><figcaption><a href=\"https:\/\/www.seeedstudio.com\/Grove-OLED-Display-0-96-SSD1315-p-4294.html\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">Grove &#8211; OLED Display 0.96&#8243; (SSD1315)<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<p>If you&#8217;re looking for the closest alternative to the SSD1306, we have here the Grove &#8211; OLED Display 0.96&#8243; that uses the SSD1315 chip. Updated from the older module that used the older SSD1308 chip, this new OLED display module features improved performance at just a quarter the price of its predecessor.<\/p>\n\n\n\n<p><strong>Here are some features offered by this OLED display module:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>3.3V \/ 5V Compatible<\/li><li>Configurable I2C address<\/li><li>Low Power Consumption<\/li><li>Monochrome (White) 128\u00d764 Pixels<\/li><li>High Contrast &amp; Brightness<\/li><li>Wide Operating Temperatures (-40\u2103 to 85\u2103)<\/li><\/ul>\n\n\n\n<p>To learn more about the Grove &#8211; OLED Display 0.96&#8243;, visit its product page <a href=\"https:\/\/www.seeedstudio.com\/Grove-OLED-Display-0-96-SSD1315-p-4294.html\">here<\/a>!<\/p>\n\n\n\n<p><em><strong>Note: <\/strong>You can still pair this OLED display with the SSD1306 <a href=\"https:\/\/github.com\/adafruit\/Adafruit-GFX-Library\" target=\"_blank\" rel=\"noreferrer noopener\">sample Arduino code<\/a> but it may only work intermittently. Because of this, we&#8217;ve provided our very own tutorial with sample code, which you will find later in this article!<\/em><\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.seeedstudio.com\/Grove-OLED-Display-1-12-V2.html?utm_source=blog&amp;utm_medium=blog\" target=\"_blank\" rel=\"noreferrer noopener\">Grove &#8211; OLED Display 1.12&#8221; V2<\/a><\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2021\/03\/httpsstatics3.seeedstudio.comseeedfile2018-01bazaar696800_img_5488a-1030x773.jpg\" alt=\"\" class=\"wp-image-41381\" width=\"500\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/httpsstatics3.seeedstudio.comseeedfile2018-01bazaar696800_img_5488a-1030x773.jpg 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/httpsstatics3.seeedstudio.comseeedfile2018-01bazaar696800_img_5488a-300x225.jpg 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/httpsstatics3.seeedstudio.comseeedfile2018-01bazaar696800_img_5488a-768x576.jpg 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/httpsstatics3.seeedstudio.comseeedfile2018-01bazaar696800_img_5488a-1024x768.jpg 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/httpsstatics3.seeedstudio.comseeedfile2018-01bazaar696800_img_5488a.jpg 1400w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><figcaption><a aria-label=\" (opens in a new tab)\" href=\"https:\/\/www.seeedstudio.com\/Grove-OLED-Display-1-12-V2.html?utm_source=blog&amp;utm_medium=blog\" target=\"_blank\" rel=\"noreferrer noopener\"> Grove &#8211; OLED Display 1.12&#8221; V2<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<p>Looking for something small with a higher resolution and pixel speed? Well, look no further. The Grove &#8211; OLED Display 1.12&#8243; V2 is the one for you! With increased I2C bus speeds of up to 200kHz, this OLED display module allows you to take advantage of extremely quick pixels speeds for high refresh display purposes.<\/p>\n\n\n\n<p>The Grove &#8211; OLED Display 1.12&#8243; V2 is based on the SH1107G chip, which like the SSD1306, requires no backlight usage. As a result, you&#8217;ll be able to enjoy high contrast and brightness while keeping power consumption to a minimum!<\/p>\n\n\n\n<p><strong>Here are some features offered by this OLED display module:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>128\u00d7128 Resolution in Grayscale<\/li><li>Grove Compatible I2C Interface<\/li><li>High Maximum I2C Bus Speed of 200kHz<\/li><\/ul>\n\n\n\n<p>To find out more, check out its product page <a href=\"https:\/\/www.seeedstudio.com\/Grove-OLED-Display-1-12-V2.html\">here!<\/a><\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">OLED I2C Display Tutorial with Arduino<\/h2>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>We&#8217;ve provided our OLED I2C Display modules for your selection but now its time to learn how to actually use them with an Arduino! For today&#8217;s simple tutorial to help you get started, we&#8217;ll be using the Grove &#8211; OLED Display 0.96&#8243; (SSD1315)!<\/p>\n\n\n\n<p><em><strong>Note: <\/strong>The Grove &#8211; OLED Display 0.96&#8243; is also supported on other platforms like the Raspberry Pi, Beaglebone, and LinkIt ONE. For each of their tutorials, please refer to our Wiki page <a href=\"https:\/\/wiki.seeedstudio.com\/Grove-OLED-Display-0.96-SSD1315\/\">here<\/a>!<\/em><\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Required Materials<\/strong><\/h3>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>To follow along with today&#8217;s tutorial, you&#8217;ll need the following items!<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.seeedstudio.com\/Seeeduino-V4-2-p-2517.html\">Seeeduino V4.2<\/a><\/li><li><a href=\"https:\/\/www.seeedstudio.com\/Base-Shield-V2.html\">Grove Base Shield V2.0 for Arduino<\/a><\/li><li><a href=\"https:\/\/www.seeedstudio.com\/Grove-OLED-Display-0-96-SSD1315-p-4294.html\">Grove OLED Display 0.96&#8243; (SSD1315)<\/a><\/li><\/ul>\n\n\n\n<p>Seeeduino is Seeed\u2019s very own Arduino board, designed with relative benefits over the original. If you do not wish to purchase a Seeeduino, this tutorial is still applicable for the following Arduino boards: Arduino UNO, Arduino Mega, Arduino Leonardo, Arduino 101, Arduino Due<\/p>\n\n\n\n<p>You can also use any Grove-compatible Arduino system that has I2C interface capabilities, such as the <a href=\"https:\/\/www.seeedstudio.com\/Wio-Terminal-p-4509.html\">Wio Terminal<\/a>, or the <a href=\"https:\/\/www.seeedstudio.com\/Seeeduino-XIAO-Pre-Soldered-p-4747.html\">Seeeduino XIAO <\/a>with its <a href=\"https:\/\/www.seeedstudio.com\/Grove-Shield-for-Seeeduino-XIAO-p-4621.html\">Grove Shield<\/a> or <a href=\"https:\/\/www.seeedstudio.com\/Seeeduino-XIAO-Expansion-board-p-4746.html\">Expansion Board<\/a>.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Hardware Assembly<\/strong><\/h3>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Step 1:<\/strong> Plug Grove-Base Shield into Seeeduino<\/p>\n\n\n\n<p><strong>Step 2:<\/strong> Plug the Grove OLED Display 0.96&#8243; into any I2C port on your device.<\/p>\n\n\n\n<p><strong>Step 3:<\/strong> Connect your device to PC via a USB cable.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>If you are using the Seeeduino V4.2 with its Grove Base Shield, you should have something like this:<\/strong><\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2021\/03\/connection-1.png\" alt=\"\" class=\"wp-image-41383\" width=\"768\" height=\"503\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/connection-1.png 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/connection-1-300x196.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/connection-1-768x503.png 768w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Software Configuration with Arduino Code and Library<\/strong><\/h3>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong><strong>Step 1.<\/strong>&nbsp;<\/strong>Navigate to&nbsp;Sketch&nbsp;-&gt;&nbsp;Include Library&nbsp;-&gt;&nbsp;Manage Libraries&#8230; . Search for and Install&nbsp;<code>U8g2<\/code>&nbsp;library in the&nbsp;Library Manager.<\/p>\n\n\n\n<p><strong>Step 2:<\/strong> Open the Arduino IDE and create a new file, then copy the following code into the new file.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;Arduino.h&gt;\n#include &lt;U8g2lib.h&gt;\n \n#ifdef U8X8_HAVE_HW_SPI\n#include &lt;SPI.h&gt;\n#endif\n#ifdef U8X8_HAVE_HW_I2C\n#include &lt;Wire.h&gt;\n#endif\n \n \nU8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, \/* clock=*\/ SCL, \/* data=*\/ SDA, \/* reset=*\/ U8X8_PIN_NONE);  \/\/ High speed I2C\n \n\/\/ U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, \/* clock=*\/ SCL, \/* data=*\/ SDA, \/* reset=*\/ U8X8_PIN_NONE);    \/\/Low spped I2C\n \nvoid setup(void) {\n  u8g2.begin();\n}\n \nvoid loop(void) {\n  u8g2.clearBuffer();                   \/\/ clear the internal memory\n  u8g2.setFont(u8g2_font_ncenB08_tr);   \/\/ choose a suitable font\n  u8g2.drawStr(0,10,\"Hello World!\");    \/\/ write something to the internal memory\n  u8g2.sendBuffer();                    \/\/ transfer internal memory to the display\n  delay(1000);  \n}<\/code><\/pre>\n\n\n\n<div style=\"height:9px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Step 3: <\/strong>Upload the code to your Arduino device. If you&#8217;re unsure on how to upload the code, kindly check <a href=\"http:\/\/wiki.seeedstudio.com\/Upload_Code\/\">here<\/a>.<\/p>\n\n\n\n<p>And that&#8217;s all for this tutorial! You should now see &#8220;Hello World&#8221; on the screen, like below.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2021\/03\/result.png\" alt=\"\" class=\"wp-image-41384\" width=\"700\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/result.png 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/result-300x225.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/result-768x576.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Going Further with Graphics Libraries<\/h3>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>OLED Displays aren&#8217;t just useful for displaying text &#8211; you can also display shapes and even produce animations by refreshing the screen quickly! To do these, we will usually employ the help of graphics libraries, like U8g2.<\/p>\n\n\n\n<p>U8g2 is a monochrome graphics library for embedded devices. U8g2 supports monochrome OLEDs and LCDs, which includes the SSD1315. The U8g2 also conveniently includes U8x8 library:<\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>U8g2<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Includes all graphics procedures (line\/box\/circle draw).<\/li><li>Supports many fonts. (Almost) no restriction on the font height.<\/li><li>Requires some memory in the microcontroller to render the display.<\/li><\/ul>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>U8x8<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Text output only (character) device.<\/li><li>Only fonts allowed with fit into a 8&#215;8 pixel grid.<\/li><li>Writes directly to the display. No buffer in the microcontroller required.<\/li><\/ul>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>For more details, kindly visit the&nbsp;<a href=\"https:\/\/github.com\/olikraus\/u8g2\/wiki\">U8g2 Library Wiki<\/a>&nbsp;as well as the&nbsp;<a href=\"https:\/\/github.com\/olikraus\/u8g2\/wiki\/u8g2reference\">U8g2 API Reference<\/a>&nbsp;page.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Summary<\/strong><\/h2>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>That\u2019s all for today\u2019s guide on SSD1306, alongside other OLED Displays and how you can use it with any Arduino platform. With this, I hope that you get a basic understanding of how you can get started with using OLED I2C Displays for your next Arduino project!<\/p>\n\n\n\n<p>If you\u2019re looking for modules that provide easy Arduino interfacing, do consider our recommendations!<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The SSD1306 is a popular choice when it comes to picking an OLED 128\u00d764 I2C<\/p>\n","protected":false},"author":2850,"featured_media":41388,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[1690,1691],"class_list":["post-29476","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-arduino-oled","tag-arduino-oled-i2c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to use Arduino OLED I2C Display with SSD1306 \/ SSD1315 - Latest News from Seeed Studio<\/title>\n<meta name=\"description\" content=\"Learn about Arduino OLED display modules including those based on the popular SSD1306 in this article, complete with a tutorial to get started!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use Arduino OLED I2C Display with SSD1306 \/ SSD1315 - Latest News from Seeed Studio\" \/>\n<meta property=\"og:description\" content=\"Learn about Arduino OLED display modules including those based on the popular SSD1306 in this article, complete with a tutorial to get started!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/\" \/>\n<meta property=\"og:site_name\" content=\"Latest News from Seeed Studio\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-10T07:50:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-15T10:26:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11.png\" \/>\n\t<meta property=\"og:image:width\" content=\"3000\" \/>\n\t<meta property=\"og:image:height\" content=\"1750\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Shawn\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shawn\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/\",\"name\":\"How to use Arduino OLED I2C Display with SSD1306 \/ SSD1315 - Latest News from Seeed Studio\",\"isPartOf\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11.png\",\"datePublished\":\"2020-02-10T07:50:14+00:00\",\"dateModified\":\"2021-03-15T10:26:30+00:00\",\"author\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/c9b61b761840d544e2d830b0e3bc9fe2\"},\"description\":\"Learn about Arduino OLED display modules including those based on the popular SSD1306 in this article, complete with a tutorial to get started!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/#primaryimage\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11.png\",\"contentUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11.png\",\"width\":3000,\"height\":1750},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.seeedstudio.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use Arduino OLED I2C Display with SSD1306 \/ SSD1315\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/\",\"name\":\"Latest News from Seeed Studio\",\"description\":\"Emerging IoT, AI and Autonomous Applications on the Edge\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/c9b61b761840d544e2d830b0e3bc9fe2\",\"name\":\"Shawn\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5afdc71205d9d485de69bc4b192294e3?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5afdc71205d9d485de69bc4b192294e3?s=96&r=g\",\"caption\":\"Shawn\"},\"url\":\"https:\/\/www.seeedstudio.com\/blog\/author\/shawn\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to use Arduino OLED I2C Display with SSD1306 \/ SSD1315 - Latest News from Seeed Studio","description":"Learn about Arduino OLED display modules including those based on the popular SSD1306 in this article, complete with a tutorial to get started!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/","og_locale":"en_US","og_type":"article","og_title":"How to use Arduino OLED I2C Display with SSD1306 \/ SSD1315 - Latest News from Seeed Studio","og_description":"Learn about Arduino OLED display modules including those based on the popular SSD1306 in this article, complete with a tutorial to get started!","og_url":"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/","og_site_name":"Latest News from Seeed Studio","article_published_time":"2020-02-10T07:50:14+00:00","article_modified_time":"2021-03-15T10:26:30+00:00","og_image":[{"width":3000,"height":1750,"url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11.png","type":"image\/png"}],"author":"Shawn","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Shawn","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/","url":"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/","name":"How to use Arduino OLED I2C Display with SSD1306 \/ SSD1315 - Latest News from Seeed Studio","isPartOf":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/#primaryimage"},"image":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/#primaryimage"},"thumbnailUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11.png","datePublished":"2020-02-10T07:50:14+00:00","dateModified":"2021-03-15T10:26:30+00:00","author":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/c9b61b761840d544e2d830b0e3bc9fe2"},"description":"Learn about Arduino OLED display modules including those based on the popular SSD1306 in this article, complete with a tutorial to get started!","breadcrumb":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/#primaryimage","url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11.png","contentUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11.png","width":3000,"height":1750},{"@type":"BreadcrumbList","@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/02\/10\/how-to-use-arduino-oled-i2c-display-with-ssd1306\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.seeedstudio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use Arduino OLED I2C Display with SSD1306 \/ SSD1315"}]},{"@type":"WebSite","@id":"https:\/\/www.seeedstudio.com\/blog\/#website","url":"https:\/\/www.seeedstudio.com\/blog\/","name":"Latest News from Seeed Studio","description":"Emerging IoT, AI and Autonomous Applications on the Edge","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/c9b61b761840d544e2d830b0e3bc9fe2","name":"Shawn","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5afdc71205d9d485de69bc4b192294e3?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5afdc71205d9d485de69bc4b192294e3?s=96&r=g","caption":"Shawn"},"url":"https:\/\/www.seeedstudio.com\/blog\/author\/shawn\/"}]}},"modified_by":"Jonathan Tan","views":44145,"featured_image_urls":{"full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11.png",3000,1750,false],"thumbnail":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-80x80.png",80,80,true],"medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-300x175.png",300,175,true],"medium_large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-768x448.png",640,373,true],"large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-1030x601.png",640,373,true],"1536x1536":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-1536x896.png",1536,896,true],"2048x2048":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-2048x1195.png",2048,1195,true],"visody_icon":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11.png",32,19,false],"magazine-7-slider-full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-1536x1020.png",1536,1020,true],"magazine-7-slider-center":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-936x897.png",936,897,true],"magazine-7-featured":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-1024x597.png",1024,597,true],"magazine-7-medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-720x380.png",720,380,true],"magazine-7-medium-square":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/03\/Week-8-11-675x450.png",675,450,true]},"author_info":{"display_name":"Shawn","author_link":"https:\/\/www.seeedstudio.com\/blog\/author\/shawn\/"},"category_info":"<a href=\"https:\/\/www.seeedstudio.com\/blog\/category\/news\/\" rel=\"category tag\">News<\/a>","tag_info":"News","comment_count":"0","_links":{"self":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/29476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/users\/2850"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/comments?post=29476"}],"version-history":[{"count":8,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/29476\/revisions"}],"predecessor-version":[{"id":41391,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/29476\/revisions\/41391"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media\/41388"}],"wp:attachment":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media?parent=29476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/categories?post=29476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/tags?post=29476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}