Zu früh gefreut, jetzt spinnt auch diese.Mit 2.6.0 scheint es zu funktionieren.
ESP8266 Programmierung
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ESP8266 Programmierung
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 830
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: ESP8266 Programmierung
Das ist nicht der Compiler, der das schreibt, sondern das SDK von Espressif.Mathias hat geschrieben: ↑So 16. Jan 2022, 17:01Ich hatte mal den ESP32 Compiler probiert.
Da war er sogar so nett und hat in die Fehlermeldung geschrieben, das folgende Paket noch installiert werden müssen:Code: Alles auswählen
sudo apt install python3-pip sudo apt install python3.8-venv
FPC Compiler Entwickler
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ESP8266 Programmierung
Sowas habe ich schon vermutet, habe es nur etwas blöd formuliert .PascalDragon hat geschrieben: ↑Mo 17. Jan 2022, 13:48Das ist nicht der Compiler, der das schreibt, sondern das SDK von Espressif.Mathias hat geschrieben: ↑So 16. Jan 2022, 17:01Ich hatte mal den ESP32 Compiler probiert.
Da war er sogar so nett und hat in die Fehlermeldung geschrieben, das folgende Paket noch installiert werden müssen:Code: Alles auswählen
sudo apt install python3-pip sudo apt install python3.8-venv
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: ESP8266 Programmierung
Unter Windows habe ich 1.8.19
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: ESP8266 Programmierung
Falls es wem Interessiert, es hat da einiges an Bewegung bzw. Überlegungen gegeben. Das Thema dürfte für einige Bereiche bereits diskutiert worden sein. Mal sehen was im nächsten (oder weiter entfernten) Trunk dann auftaucht. Eines ist klar, es ist nicht trivial.Socke hat geschrieben: ↑Sa 15. Jan 2022, 23:47Es gibt ja immerhin ein Ticket dazu: https://gitlab.com/freepascal.org/fpc/s ... sues/30294
Danke an Socke für den Link.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ESP8266 Programmierung
Ich habe es gerade mit einem nativen Windows 8.1 probiert. Genau das gleiche Problem. Ich habe bald das Gefühl, das es an den Platinen liegt.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ESP8266 Programmierung
@af0815
Musstest du irgend eine Taste auf deinem ESP8266 drücken ?
Das gab mir einer als Tip im Arduino Forum, aber gebracht hat es nichts.
Ich habe auch nach den Tasten gegoogelt, da steht, das diese nur gebraucht werden, wen man eine externen Programmer verwendet.
Musstest du irgend eine Taste auf deinem ESP8266 drücken ?
Das gab mir einer als Tip im Arduino Forum, aber gebracht hat es nichts.
Ich habe auch nach den Tasten gegoogelt, da steht, das diese nur gebraucht werden, wen man eine externen Programmer verwendet.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: ESP8266 Programmierung
Ich habe auf den ESP keine Tasten und auch keine USB-Buchse.
Ich musste 3 Brücken setzen und den USB-RS232 Adapter richtig verbinden. Nach dem Programmieren sind die Brücken tw. wegzunehmen und tw. zu ändern für den Betrieb. Habe ich aber in der Doku bei mir von AZ-Delivery gefunden.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ESP8266 Programmierung
Dann sieht deiner anders aus als meiner.
Im Anhang ein Bild von meinem.
Im Anhang ein Bild von meinem.
- Dateianhänge
-
- H90c3fc69b26e45e985eb2df7c91b576dd.jpg (78.89 KiB) 3989 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: ESP8266 Programmierung
Meiner ist kleiner als deiner
Ich will die kleinen Versionen verwenden, da ich damit plane im Wohnwagen diverse Fühler damit WIFI fähig zu machen. Ich möchte auch den Strom minimieren und das geht nur damit so unnötige Fresser wie USB-RS232 Umsetzer nicht ins Design aufzunehmen. Das heißt den esp8266 auch in den tiefen Schlaf zu schicken, wenn keine Messungen anstehen. Als ersten Sensor verwende ich einmal einen DS18B20 der ist Onewire und man kann einige Sensoren an einen einzigen Pin festmachen. In Arduino habe ich schon Daten auf einer Weboberfläche geschafft (war leicht, weil das Beispiel sowieso vorhanden war )
Deswegen habe ich mich für den esp8266 entschieden. Klein, vielleicht Stromsparend aber trotzdem kommunikativ.
Die Platinengröße von dir erreiche ich mit meinem stm32. Dort habe ich keine Rücksicht genommen.
Ich will die kleinen Versionen verwenden, da ich damit plane im Wohnwagen diverse Fühler damit WIFI fähig zu machen. Ich möchte auch den Strom minimieren und das geht nur damit so unnötige Fresser wie USB-RS232 Umsetzer nicht ins Design aufzunehmen. Das heißt den esp8266 auch in den tiefen Schlaf zu schicken, wenn keine Messungen anstehen. Als ersten Sensor verwende ich einmal einen DS18B20 der ist Onewire und man kann einige Sensoren an einen einzigen Pin festmachen. In Arduino habe ich schon Daten auf einer Weboberfläche geschafft (war leicht, weil das Beispiel sowieso vorhanden war )
Deswegen habe ich mich für den esp8266 entschieden. Klein, vielleicht Stromsparend aber trotzdem kommunikativ.
Die Platinengröße von dir erreiche ich mit meinem stm32. Dort habe ich keine Rücksicht genommen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ESP8266 Programmierung
Heute habe ich nochmals einen Anlauf genommen. Nun habe ich noch meinen letzten/dritten Original verpackten ESP8266 ausgepackt. Dieser scheint perfekt zu laufen, vorallem in der Arduino IDE.Mathias hat geschrieben: ↑So 16. Jan 2022, 19:29Ich habe es auf dem Laptop auch gerade probiert, das gleiche Problem.
USB-Kabel hab ich auch schon andere probiert.Das beste wird wohl sein, wen ich mich im Arduino Forum melde.Code: Alles auswählen
esptool.py v3.0 Serial port /dev/ttyUSB0 Connecting........_____....._____....._ Traceback (most recent call last): File "/home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/upload.py", line 66, in <module> esptool.main(cmdline) File "/home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 3552, in main esp.connect(args.before, args.connect_attempts) File "/home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 522, in connect last_error = self._connect_attempt(mode=mode, esp32r0_delay=True) File "/home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 499, in _connect_attempt self.sync() File "/home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 437, in sync self.command(self.ESP_SYNC, b'\x07\x07\x12\x20' + 32 * b'\x55', File "/home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 396, in command if byte(data, 0) != 0 and byte(data, 1) == self.ROM_INVALID_RECV_MSG: File "/home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 138, in byte return bitstr[index] IndexError: index out of range IndexError: index out of range
Nun habe ich einen Cross-Compiler mit fpcupdeluxe für den ESP8266 gebaut. In diesem habe ich die Plattform auf FreeRTOS/xetensa/lx106 gestellt. Den Debugger deaktiviert und F9 gedrückt. Und es kompilierte fehlerfrei. In meinem Projektordner hat es eine *.bin gegeben.
Diese habe ich mit folgendem Kommando hochgeladen.
Code: Alles auswählen
/bin/python3 -I /n4800/DATEN/Programmierung/Lazarus/Tutorials/Embedded/Xtensa/ESP8266/UP_Loader/upload.py --chip esp8266 --port /dev/ttyUSB0 --baud 115200 --before default_reset --after hard_reset write_flash 0x0 /n4800/DATEN/Programmierung/Lazarus/Tutorials/Embedded/Xtensa/ESP8266/Erster_Versuch/Project1.bin
Nun wollte ich einen Blinker mit den Sourcen, welche ich weiter oben gefunden habe ausprobieren, nur bleibt da die LED dunkel.
Code: Alles auswählen
program blink;
type
Tgpio_config = record
pin_bit_mask: uint32; // Pin mask of pins to configure
mode: integer; // 0 = disabled, 1 = input, 2 = output, 6 = output open drain
pull_up_en: integer; // 0 = disabled, 1 = enabled
pull_down_en: integer; // 0 = disabled, 1 = enabled
intr_type: integer; // 0 = disabled, 1 = positive edge, 2 = negative edge, 3 = any edge, 4 = low level, 5 = high level
end;
const
// GPIO pin number for pin connected to LED
LED = 2; // NodeMCU LED on ESP-12E module
// Return value is error code, 0 = success
function gpio_config(constref gpio_cfg: Tgpio_config): integer; external;
// mode: GPIO_MODE_DISABLE = 0, GPIO_MODE_INPUT = 1, GPIO_MODE_OUTPUT = 2, GPIO_MODE_OUTPUT_OD = 6
function gpio_set_direction(gpio_num: integer; mode: integer): integer; external;
// level: Low = 0, High = 1
function gpio_set_level(gpio_num: integer; level: uint32): integer; external;
procedure vTaskDelay(xTicksToDelay: uint32); external;
var
cfg: Tgpio_config;
begin
cfg.pin_bit_mask := 1 shl ord(LED);
cfg.mode := 1;
cfg.pull_up_en := 0;
cfg.pull_down_en := 0;
cfg.intr_type := 0;
gpio_config(cfg);
gpio_set_direction(LED, 2);
repeat
writeln('.');
gpio_set_level(LED, 0);
vTaskDelay(100);
writeln('*');
gpio_set_level(LED, 1);
vTaskDelay(100);
until false;
end.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: ESP8266 Programmierung
Ich habe mir eine eigene Version mit den originalen Toolchain gebaut, erst mit dem ist es gegangen. Ich habe es mit dem reinen fpcupdeluxe noch nicht geschafft eine Lauffähige Version zu erzeugen.
Aktuell ist für mich die Arduino Lösung der beste und einfachste Zugang.
Aktuell ist für mich die Arduino Lösung der beste und einfachste Zugang.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ESP8266 Programmierung
Juhu, bei mir geht es jetzt auch mit dem Lazarus, welches ich mit fpcupdeluxe gebaut habe.
Dazu habe ich deine flash.bat modifiziert.
Auch habe ich die beiden Dateien "bootloader.bin, partitions_singleapp.bin" in mein Project-Verzeichniss kopiert.
Zuerst hat mein ESPTool, welches ich von Arduino gemotzt, das eine Serial Bibliothek fehlt. Nun habe ich gemerkt, das ich dieses gar nicht brauche, da mein Linux die ESPTool selbst an Board hat. Ein einfachesgenügt.
Schon genial, was Linux schon an Board hat, welches man unter Windows alles mühsam zusammensuchen muss,
Im Anhang mein Project, welches unter Lazarus läuft. Es enthält den Blink-Code von af0815.
Dazu habe ich deine flash.bat modifiziert.
Code: Alles auswählen
/bin/esptool -cesp8266 -p /dev/ttyUSB0 -b115200 --before default_reset --after hard_reset write_flash 0x0 bootloader.bin 0x10000 Project1.bin 0x8000 partitions_singleapp.bin
Zuerst hat mein ESPTool, welches ich von Arduino gemotzt, das eine Serial Bibliothek fehlt. Nun habe ich gemerkt, das ich dieses gar nicht brauche, da mein Linux die ESPTool selbst an Board hat. Ein einfaches
Code: Alles auswählen
apt install esptool
Schon genial, was Linux schon an Board hat, welches man unter Windows alles mühsam zusammensuchen muss,
Im Anhang mein Project, welches unter Lazarus läuft. Es enthält den Blink-Code von af0815.
- Dateianhänge
-
- Mein_Blinker.zip
- (739.87 KiB) 88-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ESP8266 Programmierung
Ich habe noch eine Frage zu dem Code von Af0815.
Wie muss ich den Com-Port bei Serial-Monitor einstellen, das ich die Daten empfangen kann, welche mit writeln geschrieben werden ?
Wie muss ich den Com-Port bei Serial-Monitor einstellen, das ich die Daten empfangen kann, welche mit writeln geschrieben werden ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: ESP8266 Programmierung
Wenn meines wissens nichts anderes Programmiert ist, so kommt das mit den schrägsten Baudwerten die ich je gesehen habe heraus.The ESP8266 spits out some diagnostic information initially at 74880
Hintergrund:
it is not a bug. the esp ROM bootloader expects a 40 MHz crystal, but most esp8266 modules use 26 MHz crystal. then the resulting baud rate is 74880 instead of 115200 used by the bootloader.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).