ESP8266 Programmierung

Mathias
Beiträge: 5224
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: ESP8266 Programmierung

Beitrag von Mathias »

Diesen Baud ist fast unmöglich in eine Terminal-Programm einzustellen.

Was ich noch festgestellt habe, mit Lazarus erstellte Programme brauchen zwingend die "bootloader.bin, partitions_singleapp.bin", was bei Arduino nicht der Fall ist, dort wird nur die eigene *.bin hoch geladen. Kann der Arduino den ESP8266 als reines Embedded System verwenden ?

@af0815
Von wo hattest du deinen Souce-Code vom Blinker, ist das eine Eigenkreation von dir ?
Ich denke, das sicher irgendwo ein Muster gefunden, was dich soweit brachte.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5066
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: ESP8266 Programmierung

Beitrag von af0815 »

Mathias hat geschrieben:
Mo 18. Apr 2022, 17:20
@af0815
Von wo hattest du deinen Souce-Code vom Blinker, ist das eine Eigenkreation von dir ?
Ich denke, das sicher irgendwo ein Muster gefunden, was dich soweit brachte.
Nein natürlich nicht. ccrause aus dem internationalen Forum hat sich da tief in die Materie eingearbeitet und auch Änderungen am fpc gemacht/veranlasst.
https://github.com/ccrause/fpc-esp-freertos
https://forum.lazarus.freepascal.org/in ... c=57725.15
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

PascalDragon
Beiträge: 509
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

Beitrag von PascalDragon »

Mathias hat geschrieben:
Mo 18. Apr 2022, 17:20
Was ich noch festgestellt habe, mit Lazarus erstellte Programme brauchen zwingend die "bootloader.bin, partitions_singleapp.bin", was bei Arduino nicht der Fall ist, dort wird nur die eigene *.bin hoch geladen. Kann der Arduino den ESP8266 als reines Embedded System verwenden ?
Ich vermute mal, dass für den ESP8266 die gleiche Anmerkung wie beim ESP32 zutrifft:
Note:

Once the bootloader and partition table has been flashed once one could also just flash the application only:

Code: Alles auswählen

esptool.py -p /dev/ttyUSB0 -b 460800 --before default_reset --after hard_reset --chip esp32  write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x10000 hello.bin
Du müsstest also den entsprechenden Aufruf für den ESP8266 anpassen analog zu dem wie der für den ESP32 angepasst wurde:

Code: Alles auswählen

$IDF_PATH/components/esptool_py/esptool/esptool.py --chip esp8266 --port "/dev/ttyUSB0" --baud 921600 --before "default_reset" --after "hard_reset" write_flash -z --flash_mode "dio" --flash_freq "40m" --flash_size "2MB"   0x0 bootloader.bin 0x10000 hello.bin 0x8000 partitions_singleapp.bin
FPC Compiler Entwickler

Mathias
Beiträge: 5224
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: ESP8266 Programmierung

Beitrag von Mathias »

Ich habe Arduino noch mal genauer angeguckt.
Wen ich dort so gucke wursteln die etwas mit python und elf rum, das steht auch etwas von boot.

Code: Alles auswählen

/home/tux/.arduino15/packages/esp8266/tools/python3/3.7.2-post1/python3 -I /home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/elf2bin.py --eboot /home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/bootloaders/eboot/eboot.elf --app /tmp/arduino_build_218200/Blink.ino.elf --flash_mode dout --flash_freq 40 --flash_size 1M --path /home/tux/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/bin --out /tmp/arduino_build_218200/Blink.ino.bin
Creating BIN file "/tmp/arduino_build_218200/Blink.ino.bin" using "/home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/bootloaders/eboot/eboot.elf" and "/tmp/arduino_build_218200/Blink.ino.elf"
/home/tux/.arduino15/packages/esp8266/tools/python3/3.7.2-post1/python3 -I /home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/signing.py --mode sign --privatekey /home/tux/Programme/arduino-1.8.19/examples/01.Basics/Blink/private.key --bin /tmp/arduino_build_218200/Blink.ino.bin --out /tmp/arduino_build_218200/Blink.ino.bin.signed --legacy /tmp/arduino_build_218200/Blink.ino.bin.legacy_sig
/home/tux/.arduino15/packages/esp8266/tools/python3/3.7.2-post1/python3 -I /home/tux/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/sizes.py --elf /tmp/arduino_build_218200/Blink.ino.elf --path /home/tux/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/bin --mmu "-DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000"
E
Was auch noch spannend ist, ich habe mehrere Hochladekommandos gesehen und dabei festgestellt, das verschiedene Bausraten für den Com-Port verwendet werden.
Once the bootloader and partition table has been flashed once one could also just flash the application only:
Konnte ich gerade nachvollziehen. Einmal alles hochladen, später reicht es nur noch die Project1.bin hoch zu laden.
Wen ich mit Arduino hochgeladen habe, muss ich für Lazarus zuerst wieder alle *.bin hochladen.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 5224
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: ESP8266 Programmierung

Beitrag von Mathias »

Ich habe gerade hier gesehen, das es von den ESPTools feritge Binäri hat.
https://github.com/espressif/esptool/releases
Vorher kannte ich die ESPTool nur mit der Endung *.py

Haben die das neu gemacht ?
Ich sehe nichts in der Beschreibung.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

PascalDragon
Beiträge: 509
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

Beitrag von PascalDragon »

