Raspi Pico

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Raspi Pico

Beitrag von mschnell »

Der Raspi Pico wird im Moment überall sehr diskutiert und scheint den Arduinos stark Konkurrenz uz machen. Auch die Arduino Firma hat ein Board mit demselben Chip (von der Raspi Firma) herausgebracht.
- "embedded" (kein Betriebssystem)
- sehr preiswert
- sehr geringer Stromverbrauch
- USB
- WLAN (der von Arduino)
- Flash in eigenem (standard) Baustein (nicht in der CPU) deshalb sehr viel Programm-Platz
- schon jede Menge "Ecosystem"
- zwei ARM M0 CPUs

Gibt es Tests mit Free Pascal auf diesem Board ?

-Michael

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Raspi Pico

Beitrag von Socke »

Da der ARM Cortex M0+ Befehlssatz von FPC beherrscht, ist das prinzipiell möglich. Stand Montag wurde er aber noch nicht bzw. nur über Umwege unterstützt.

Das UF2-Format, mit dem die Programme übertragen werden, wird in trunk aber schon unterstützt (https://lists.freepascal.org/pipermail/ ... 43532.html).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

PascalDragon
Beiträge: 825
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: Raspi Pico

Beitrag von PascalDragon »

Der Free Pascal Fork von Michael Ring hat bereits Unterstützung für den Pico. Auf der Mailing Liste ging es "nur" um Probleme mit Fließkommaberechnung, die man je nach Anwendungsfall eh nicht braucht.
FPC Compiler Entwickler

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

Re: Raspi Pico

Beitrag von Mathias »

Ich habe gerade so ein Teil vor mir liegen.
Mit der Arduino IDE läuft schon der erste Blinker und eine Serielle Ausgabe.
Eine Lazarus IDE konnte ich mit fpcupdeluxe bauen. Da hat es sogar ein extra BitBtn für den Pico.
Neues blankes Projekt erstellt,
Bei Zielplattform auf Embedded/arm/ARMV6M gestellt. Debugger deaktiviert. F9 und es wurde fehlerfrei kompiliert.
Jetzt habe ich eine bin, elf und hex Datei vom Project auf der Platte.

Die nächste Hürde wird wohl sein, irgendwie die "bin" in den Pico zu kopieren.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Raspi Pico

Beitrag von theo »

Sehe ich das richtig, dass der ESP32 eigentlich besser ist, ausser dass er mehr Strom frisst?

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Raspi Pico

Beitrag von Socke »

theo hat geschrieben:
Mi 26. Jan 2022, 14:38
Sehe ich das richtig, dass der ESP32 eigentlich besser ist, ausser dass er mehr Strom frisst?
Sobald du ein wenig auf den Stromverbrauch achten musst, liegt das "besser" auf der anderen Seite.
Es kommt damit wohl eher auf den Einsatzzweck an.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

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

Re: Raspi Pico

Beitrag von Mathias »

theo hat geschrieben:
Mi 26. Jan 2022, 14:38
Sehe ich das richtig, dass der ESP32 eigentlich besser ist, ausser dass er mehr Strom frisst?
Der STM32 braucht, stlink Hardware zum flashen. Der Pico kann man direkt an den USB anschliessen.
Und der stlink ist in der Handhabung nicht so einfach wie espasp von den AVRs.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Raspi Pico

Beitrag von theo »

Mathias hat geschrieben:
Mi 26. Jan 2022, 15:08
Der STM32 braucht, stlink Hardware zum flashen. Der Pico kann man direkt an den USB anschliessen.
Und der stlink ist in der Handhabung nicht so einfach wie espasp von den AVRs.
Die Frage war aber nach dem ESP32.
Ich konnte den mit Sloeber problemlos programmieren am USB.

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

Re: Raspi Pico

Beitrag von Mathias »

Die Frage war aber nach dem ESP32.
Ups, habe es verwechselt, da der STM32 auch ein ARM ist wie der Pico.

Der Pico ist ein echtes Spielzeug. Da kann man Programme sogar direkt per Drag&Drop auf ihn hochladen, da er als Laufwerk im Explorer abgebildet wird.
Dies sind uf2 Dateien. Arduino erzeugt auch so eine Datei und lädt die dann irgendwie hoch.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Raspi Pico

Beitrag von theo »

Mathias hat geschrieben:
Mi 26. Jan 2022, 16:39
Die Frage war aber nach dem ESP32.
Ups, habe es verwechselt, da der STM32 auch ein ARM ist wie der Pico.

Der Pico ist ein echtes Spielzeug. Da kann man Programme sogar direkt per Drag&Drop auf ihn hochladen, da er als Laufwerk im Explorer abgebildet wird.
Dies sind uf2 Dateien. Arduino erzeugt auch so eine Datei und lädt die dann irgendwie hoch.
Ja, aber eingebautes WiFi und Bluetooth wie beim ESP32, sind für Geräte ohne Monitor und Eingabegeräte schon ein Riesenvorteil.
Den ESP32 kann man im Prinzip auch Over The Air programmieren, also über WiFi oder über BT steuern. Z.B.
https://play.google.com/store/apps/deta ... inal&hl=de
Bluetooth habe ich schon verwendet, um mit dem Smartphone dem ESP32 den WiFi Zugang zu verklickern.
Danach kann man das Ding in irgend einer Ecke vergessen, so lange es im WLAN Bereich liegt.
Also wenn der Stromverbrauch keine Rolle spielt, ist das schon angenehm.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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: Raspi Pico

Beitrag von af0815 »

Der ESP32 und auch der ESP8266 sind ein wenig heikel noch. An und für sich kann man die auch stromsparend betreiben. Den esp8266 sollte man für längere Zeit schlafen legen können. Wenn man Strom sparen will, dann sollte man sich überlegen was man für eine Ausführung verwendet. Grundlegend eine nackte Version, da die ganze RS232 und die Infrastruktur die komfort schafft, natürlich Strom säuft.

Deswegen experimentiere ich mit dem ESP8266, der dürfte im Stromsparen noch der beste sein.

Siehe auch https://lazarusforum.de/viewtopic.php?f=65&t=14037
esp8266.jpeg
(138.91 KiB) Noch nie heruntergeladen
Dort sollten wir auch weiterdiskutieren, da diese Thema nichts mehr mit dem Pico zu tun hat.

Das over the AIR mit dem ESP32 geht ja nur, wenn die entsprechende Software auf dem ESP32 ist.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

PascalDragon
Beiträge: 825
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: Raspi Pico

Beitrag von PascalDragon »

Mathias hat geschrieben:
Mi 26. Jan 2022, 16:39
Der Pico ist ein echtes Spielzeug. Da kann man Programme sogar direkt per Drag&Drop auf ihn hochladen, da er als Laufwerk im Explorer abgebildet wird.
Dies sind uf2 Dateien. Arduino erzeugt auch so eine Datei und lädt die dann irgendwie hoch.
FPC kann mit -Xu ebenfalls UF2 Dateien erzeugen, die direkt hochgeladen werden können.
FPC Compiler Entwickler

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

Re: Raspi Pico

Beitrag von Mathias »

PascalDragon hat geschrieben:
Do 27. Jan 2022, 10:27
Mathias hat geschrieben:
Mi 26. Jan 2022, 16:39
Der Pico ist ein echtes Spielzeug. Da kann man Programme sogar direkt per Drag&Drop auf ihn hochladen, da er als Laufwerk im Explorer abgebildet wird.
Dies sind uf2 Dateien. Arduino erzeugt auch so eine Datei und lädt die dann irgendwie hoch.
FPC kann mit -Xu ebenfalls UF2 Dateien erzeugen, die direkt hochgeladen werden können.
Dies wäre genial, wen man nichts externes braucht.
Ich werde dies bei Gelegenheit ausprobieren.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Raspi Pico

Beitrag von Mathias »

Der Parameter -Xu funktioniert, es wird eine Project.uf2 generiert.
Dafür spuckt Lazarus einen Fehler aus.
Nur komisch, das trotzdem eine uf2 gebaut wird. Welche wie erwartet nicht funktioniert, wen ich sie im Explorer auf den Pico schiebe.

Code: Alles auswählen

Projekt kompilieren, OS: embedded, CPU: arm, Ziel: /n4800/DATEN/Programmierung/Lazarus/Tutorials/Embedded/ARM/Raspberry_pico/blank/Project1.elf: Erfolg, Fehler: 1, Hinweise: 2
Error: /home/tux/fpcupdeluxe_pico/cross/bin/arm-embedded/arm-none-eabi-ld:/n4800/DATEN/Programmierung/Lazarus/Tutorials/Embedded/ARM/Raspberry_pico/blank/link7936.res:25: warning: memory region `ram' not declared
Hint: Start of reading config file /home/tux/fpcupdeluxe_pico/fpc/bin/x86_64-linux/fpc.cfg
Hint: End of reading config file /home/tux/fpcupdeluxe_pico/fpc/bin/x86_64-linux/fpc.cfg
Verbose: Free Pascal Compiler version 3.3.1-9929-g8d63a1ddfd [2022/01/18] for arm
Verbose: Copyright (c) 1993-2022 by Florian Klaempfl and others
Verbose: Target OS: Embedded
Verbose: Compiling Project1.pas
Verbose: Assembling project1
Verbose: Linking /n4800/DATEN/Programmierung/Lazarus/Tutorials/Embedded/ARM/Raspberry_pico/blank/Project1
Verbose: 5 lines compiled, 0.1 sec, 0 bytes code, 58 bytes data
Verbose: 2 hint(s) issued
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Raspi Pico

Beitrag von Mathias »

Ich bin unterdessen weiter gekommen, hier gibt es fertige Beispiel: https://wiki.freepascal.org/ARM_Embedde ... nboard_LED
Da habe ich das Blinky ausprobiert und es läuft auf Anhieb.
Somit ist mein Cross-Compiler io.

Mit dieser Zeile verschwindet auch in meinem ersten Versuch die Fehlermeldung.

Code: Alles auswählen

{$L boot2_pico.obj}
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten