ZZBlocks 0.3.6 TEST — verifiche del 15 ottobre 2026

MQ-2: aggiunti stima R0 in aria pulita e stima ppm con scelta del gas, R0, RL, temperatura e umidità. La correzione ambientale e i profili delle curve sono approssimazioni dichiarate nel tooltip/guida; non sono certificati. Test blocchi MQ-2: generazione, gas menu, input di temperatura/umidità, validazione Setup e roundtrip superati. Test generale aggiornato: 1.188 scenari di generazione/roundtrip, 882 casi attesi fermati dalla validazione; sintassi C++ simulata: 713 programmi, zero errori. Il compilatore Arduino CLI AVR incluso nel workspace è terminato con exit 139 prima di mostrare output; prova reale di compilazione/upload e sensore fisico restano da fare su Windows/Arduino UNO.

ZZBlocks 0.3.3 TEST — verifiche del 14 ottobre 2026

- MQ-2 e MQ-3: quattro blocchi visibili per sensore, con configurazioni analogica
  e digitale separate, lettura analogica e controllo DO attivo LOW. Test automatico
  verificato per selezione pin, codice, categorie, esempio MQ-3, roundtrip progetto,
  compatibilità del vecchio blocco combinato MQ-2 e segnalazione di configurazione
  mancante. Nessuna libreria aggiuntiva. L’utente conferma che i moduli MQ-2 e MQ-3
  in laboratorio espongono entrambi A0 e D0; il comportamento elettrico del D0
  e la compilazione AVR restano da verificare sull’hardware.
- MQ-4 KS0042: quattro blocchi nella sottocategoria Gas, configurazioni A0/AO e
  D0 separate, lettura ADC grezza/relativa e test digitale attivo LOW; codice e
  validazione automatica verificati insieme alla regressione MQ-2/MQ-3. La prova
  elettrica del D0 e la compilazione AVR restano da fare sull’hardware reale.
- MQ-5 KS0043: quattro blocchi nella sottocategoria Gas, pin analogico/digitale
  separati, lettura grezza/percentuale ADC, condizione D0 attiva LOW e controllo
  che i pin siano configurati nel Setup; regressione generatori MQ-2/3/4/5 passata.
  La prova elettrica del D0 e la compilazione AVR restano da fare.
- MQ-6 KS0044: quattro blocchi, configurazione separata A0/D0, lettura analogica
  grezza/percentuale, soglia digitale attiva LOW e validazione Setup; regressione
  automatica MQ-2/3/4/5/6 superata. D0 e compilazione AVR restano da provare sul
  modulo reale.
- MQ-7 KS0045: quattro blocchi, pin analogico/digitale distinti, lettura relativa,
  condizione digitale indicativa e validazione Setup; regressione MQ-2/3/4/5/6/7
  superata. Il ciclo heater alto/basso richiesto dalla documentazione non è
  generato: il modulo e il D0 non sono stati testati; non usare come allarme CO.
- MQ-8 KS0046: quattro blocchi, configurazioni A0/D0 distinte, lettura analogica
  grezza/relativa, condizione D0 attiva LOW e validazione Setup; regressione
  automatica MQ-2/3/4/5/6/7/8 superata. Nessuna misura ppm o funzione di sicurezza;
  prova fisica e compilazione AVR ancora da eseguire.
- MQ-135 KS0047: quattro blocchi, configurazioni analogica/digitale separate,
  ADC grezzo/percentuale relativa, condizione D0 attiva LOW e validazione Setup;
  regressione automatica MQ-2/3/4/5/6/7/8/135 superata. La prova hardware non è
  stata eseguita; i valori non sono AQI o ppm calibrati.
- GP2Y1014AU: sei blocchi in Sensori > Gas e qualità dell’aria > Polveri
  sottili, incluso il classificatore didattico in cinque fasce. Soglie configurabili,
  ordine crescente normalizzato dal generatore; selezione pin, sequenza temporale,
  conversioni ADC/volt/densità e controllo Setup/campione verificati.
  La classificazione usa stime non calibrate e non è una valutazione ufficiale.
  La prova hardware del nuovo classificatore resta da fare.
- DS3231 in Periferiche > Orologio: init I²C, stato di presenza, lettura data/ora,
  temperatura, impostazione ora/data; helper C++ compilato ed eseguito con bus I²C
  simulato, incluse data, ora, anno bisestile e secolo 2100; nessuna libreria esterna.
- Monitor seriale: apertura/chiusura localizzate e scollegamento fisico senza
  mostrare il messaggio tecnico inglese.
