I am experiencing the exact same problem as reported in:
viewtopic.php?f=57&t=178539&p=869850&hi ... eatherWing
I have 2x Adafruit 128x32 mono OLED FeatherWings, both show top half of screen okay, bottom scrambled. But when I connect the OLED to a Feather 324u for example, the OLED works fine. I have used the OLED on other Feather products as well without an issue.
Please test the Adafruit 128x32 mono OLED FeatherWing with the Adafruit M0 Feather.
128x32 OLED Featherwing problem with M0
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- mikeysklar
- Posts: 13824
- Joined: Mon Aug 01, 2016 8:10 pm
Re: 128x32 OLED Featherwing problem with M0
Can you post the code that you are running? I know it is an example sketch, but I want to confirm the revision and any possible modifications.
- mkiehl
- Posts: 23
- Joined: Mon Oct 08, 2012 1:03 pm
Re: 128x32 OLED Featherwing problem with M0
It is the exact standard example code that comes with the library. No modifications.
- adafruit2
- Posts: 22111
- Joined: Fri Mar 11, 2005 7:36 pm
Re: 128x32 OLED Featherwing problem with M0
can you post a photo and/or link to the code? we'd like to try reproducing the issue!
- mkiehl
- Posts: 23
- Joined: Mon Oct 08, 2012 1:03 pm
Re: 128x32 OLED Featherwing problem with M0
Arduino IDE v1.8.15, adafruit_ssd1306 v1.2.9, Adafruit_GFX v1.11.13, from your tutorial at (https://learn.adafruit.com/adafruit-ole ... g?view=all), find 'Run Example Code' and load and run the code (code also posted at end).
Code: Select all
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// OLED FeatherWing buttons map to different pins depending on board.
// The I2C (Wire) bus may also be different.
#if defined(ESP8266)
#define BUTTON_A 0
#define BUTTON_B 16
#define BUTTON_C 2
#define WIRE Wire
#elif defined(ESP32)
#define BUTTON_A 15
#define BUTTON_B 32
#define BUTTON_C 14
#define WIRE Wire
#elif defined(ARDUINO_STM32_FEATHER)
#define BUTTON_A PA15
#define BUTTON_B PC7
#define BUTTON_C PC5
#define WIRE Wire
#elif defined(TEENSYDUINO)
#define BUTTON_A 4
#define BUTTON_B 3
#define BUTTON_C 8
#define WIRE Wire
#elif defined(ARDUINO_FEATHER52832)
#define BUTTON_A 31
#define BUTTON_B 30
#define BUTTON_C 27
#define WIRE Wire
#elif defined(ARDUINO_ADAFRUIT_FEATHER_RP2040)
#define BUTTON_A 9
#define BUTTON_B 8
#define BUTTON_C 7
#define WIRE Wire1
#else // 32u4, M0, M4, nrf52840 and 328p
#define BUTTON_A 9
#define BUTTON_B 6
#define BUTTON_C 5
#define WIRE Wire
#endif
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 32, &WIRE);
void setup() {
Serial.begin(9600);
Serial.println("OLED FeatherWing test");
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x32
Serial.println("OLED begun");
// Show image buffer on the display hardware.
// Since the buffer is intialized with an Adafruit splashscreen
// internally, this will display the splashscreen.
display.display();
delay(1000);
// Clear the buffer.
display.clearDisplay();
display.display();
Serial.println("IO test");
pinMode(BUTTON_A, INPUT_PULLUP);
pinMode(BUTTON_B, INPUT_PULLUP);
pinMode(BUTTON_C, INPUT_PULLUP);
// text display tests
display.setTextSize(1);
//display.setTextColor(SSD1306_WHITE);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.print("Connecting to SSID\n'adafruit':");
display.print("connected!");
display.println("IP: 10.0.1.23");
display.println("Sending val #0");
display.setCursor(0,0);
display.display(); // actually display all of the above
}
void loop() {
if(!digitalRead(BUTTON_A)) display.print("A");
if(!digitalRead(BUTTON_B)) display.print("B");
if(!digitalRead(BUTTON_C)) display.print("C");
delay(10);
yield();
display.display();
}
- mikeysklar
- Posts: 13824
- Joined: Mon Aug 01, 2016 8:10 pm
Re: 128x32 OLED Featherwing problem with M0
Thank you for reporting the library versions and pointing us to the exact code example.
I compiled the example code and ran it on a FeatherWing M0 Proto without issue.
Arduino IDE: v1.8.18
Feather M0 bootloader: v3.14.0
Adafruit GFX: v1.11.13
Adafruit SSD1306: v2.5.6
Adafruit SAMD board manager: v1.7.10
Can you show the bottom of the M0 board soldering? The display header pins look pretty good, but some of the the headers are not completely soldered.
I compiled the example code and ran it on a FeatherWing M0 Proto without issue.
Arduino IDE: v1.8.18
Feather M0 bootloader: v3.14.0
Adafruit GFX: v1.11.13
Adafruit SSD1306: v2.5.6
Adafruit SAMD board manager: v1.7.10
Can you show the bottom of the M0 board soldering? The display header pins look pretty good, but some of the the headers are not completely soldered.
- adafruit2
- Posts: 22111
- Joined: Fri Mar 11, 2005 7:36 pm
Re: 128x32 OLED Featherwing problem with M0
also please update all libraries and board support packages within the IDE in case something is out of date
- mkiehl
- Posts: 23
- Joined: Mon Oct 08, 2012 1:03 pm
Re: 128x32 OLED Featherwing problem with M0
I already updated all libraries. I even provided you with the version numbers of each library.
- adafruit2
- Posts: 22111
- Joined: Fri Mar 11, 2005 7:36 pm
Re: 128x32 OLED Featherwing problem with M0
we just tried it and library works fine - note latest SSD1306 library is 2.5.6 not v1.2.9
- mkiehl
- Posts: 23
- Joined: Mon Oct 08, 2012 1:03 pm
Re: 128x32 OLED Featherwing problem with M0
Thank you for taking the time to try it. I tried using another non-FeatherWing OLED and experienced the same problems. I updated very remotely involved library, but I still experience the problem. At one time in the past I was able to use my M0 with these libraries, so it must be some sort of library problem. I think the next step for me would be to install the latest (minor upgrade) of the Arduino IDE and then the libraries specific to the OLED and try it again. I will post my results.
Please be positive and constructive with your questions and comments.