<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>DIY Tiny OLED I2C full graphics controller</title>
        <description>This describes a little DIY project I did for building a I2C based tiny full graphic controller using the SSD1306 128x64 OLED display.

This OLED display comes in two sizes, 0.96&quot; and 1.3&quot;, and can be ordered on eBay for a few dollars.  So far I only have the 0.96&quot; version, but I have now ordered the 1.3&quot; version.  Fortunately, the SSD1306 interface is already supported in U8GLIB, so no programming is needed, just some configuation changes.  Since the OLED display uses the I2C, only 4 wires (VCC, GND, SCL, SDA) are needed for the display itself.  Add to that the 3 signals for the rotary encoder plus one signal for an (optional!) piezo buzzer, to a total need for only 8 wires.  I found this especially useful for the Sanguinololu, where not so many additional pins are available.  

Other advantages of the OLED display are that is really bright, does not need any fiddling with the contrast, only draws a total current of about 8mA and, last but not least, works with either 5V or 3.3V supply and signals - the latter being particularly interesting for ARM based controller boards.

For building the controller you need the following:
[list]
[*] an SSD1306 I2C 128x64 OLED display (available as 0.96&quot; or 1.3&quot; versions)
[*] a rotary encoder with integrated click switch
[*] a piezo buzzer (optional, just for audible feedback of click)
[*] a piece of prototype PCB board (about 1.5&quot;x2.5&quot; is enough)
[*] some wires and pin headers
[/list]

Here first the schematic how I wired the components and connected them to either RAMPS or Sanguinololu...

[img]http://forums.reprap.org/file.php?157,file=53178,filename=tinyoled.jpg[/img]
... a photo of the working display controller
[img]http://forums.reprap.org/file.php?157,file=53173,filename=tinyoled-1.jpg[/img]
... the front and back of the prototype board
[img]http://forums.reprap.org/file.php?157,file=53174,filename=tinyoled-2.jpg[/img]
[img]http://forums.reprap.org/file.php?157,file=53175,filename=tinyoled-3.jpg[/img]
... connected to the RAMPS
[img]http://forums.reprap.org/file.php?157,file=53177,filename=tinyoled-5.jpg[/img]
... and to the Sanguinololu
[img]http://forums.reprap.org/file.php?157,file=53176,filename=tinyoled-4.jpg[/img]

The modifications to Marlin are only minimal changes in the files [i]Configuration.h[/i], [i]Conditionals.h[/i], [i]dogm_lcd_implementation.h[/i], [i]pins_SANGUINOLOLU_11.h[/i] and [i]pins_RAMPS_13.h[/i].  The attached patch file contains all the changes needed to the current version 1.0.3 of Marlin.