- Sensore TEMT6000 KS0098: lettura analogica selezionabile 0–1023 o percentuale;
  inserito nella sottocategoria Sensori > Luce, senza librerie aggiuntive.
- S12SD UVR GUVA-S12SD: ingresso analogico, 0–1023 o percentuale relativa;
  nessuna libreria aggiuntiva; non etichettato come indice UV calibrato.
- Generatore dei nomi variabili: verificati «luce» e «luminosità»; la lettera
  u è conservata e l’accento viene normalizzato.

- 392 scenari di generazione e salvataggio/riapertura.
- Importazione dei progetti 0.2: codice degli esempi conservato.
- DOM simulato: 16 esempi, 191 tipi di blocco, zero errori di caricamento.
- 246 verifiche di sintassi C++ con API Arduino sostitutive: zero errori.
- 35 scenari di regressione con campi compilati (testo, CSV, GPS, RTTTL,
  suolo e BMP280), salvataggio/riapertura e sintassi C++ passati.
  Le firme TinyGPS, BMP280 e TimerFreeTone sono verificate usando gli header
  delle librerie incluse; Arduino/SPI/I2C/SD/SoftwareSerial sono sostituiti.
- 7 protezioni originali e 4 controlli GPS passati.
- RTTTL: test eseguibili su computer per note, ottave, diesis, note puntate,
  pause, stop persistente, play, comandi suddivisi e input non valido.
- Sintassi Python del launcher verificata.

NON ESEGUITE: compilazione/link AVR reali, prove Windows, upload USB,
seriale e periferiche fisiche. I test con API sostitutive non certificano
prestazioni, memoria o comportamento elettrico su Arduino UNO.
Usare Verifica sul proprio PC prima del caricamento.

- LED singolo in Attuatori > Uscite: testati selezione pin, stati ON/OFF,
  inizializzazione automatica OUTPUT nello Setup e presenza nella toolbox.

- LED PWM: verificati pin selezionabile, inizializzazione OUTPUT e luminosità iniziale 0, ingresso da variabile e valore numerico, limitazione a 0–255, presenza in Attuatori > Uscite e controllo conflitto Tone su D3. Sintassi C++ generata verificata.

- KS0015: verificati categoria Sensori > Salute, configurazione analogica selezionabile A0–A5 nel Setup, lettura raw 0–1023 e segnalazione dell’errore se manca la configurazione. Testata la sintassi C++ generata.
- KS0015 BPM: test sintetico su onda analogica simulata a 75 BPM (uscita 75); verificati anche timeout e campionamento 20 ms nel codice generato. La prova sintetica non sostituisce il test sul sensore reale.
- KS0031: verificati sottocategoria Attuatori > Pulsanti > Touch capacitivo, menu pin digitale, inizializzazione INPUT nel Setup, lettura HIGH e validazione se manca la configurazione. Sintassi C++ generata verificata.
- PNG: verificati la posizione del pulsante nella barra superiore, il collegamento al gestore di esportazione, la sintassi JavaScript e il download con URL Blob. Il rendering viene effettuato dal browser.

- Potenziometro: verificati sottocategoria Sensori > Potenziometro, selezione del pin analogico, valore percentuale, codice senza librerie o configurazioni aggiuntive.
- PNG in Edge: testato il percorso con selettore di salvataggio diretto e il fallback al download automatico.

- KS0203: verificati categoria Sensori > Acqua, menu A0–A5, lettura grezza/percentuale relativa, codice senza librerie aggiuntive. Blocco spostato dalla precedente categoria Pressione e ambiente senza cambiare il tipo serializzato.

- KS0050 line tracking: verificati categoria Sensori > Robotica, pin digitale
  selezionabile, livello nero HIGH/LOW configurabile, segnale grezzo e
  condizione booleana. Sintassi C++ generata verificata; test su hardware reale
  non eseguito in questa sessione.
- KS0035: verificati categoria Sensori > Robotica, pin analogico A0–A5,
  segnale grezzo e funzione picco-picco con finestra limitata 5–500 ms.
  Sintassi C++ generata verificata; test su hardware reale non eseguito.
- L298N: verificati Attuatori > Motori > L298N, menu PWM per ENA/ENB,
  sei pin distinti configurabili, marcia avanti/indietro e arresto per inerzia.
  Sintassi C++ generata verificata; prova con motori reali non eseguita.
- HC-05: verificati Comunicazioni > Bluetooth > HC-05, RX/TX distinti,
  baud/timeout, invio testo/riga/byte, ricezione byte/testo, pin STATE e
  controllo di esclusione SoftwareSerial. Sintassi C++ generata verificata;
  test radio reale non eseguito.
- HC-08 BLE: verificati Comunicazioni > Bluetooth > HC-08 BLE, RX/TX distinti,
  baud/timeout, invio testo/riga/byte, ricezione byte/testo, pin STATE e
  incompatibilità con HC-05/GPS/seriali software simultanee su UNO. Sintassi
  C++ generata verificata; test radio reale non eseguito.

- DX-BT24 BLE 5.1: aggiunti Comunicazioni > Bluetooth > DX-BT24 BLE 5.1 con
  inizializzazione RX/TX, baud predefinito 9600 e timeout, invio testo/riga/byte, ricezione
  byte/testo e lettura facoltativa di STATE. Il generatore impedisce l'uso
  simultaneo con HC-05/HC-08, GPS e altre seriali software su UNO. Sintassi
  C++ e test automatici verificati; prova radio su hardware non eseguita.

- Testo trim: aggiunto in Testo il blocco che applica String.trim() alla
  variabile selezionata; test verifica toolbox, variabile String e codice
  generato. Regressione DX-BT24/HC-05/HC-08 e sintassi C++ superate.

- KS0048 Livello acqua: aggiunta categoria Sensori > Acqua con lettura
  analogica 0–1023/percentuale relativa e condizione sopra soglia regolabile
  (valore iniziale d'esempio 700). Test automatico per toolbox e codice
  generato, sintassi C++ verificata. Test sul modulo reale non eseguito.

- Sensori > Acqua: regressione KS0048 e KS0203; entrambi i sensori analogici
  sono presenti nella sottocategoria. Valori grezzi/percentuali e confronto
  soglia KS0048 verificati; sintassi C++ generata superata. Nessuna prova
  elettrica del KS0203 in questa sessione.

- Nomi blocchi sensore: verificato che le etichette delle registrazioni
  standard non mostrano codici KS; i blocchi e il gruppo KS0183 sono preservati.
  Messaggi di verifica di Touch capacitivo e Sensore battito resi generici.
  Test automatici di acqua, touch e battito e sintassi C++ generata superati.

- Avvisi errori: test DOM con Web Audio simulato. Casella Avvisi attiva per
  default, disattivazione/riattivazione e persistenza implementate; doppio bip
  una volta per errore. Verificato che il trascinamento non dà falsi allarmi,
  ma un blocco lasciato scollegato viene segnalato e blocca Carica su UNO fino
  alla correzione. Verificati avvii, esempi e ripristino progetto.

- OLED editor: generazione e serializzazione/riapertura verificate per immagini
  128×64 e 128×32 e per animazione GIF a due fotogrammi; il generatore produce
  bitmap PROGMEM e avanzamento non bloccante. Sintassi C++ controllata con
  interfaccia OLED sostitutiva. Importazione PNG/GIF e resa visiva non provate
  in un browser reale in questa sessione; verifica finale su PC e display fisico
  consigliata prima dell’uso in laboratorio.

- Correzione importazione OLED GIF: acquisizione con elemento GIF nel DOM e
  campionamento esteso. Test regressione bitmap animata a due fotogrammi e
  serializzazione progetto superati. Importazione in browser reale e prova su
  OLED fisico restano da verificare con questa build.

- OLED fotogrammi nominati: test di generazione per blocchi immagine singoli,
  riuso della stessa bitmap senza duplicare PROGMEM, limite aggregato di 8 KB
  e roundtrip del progetto superati. Test UI in browser e prova su display
  fisico non eseguiti.
- Piezoelettrico analogico di vibrazione: testati i blocchi di configurazione
  A0–A5, lettura grezza e confronto soglia regolabile 0–1023; validata la
  categoria Sensori > Robotica, il tooltip, il blocco Setup diretto richiesto e
  la sintassi C++ generata. Test hardware non eseguito.
- Modulo analogico di rilevamento tensione: verificati i quattro blocchi in
  Sensori > Robotica, etichette maiuscola/minuscole richieste, selezione pin
  A0–A5, conversione con rapporto 5:1, soglia configurabile, Setup richiesto,
  tooltip e sintassi C++ generata. Hardware non testato.
- Sensore di pressione a film sottile: verificati categoria Sensori > Robotica,
  etichette secondo la convenzione richiesta, selezione pin A0–A5, lettura ADC,
  soglia 0–1023, Setup richiesto, tooltip e sintassi C++ generata. Il dato non
  viene presentato come forza calibrata. Test hardware non eseguito.
- Trasmettitore IR: verificati i blocchi in Sensori > IR, generazione per NEC,
  Sony, RC5 e NEC grezzo, limitazione delle ripetizioni, tooltip con D3, inclusione
  della libreria e sintassi C++ con firme API sostitutive. Verificati anche i
  generatori già presenti per il ricevitore IR. Test radio/hardware non eseguito.
- Joystick Keyestudio: verificati i blocchi in Sensori > Robotica, due ingressi
  analogici distinti, pin digitale selezionabile, polarità LOW/HIGH del pulsante,
  letture X/Y e pulsante, tooltip, requisito del Setup e sintassi C++ generata.
  Test sul modulo fisico non eseguito.
- Toolbox Robotica: verificata la nuova struttura a sottocategorie e la presenza
  una sola volta di ciascun gruppo di blocchi, senza blocchi mancanti.
- Encoder rotativo KS0013: verificati pin CLK/DAT/SW distinti, conteggio e verso,
  pulsante attivo LOW, azzeramento, aggiornamento nel Loop, validazione e sintassi
  C++ generata. Prova con hardware reale non eseguita.
- ULN2003/28BYJ-48: verificati i blocchi in Attuatori > Motori > Passo passo,
  quattro pin distinti, sequenza a mezzo passo, valore e velocità limitati,
  rilascio bobine, configurazione Setup e compilazione sintattica C++.
  Prova con motore e driver reali non eseguita.
- Relè Keyestudio 5 V: verificati i blocchi in Attuatori > Relè, selezione pin,
  logica attiva HIGH, stato iniziale OFF, comandi ON/OFF, tooltip, validazione
  Setup e sintassi C++ generata. Hardware non testato.
- APDS-9930: verificati i blocchi sotto Sensori > Robotica > Luce e prossimità,
  Setup I2C richiesto, attivazione luce/prossimità, letture lux e valore grezzo,
  confronto soglia, tooltip elettrico e compilazione sintattica C++ con la
  libreria inclusa. Hardware non testato.
- TMD27713: verificati i blocchi in Sensori > Robotica > Luce e prossimità,
  inizializzazione, letture in lux e prossimità grezza, soglia, Setup diretto,
  tooltip, libreria APDS9930, sintassi C++ e controllo di conflitto con il modulo
  APDS-9930 a indirizzo 0x39. Prova hardware non eseguita.
- MMA8452Q: verificati i blocchi in Sensori > Robotica > Accelerazione e
  inclinazione, scelta indirizzo I²C, fondo scala e data rate, aggiornamento
  campioni nel Loop, letture X/Y/Z in g e raw, stato di orientamento, tooltip,
  validazione del Setup e sintassi C++ con la libreria inclusa. Hardware non
  provato.
- LED Matrix 8×8: verificati Visualizzazione > LED Matrix 8×8, indirizzi 0x70–0x77,
  luminosità, rotazione, cancellazione, pixel, forme, testo, menu faccine e 64
  caselle dell’editor. Verificati generazione e roundtrip del progetto; C++ dello
  sketch generato controllato con API sostitutive. Le librerie Adafruit LED
  Backpack, GFX e BusIO sono incluse. Test sul display fisico non eseguito.
- Aggiornamento LED Matrix: controllati i 30 sprite forniti dall’utente, le etichette
  italiane, il blocco «Matrice LED 8x8 immagine», le bitmap in PROGMEM e i metodi
  setType(0), setTextWrap(false) e setTextSize(1) del codice di esempio. Tutti i
  30 blocchi immagine sono stati generati e salvati/riaperti nel test; sintassi
  C++ con API sostitutive verificata. Il display fisico resta da provare.
- LED Matrix KS0396: aggiunta la scelta V1/V2 nel blocco di inizializzazione,
  che genera setType(0)/setType(1). Rimosse le trasformazioni coordinate
  ipotizzate; orientamento regolabile con il blocco ruota. Corretti i metadati
  della toolbox: V2 è il valore iniziale del menu e non viene serializzato come
  ingresso numerico. Test automatici delle due opzioni e della definizione
  mostrata nel flyout, toolbox, sprite, roundtrip e sintassi C++ superati.
  Prova fisica da eseguire.
- Launcher: test in directory temporanea con libreria KS0396 obsoleta già
  installata. All’avvio la copia inclusa aggiorna i file obsoleti e conserva
  file aggiuntivi dell’utente; verificato anche il richiamo esplicito della
  sincronizzazione. Il test LED Matrix controlla inoltre la selezione V1/V2.
  La verifica fisica con questa versione resta da fare.

ZZBlocks 0.3 TEST — controllo generale del 13 ottobre 2026

- 36 test mirati di sensori, attuatori, categorie, toolbox e generazione: superati.
- 1.128 combinazioni generate/serializzate/riaperte; 858 sono state
  intenzionalmente fermate dai controlli perché incomplete o con configurazioni
  di pin incompatibili; le altre 270 sono state generate e confrontate dopo
  il roundtrip.
- 668 controlli sintattici C++ con API Arduino sostitutive: zero errori.
- DOM simulato: 16 esempi e 372 tipi di blocco, nessun errore di caricamento.
- 36 regressioni con campi popolati, migrazione di tutti i progetti 0.2,
  7 guardrail, 4 guardie GPS, sincronizzazione librerie e Python launcher: passati.
- Corretto il controllo di configurazione nel Setup per Rilevatore linea e
  Microfono: senza i rispettivi blocchi di configurazione la verifica blocca
  la generazione e indica cosa aggiungere.

Limite: il binario Arduino CLI incluso va in segmentation fault nell'ambiente
usato per questo controllo; non è stata certificata la compilazione AVR reale.
Compilazione su Windows, upload USB e test fisici su Arduino UNO restano da fare.

KS0357 LED Matrix 8×16 aggiunta il 13 ottobre 2026: verificati toolbox, driver
AIP1640 a due fili, 128 caselle del blocco disegna, pin SDA/SCL e luminosità,
roundtrip, controlli di inizializzazione e conflitti I²C; test C++ simulato superato.
Da confermare con test fisico orientamento e accensione dei pixel sul pannello reale.

- Interrupt e sleep profondo UNO: verificata generazione di attachInterrupt su D2/D3, modalità Power-down, flag evento consumato una volta, collocazione nel Setup/Loop, esclusione conflitto tra pin evento e IRQ LoRa, percorso sleep risvegliato dalla radio LoRa. Test di generazione e roundtrip del progetto superati. Compilazione AVR e prova elettrica richiedono Arduino UNO e shield reali.


Interfaccia 0.3.5: aggiunta colorazione locale del codice C++ e divisore accessibile/trascinabile fra Blockly e codice; larghezza salvata in localStorage. Test mirato UI: tokenizzazione/escape HTML e presenza del divisore verificati. La prova browser interattiva non è stata eseguita perché Playwright non trova un browser installato nell’ambiente. Test generazione e regressione MQ-2, LoRa, matrici 8×8 e 8×16, interrupt, 1.188 scenari e 713 verifiche sintattiche C++ simulati superati. Compilazione AVR reale non certificata: Arduino CLI termina con exit 139 nell’ambiente.


Verifica UI 0.3.6: testata la presenza del divisore seriale ridimensionabile, scroll del codice in entrambi gli assi, opzioni Blockly per zoom/cestino/scrollbar e selettore CSS limitato alla SVG principale. Test UI sorgente e DOM Blockly superati.


Verifica aggiunta NeoPixel RGB — 16 ottobre 2026
- Superato test generatore: categoria e blocchi, campi pin/conteggio/ordine/frequenza, colore RGB, pixel singolo, riempimento, show, luminosità, vincolo Setup, conteggio massimo e roundtrip salvataggio/riapertura.
- Superati test DOM, esempi, 1.209 scenari di generazione, matrici LED 8×8 e 8×16, LoRa, interrupt e stima MQ-2.
- La compilazione AVR reale non è stata eseguita: in questo ambiente Arduino CLI termina con exit 139 (limite già documentato sopra).

Correzione NeoPixel: verificata l’uniformità del colore su tutti gli otto blocchi della categoria.


Verifica NeoPixel tavolozza 0.3.8: testati 70 campioni, apertura finestra, selezione colore, generazione RGB e roundtrip del progetto.


- SDS011: categoria Sensori > Gas e qualità dell’aria > Particolato PM2.5 / PM10; Setup UART RX/TX, aggiornamento nel Loop, blocchi PM2.5/PM10 in µg/m³, flag di nuovo pacchetto, sleep e wakeup. Inclusa libreria ricki-z/SDS011 con licenza originale. Test automatici su generatori, categoria, salvataggio/riapertura, pin, rilevamento dati e conflitto SoftwareSerial; parser testato su pacchetto UART sintetico. Non eseguiti compilazione AVR, upload e test hardware.
