128x32 OLED Featherwing problem with M0

Please tell us which board you are using.
For CircuitPython issues, ask in the Adafruit CircuitPython forum.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
mkiehl
 
Posts: 23
Joined: Mon Oct 08, 2012 1:03 pm

128x32 OLED Featherwing problem with M0

Post by mkiehl »

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.

User avatar
mikeysklar
 
Posts: 13824
Joined: Mon Aug 01, 2016 8:10 pm

Re: 128x32 OLED Featherwing problem with M0

Post by mikeysklar »

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.

User avatar
mkiehl
 
Posts: 23
Joined: Mon Oct 08, 2012 1:03 pm

Re: 128x32 OLED Featherwing problem with M0

Post by mkiehl »

It is the exact standard example code that comes with the library. No modifications.

User avatar
adafruit2
 
Posts: 22111
Joined: Fri Mar 11, 2005 7:36 pm

Re: 128x32 OLED Featherwing problem with M0

Post by adafruit2 »

can you post a photo and/or link to the code? we'd like to try reproducing the issue!

User avatar
mkiehl
 
Posts: 23
Joined: Mon Oct 08, 2012 1:03 pm

Re: 128x32 OLED Featherwing problem with M0

Post by mkiehl »

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).

IMG_20220710_052413062.png
IMG_20220710_052413062.png (359.37 KiB) Viewed 102 times

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();
}

User avatar
mikeysklar
 
Posts: 13824
Joined: Mon Aug 01, 2016 8:10 pm

Re: 128x32 OLED Featherwing problem with M0

Post by mikeysklar »

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
IMG_0572.jpg
IMG_0572.jpg (93.61 KiB) Viewed 95 times
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.

User avatar
adafruit2
 
Posts: 22111
Joined: Fri Mar 11, 2005 7:36 pm

Re: 128x32 OLED Featherwing problem with M0

Post by adafruit2 »

also please update all libraries and board support packages within the IDE in case something is out of date

User avatar
mkiehl
 
Posts: 23
Joined: Mon Oct 08, 2012 1:03 pm

Re: 128x32 OLED Featherwing problem with M0

Post by mkiehl »

I already updated all libraries. I even provided you with the version numbers of each library.

User avatar
adafruit2
 
Posts: 22111
Joined: Fri Mar 11, 2005 7:36 pm

Re: 128x32 OLED Featherwing problem with M0

Post by adafruit2 »

we just tried it and library works fine - note latest SSD1306 library is 2.5.6 not v1.2.9

User avatar
mkiehl
 
Posts: 23
Joined: Mon Oct 08, 2012 1:03 pm

Re: 128x32 OLED Featherwing problem with M0

Post by mkiehl »

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.

Locked
Please be positive and constructive with your questions and comments.

Return to “Feather - Adafruit's lightweight platform”