Vai al contenuto
guida#Maker

Arduino UNO Q: primo avvio e prima app con Arduino App Lab

Illustrazione 3D di un utente al laptop collegato a una scheda elettronica su una scrivania.
Immagine generata con IA

Sulla Arduino UNO Q, in formato UNO, ci sono due processori. Il Qualcomm Dragonwing QRB2210 fa girare Debian. L’STM32U585 esegue gli sketch su Zephyr OS, in tempo reale. Arduino App Lab li programma insieme: in un solo progetto stanno lo sketch C++ per il microcontrollore e il codice Python per il lato Linux. Alla fine avrete App Lab installato su Windows, macOS o Linux, la scheda configurata e una prima app vostra, copiata da Blink LED, con i messaggi Python che compaiono nella Console. I comandi e i nomi dell’interfaccia vengono dalla documentazione ufficiale di Arduino, elencata in fondo.

Arduino App Lab: Getting StartedIl video si carica da YouTube quando premi play

Cosa serve

Il manuale utente della UNO Q descrive due modi di lavorare. In modalità PC Hosted la scheda è collegata a un computer su cui gira App Lab. In modalità single-board computer è la scheda stessa a fare da computer. Questa guida segue la modalità PC Hosted, e per questa vi servono:

  • una Arduino UNO Q. Le varianti documentate hanno 2 GB di RAM LPDDR4X e 16 GB di eMMC, oppure 4 GB di RAM LPDDR4X e 32 GB di eMMC;
  • un cavo USB-C dati: un cavo da sola ricarica non va bene. Per alimentare la scheda dalla USB-C il manuale indica 5 V DC e 3 A;
  • un computer con Windows, macOS o Linux su cui installare Arduino App Lab;
  • una rete Wi-Fi a cui collegare la scheda. A internet deve accedere la UNO Q, non solo il computer, perché è lei a scaricare i Bricks e gli aggiornamenti.

Sulla pagina hardware ufficiale trovate anche il pinout in PDF, il datasheet, gli schemi elettrici e i file CAD e STEP. Sono utili quando arriverà il momento di montare uno shield sugli header UNO o un modulo sul connettore Qwiic.

Scaricare e installare Arduino App Lab

App Lab compila lo sketch per l’STM32U585, lo carica sulla scheda e avvia la parte Python sul QRB2210. Andate nella sezione software del sito ufficiale di Arduino, scorrete fino ad Arduino App Lab e scaricate la variante per il vostro sistema operativo. Il manuale non dà comandi da terminale per l’installazione. Poi ogni sistema ha la sua particolarità.

  • Windows: installate la versione per Windows. Al primo avvio Windows Defender, o un altro software di sicurezza, può chiedere se consentire mdns-discovery.exe. Consentitelo: è il componente che trova la scheda sulla rete locale. Se sul PC avete già usato Arduino IDE, la richiesta può non comparire. Se l’avete rifiutata per sbaglio, potete autorizzare mdns-discovery a mano da Windows Firewall.
  • macOS: il file è un .dmg. Apritelo e trascinate Arduino App Lab nella cartella Applicazioni. Quando collegate la scheda, macOS può chiedere di autorizzarne il collegamento: date l’autorizzazione. Per questa prima configurazione è meglio collegare la scheda direttamente al Mac, perché alcuni hub e adattatori USB-C di terze parti possono non essere del tutto compatibili.
  • Linux: prima di avviare App Lab verificate che sia installata la libreria WebKitGTK 4.1, che serve a mostrare l’interfaccia. Su Debian/Ubuntu eseguite sudo apt update e poi sudo apt install libwebkit2gtk-4.1-0; su Arch sudo pacman -S webkit2gtk-4.1; su Fedora sudo dnf install webkit2gtk4.1. Poi installate la versione per Linux: scaricate l’archivio .tar.gz ed estraetelo, per esempio in una cartella Applications nella vostra home. Prima di collegare la scheda ad App Lab bisogna anche dare al vostro utente i permessi sui dispositivi USB. È il passaggio delle due sezioni che seguono.

Solo su Linux: installare le regole udev con post_install.sh

Su Linux, di norma, i dispositivi USB sono accessibili solo a root o agli utenti di gruppi specifici. Senza i permessi giusti App Lab non riesce a collegarsi alla scheda via USB, e non mostra nessun errore. La soluzione del manuale sono le regole udev, che riconoscono la UNO Q dai suoi due identificativi USB:

  • funzionamento normale: VID 2341, PID 0078;
  • Emergency Download Mode (EDL), la modalità per riscrivere il firmware: VID 05c6, PID 9008.

Le regole si possono scrivere a mano, oppure si usa lo script ufficiale post_install.sh del repository ArduinoCore-zephyr, che le installa al posto vostro. Qui seguiamo lo script.

Attenzione: con i comandi che seguono scaricate uno script da internet e lo eseguite con sudo, cioè con i privilegi di amministratore. Lo script crea un file di regole in /etc/udev/rules.d/, ricarica le regole udev e le applica ai dispositivi già collegati. Scaricatelo solo dall’indirizzo ufficiale riportato sotto: uno script preso altrove, o modificato, avrebbe pieno accesso al sistema. Prima di eseguirlo potete aprire post_install.sh con un editor di testo e leggerlo. Nei comandi non ci sono valori da sostituire.

Entrate nella cartella dei download:

cd ~/Downloads

Scaricate lo script dal repository ufficiale:

wget https://raw.githubusercontent.com/arduino/ArduinoCore-zephyr/main/post_install.sh

Se wget non è installato, il manuale propone di scaricare lo stesso file con curl: le istruzioni sono nella sezione «Alternative Installation Method». Poi rendete lo script eseguibile:

chmod +x post_install.sh

Eseguitelo con i privilegi di amministratore e, quando ve la chiede, inserite la vostra password:

sudo ./post_install.sh

I nuovi permessi valgono solo dopo un nuovo collegamento. Scollegate la UNO Q, aspettate qualche secondo e ricollegatela. Se App Lab o un terminale con comandi ADB erano già aperti, chiudeteli e riapriteli dopo aver ricollegato la scheda.

Solo su Linux: controllare le regole e il collegamento

Il metodo manuale crea il file 60-Arduino-UNO-Q.rules, mentre lo script crea 60-arduino-zephyr.rules. Entrambi i metodi coprono le due modalità USB, ma assegnano permessi diversi: lo script consente lettura e scrittura a tutti gli utenti locali con MODE="0666"; le regole manuali usano MODE="0660" e TAG+="uaccess" per concedere accesso all’utente della sessione attiva. Per controllare il file dello script:

cat /etc/udev/rules.d/60-arduino-zephyr.rules

Nel testo devono comparire le regole per le due coppie di identificativi, 2341/0078 e 05c6/9008. Per vedere se il sistema riconosce la scheda, collegatela e filtrate l’elenco dei dispositivi USB:

lsusb | grep -E "2341:0078|05c6:9008"

Con la scheda in funzionamento normale, il risultato è una riga con l’identificativo 2341:0078.

Collegare la UNO Q e completare la configurazione guidata

Aprite App Lab e collegate la scheda al computer con il cavo USB-C. Il pulsante di accensione non serve: la UNO Q si avvia appena riceve corrente, in fino a 60 secondi. La matrice di LED blu fa da spia: durante l’avvio mostra un’animazione a spirale a forma di logo Arduino, poi passa a un battito cardiaco quando l’avvio è finito. Se il sistema chiede di autorizzare il collegamento della scheda, date l’autorizzazione.

