Hoi
ik ben wat aan het spelen met een ESP32 en een goedkoop I2C OLED display van ali:
https://nl.aliexpress.com...042311.0.0.27424c4d9a210C
Gezien veel van dit soort displays kennelijk een SSD1306 bevatten ben ik ervanuit gegaan dat dat er ook een is (gevaarlijk aanname? denk het wel). Ik zie op ali niet terug welk IC erin zit, en als ik deze hier zie:
https://www.hobbyelectron...l0_R-CUpzfe8aAstGEALw_wcB
Dan is dat volgens mij dit display.
Echter krijg ik zowel met micropython als met een simpele arduino-tutorial de boel niet aan de praat. Voorbeeld: ik wil mijn framebuffer vullen met "aan" pixels en push die dan naar het device. Ik zie dan een groot deel (telkens hetzelfde deel!) van de pixels aan staan, maar ook een deel niet.
Volgens mij heb ik iets mis zitten in de communicatie tussen ESP32 en het display.
Het display is een I2C exemplaar , met als adres volgens Ali 0x78. Nou die werkt niet, als ik een I2C scan doe vind ik daarentegen wel wat op 0x3C. Prima.
het display is aangesloten zoals hier beschreven staat:
https://randomnerdtutoria...oled-display-arduino-ide/
Zodra ik de code draai krijg ik dit soort resultaten:
De meest rechter rij pixels beweegt en daar zie ik stukken geometrische patronen als ik de testcode uit die tutorial draai. Ik heb netjes de OLED_RESET op -1 gezet en het I2C adres aangepast.
Goed dan maar een simpeler voorbeeldje:
Simpel toch?
Als ik deze draai krijg ik een statische soortgelijke output:

Goed, ik lees de comment ook in de code dat voor een 128x64 display ik 0x3D als adres moet hebben, dat helpt hier niet.
Ik ben aanvankelijk begonnen in microPython maar krijg daar exact hetzelfde resultaat als met de arduino omgeving op de ESP32. Die laatste heb ik erbij gepakt om uit te sluiten dat ik wat brakke code maak (zou mij als gediplomeerd software engineer nooit overkomen
) .
Kan iemand me helpen? Is mijn display stuk? Is mijn aanname dat ik met een SSD1306 van doen heb niet juist? Is mijn code brak, of is het iets anders?
Dank je wel!
ik ben wat aan het spelen met een ESP32 en een goedkoop I2C OLED display van ali:
https://nl.aliexpress.com...042311.0.0.27424c4d9a210C
Gezien veel van dit soort displays kennelijk een SSD1306 bevatten ben ik ervanuit gegaan dat dat er ook een is (gevaarlijk aanname? denk het wel). Ik zie op ali niet terug welk IC erin zit, en als ik deze hier zie:
https://www.hobbyelectron...l0_R-CUpzfe8aAstGEALw_wcB
Dan is dat volgens mij dit display.
Echter krijg ik zowel met micropython als met een simpele arduino-tutorial de boel niet aan de praat. Voorbeeld: ik wil mijn framebuffer vullen met "aan" pixels en push die dan naar het device. Ik zie dan een groot deel (telkens hetzelfde deel!) van de pixels aan staan, maar ook een deel niet.
Volgens mij heb ik iets mis zitten in de communicatie tussen ESP32 en het display.
Het display is een I2C exemplaar , met als adres volgens Ali 0x78. Nou die werkt niet, als ik een I2C scan doe vind ik daarentegen wel wat op 0x3C. Prima.
het display is aangesloten zoals hier beschreven staat:
https://randomnerdtutoria...oled-display-arduino-ide/
Zodra ik de code draai krijg ik dit soort resultaten:

Goed dan maar een simpeler voorbeeldje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void setup() { Serial.begin(115200); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64 Serial.println(F("SSD1306 allocation failed")); //for(;;); } delay(2000); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 10); // Display static text display.println("Hello, world!"); display.display(); } void loop() {} |
Simpel toch?
Als ik deze draai krijg ik een statische soortgelijke output:

Goed, ik lees de comment ook in de code dat voor een 128x64 display ik 0x3D als adres moet hebben, dat helpt hier niet.
Ik ben aanvankelijk begonnen in microPython maar krijg daar exact hetzelfde resultaat als met de arduino omgeving op de ESP32. Die laatste heb ik erbij gepakt om uit te sluiten dat ik wat brakke code maak (zou mij als gediplomeerd software engineer nooit overkomen
Kan iemand me helpen? Is mijn display stuk? Is mijn aanname dat ik met een SSD1306 van doen heb niet juist? Is mijn code brak, of is het iets anders?
Dank je wel!