Hello, recently I'm releasing a SH1106 OLED LCD 0.96", I've loaded text, bmp and xbm graphics without problem, however, at the time of making several tests in a row appears a line of pixels that I did not program, it happens with the Adafruit and u8g2 libraries, I have used "clearDisplay" or other similar functions and remains the same. The only way I have found to solve it is loading the same code but based on another library.
Is someone else getting the same problem? If so, could you share your solution? **Thank you!
**
[tt][b]Codes I have used[/b][/tt]
Adafruit
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define ANCHO 128
#define ALTO 64
#define OLED_RESET 4
Adafruit_SSD1306 oled(ANCHO, ALTO, &Wire, OLED_RESET);
const unsigned char PROGMEM navi5[] = {
//I deleted the bmp because exceeding the character limit of the post :(
};
void setup() {
Wire.begin();
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop() {
oled.clearDisplay();
oled.drawBitmap(0, 0, navi5, 128, 64, WHITE);
oled.display();
}
u8g2
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
static const unsigned char PROGMEM navi[] = {
//I deleted it xbm because exceeding the character limit of the post :(
};
U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
void setup(void) {
u8g2.begin();
delay(1000);
}
void loop(void) {
u8g2.firstPage();
do {
u8g2.drawXBMP(0, 0, 128, 64, navi);
u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.drawStr(0,24,"Hola");
} while ( u8g2.nextPage() );
}
I have attached images of the problem