La scheda compare in App Lab con un’icona che indica come è collegata: USB oppure, più avanti, Wi-Fi. Selezionatela. Al primo collegamento parte una configurazione guidata, la stessa descritta nella pagina «Connect, Configure, and Update boards in Arduino App Lab» della documentazione di App Lab:

  1. Configurazione della scheda: scegliete il layout della tastiera e un nome per la scheda. Quel nome identifica la UNO Q in App Lab e sulla rete locale, nella forma my-board.local.
  2. Rete: selezionate la vostra rete Wi-Fi e inserite la password. Durante il funzionamento mantenete almeno 20 cm tra la scheda e il corpo. In Italia e negli altri paesi indicati nel datasheet, la banda Wi-Fi 5,15–5,35 GHz è utilizzabile soltanto al chiuso. La scheda deve poter raggiungere internet per scaricare i Bricks e gli aggiornamenti di sistema.
  3. Password Linux: impostate una password per l’utente predefinito arduino. Conservatela: serve per il Network Mode, per l’accesso via SSH e per entrare nel desktop Debian quando usate la scheda da sola.
  4. Account Arduino: potete accedere subito o farlo dopo, dalla voce Account nella barra laterale.

Quando la scheda si collega a internet, controlla da sola se ci sono aggiornamenti. Se ne trova, App Lab vi chiede cosa fare: Install li scarica e li installa, Skip li rimanda, Show update details mostra cosa contengono. Se la connessione cade, il download riprende al nuovo collegamento.

Dopo questa prima configurazione via USB potete raggiungere la scheda anche in rete. App Lab la mostra con l’etichetta Network: cliccateci sopra e inserite la password Linux. Per trovarla App Lab usa mDNS sulla porta UDP 5353. Una rete Wi-Fi per ospiti, una rete aziendale o IoT, una VPN o un firewall restrittivo possono impedirle di comparire, anche se la scheda è connessa al Wi-Fi.

Avviare l’esempio Blink LED

La prima prova è un esempio fatto girare così com’è. Nella barra laterale sinistra trovate:

Schermata di Arduino App Lab che mostra la griglia degli esempi, tra cui l'app Blink LED.
La sezione degli esempi di Arduino App Lab con il riquadro dell’applicazione Blink LED. — Immagine: Arduino
  • Apps: le app create da voi o copiate da un esempio;
  • Learn and Explore, con Inspirations (progetti dimostrativi con più componenti), Examples (esempi di base) e Resources (documentazione e tutorial consultabili offline);
  • Bricks Manager, dove si esplorano i Bricks, cioè i blocchi di codice modulari;
  • Settings, per le reti Wi-Fi, le password Linux e il layout della tastiera.

Aprite Blink LED. Il manuale lo cerca tra gli Examples, il quickstart di App Lab tra le Inspirations. Cliccate Run, il pulsante con l’icona play in alto a destra. App Lab compila lo sketch C++ e lo avvia sulla scheda. In basso si apre da solo il pannello Console, che mostra come procede l’avvio.

L’app è partita quando Run diventa Stop e in fondo allo schermo compare una notifica verde. Sulla scheda il segmento rosso del LED RGB numero 3, LED3_R, resta acceso un secondo e spento un secondo, a ripetizione. Quel LED è collegato a un GPIO dell’STM32U585 ed è lo sketch a comandarlo. Notate che i LED RGB della scheda sono attivi bassi: si accendono con lo 0 logico. Per fermare l’app cliccate Stop.

Creare la prima app partendo dall’esempio

Gli esempi integrati sono in sola lettura, quindi per modificarli ne serve una copia. Con Blink LED aperto cliccate Copy and edit app in alto a destra, scrivete un nome e confermate con Create new. App Lab apre la nuova app, questa volta modificabile.

Schermata dell'editor di codice in Arduino App Lab con il file sketch.ino e l'albero dei file a sinistra.
L’editor di Arduino App Lab aperto sui file di progetto per personalizzare l’applicazione. — Immagine: Arduino

Lo sketch sull’STM32U585 espone la funzione set_led_state attraverso Bridge, la libreria RPC che collega il microcontrollore al lato Linux. Il programma Python sul QRB2210 la chiama con Bridge.call. Il ritmo lo decide quindi Python, mentre il pin lo comanda il microcontrollore.

  1. Nella barra laterale aprite il File Manager, entrate nella cartella python e selezionate main.py, che si apre in una nuova scheda.
  2. Nella funzione loop trovate time.sleep(1) e cambiatelo in time.sleep(0.1).
  3. Cliccate Run. Se sulla scheda è attiva un’altra app, App Lab vi chiede di sostituirla: scegliete Confirm and replace.

Il LED rosso ora lampeggia molto più in fretta. Avete cambiato una riga di Python, e il risultato si vede su un pin comandato dall’STM32.

Leggere il log Python nella Console

App Lab raccoglie le istruzioni print() di Python e le mostra nella scheda Python del pannello Console. È il modo più diretto per sapere cosa sta facendo il lato Linux.

Interfaccia di Arduino App Lab con il pannello Console aperto in basso e i log Python visibili.
La console inferiore di Arduino App Lab con i log di esecuzione dell’ambiente Python. — Immagine: Arduino

Riaprite python/main.py dal pannello Files e andate alla funzione loop(). Lì il codice aspetta con time.sleep, inverte led_state e lo passa al microcontrollore con Bridge.call("set_led_state", led_state). Subito dopo questa chiamata, con lo stesso rientro, aggiungete un controllo su led_state: se è vero, print("LED is ON"), altrimenti print("LED is OFF"). Il blocco completo è nello Step 4 del quickstart.

Cliccate Run. Quando si apre il pannello Console, selezionate la scheda Python: i messaggi «LED is ON» e «LED is OFF» compaiono in tempo reale, uno a ogni cambio di stato del LED. Per fermare l’app cliccate Stop.

In alternativa: la UNO Q da sola, con monitor e tastiera

App Lab è già installato sulla scheda, che può anche lavorare da sola come single-board computer. Vi servono un monitor HDMI, una tastiera, un mouse e un adattatore USB-C multiporta con alimentazione esterna (power delivery), collegato alla porta USB-C della scheda. Il manuale accetta qualsiasi adattatore di questo tipo, tranne quelli Apple, e per questa modalità raccomanda la variante da 4 GB di RAM. Network Mode e modalità standalone funzionano anche insieme: alla stessa scheda potete arrivare pure da App Lab sul computer.

Se qualcosa va storto

  • Su Linux App Lab non si collega via USB e non dà errori: il messaggio sui permessi insufficienti compare solo nella console DevTools. Installate le regole udev, scollegate e ricollegate la scheda e riaprite App Lab.
  • La scheda non viene rilevata via USB: scollegatela e ricollegatela, e controllate che almeno un LED si accenda. Aspettate l’animazione a battito cardiaco sulla matrice. Usate un cavo dati, collegate la scheda direttamente al computer e non a un hub, provate un’altra porta e staccate eventuali cavi jumper dai pin. Gli hub USB-C Apple non sono compatibili, e su alcuni hub le porte USB-A possono non rilevare la scheda.
  • Su Windows la scheda non compare in rete: verificate di aver consentito mdns-discovery.exe, oppure autorizzatelo da Windows Firewall.
  • La scheda non compare in Network Mode: la prima configurazione va fatta via USB. Computer e scheda devono essere sulla stessa rete Wi-Fi, e il firewall deve lasciar passare il traffico sulla porta UDP 5353. Che la scheda risponda dal browser, via SSH o al suo indirizzo IP non basta: App Lab la elenca solo se la trova con la ricerca sulla rete locale.

Documentazione di riferimento

Pagine ufficiali di Arduino, in inglese, consultate il 22 ottobre 2026:

Le istruzioni sui permessi USB valgono per Linux in generale: il manuale non le riferisce a una distribuzione specifica.

Leggi anche