For those wanting printing from an SD-card (I don&#039;t), it is easy to add one of these cheap SPI based micro-SD modules that can be ordered on eBay for less than 2$, since the standards SPI pins used for the SD-cards are left untouched by the OLED display.  Here pictures of my test using the tiny OLED controller together with an micro-SDcard module, on both RAMPS and Sanguinololu:

[img]http://forums.reprap.org/file.php?13,file=53238,filename=tinyoled-6.jpg[/img]
[img]http://forums.reprap.org/file.php?13,file=53239,filename=tinyoled-7.jpg[/img]


I know, buying a ready made 2004 or full graphic LCD controller is so cheap today, that you won&#039;t save any money by building things yourself.   But that was not my aim for this project, rather my goal was (other than the fact that I really like tinkering) to have something really small, need only a minimum of cabling, draws only little current and is also working on 3.3V...</description>
        <link>https://reprap.org/forum/read.php?13,499572,499572#msg-499572</link>
        <lastBuildDate>Mon, 10 Aug 2026 22:58:05 -0400</lastBuildDate>
        <generator>Phorum 5.2.23</generator>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,894379#msg-894379</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,894379#msg-894379</link>
            <description><![CDATA[ Configuration.h uncomment the line #define OLED_PANEL_TINYBOY2<br />
#define ENCODER_PULSES_PER_STEP 2<br />
And also:<br />
<br />
#define ENCODER_NOISE_FILTER<br />
#if ENABLED(ENCODER_NOISE_FILTER)<br />
#define ENCODER_SAMPLES 10<br />
#endif<br />
<br />
AUX4 pins <br />
31--ENC<br />
33--BUZ<br />
35--EN1<br />
37--EN2]]></description>
            <dc:creator>saniskycom</dc:creator>
            <category>Controllers</category>
            <pubDate>Wed, 14 Feb 2024 02:23:27 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,894349#msg-894349</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,894349#msg-894349</link>
            <description><![CDATA[ Greetings to all makers<br />
<br />
MARLIN 2.1.2.1<br />
<br />
I have a problem I hope you can help me, I am installing a tinyboy2 but I can not get it to work, with the statement in Configuration.h "<b>#define OLED_PANEL_TINYBOY2</b>" does not work at all, but if I change to "<b>#define U8GLIB_SSD1306</b>" the oled works correctly, but I can not use the encoder and buzzer to navigate through the menu, add the line in <b>Conditionals_LCD.h</b> ...<br />
<br />
//} 128x64 I2C OLED LCDs - SSD1306/SSD1309/SH1106<br />
#if ANY(U8GLIB_SSD1306, U8GLIB_SSD1309, U8GLIB_SH1106)<br />
  #define HAS_U8GLIB_I2C_OLED 1<br />
  #define HAS_WIRED_LCD 1<br />
  #define DOGLCD<br />
<b>+#define IS_ULTIPANEL 1</b><br />
#endif<br />
<br />
The encoder only works the central button to enter the menu but no pin in the AUX4 line does anything, I have checked it, I do not know if I need to assign pins in the ULTIPANEL section or I need to configure some other parameter, it should be noted that I am using the diagram published here, using the 4-pin I2C connector and AUX4 pins 31,33,35,37 for EN1,EN2,BTN,BEEPER, any comments or suggestions are welcome.<br />
<br />
I will leave my code as I have it right now.<br />
<br />
<br />
|Configuration.h|<br />
<br />
//<br />
// SSD1306 OLED full graphics generic display<br />
//<br />
#define U8GLIB_SSD1306<br />
<br />
|Conditionals_LCD|<br />
<br />
//} 128x64 I2C OLED LCDs - SSD1306/SSD1309/SH1106<br />
#if ANY(U8GLIB_SSD1306, U8GLIB_SSD1309, U8GLIB_SH1106)<br />
  #define HAS_U8GLIB_I2C_OLED 1<br />
  #define HAS_WIRED_LCD 1<br />
  #define DOGLCD<br />
  +#define IS_ULTIPANEL 1<br />
#endif<br />
<br />
In <b>pins_RAMP.h</b> I don't have any parameter to configure <b>ULTIPANEL</b> only <b>NEWPANEL</b>, I am not very good at programming, I understand the most essential to configure marlin, I have already done it in 10 machines without any problem but this oled is causing me errors.]]></description>
            <dc:creator>rramirez</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 10 Feb 2024 11:23:48 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,886187#msg-886187</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,886187#msg-886187</link>
            <description><![CDATA[ Now I have modified marlin. The machine will crash and restart when printing with OLED screen, but it can be used normally when connected to the upper computer. Have you encountered it]]></description>
            <dc:creator>cxp297</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 23 Sep 2021 08:28:48 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,884573#msg-884573</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,884573#msg-884573</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>cxp297</strong><br />
Hello, I want to apply OLED screen to my ramps 1.4, but the code structure of marlin 2.0 firmware is too different from that of V1. Although I can implement it on Marlin 1.1.9, it is always wrong in 2.0. Could you give me a modification method for 2.0, including SD card module</div></blockquote>
<br />
Marlin 2.0 already supports these screens. Exactly which configuration options you use depends on which variation you built.]]></description>
            <dc:creator>Timpanogos Slim</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 10 Jun 2021 12:26:07 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,884572#msg-884572</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,884572#msg-884572</link>
            <description><![CDATA[ [<a href="https://www.thingiverse.com/thing:4872869" target="_blank"  rel="nofollow">www.thingiverse.com</a>]]]></description>
            <dc:creator>warpster</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 10 Jun 2021 12:21:18 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,884536#msg-884536</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,884536#msg-884536</link>
            <description><![CDATA[ Hello, I want to apply OLED screen to my ramps 1.4, but the code structure of marlin 2.0 firmware is too different from that of V1. Although I can implement it on Marlin 1.1.9, it is always wrong in 2.0. Could you give me a modification method for 2.0, including SD card module]]></description>
            <dc:creator>cxp297</dc:creator>
            <category>Controllers</category>
            <pubDate>Mon, 07 Jun 2021 07:48:27 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,881471#msg-881471</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,881471#msg-881471</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>Timpanogos Slim</strong><br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>properlypurple</strong><br />
Has anyone tried this on a Creality 4.2.2 board that comes by default on the new Ender3s? I've messed up the lcd trying to explore a color change, and this looks like a great option to build.</div></blockquote>
<br />
The trick is that you would have to find one of the i2c busses on that stm32f1 exposed to a pin header. <br />
<br />
You could build the spi version and connect it to the existing header, maybe with soft spi enabled? not sure.</div></blockquote>
<br />
Thank you! I got the SPI version working with Klipper. Gonna try Marlin now.]]></description>
            <dc:creator>properlypurple</dc:creator>
            <category>Controllers</category>
            <pubDate>Fri, 12 Feb 2021 04:54:40 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,881452#msg-881452</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,881452#msg-881452</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>properlypurple</strong><br />
Has anyone tried this on a Creality 4.2.2 board that comes by default on the new Ender3s? I've messed up the lcd trying to explore a color change, and this looks like a great option to build.</div></blockquote>
<br />
The trick is that you would have to find one of the i2c busses on that stm32f1 exposed to a pin header. <br />
<br />
You could build the spi version and connect it to the existing header, maybe with soft spi enabled? not sure.]]></description>
            <dc:creator>Timpanogos Slim</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 11 Feb 2021 22:51:10 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,881450#msg-881450</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,881450#msg-881450</link>
            <description><![CDATA[ Has anyone tried this on a Creality 4.2.2 board that comes by default on the new Ender3s? I've messed up the lcd trying to explore a color change, and this looks like a great option to build.<br />
<br />
<br />
EDIT<br />
I figured out the pin layout of the lcd cable after a lot of fiddling, and was able to make the display work with Klipper firmware's software SPI. I'll try and get it to work with Marlin, but I don't have high hopes there.]]></description>
            <dc:creator>properlypurple</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 11 Feb 2021 22:15:32 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,881370#msg-881370</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,881370#msg-881370</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>OSSSA</strong><br />
Hello. help me please. I have assembled the display and am unable to apply the patch to my configuration. Here is my machine configuration. Thanks</div></blockquote>
<br />
I don't know what patch you applied and to which version of Marlin, and I can't find any trace of my patches in your <i>Configuration.h</i>.  A good point to start if using Marlin 1.1 is <a href="https://reprap.org/forum/read.php?13,499572,769022#msg-769022" target="_blank" >here</a>.]]></description>
            <dc:creator>enif</dc:creator>
            <category>Controllers</category>
            <pubDate>Tue, 09 Feb 2021 04:24:10 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,881246#msg-881246</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,881246#msg-881246</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>OSSSA</strong><br />
