Qwiic OLED Display (LCD-17153) not working with Artemis

Hi folks,

Just received my Qwiic OLED Displays today and am trying to get them working with the Artemis Processor (+ MicroMod Data Logging Carrier Board).

When I try to upload an example from the Adafruit SS1306 library, I’m running into the following error. Do you have any thoughts on what could be wrong? I’m using Apollo3 Core v1.2.1.

/Users/adam/Documents/Arduino/libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp: In member function 'bool Adafruit_SSD1306::begin(uint8_t, uint8_t, bool, bool)':
/Users/adam/Documents/Arduino/libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp:495:44: error: 'digitalPinToPort' was not declared in this scope
     dcPort = (PortReg *)portOutputRegister(digitalPinToPort(dcPin));
                                            ^~~~~~~~~~~~~~~~
/Users/adam/Documents/Arduino/libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp:495:44: note: suggested alternative: 'digitalPinToInterrupt'
     dcPort = (PortReg *)portOutputRegister(digitalPinToPort(dcPin));
                                            ^~~~~~~~~~~~~~~~
                                            digitalPinToInterrupt
/Users/adam/Documents/Arduino/libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp:495:25: error: 'portOutputRegister' was not declared in this scope
     dcPort = (PortReg *)portOutputRegister(digitalPinToPort(dcPin));
                         ^~~~~~~~~~~~~~~~~~
/Users/adam/Documents/Arduino/libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp:496:17: error: 'digitalPinToBitMask' was not declared in this scope
     dcPinMask = digitalPinToBitMask(dcPin);
                 ^~~~~~~~~~~~~~~~~~~
/Users/adam/Documents/Arduino/libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp:496:17: note: suggested alternative: 'digitalPinToInterrupt'
     dcPinMask = digitalPinToBitMask(dcPin);
                 ^~~~~~~~~~~~~~~~~~~
                 digitalPinToInterrupt

Cheers,

Adam

Hi there,

Upon further investigation, it appears this error is specific to v1.2.1 of the Apollo3 Core. The Adafruit SS1306 examples compile and work correctly with v2.0.6 of the Core. Since v1.2.1 has reached its EOL, this issue can be ignored!

On a side note, I discovered the U8g2 library which is a good alternative that does work with v1.2.1 https://github.com/olikraus/u8g2

Cheers,

Adam

To provide an update, after several hours of troubleshooting, it appears that the Qwiic OLED Display (LCD-17153) may not be compatible with the Artemis.

I have tested both the Adafruit SSD1306 and u8g2 libraries with the MicroMod Artemis Processor on both v1.2.1 and v2.0.6 of the Apollo3 Core.

While text will initially be displayed correctly, after writing to the display over a longer period of time (3+ minutes), the display will become corrupted with random pixels (noise) or shut off completely. This occurs with both libraries.

I’d be keen to know if anyone has had success with the SSD1306 and the Artemis or if this is a similar issue to NeoPixels, where the Artemis just does things so differently it’s not immediately compatible.

Cheers,

Adam