Skip to content
Arturo Rinaldi edited this page Jan 18, 2022 · 2 revisions

Guida all' installazione della piattaforma RP2040 per PlatformIO con supporto per la scheda Arancino Pico

Installazione della piattaforma

Dopo avere installato sul proprio sistema operativo l'ambiente di sviluppo PlatformIO tramite la documentazione ufficiale da consultare a questo link (si consiglia di usare VSCode):

https://platformio.org/install

https://docs.platformio.org/en/latest/core/installation.html

bisogna integrare manualmente il porting col supporto delle schede Arancino. Al momento é stato fatto su un fork del codice sorgente della singola piattaforma platform-raspberrypi di Ivan Kravets.

Gli URL di riferimento per la piattaforma sono (core e tools di upload):

Una volta effettuata l’installazione, navigare nella cartella utente di platformIO sul proprio sistema che, in base al sistema operativo, é definita come:

Unix e Unix-like ~/.platformio o ${HOME}/.platformio

Windows %HOMEPATH%\.platformio (ad es. C:\Users\myuser.platformio)

creare la sotto-cartella platforms e clonare al suo interno il codice sorgente con questo comando :

$ git clone https://git.smartme.io/smartme.io/arancino/ide/platform-raspberrypi.git -b 1.5.0-arancino raspberrypi

$ cd ${HOME}/.platformio/platforms/raspberrypi

$ git submodule update --init --recursive

oppure scaricare lo zip dei sorgenti dall’interfaccia web di gitlab ed estrarre il contenuto dell’archivio nella cartella raspberrypi.

Gestione del file di progetto platformio.ini

A questo punto il sistema per lavorare é praticamente pronto… basta cominciare a scrivere il file platformio.ini per cominciare a creare la build per i nostri dispositivi. Esaminiamo questo template :

; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:arancinopico]
platform = raspberrypi
board = arancinopico
; board_upload.port = /dev/ttyXXX
; upload_flags =
framework = arduino
lib_archive = no
lib_deps =
     smartme-io/[email protected]

Una volta che é stato inizializzato il file, ad esempio in VSCode creando un nuovo progetto scegliendo come board la scheda arancino, dobbiamo aggiungere alcune voci in aggiunta a quelle di default se vogliamo programmare le nostre schede :

upload_protocol

E' principalmente usato un solo protocollo di upload per la piattaforma :

  • picotool: richiama il tool di upload da riga di comando rp2040load.

board_upload.port

é il target su cui si vuole caricare il firmware ed é in genere un device descriptor del tipo /dev/ttyACMX. Di default viene rilevata da platformIO e non viene fatto nessun override della stessa.

upload_flags

ci consente di aggiungere delle flags aggiuntive al nostro tool di upload. Non ci sono particolari flag da aggiungere alle board di questa piattaforma.

lib_deps

qui vanno aggiunte le librerie aggiuntive arduino-like e non (a seconda della piattaforma) che servono per la compilazione del codice sorgente.

Installazione del core della piattaforma Arancino rp2040

Al momento, per installare il core arduino-like della piattaforma Arancino RP2040 bisogna inserire l'url diretto alla tarball nella sezione framework-arduino-rp2040-arancino del file platform.json:

"framework-arduino-rp2040-arancino": {
  "type": "framework",
  "optional": true,
  "owner": "smartme-io",
  "version": "~1.0.0"
}

nel campo version che attualmente ha scolpito il valore 1.0.0:

http://download.smartme.io/artifactory/framework-arduino-rp2040-arancino/1.0.0/framework-arduino-rp2040-arancino-1.0.0.tar.bz2

Ovviamente il campo version puó essere sostituito con un'altra versione stabile o di sviluppo della piattaforma. Ad esempio, per una release di tipo snapshot, un valore dell'url potrebbe essere simile a questo:

http://download.smartme.io/artifactory/framework-arduino-rp2040-arancino/1.1.0-test.1/framework-arduino-rp2040-arancino-1.1.0-test.1.tar.bz2

lo stesso concetto modulare verrá applicato per altri tool aggiuntivi e non della piattaforma (se dovesse essere necessario).

Template di platformio.ini pronto per l'uso della piattaforma

Per evitare i passi descritti sopra, viene fornito un template predefinito che effettua l'override dei componenti descritti sopra:

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:arancinopico]
platform = https://github.com/smartmeio/platform-raspberrypi.git#1.5.0-arancino
board = arancinopico
framework = arduino
platform_packages =
    smartmeio/framework-arduino-rp2040-arancino@http://download.smartme.io/artifactory/framework-arduino-rp2040-arancino/1.0.0/framework-arduino-rp2040-arancino-1.0.0.tar.bz2
    maxgerhardt/toolchain-pico@https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.3.1-a/x86_64-linux-gnu.arm-none-eabi-7855b0c.210706.tar.gz

l'utente potrá quindi modificare a proprio piacimento i valori su questa base e poi lanciare la build del firmware, da riga di comando o da VSCode stesso selezionando l'ambiente di build.

Ad esempio per effetuare da riga di comando (CLI), la build del firmware solo per la board arancino, dovrá essere lanciato il comando:

$ pio run -vvv -d <platformio_work_dir> -e arancinopico

invece per effettuare l'upload (o il processo combinato di build e upload):

$ pio run -vvv -d <platformio_work_dir> -e arancinopico -t upload

Installazione della libreria Arancino

Installazione dal registry di platformIO

La libreria Arancino per la piattaforma puó essere installata in modalitá system-wide nella cartella utente di platformIO con questo comando:

$ pio lib --global install smartme-io/Arancino

da digitare nella propria shell di sistema (Unix o DOS). Di default verrá installata sempre l'ultima versione pubblicata sul registry di platformIO, altrimenti sará possibile specificare la versione con:

$ pio lib --global install smartme-io/Arancino@<VERSION>

Le versioni disponibili sono quelle pubblicate sul "registry" ufficiale delle librerie di platformIO:

https://platformio.org/lib/show/11767/Arancino

Installazione tramite VCS

L'installazione puó anche essere effettuata tramite repository git remoto:

$ pio lib --global install https://github.com/smartmeio/arancino-library.git

L'installazione punterá sempre al branch predefinito del repository (in questo caso master). É possibile anche specificare il branch per testare una versione di sviluppo:

$ pio lib --global install https://github.com/smartmeio/arancino-library.git#<GIT_BRANCH>

stesso discorso vale per la tag del codice sorgente stesso:

$ pio lib --global install https://github.com/smartmeio/arancino-library.git#<GIT_TAG>