La scheda Digispark con ATtiny85 è nata su Kickstarter nel 2017. Si tratta di una piccola scheda di sviluppo che misura solamente 18×18 mm circa; il microcontrollore ATtiny85, simile a quello montato sulla Schede serie Arduino, solo più economico, più piccolo e un po’ meno potente.
Confronto dei moduli CJMCU LilyTiny ,Adafruit Trinket e Digispark,
Indice
Digispark ATtiny85
La scheda Digispark è nata su Kickstarter nel 2017.
Si tratta di una piccola scheda di sviluppo che misura solamente 18×18 mm circa.
Il microcontrollore Attiny85, simile a quello montato sulla Schede serie Arduino, solo più economico, più piccolo e un po’ meno potente.
Con la presenza di molti shield si possono però estendere le sue funzionalità. Con la capacità di utilizzare l’IDE di Arduino, il Digispark è un ottimo modo per entrare nell’elettronica; è perfetto per quando ad esempio un Arduino UNO è troppo grande.
Il Digispark viene venduto completamente assemblato, tranne per i due connettori facili da saldare che possono essere scelti secondo le proprie esigenze.
Caratteristiche
-
Supporto per Arduino IDE (OSX / Win / Linux)
- MCU AVR ATtiny85 da 16 MHz:
- 8k Memoria Flash (circa 6k dopo il bootloader)
-
Alimentazione tramite USB o sorgente esterna – 5v o 7-35v (consigliato 12v o meno, selezione automatica)
-
Regolatore con uscita 5V – 500mA
-
Integrato USB incorporato
-
6 pin I / O (2 usano solo USB se il programma comunica attivamente tramite USB, altrimenti è possibile utilizzare tutti i 6 pin anche se si sta programmando tramite USB)
-
I2C e SPI
-
PWM su 3 piedini (altri con Software PWM)
-
ingresso ADC su 4 pin
-
LED di alimentazione e LED di test/stato (sul pin 1)
Differenze con Arduino
Cambiando il tipo di MCU vi sono alcune limitazioni:
- I pin digitali 3 e 4 sono utilizzati per la comunicazione USB. Per cui occorre disconnettere eventuali collegamenti durante la programmazione.
- Tenendo conto della nota precedente, il pin 3 ha anche una resistenza di pull-up da 1.5kΩ
- A bordo c’è un ATtiny85 anziché un ATmega328, per cui alcune librerie potrebbero non funzionare correttamente. Questo porta chiaramente anche a limitazioni di memoria (il Digispark ha disponibili circa 6kB di memoria Flash contro i circa 32kB di Arduino UNO, 512B di RAM contro 2k). Per questo motivo occorre utilizzare le librerie appositamente create per Digispark.
- L’ATtiny85 non ha una periferica UART per cui i programmi che fanno uso di essa non funzionano, vedi il Serial Monitor, ma ci sono degli esempi per dare l’output seriale utilizzando la libreria digispark e in più per il collegamento a dispositivi possiamo usare softwareSerial.
- Per l’utilizzo di periferiche I2C è consigliato l’utilizzo della libreria TinyWireM che è specifica per il modulo I2C degli ATtiny.
- I Pin analogici si trovano sui pin digitali ma in maniera diversa. Ad esempio se diamo l’istruzione AnalogRead(1), il sistema si aspetta di fare la lettura analogica sul pin digitale 2, dato che A1 è posizionato li.
- Il programma caricato non parte subito ma ha un ritardo di alcuni secondi: in questo tempo il bootloader cerca di capire se si sta tentando di programmarlo.
Schema elettrico
Lo schema elettrico della scheda Digispark è basata sul chip ATtiny85 collegato direttamente all’USB, la tensione è regolata tramite un regolatore tipo MC78M00 in grado di fornire 500 mA Sulla scheda sono presenti 6 pin connessi alle porte del microcontrollore, mentre altri tre sono dedicati all’alimentazione.
Tutti i pin possono essere usati come I / O digitali:
Pin 0 → I2C SDA, PWM (LED sul modello B)
Pin 1 → PWM (LED sul modello A)
Pin 2 → I2C SCK, analogico in
Pin 3 → Analogico (utilizzato anche per USB + quando è in uso USB)
Pin 4 → PWM, analogico (utilizzato anche per USB – quando è in uso USB)
Pin 5 → Analogico
Processore ATtyny85 8-bit Microcontroller with 8K Bytes In-System Programmable Flash
![]() |
|
![]() |
Piedinatura | Datasheet | Foto dell’integrato |
MC78M00 500 mA Positive Voltage Regulators
![]() |
![]() |
![]() |
Piedinatura | Datasheet | Foto dell’integrato |
Versione con connettore USB
In vendita esiste anche una versione del Digispark che di solito riporta la scritta ATTINY 85 oppure solo TINY85.
Per il resto è molto simile, utilizzano entrambi un Attiny85, entrambi hanno lo stesso layout dei pin.
Quello che cambia è il regolatore per una corrente cha passa a una versione 78L05 SMD che può erogare solo 100 mA a differenza dei 500 mA teorici del Digispark.
Il connettore USB del secondo è poi di tipo micro B, al cui lato sono presenti due fori di fissaggio.
Dove trovare la scheda scheda Digispark ATtiny85
![]() |
![]() |
Versione Digispark PRO ATtiny167
Successivamente alla commercializzazione della scheda Digispark basata su ATtiny85, sempre sulla piattaforma Kickstarter è apparsa la versione Digispark PRO. La nuova scheda non è basata sul ATtiny85, ma sull’ATtiny167.
Questo chip più grande, a 20 pin, aggiunge altri 10 pin I/O e una vera interfaccia hardware SPI, ma le migliori funzionalità sono disponibili nel pacchetto Digispark Pro.
Confronto delle due versioni
Questa volta c’è una vera programmazione USB, emulazione di dispositivo e seriale su USB, e la possibilità di usare il monitor seriale Arduino, qualcosa che non si trova nel Digispark originale.
Per questo modello sono disponibili anche piccoli shield per funzione WiFi e Bluetooth e atro.
Caratteristiche
- Compatibile con Arduino IDE
- Dotato di Driver
- Programmazione USB, emulazione dispositivo USB, emulazione porta seriale virtuale USB-CDC
- MCU AVR ATtiny167 da 16 MHz: presenza di un vero Quarzo di precisione da 16 MHz
- Memoria Flash da 16 KB (14,5 K+ dopo il bootloader)
- Debug e comunicazione seriale su USB
- 14 pin i/o (2 condivisi con USB)
- I2C, SPI, UART , LIN e USI
- ADC su 10 pin
- 3 canali PWM (che possono essere assegnati a una selezione di pin)
- Alimentazione tramite USB o fonte esterna – 5 V o 6-16 V (selezione automatica)
- Pulsante integrato che può essere utilizzato come pulsante di reset, di programmazione o utente , oppure può essere disabilitato per utilizzare quel pin come I/O generale, senza modificare il bootloader.
- Regolatore di bordo 500ma 5V
- LED di alimentazione e LED di test/stato (sul pin 1)
- Ponticelli di saldatura accessibili all’utente per disattivare i LED e altre funzionalità per un consumo energetico inferiore
- Due fori di montaggio.
- Pin out/spaziatura compatibili con breadboard
Installazione della scheda Digispark
Dopo questa breve introduzione vediamo come muovere i primi passi con questa piccola scheda.
Lo procedura è leggermente diversa a quella tipica per le altre schede Arduino.
-
Sarà quindi necessario scaricare e installare manualmente i driver per la scheda Digispark.
I file del driver si trovano in questo link. Il driver funziona anche su W10. Una volta scaricato, occorre decomprimere ed eseguire “DPInst.exe “ (su sistemi a 32 bit) o ”DPInst64.exe” (su sistemi a 64 bit).
Nota: Attenzione, se inserite la scheda in una porta USB quando non richiesto dall’IDE, la scheda non sarà riconosciuta, ma questo è normale.
A questo punto, supponendo che l’IDE sia già installato (il test è stato fatto con la versione 2.3.4) andare al menu “File” e selezionare “Impostazioni”
Nella casella con l’indicazione “URL aggiuntive per il Gestore schede“, immettere:
“https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json“
e fare clic su OK.
Andare ora al menu “Strumenti” e poi nel sottomenu “Gestore schede“, nel campo di ricerca digitate “digistump“. Selezionare il pacchetto “Digitump AVR Boards” e fare clic sul pulsante “Installa” e fare clic su INSTALLA.
Nota: se provate a cliccare su Maggiori informazioni, il PC segnalerà che è Impossibile raggiungere il sito, ma ciò è normale, in quanto il sito non esiste più ma il gestore delle schede è disponibile sulla piattaforma GITUB a questo link.
Verrà visualizzato il progresso di download nella barra di fondo della finestra “Gestore schede”, quando sarà completata verrà visualizzato “INSTALLED” accanto a quella voce dell’elenco.
Con l’installazione completa, chiudere la finestra “Gestore schede” e selezionare Digispark dal menuStrumenti → Schede. “Digispark (Default – 16.5mhz)“
a questo punto l’installazione può considerarsi completa
Uso della scheda Digispark con l’IDE
La scheda Digispark funziona un po’ diversamente da altri prodotti compatibili con Arduino.
La programmazione segue una procedura diversa.
-
Verificare che dal menu Strumenti sia selezionata la Scheda → Digispark (default- 16.5Mhz), non è necessario modificare la voce programmatore.
-
Scrivere un codice, aprire un codice precedentemente salvato o aprire un esempio Digispark.
-
Non si deve collegare il Digispark prima di richiamare il caricamento
-
Premere il pulsante di caricamento. Dopo la compilazione nella casella di stato inferiore sarà richiesto di collegare il vostro Digispark – a questo punto è necessario collegarlo.
-
Si vedrà il progresso del caricamento e al termine la scritta “running: 100% complete“, il codice sarà eseguito immediatamente sul Digispark.
-
Se si scollega il Digispark e si inserisce nuovamente o si collega ad un’altra sorgente di alimentazione, si verificherà un ritardo di 5 secondi prima che il codice programmato sia eseguito. Questo ritardo è dovuto al controllo di Digispark per verificare se si sta cercando di programmarlo.
Primo test
Per testare la scheda Digispark basata ATtiny85, si può utilizzare il semplice programma per far lampeggiare il led
1 2 3 4 5 6 7 8 9 10 11 12 |
void setup() { // impostazione del pin a cui è collegato il led //pinMode(0, OUTPUT); //LED sul modello B pinMode(1, OUTPUT); //LED sul modello A o Pro } void loop() { digitalWrite(1, HIGH); delay(1000); digitalWrite(1, LOW); delay(1000); } |
a questo punto inserite la vostra Digispark ed attendete che il caricamento vada a buon fine. Il led sulla scheda lampeggerà al ritmo di 1Hz.
Gestione con Digispark di un display OLED 128×64
Proviamo ora a collegare il Digispark ad un display OLED 128×64. In questo caso è un display OLED con driver SSD135 perfettamente compatibile con quello con SSD1306, vedere articolo Display OLED 0.91″ 128×32 pixel – SSD1306
Per la gestione occorre una speciale libreria scritta appositamente per il Digispark. Questa insieme a molte altre potrete vedere a questo link.
Per il resto potrete caricare moltissimi esempi che troverete
File -> Esempi -> Esempi per Digispark (Default 16,5mhz)
nel nostro caso lo Sketch è basato sull’esempio DigisparkOED
Sotto è riportato lo schema dei collegamenti tra il Digispark e il display OLED, che utilizza le due linee SDA e SCL più le due di alimentazione.
Sotto la foto test con il programma in esecuzione
Sotto è invece riportato lo Sketch utilizzato
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <DigisparkOLED.h> #include <Wire.h> void setup() { oled.begin(); } void loop() { oled.clear(); //tutto nero delay(1000); //utilizzo: oled.setCursor(X in pixel, Y righe da 8 pixel a partire da 0); oled.setCursor(0, 0); //Alto a sinistra oled.setFont(FONT8X16); oled.print(F("DIGISTUMP")); oled.setCursor(0, 2); oled.println(F("WWW.ADRIROBOT.IT")); oled.print(F("TEST OLED 128X64")); //lines con auto wrap delay(2000); } |