Das sind einfach Binaries, welche die Python Runtime sowie alle beteiligten Skripte statisch enthalten, deswegen sind die alle auch so groß.
FPC Compiler Entwickler

Mathias
Beiträge: 5224
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: ESP8266 Programmierung

Beitrag von Mathias »

Sowas habe ich mir fast gedacht.
Aber ist es neu, das sie es jetzt so machen ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

PascalDragon
Beiträge: 509
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

Beitrag von PascalDragon »

Seit Mai '21 anscheinend, da es ab dem Zeitpunkt neben den Source auch Binary Releases gibt. Wobei die direkte Verwendung der Pythonskripte plattformübergreifender ist (du könntest dann zum Beispiel von nem Pi auf nen ESP* kompilieren, das geht mit den Binarypaketen nicht, da nur Linux für x86_64 enthalten ist).
FPC Compiler Entwickler

Benutzeravatar
theo
Beiträge: 8987
Registriert: Mo 11. Sep 2006, 19:01

Re: ESP8266 Programmierung

Beitrag von theo »

Habe mir heute zwei von diesen bestellt.
Sind das "normale" ESP8266? Ich blicke da bei den Versionen nicht ganz durch.
Für fünf Franken habe ich nicht lange nachgeforscht. So viel kostet bei uns ein Bier in der Kneipe.

Mathias
Beiträge: 5224
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: ESP8266 Programmierung

Beitrag von Mathias »

Die sehen fast gleich aus wie meine, ein paar wenige Bauteil sind ein wenig anders platziert. V0.1 steht auch auf meinen.
Was hast du da für ein Händler gefunden ?
Ist das ein Ableger von Aliexpress ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 8987
Registriert: Mo 11. Sep 2006, 19:01

Re: ESP8266 Programmierung

Beitrag von theo »

Mathias hat geschrieben:
Sa 14. Mai 2022, 17:24
Die sehen fast gleich aus wie meine, ein paar wenige Bauteil sind ein wenig anders platziert. V0.1 steht auch auf meinen.
OK, Danke!
Ich gehe auch davon aus, dass das ganz normale ESP8266 sind.
Mathias hat geschrieben:
Sa 14. Mai 2022, 17:24
Was hast du da für ein Händler gefunden ?
Ist das ein Ableger von Aliexpress ?
Nein, das ist Banggood in Guangzhou China. Hat mit Aliexpress nichts zu tun.
Ich habe schon viel bei denen bestellt. Kann nichts schlechtes sagen. Habe auch schon Geld zurück bekommen etc.
Bei den beiden ESP8266 ist auch der Versand schon dabei (CHF 5.15 Total inkl. "Shipping insurance").
Die Lieferung dauert natürlich 2-3 Wochen, aber dafür ist es stinkbillig. :wink:
Meistens muss man auch keinen Importzoll bezahlen.
Das Tracking ist auch sehr gut. Kommt immer über die Niederlande (PostNL).

Das macht es sehr leicht, etwas zu bestellen.
Bei Conrad bezahlt man CHF 13.95 für Versandkostenpauschale und Kleinmengenzuschlag, bevor man überhaupt etwas bestellt hat.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5066
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: ESP8266 Programmierung

Beitrag von af0815 »

Laut der Doku hat der mal einen Lua interpreter drauf.
Codekompatibel, aber interaktiv im Lua-Skript.
Das wird sich aber ändern lassen. Ich würde den mal mit Arduino laden und schauen ob der damit funktioniert. Weil wenn es mit Arduino Probleme gibt, dann sind die in Pascal maximal größer.

Ich habe meine bei AZ-Delivery gekauft. Damit habe ich die besten Erfahrungen gemacht - Preis ist für mich nicht ganz so wichtig.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 8987
Registriert: Mo 11. Sep 2006, 19:01

Re: ESP8266 Programmierung

Beitrag von theo »

af0815 hat geschrieben:
Sa 14. Mai 2022, 21:25
Laut der Doku hat der mal einen Lua interpreter drauf.
Codekompatibel, aber interaktiv im Lua-Skript.
Das wird sich aber ändern lassen. Ich würde den mal mit Arduino laden und schauen ob der damit funktioniert. Weil wenn es mit Arduino Probleme gibt, dann sind die in Pascal maximal größer.
Danke. Ja, mal schauen.
Braucht man ggf. so ein Ding um den ESP umzustimmen?
af0815 hat geschrieben:
Sa 14. Mai 2022, 21:25
Ich habe meine bei AZ-Delivery gekauft. Damit habe ich die besten Erfahrungen gemacht - Preis ist für mich nicht ganz so wichtig.
Wenn ich den ESP8266 für einen seriösen Zweck benötigen würde, wäre mir der Preis auch nicht so wichtig.
Aber manchmal kaufe ich Dinge, nur weil ich Bock habe und sie billig sind und schaue danach, was ich damit machen kann.
Wenn die Dinger nicht funktionieren, dann werde ich zu diesem Preis keine schlaflosen Nächte haben. :wink:

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5066
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: ESP8266 Programmierung

Beitrag von af0815 »

Bei deiner Platine sollte der schon drauf sein, aber es ist nicht schlecht wenn man einen Seriellen Wandler hat. Weil dann kann man nackte ESP auch programmieren. ZB mit einem Tempfühler als WIFI Thermometer haben will. Da ist das ganze recht klein ohne die Zuatzplatine und kann auch Strom sparen, wenn man das mit Akku betreiben will.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten