...is really just an ATtiny85 with a software defined USB interface.
It has 5 I/O pins.
It uses the standard Arduino IDE, so it is easy to use.
Does not need a lot of external chips to operate.
Digispark Attiny85 runs at 16.5MHz (with no external crystal) and has
5 I/O pins and connects to a USB port using a micro USB connector. The
breakout board comes with an ATtiny85 chip pre-programmed with the
The great thing about this bootloader is that it makes a software
compatible USB interface inside the ATtiny85 - even when that chip has
no USB interface. By adding support libraries into the Arduino IDE you
can program this chip using the Ardino IDE system in a similar way to
other Arduino microcontrollers.
The rest of this page shows you a Digispark tutorial for installing
the Digispark drivers, checking that they are working correctly and
programming the device.
Warning: The Arduino IDE operation for the ATtiny85 is not the same
as the connection operation for the Arduino - you will think that it is
not working. You do not have to select a serial USB port as you do with
the Arduino. It is all done on the fly. See below for details.
Digispark ATtiny85 Bootloader Timeout
The way that the Digispark Attiny85 works is to use the Window Driver to
identify the Digispark but this can only be done for 5 seconds. After
the 5 seconds the bootloader becomes a dumb device and the program
control is transferred to the program just loaded.
Arduino IDE 1.8.8 (Windows Store 188.8.131.52)
It has been successfully programmed using Arduino 1.8.8 (Windows
Store 184.108.40.206). So a bug has been corrected since 1.8.7 (I think) did
not work in that IDE.
Warning on digistump operation
The interface can be finicky - I had this system working, then worked on another project and came back to the Digispark ATtiny85. The window 10 machine that had worked perfectly came up with the dreaded popup:
Warning "USB Device not recognised."
I tried the following:
Re-installing Digistump drivers (clicking on DPinst64 - for a 64 bit machine).
In device manager Deleting USB entries that correspond to the
ATtiny85 by Clicking the 'View' menu entry, then show hidden devices and
uninstalling the driver for those labelled "Unknown USB Device (Device
Descriptor Request Failed)".
Using zadig to install lib32-winusb on the unknown USB Device - no effect.
Uninstall Arduino IDE 1.8.5 and install a custom version of it
(DigistumpArduinoInstall1.5.8C.exe) - no effect. Went back to IDE 1.8.5.
Note: What actually worked was putting the USB cable into a different
socket on my USB HUB with 7 extra USB ports.
Note2: On my second notebook (Windows 10). Two direct USB ports,
built into the machine, came up with the "USB Device not recognised"
message. Plugging a powered Hub (the same one from the other machine)
allowed the Digispark to connect correctly!
In the Digispark Attiny documentation it is recommend that a powered USB hub
is used so that you don't accidentally blowup the USB port in the PC.
It could be that the development of the software has made a dependency
on using a USB hub (Its a good idea for the stated safety reason
anyway). So I would recommend you get one for Digispark development.
Device Manager - Digispark Not Found
If you have a problem you'll see a message ("Unknown USB Device.") in the Windows Device Manager like this:
Device Manager - Digispark Attiny85 Driver Is Found
For successful Digispark ATtiny85 detection you will see this (message is
libusb-win32 Devices, digispark bootloader - after the highlighted line "Keyboards" below). This appears after you plug
in the Digispark to a USB port:
ATtiny85 Arduino install Steps
1. Install the Arduino IDE
An easy way is to search the Microsoft Apps store in windows 8.1 or
10 and search for Arduino. Install the app. Alternatively download the
executable installer here. The latest one is 1.8.8 and it does work with Digispark.
2. Install Digispark Attiny85 Windows Drivers
Download the Digispark Attiny85 windows drivers here.
(This is the 1.67 Feb 13 2016 release found here.)
Download Digistump.Drivers.zip unzip on your hard disc. Then double
click on DPinst (32 bit PC) or DPinst64 (64 bit PC) depending on your system (mine is 64bits).
You should now check that windows can see the Digispark - Just plug
in the Digispark usb (micro usb connector) and you will hear the USB connection sound. If windows
complains saying "USB Device not recognised." then you will need to fix
this before going further - the IDE has nothing to do with this part.
The problem is that you have to install drivers in order for windows
to correctly identify and communicate with the micronucleus device. If
you have problems have a look here.
3. Set up Digistump for the IDE
To allow Digistump boards to be seen by the Arduino IDE you need to
insert a line of code in the Menu > File > preferences window as
The line to insert in the "Additionan Boards manager URLs" box is:
If you have more than one of these lines click the double-box symbol
to the right of that entry box and add each entry one per line.
4. Select a Digispark Board or Mode
You won't see any examples for Digistump in the Menu > File >
Examples until you select the Digispark board in Menu > Tools >
From that menu select the board labelled:
Digispark (Default - 16.5MHz)
The Digispark Pro is a different board that
uses a bigger chip: an ATtiny167 20 pin chip (and is slightly easier to
use). However once you have got the drivers going the Digispark is
fairly easy to program.
Selecting the Digispark Board
5. Select a Digispark Attiny85 Example
The examples will now be available from the Examples Menu: File > Examples > Digispark_Examples.
It does not matter
which example is used, but one that does not do too much is the Infrared one -
you don't need to attach an infrared receiver - you are only going to go
through the process of programming it - to get used to the process. You
can if you want to though - just use a standard IR receiver.
Go back to the Arduino IDE Menu > File > Examples > Digispark_Examples
And choose the Infrared example.
Now you will see the following code in the Arduino IDE.
This is simple code that does not attempt to decode the IR signal it
just reacts if any signal is received by flashing the built in LED. If
it does not flash the LED is on pin 1 - newer boards use this as the LED