Hello. help me please. I have assembled the display and am unable to apply the patch to my configuration. Here is my machine configuration. Thanks</div></blockquote>
<br />
Good grief. Why are you using marlin 1.x in 2021? <br />
<br />
Don't. Download marlin 2.0, transcribe your configuration file to the new version, compile that. No patch needed.]]></description>
            <dc:creator>Timpanogos Slim</dc:creator>
            <category>Controllers</category>
            <pubDate>Fri, 05 Feb 2021 16:59:59 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,881244#msg-881244</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,881244#msg-881244</link>
            <description><![CDATA[ Hello. help me please. I have assembled the display and am unable to apply the patch to my configuration. Here is my machine configuration. Thanks]]></description>
            <dc:creator>OSSSA</dc:creator>
            <category>Controllers</category>
            <pubDate>Fri, 05 Feb 2021 15:31:55 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,880144#msg-880144</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,880144#msg-880144</link>
            <description><![CDATA[ FYI, my SKR 1.4 crashes randomly without U8G_I2C_OPT_FAST and of course shifts the display with it. <br />
<br />
This turns out to be a known issue in marlin with no resolution in sight. <br />
<br />
[<a href="https://github.com/MarlinFirmware/Marlin/issues/14431" target="_blank"  rel="nofollow">github.com</a>]]]></description>
            <dc:creator>Timpanogos Slim</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 03 Jan 2021 21:07:20 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,879686#msg-879686</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,879686#msg-879686</link>
            <description><![CDATA[ Oh i see. In the appropriate section of ultralcd_DOGM.h, change "#define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST)" to #define U8G_PARAM (U8G_I2C_OPT_NONE)"]]></description>
            <dc:creator>Timpanogos Slim</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 17 Dec 2020 22:56:44 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,879616#msg-879616</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,879616#msg-879616</link>
            <description><![CDATA[ Over the weekend i cobbled my own controller with an sh1106 1.3" display based on diagrams and information here. Will be using it with an skr 1.3<br />
<br />
I'm using marlin 2.0.7.2 and noted the OLED_PANEL_TINYBOY2, which works except for it is for ssd1306. Pretty sure i made the correct change in the u8g conditionals for that. <br />
<br />
I'm unsure where to remove U8G_I2C_OPT_FAST?<br />
<br />
Edit: Do not edit the u8g conditionals. Just #define U8GLIB_SH1106 instead of OLED_PANEL_TINYBOY2]]></description>
            <dc:creator>Timpanogos Slim</dc:creator>
            <category>Controllers</category>
            <pubDate>Mon, 14 Dec 2020 23:43:35 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,879298#msg-879298</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,879298#msg-879298</link>
            <description><![CDATA[ Issues (vertical shifting and crashing) are solved on my side by slowing down I2C to 100kHz instead of 400kHz (default in u8glib).<br />
<br />
Just remove the option U8G_I2C_OPT_FAST (where ? depends on the display)<br />
<br />
Horizontal shifting is simply related with the OLED. The 1.30" is a SH_1106, not a SSD1306.]]></description>
            <dc:creator>yet-another-average-joe</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 03 Dec 2020 20:43:13 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,879100#msg-879100</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,879100#msg-879100</link>
            <description><![CDATA[ Hi,<br />
<br />
I'm experiencing weird issues with OLED displays on a brand new SKR 1.4 Turbo. I tested with two OLEDs (0.96 and 1.3) and a rotary encoder. These parts are known good. I played a lot with them, developping my own menu library for Arduino.<br />
<br />
With the 0.96", the display is perfect. With the 1.3", I get the "shift bug". As far as I know, these modules have pullups on SCK and SDA. Never had such a problem with Arduinos and STM32s using u8_glib and u8_glib2 with OLEDs.<br />
<br />
Other issue : the encoder does nothing. It is connected as it has to be, but nothing. No menu. I use the pins 2 &amp; 9 on EXP1 (=GND &amp; 0.28), and 2, 6 &amp; 8 on EXP2 (= GND, 3.25 &amp; 3.26). These pins are defined by default in pins_BTT_SKR_V_1.4.h :<br />
<br />
<pre class="bbcode">
#define BTN_ENC                        EXPA1_09_PIN  // (58) open-drain
#define BTN_EN1                        EXPA2_08_PIN  // (31) J3-2 &amp; AUX-4
#define BTN_EN2                        EXPA2_06_PIN  // (33) J3-4 &amp; AUX-4</pre>
<br />
EXPA1_09_PIN == P0_28<br />
EXPA2_08_PIN == P3_26<br />
EXPA2_06_PIN == P3_25<br />
<br />
(according to Intellisense in VSCode)<br />
<br />
I configured Marlin with just "#define U8GLIB_SSD1306", and got it to show on the OLED (perfect on the 0.96", shifted on the 1.3). CouId there be some timing issues ?<br />
<br />
No idea what parameters to play with, I2C or encoder.<br />
<br />
t seems the OP's work has been pulled (?).<br />
<br />
I'm missing something, but I can't figure...<br />
<br />
New fact : even the 0.96" shifts, but not at boot time.<br />
<br />
<br />
<br />
[EDIT] ***STUPID ME*** : OLED_PANEL_TINYBOY...]]></description>
            <dc:creator>yet-another-average-joe</dc:creator>
            <category>Controllers</category>
            <pubDate>Tue, 24 Nov 2020 22:05:05 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,876010#msg-876010</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,876010#msg-876010</link>
            <description><![CDATA[ Well, here's mine. I *think* I managed to fix it by adding a 4.7kohm resistor to both SDA and SCL to VCC.. at least, the issue has not returned since.<br />
[attachment 116392 IMG_20200811_182107.jpg]<br />
<br />
Edit: Nope.. once the steppers run, it slips again.]]></description>
            <dc:creator>Arakon</dc:creator>
            <category>Controllers</category>
            <pubDate>Tue, 11 Aug 2020 12:27:32 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,875985#msg-875985</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,875985#msg-875985</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>enif</strong><br />
@ Johetan:<br />
<br />
When trying to make my Tiny OLED work under Marlin 2.0.5.3 with the BigTreeTech BTT SKR V1.4, I ran into the same problem as you with that shifted display. I also tried all kind of remedies, such as the ones you tried as well, but with no success...<br />
<br />
Finally I looking at the file <i>Marlin/src/HAL/LPC1768/u8g/u8g_com_HAL_LPC1768_ssd_hw_i2c.cp</i>, I saw that there were some commented out statements, which looked as if the developer left them in, not being sure that they should really be removed... So I decommented them, recompiled and uploaded.  It's now already a few hours running - and so far no shift in the OLED display :-)<br />
<br />
Here are the changes I made in <i>Marlin/src/HAL/LPC1768/u8g/u8g_com_HAL_LPC1768_ssd_hw_i2c.cp</i>,:<br />
<pre class="bbcode">
85,86c85,86
&lt; //#define I2C_CMD_MODE  0x080
&lt; #define I2C_CMD_MODE    0x000
---
&gt; #define I2C_CMD_MODE  0x080
&gt; //#define I2C_CMD_MODE    0x000
137c137
&lt;       //u8g-&gt;pin_list[U8G_PI_SET_A0] = 1;
---
&gt;       u8g-&gt;pin_list[U8G_PI_SET_A0] = 1;
147c147
&lt;       // u8g_i2c_stop();
---
&gt;       u8g_i2c_stop();
151c151
&lt;         //u8g-&gt;pin_list[U8G_PI_SET_A0] = 1;
---
&gt;         u8g-&gt;pin_list[U8G_PI_SET_A0] = 1;
166c166
&lt;       // u8g_i2c_stop();
---
&gt;       u8g_i2c_stop();
170c170
&lt;         //u8g-&gt;pin_list[U8G_PI_SET_A0] = 1;
---
&gt;         u8g-&gt;pin_list[U8G_PI_SET_A0] = 1;
184c184
&lt;       // u8g_i2c_stop();
---
&gt;       u8g_i2c_stop();</pre>
<br />
Let's see if this really solves the problem for good...</div></blockquote>
<br />
I'm using an SSD1306 based OLED on an SKR 1.4 Turbo.. unfortunately, I get the line shifting too, and making these changes doesn't make any difference. Has anyone found a fix yet?<br />
<br />
Edit: I found this: [<a href="https://www.reddit.com/r/arduino/comments/6vl01w/ssd1306_oled_display_pushes_everything_down_one/" target="_blank"  rel="nofollow">www.reddit.com</a>]<br />
Not really a solution, but it explains why it happens, at least..]]></description>
            <dc:creator>Arakon</dc:creator>
            <category>Controllers</category>
            <pubDate>Mon, 10 Aug 2020 15:44:10 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,875669#msg-875669</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,875669#msg-875669</link>
            <description><![CDATA[ Thank you, it worked]]></description>
            <dc:creator>Evans</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 30 Jul 2020 15:02:34 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,875658#msg-875658</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,875658#msg-875658</link>
            <description><![CDATA[ @Evans:<br />
Ooops - from your reply I gather that you must be referring to the initial patch in the very first message of this (old) thread.<br />
Please try the modifications I posted in September 2018  <a href="https://reprap.org/forum/read.php?13,499572,834463#msg-834463" target="_blank" >speciafically for version 1.1.9</a>...]]></description>
            <dc:creator>enif</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 30 Jul 2020 07:51:58 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,875635#msg-875635</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,875635#msg-875635</link>
            <description><![CDATA[ I didn't add the patch cause there was no dogm_lcd_implementation. h file in marlin 1.1.9 I tried adding it to the ULTRALCD_IMPL_DOGM. h file but it would bring up alot of compilation errors and when I fixed them the oled didn't work, I commented the patch  and uncommented #defineU8GLIB_SSD1306 in configuration.h the oled lcd worked but the encoder didn't, I would like to know how to enable the encoder to scroll through the menu and the lcd times out so if you  could please help me fix both problems]]></description>
            <dc:creator>Evans</dc:creator>
            <category>Controllers</category>
            <pubDate>Wed, 29 Jul 2020 11:13:22 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,875619#msg-875619</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,875619#msg-875619</link>
            <description><![CDATA[ @Evans:<br />
Strange... I also use Marlin 1.1.9 and the rotary encoder works without problems.<br />
When you rotate the encoder, does this change the flow percentage?<br />
Could you give us some more information on your setup, and may be photos?]]></description>
            <dc:creator>enif</dc:creator>
            <category>Controllers</category>
            <pubDate>Wed, 29 Jul 2020 05:01:45 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,875604#msg-875604</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,875604#msg-875604</link>
            <description><![CDATA[ Hallo<br />
I have an issue in marlin 1.1.9 the patch file doesnt work on marlin 1.1.9 and the lcd does work if you enable  #u8glib Ssd1306  but the rotary encoder doesn't  go to the menu  can someone help with how to make the whole control board work on marlin 1.1.9, thanks in advance]]></description>
            <dc:creator>Evans</dc:creator>
            <category>Controllers</category>
            <pubDate>Wed, 29 Jul 2020 00:07:48 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,874594#msg-874594</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,874594#msg-874594</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>flow</strong><br />
First try failed to connect SCL and SDA to pin D20 and D21 with VCC and GND in AUX3 as well.</div></blockquote>
<br />
May be you mixed up the two signals? If I am not mistaken, D20 should be connected to SDA and D21 to SCL.]]></description>
            <dc:creator>enif</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 05 Jul 2020 06:31:33 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,874547#msg-874547</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,874547#msg-874547</link>
            <description><![CDATA[ This week I finally got the BTT SKR V1.3 board, which I ordered a loooong time ago.  It's very similar to the V1.4 board, but -unfortunately!- the SCL and SDA signals are not available on a dedicated I2C header.  Instead, these pins are used for the STEP and DIR signals of the second extruder E1.  However, if you only use one extruder E0, then you can use the Tiny OLED display in the same way with tV1.4 , which I explained <a href="https://reprap.org/forum/read.php?13,499572,871519#msg-871519" target="_blank" >a few messages above</a>. Here is the way I connected my Tiny OLED to the SKR V1.3:<br />
  <br />
<div id="div_c8c2e9f591824f90ead55c3f7687b8af"
     class="mod_embed_images_extended"
     style="width:533px">

  

    
      
    

    <div id="imagediv_c8c2e9f591824f90ead55c3f7687b8af" class="mod_embed_images_image"
         style="width:533px; height:400px">

    

    <a href="https://reprap.org/forum/file.php?157,file=116061,filename=BBT-SKR1-V13-TINYOLED.png">
        <img src="/forum/thumbcache/45b/6b3/c39/f97/e1d/302/fe4/7be/bac/d57/d9_800x400.png"
             width="533"
             height="400"
             id="image_c8c2e9f591824f90ead55c3f7687b8af"
             alt=""
             title=""/>
    </a>

    

    </div>

    <div class="mod_embed_images_info " id="info_c8c2e9f591824f90ead55c3f7687b8af"
      style="display:block">
      <a id="link_c8c2e9f591824f90ead55c3f7687b8af" href="https://reprap.org/forum/file.php?157,file=116061,filename=BBT-SKR1-V13-TINYOLED.png"></a>
    </div>

  

 </div>


<script type="text/javascript">
mod_embed_images_loadimage('c8c2e9f591824f90ead55c3f7687b8af', '/forum/thumbcache/45b/6b3/c39/f97/e1d/302/fe4/7be/bac/d57/d9_800x400.png', 'https://reprap.org/forum/file.php?157,file=116061,filename=BBT-SKR1-V13-TINYOLED.png', 'https://reprap.org/forum/addon.php?13,module=embed_images,check_scaling=1,url=https%3A%2F%2Freprap.org%2Fforum%2Ffile.php%3F157%2Cfile%3D116061%2Cfilename%3DBBT-SKR1-V13-TINYOLED.png', '', 874547, 800, 400, 'Loading image ...', false);
</script>
<br />
<br />
<div id="div_9c699cf8fcdf40b06dd0839de6b93af8"
     class="mod_embed_images_extended"
     style="width:533px">

  

    
      
    

    <div id="imagediv_9c699cf8fcdf40b06dd0839de6b93af8" class="mod_embed_images_image"
         style="width:533px; height:400px">

    

    <a href="https://reprap.org/forum/file.php?157,file=116059,filename=BTTSKR13-1.jpg">
        <img src="/forum/thumbcache/484/3ad/581/476/d13/9ec/97d/5a5/d18/9c1/5b_800x400.png"
             width="533"
             height="400"
             id="image_9c699cf8fcdf40b06dd0839de6b93af8"
             alt=""
             title=""/>
    </a>

    

    </div>

    <div class="mod_embed_images_info " id="info_9c699cf8fcdf40b06dd0839de6b93af8"
      style="display:block">
      <a id="link_9c699cf8fcdf40b06dd0839de6b93af8" href="https://reprap.org/forum/file.php?157,file=116059,filename=BTTSKR13-1.jpg"></a>
    </div>

  

 </div>


<script type="text/javascript">
mod_embed_images_loadimage('9c699cf8fcdf40b06dd0839de6b93af8', '/forum/thumbcache/484/3ad/581/476/d13/9ec/97d/5a5/d18/9c1/5b_800x400.png', 'https://reprap.org/forum/file.php?157,file=116059,filename=BTTSKR13-1.jpg', 'https://reprap.org/forum/addon.php?13,module=embed_images,check_scaling=1,url=https%3A%2F%2Freprap.org%2Fforum%2Ffile.php%3F157%2Cfile%3D116059%2Cfilename%3DBTTSKR13-1.jpg', '', 874547, 800, 400, 'Loading image ...', false);
</script>
<div id="div_be4bb526eaf883bac7a9df5e9e7ad504"
     class="mod_embed_images_extended"
     style="width:533px">

  

    
      
    

    <div id="imagediv_be4bb526eaf883bac7a9df5e9e7ad504" class="mod_embed_images_image"
         style="width:533px; height:400px">

    

    <a href="https://reprap.org/forum/file.php?157,file=116060,filename=BTTSKR13-2.jpg">
        <img src="/forum/thumbcache/718/720/46c/5be/128/406/adf/cb7/a7f/806/0b_800x400.png"
             width="533"
             height="400"
             id="image_be4bb526eaf883bac7a9df5e9e7ad504"
             alt=""
             title=""/>
    </a>

    

    </div>

    <div class="mod_embed_images_info " id="info_be4bb526eaf883bac7a9df5e9e7ad504"
      style="display:block">
      <a id="link_be4bb526eaf883bac7a9df5e9e7ad504" href="https://reprap.org/forum/file.php?157,file=116060,filename=BTTSKR13-2.jpg"></a>
    </div>

  

 </div>


<script type="text/javascript">
mod_embed_images_loadimage('be4bb526eaf883bac7a9df5e9e7ad504', '/forum/thumbcache/718/720/46c/5be/128/406/adf/cb7/a7f/806/0b_800x400.png', 'https://reprap.org/forum/file.php?157,file=116060,filename=BTTSKR13-2.jpg', 'https://reprap.org/forum/addon.php?13,module=embed_images,check_scaling=1,url=https%3A%2F%2Freprap.org%2Fforum%2Ffile.php%3F157%2Cfile%3D116060%2Cfilename%3DBTTSKR13-2.jpg', '', 874547, 800, 400, 'Loading image ...', false);
</script>
<br />
<br />
As for the changes in the Marlin firmware, I applied exactly the same changes as <a href="https://reprap.org/forum/read.php?13,499572,871519#msg-871519" target="_blank" >explained abovefor the V1.4</a> to the Marlin download Marlin-bugfix-2.0.x-SKR13 from Big Tree Tech. With these changes, I got, after some minutes, again the <a href="https://reprap.org/forum/read.php?13,499572,868044#msg-868044" target="_blank" >screen shifting problem described by Johetan</a> and I was able to resolve the problem with the <a href="https://reprap.org/forum/read.php?13,499572,871518#msg-871518" target="_blank" >same changes as for the V1.4</a>.<br/>]]></description>
            <dc:creator>enif</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 04 Jul 2020 07:57:15 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,874452#msg-874452</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,874452#msg-874452</link>
            <description><![CDATA[ Hi guys,<br />
<br />
I'm trying to connect my TinyOLED v1.0 to my MKS Base 1.4 with Marlin 2.0.<br />
I'm not sure which oled controller to enable as well as connecting the pins from the board to the MKS Base 1.4.<br />
Here is the pinout of the MKS Base 1.4.<br />
<div id="div_9306ddf26f944d9c52fe582237435143"
     class="mod_embed_images_extended"
     style="width:476px">

  

    
      
    

    <div id="imagediv_9306ddf26f944d9c52fe582237435143" class="mod_embed_images_image"
         style="width:476px; height:400px">

    

    <a href="https://user-images.githubusercontent.com/29387819/45263839-423dda80-b3e6-11e8-9f65-9e0c3dfe2d03.png">
        <img src="/forum/thumbcache/be2/6c3/cd9/553/c9d/888/804/cce/3c8/98a/cf_800x400.png"
             width="476"
             height="400"
             id="image_9306ddf26f944d9c52fe582237435143"
             alt="45263839-423dda80-b3e6-11e8-9f65-9e0c3dfe2d03.png"
             title="45263839-423dda80-b3e6-11e8-9f65-9e0c3dfe2d03.png"/>
    </a>

    

    </div>

    <div class="mod_embed_images_info " id="info_9306ddf26f944d9c52fe582237435143"
      style="display:block">
      <a id="link_9306ddf26f944d9c52fe582237435143" href="https://user-images.githubusercontent.com/29387819/45263839-423dda80-b3e6-11e8-9f65-9e0c3dfe2d03.png">45263839-423dda80-b3e6-11e8-9f65-9e0c3dfe2d03.png</a>
    </div>

  

 </div>


<script type="text/javascript">
mod_embed_images_loadimage('9306ddf26f944d9c52fe582237435143', '/forum/thumbcache/be2/6c3/cd9/553/c9d/888/804/cce/3c8/98a/cf_800x400.png', 'https://user-images.githubusercontent.com/29387819/45263839-423dda80-b3e6-11e8-9f65-9e0c3dfe2d03.png', 'https://reprap.org/forum/addon.php?13,module=embed_images,check_scaling=1,url=https%3A%2F%2Fuser-images.githubusercontent.com%2F29387819%2F45263839-423dda80-b3e6-11e8-9f65-9e0c3dfe2d03.png', '', 874452, 800, 400, 'Loading image ...', false);
</script>
<br />
Can anyone help?<br />
First try failed to connect SCL and SDA to pin D20 and D21 with VCC and GND in AUX3 as well.<br />
<br />
Best regards,<br />
Florian<br/>]]></description>
            <dc:creator>flow</dc:creator>
            <category>Controllers</category>
            <pubDate>Wed, 01 Jul 2020 16:29:07 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,872548#msg-872548</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,872548#msg-872548</link>
            <description><![CDATA[ @enif: You don't need to add these lines:<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>enif</strong><br />
+    #define NEWPANEL<br />
+    #define ULTRA_LCD<br />
+    #define DOGLCD</div></blockquote>
as U8GLIB_SSD1306 will define ULTRA_LCD &amp; DOGLCD; and ULTIPANEL will define ULTRA_LCD &amp; NEWPANEL.<br />
And edit u8g_com_HAL_LPC1768_ssd_hw_i2c.cp file like yours doesn't fix the shifting problem for me.<br />
<br />
I define my OLED in Configuration.h to keep thing simpler whenever I want to flash firmware:<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong></strong><br />
#define Ore_no_OLED<br />
#if ENABLED(Ore_no_OLED)<br />
  #define IS_U8GLIB_SSD1306<br />
  #define IS_ULTIPANEL<br />
  #define ENCODER_PULSES_PER_STEP 4<br />
  #define ENCODER_STEPS_PER_MENU_ITEM 1<br />
#endif //!Ore_no_OLED</div></blockquote>
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>SohaibSdq</strong><br />
can we make controler with 1602 lcd?</div></blockquote>
Yes, you can. Like this:<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong></strong><br />
#define ORE_NO_1602<br />
#if ENABLED(Ore_NO_1602)<br />
  #define LCM1602<br />
  #define IS_ULTIPANEL<br />
  #define LCD_WIDTH 16<br />
  #define LCD_HEIGHT 2<br />
#endif</div></blockquote>]]></description>
            <dc:creator>hdragoon</dc:creator>
            <category>Controllers</category>
            <pubDate>Fri, 15 May 2020 06:50:15 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,872422#msg-872422</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,872422#msg-872422</link>
            <description><![CDATA[ can we make controler with 1602 lcd?]]></description>
            <dc:creator>SohaibSdq</dc:creator>
            <category>Controllers</category>
            <pubDate>Tue, 12 May 2020 15:49:42 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,499572,871519#msg-871519</guid>
            <title>Re: DIY Tiny OLED I2C full graphics controller</title>
            <link>https://reprap.org/forum/read.php?13,499572,871519#msg-871519</link>
            <description><![CDATA[ I just received one the these new 32-bit boards from Bigtreetech, the <a href="http://www.bigtree-tech.com/shop/product/show/id/1" target="_blank"  rel="nofollow">BTT SKR V1.4</a> based on the LPC1768 ARM32-bit  processor. This board runs well with Marlin2, I use version 2.0.5.3 downloaded from <a href="https://marlinfw.org/meta/download/" target="_blank"  rel="nofollow">here</a> and compile it with <a href="https://platformio.org/" target="_blank"  rel="nofollow">PlatformIo</a>.<br />
<br />
Of course, my first question was, how to get my <a href="https://reprap.org/forum/read.php?13,499572" target="_blank" >Tiny Oled I2C display controller</a> to work with this new board... As it turns out, this was not too difficult, it was just a matter of finding where to attach the 8 basic display controller pins [VCC, GND, SCL, SDA, EN1, EN2, ENC, BUZ] to the SKR V1.4 board, and how to modify Marlin2 for supporting the Tiny Oled.<br />
<br />
The SKR V1.4 has a I2C header that is used for [VCC, GND, SDA, SCL]. For the rotary encoder pins EN1 and EN2 I used pins 3.26 and 3.25 on the EXP2 connector, and for the encoder push button pin ENC and the buzzer pin BUZ I used pins 0.28 and 1.30 on the EXP1 connector of the SKR V1.4.  Here a photo and a diagram showing the connection: <br />
<br />
<div id="div_990cd5918759b7cafc2c3239099c2011"
     class="mod_embed_images_extended"
     style="width:533px">

  

    
      
    

    <div id="imagediv_990cd5918759b7cafc2c3239099c2011" class="mod_embed_images_image"
         style="width:533px; height:400px">

    

    <a href="https://reprap.org/forum/file.php?157,file=115386,filename=BBT-SKR14-TINYOLED.jpg">
        <img src="/forum/thumbcache/170/183/351/329/9a7/b85/20a/cb6/cd0/752/4a_800x400.png"
             width="533"
             height="400"
             id="image_990cd5918759b7cafc2c3239099c2011"
             alt=""
             title=""/>
    </a>

    

    </div>

    <div class="mod_embed_images_info " id="info_990cd5918759b7cafc2c3239099c2011"
      style="display:block">
      <a id="link_990cd5918759b7cafc2c3239099c2011" href="https://reprap.org/forum/file.php?157,file=115386,filename=BBT-SKR14-TINYOLED.jpg"></a>
    </div>

  

 </div>


<script type="text/javascript">
mod_embed_images_loadimage('990cd5918759b7cafc2c3239099c2011', '/forum/thumbcache/170/183/351/329/9a7/b85/20a/cb6/cd0/752/4a_800x400.png', 'https://reprap.org/forum/file.php?157,file=115386,filename=BBT-SKR14-TINYOLED.jpg', 'https://reprap.org/forum/addon.php?13,module=embed_images,check_scaling=1,url=https%3A%2F%2Freprap.org%2Fforum%2Ffile.php%3F157%2Cfile%3D115386%2Cfilename%3DBBT-SKR14-TINYOLED.jpg', '', 871519, 800, 400, 'Loading image ...', false);
</script>
 <div id="div_41a4d9e9b988f658ffaee5c1b6920d35"
     class="mod_embed_images_extended"
     style="width:567px">

  

    
      
    

    <div id="imagediv_41a4d9e9b988f658ffaee5c1b6920d35" class="mod_embed_images_image"
         style="width:567px; height:400px">

    

    <a href="https://reprap.org/forum/file.php?157,file=115385,filename=BBT-SKR1-V14-TINYOLED.png">
        <img src="/forum/thumbcache/8d8/726/f2a/717/814/572/6f3/cc4/d01/052/09_800x400.png"
             width="567"
             height="400"
             id="image_41a4d9e9b988f658ffaee5c1b6920d35"
             alt=""
             title=""/>
    </a>

    

    </div>

    <div class="mod_embed_images_info " id="info_41a4d9e9b988f658ffaee5c1b6920d35"
      style="display:block">
      <a id="link_41a4d9e9b988f658ffaee5c1b6920d35" href="https://reprap.org/forum/file.php?157,file=115385,filename=BBT-SKR1-V14-TINYOLED.png"></a>
    </div>

  

 </div>


<script type="text/javascript">
mod_embed_images_loadimage('41a4d9e9b988f658ffaee5c1b6920d35', '/forum/thumbcache/8d8/726/f2a/717/814/572/6f3/cc4/d01/052/09_800x400.png', 'https://reprap.org/forum/file.php?157,file=115385,filename=BBT-SKR1-V14-TINYOLED.png', 'https://reprap.org/forum/addon.php?13,module=embed_images,check_scaling=1,url=https%3A%2F%2Freprap.org%2Fforum%2Ffile.php%3F157%2Cfile%3D115385%2Cfilename%3DBBT-SKR1-V14-TINYOLED.png', '', 871519, 800, 400, 'Loading image ...', false);
</script>
<br />
<br />
As for Marlin2, the changes are very similar to those of Marlin1, just small changes in files <i>Marlin/Configuration.h</i>, <i>Marlin/src/inc/Conditionals_LCD.h</i> and <i>Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h</i> are needed. The changes I made are shown below:<br />
<br />
<pre class="bbcode">
*** Marlin/Configuration.h.orig	2020-04-24 11:08:24.412939944 +0200
--- Marlin/Configuration.h 	2020-04-25 21:19:12.211398559 +0200
***************
*** 2040,2045 ****
--- 2040,2050 ----
  //#define OLED_PANEL_TINYBOY2
  
  //
+ // Tiny OLED 128x64 OLED, see [<a href="https://reprap.org/forum/read.php?13,499572" target="_blank" >reprap.org</a>]
+ //
+ #define OLED_PANEL_TINYOLED
+ 
+ //
  // MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
  // [<a href="http://reprap.org/wiki/MKS_12864OLED" target="_blank"  rel="nofollow">reprap.org</a>]
  //</pre>
<pre class="bbcode">
*** Marlin/src/inc/Conditionals_LCD.h.orig	2020-04-24 11:04:36.192130049 +0200
--- Marlin/src/inc/Conditionals_LCD.h	2020-04-26 08:20:25.209172849 +0200
***************
*** 83,88 ****
--- 83,100 ----
    #define IS_U8GLIB_SSD1306
    #define IS_ULTIPANEL
  
+ #elif ENABLED(OLED_PANEL_TINYOLED)
+  
+    #ifndef U8GLIB_SSD1306   // define U8GLIB_SSD1306 in Configuration.h if not using SH1106 version
+      #define U8GLIB_SH1106 // SSD1306 and SH1106 are similar, but have slightly different horizontal shift
+    #endif
+    #define ULTIPANEL
+    #define NEWPANEL
+    #define ULTRA_LCD
+    #define DOGLCD
+    #define REVERSE_ENCODER_DIRECTION
+    #define REVERSE_MENU_DIRECTION
+  
  #elif ENABLED(RA_CONTROL_PANEL)
  
    #define LCD_I2C_TYPE_PCA8574</pre>
<pre class="bbcode">
*** Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h.ori	2020-04-24 12:17:53.422178359 +0200
--- Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h	  2020-04-24 17:53:55.223979116 +0200
***************
*** 248,253 ****
--- 248,260 ----
      #define LCD_PINS_ENABLE                P1_21
      #define LCD_PINS_D4                    P1_19
  
+   #elif ENABLED(OLED_PANEL_TINYOLED)
+      #define BTN_EN1                        P3_26
+      #define BTN_EN2                        P3_25
+      #define BTN_ENC                        P0_28  // (58) open-drain
+      #define BEEPER_PIN                     P1_30
+      #define KILL_PIN                       -1
+ 
    #elif ENABLED(CR10_STOCKDISPLAY)
      #define BTN_ENC                        P0_28  // (58) open-drain
      #define LCD_PINS_RS                    P1_22</pre>
<i>Please note that these changes are for my version of the Tiny Oled I2C display controller, as documented in <a href="https://reprap.org/forum/read.php?13,499572" target="_blank" >this thread</a>.  I you use any other variant of this project, your mileage may vary...</i><br />
<br />
<i>If you get the problem with the shifted display that Johetan reported above, see also my reply to him - I am not sure if my method is the proper solution, but so far I have not had the problem again...</i><br/>]]></description>
            <dc:creator>enif</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 26 Apr 2020 15:33:47 -0400</pubDate>
        </item>
    </channel>
</rss>
