Bin Anfänger. Oled 1306 lässt sich bei mir von Arduinoboards einbinden, z.B. für Temperaturanzeige mit DHT11, ebenso Beispieldemos im ide. Beim Versuch eines meiner ESP-Module stattdessen zu verwenden, geht der Upload des Sketch immer nur bis zur Ausgabe der Meldung (s.o). Das interpretiere ich so, dass bis hierhin alles ok ist, aber dann gehts nicht weiter. Alle Versuche zu resetten, mit Resetbutton und Flashbutton in allen möglichen Kombinationen bringen das Programm auf dem Oled nicht zum laufen, das bleibt schwarz. Habe intensiv nach Fehlern in meinem System gesucht, leider Frust. Es gibt viel zu lesen im Netz über die Meldung "hard resetting ...", aber keine Info für mein Problem. HILFE:)
Hallo,
Deine Angaben sind unzureichend.
Welchen ESP32 verwendest du ?
Welches Oled verwendest du ?
Für beide Links posten.
Welche IDE Version ?
Welche ESP-core Version ?
Poste deinen Sketch in Code-Tags.
Wie hast du das Oled angeschlossen ?
Verwende esp8266MOD model vendor, esp32-wroom-32, und mini esp8266. Ide erkennt alle nur als ESP32, nicht 8266.
OLed mit 4 pins: 3v, gnd, scl--d1, sda - d2, bei den nderen scl und sda entsprechend der pins nach google-bilder-suche und sda auf Mini:
Beispiel-Sketch mit Ausgabe:
Der Sketch verwendet 320920 Bytes (24%) des Programmspeicherplatzes. Das Maximum sind 1310720 Bytes.
Globale Variablen verwenden 20516 Bytes (6%) des dynamischen Speichers, 307164 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes.
esptool.py v4.8.1
Serial port COM8
Connecting.....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: e8:6b:ea:d4:35:04
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Erasing flash (this may take a while)...
Chip erase completed successfully in 1.4 seconds.
Compressed 24976 bytes to 15952...
Writing at 0x00001000... (100 %)
Wrote 24976 bytes (15952 compressed) at 0x00001000 in 0.3 seconds (effective 585.5 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 1686.9 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 2736.8 kbit/s)...
Hash of data verified.
Compressed 321024 bytes to 172211...
Writing at 0x00010000... (9 %)
Writing at 0x0001c443... (18 %)
Writing at 0x00029894... (27 %)
Writing at 0x0002f10e... (36 %)
Writing at 0x00034a06... (45 %)
Writing at 0x0003a131... (54 %)
Writing at 0x0003f4d3... (63 %)
Writing at 0x00044c6b... (72 %)
Writing at 0x0004b0dc... (81 %)
Writing at 0x000558cc... (90 %)
Writing at 0x0005b4f1... (100 %)
Wrote 321024 bytes (172211 compressed) at 0x00010000 in 2.7 seconds (effective 946.3 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
danach gehts nicht weiter (s.o.)
wie gesagt, auf arduino uno r3alles gut
,
,
Display: APKLVSR 3PCS 0,96 Zoll OLED Display I2C 128 x 64 Pixel I2C, bei Amazon gekauft vor kurzem
Das ist nicht dein Problem. Der Hardreset wird durchgeführt, damit der ESP vom „Uploadmodus“ in den Betriebsmodus geht. Das ist völlig richtig.
Möglicherweise ist das Display an den falschen Pins angeklemmt. Oder der Programmcode passt nicht zum ESP32.
So, wie im folgenden Beispiel zu sehen sollte es eigentlich funktionieren:
Code
#include <SPI.h>
#include <U8g2lib.h>
// Hardware I2C
// SCL Pin = GPIO22
// SCA Pin = GPIO21
U8G2_SSD1306_128X64_NONAME_2_HW_I2C u8g2(U8G2_R0);
void setup(void) {
u8g2.begin();
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.firstPage();
do {
u8g2.drawStr(0,15,"Hello World!");
} while ( u8g2.nextPage() );
}
void loop(void) {
delay(1000);
}
Das ist eine normale Meldung und weist nicht auf einen Fehler hin.
Ich sehe keine Links deiner Teile. Es gibt nicht nur jeweils eins davon.
Welche soll man da raussuchen ?
Dein Sketch ist auch nicht in Code-Tags.
Hallo Kai,
danke für den Tip. Ich probiere es und melde mich, wnn meine Tastatur wieder vernünftig funktioniert
Und alle anderen Fragen ignorierst du ?
Es klingt so, als ob dein ESP-Modul beim Upload des Sketches ein Problem hat. Versuche diese Schritte:
- Wähle das richtige Board im Arduino IDE (unter "Werkzeuge" > "Board").
- Setze den ESP in den Flash-Modus: Halte den Flash-Button gedrückt, während du den Upload startest, und lass ihn erst los, wenn der Upload beginnt.
- Überprüfe die Kabel und den COM-Port, um sicherzustellen, dass alles korrekt verbunden ist.
Falls das nicht funktioniert, versuche, den ESP mit einem anderen USB-Port oder einem anderen Computer zu verbinden.
Erstmal danke an alle, die gepostet haben. Tut mir leid, wenn ich noch falsch kommuniziere.
Bild 1 Arduino uno mit Sketch:
#include <U8g2lib.h>
// Hardware I2C
// SCL Pin = GPIO22
// SCA Pin = GPIO21
U8G2_SSD1306_128X64_NONAME_2_HW_I2C u8g2(U8G2_R0);
void setup(void) {
u8g2.begin();
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.firstPage();
do {
u8g2.drawStr(0,15,"Hello World!");
} while ( u8g2.nextPage() );
}
void loop(void) {
delay(1000);
}
Bild2 ESP32-DOWD-V3, Ref301, ID=13907204
Bild 3 Chip mit Oled, gleiche Schaltung, gleicher Sketch, aber mit Ausgabe:
Der Sketch verwendet 312312 Bytes (23%) des Programmspeicherplatzes. Das Maximum sind 1310720 Bytes.
Globale Variablen verwenden 20864 Bytes (6%) des dynamischen Speichers, 306816 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes.
esptool.py v4.8.1
Serial port COM8
Connecting.......
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: e8:6b:ea:d4:35:04
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00006fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x0005cfff...
Compressed 23440 bytes to 15065...
Writing at 0x00001000... (100 %)
Wrote 23440 bytes (15065 compressed) at 0x00001000 in 0.5 seconds (effective 398.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 671.8 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 951.4 kbit/s)...
Hash of data verified.
Compressed 312416 bytes to 168947...
Writing at 0x00010000... (9 %)
Writing at 0x0001adb4... (18 %)
Writing at 0x00028d96... (27 %)
Writing at 0x0002e361... (36 %)
Writing at 0x00033af8... (45 %)
Writing at 0x00039151... (54 %)
Writing at 0x0003e60c... (63 %)
Writing at 0x00043cfb... (72 %)
Writing at 0x0004a0ac... (81 %)
Writing at 0x00054668... (90 %)
Writing at 0x0005a603... (100 %)
Wrote 312416 bytes (168947 compressed) at 0x00010000 in 3.1 seconds (effective 803.4 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Beim Hochladen flash button gedrückt, anschließend reset, aber es geht nicht weiter, kein hello world
Der im Bild gezeigte Controller ist kein ESP32 sondern ein ESP8266.
Da ist wohl dein Fehler zu suchen.
Der Controller, der wie @HotSystems schon angemerkt hat, ist ein ESP8266 und kein ESP32.
Bei einem ESP8266 musst Du die Kabel vom Display mit SDA = D2 und SCL = D1 verbinden.
Dann läuft der Code unverändert.
...und weil es anderer Controller ist, solltest Du auch für den die nötige Umgebung bereitstellen; ich wäre etwas skeptisch, ob ESP32-Code so direkt auf einem 8266 läuft.
Der Code läuft direkt auf dem ESP8266... Wenn denn die richtigen Pins gesteckt sind.
Wobei die gezeigte Fehlermeldung von einem ESP32 stammt.
Alles sehr merkwürdig und nicht mehr glaubhaft.


