Digispark DIY: the Smallest USB Arduino
by smching in Circuits > Arduino
493119 Views, 627 Favorites, 0 Comments
Digispark DIY: the Smallest USB Arduino
Digispark is an ATtiny85 based microcontroller development board come with USB interface. Coding is similar to Arduino, and it use the familiar Arduino IDE for development.
Digispark is copyrighted by Digistump LLC (digistump.com) and the full license is here: http://digistump.com/wiki/digispark/policy
Specification:
Support for the Arduino IDE 1.0+ (OSX/Win/Linux)
Power via USB or External Source - 5v or 7-35v (automatic selection)
On-board 500ma 5V Regulator
Built-in USB (and serial debugging)
6 I/O Pins (2 are used for USB only if your program actively communicates over USB, otherwise you can use all 6 even if you are programming via USB)
8k Flash Memory (about 6k after bootloader)
I2C and SPI (vis USI)
PWM on 3 pins (more possible with Software PWM)
ADC on 4 pins
Power LED and Test/Status LED (on Pin0)
Digispark is copyrighted by Digistump LLC (digistump.com) and the full license is here: http://digistump.com/wiki/digispark/policy
Specification:
Support for the Arduino IDE 1.0+ (OSX/Win/Linux)
Power via USB or External Source - 5v or 7-35v (automatic selection)
On-board 500ma 5V Regulator
Built-in USB (and serial debugging)
6 I/O Pins (2 are used for USB only if your program actively communicates over USB, otherwise you can use all 6 even if you are programming via USB)
8k Flash Memory (about 6k after bootloader)
I2C and SPI (vis USI)
PWM on 3 pins (more possible with Software PWM)
ADC on 4 pins
Power LED and Test/Status LED (on Pin0)
Prerequisite
AVRISP MKII In-System Programmer
ATTINY85 Microcontroller
2 x 3.6V zener diode
2 x 68 ohm resistor
1 x 1.5K resistor
USB cable (get from broken mouse or keyboard)
Some wires
ATTINY85 Microcontroller
2 x 3.6V zener diode
2 x 68 ohm resistor
1 x 1.5K resistor
USB cable (get from broken mouse or keyboard)
Some wires
Burning Bootloader to ATTINY85
Like Arduino, Digispark require a bootloader to be running on ATTINY85. The bootloader will occupied 2KB flash memory.
Download bootloader
1. Download Micronucleus bootloader for ATTINY85
2. Extract the file (micronucleus-t85-master.zip) to any folder
3. You can find the bootloader file at micronucleus-t85-master\firmware\releases folder
4. Use micronucleus-1.06.hex for the bootloader
Burning bootloader to ATTINY85
You must use the correct fuses bit for the bootloader
Extended: 0xFE
High: 0xDD
Low: 0xE1
Note: The above fuse bit will not enable reset as I/O, so you can have only 5 I/O instead of 6 I/O. I'm still try to figure out on how to set it to 6 I/O
I'm using AVRISP MKII In System Programmer and AVR Studio software for burning bootloader.
Download bootloader
1. Download Micronucleus bootloader for ATTINY85
2. Extract the file (micronucleus-t85-master.zip) to any folder
3. You can find the bootloader file at micronucleus-t85-master\firmware\releases folder
4. Use micronucleus-1.06.hex for the bootloader
Burning bootloader to ATTINY85
You must use the correct fuses bit for the bootloader
Extended: 0xFE
High: 0xDD
Low: 0xE1
Note: The above fuse bit will not enable reset as I/O, so you can have only 5 I/O instead of 6 I/O. I'm still try to figure out on how to set it to 6 I/O
I'm using AVRISP MKII In System Programmer and AVR Studio software for burning bootloader.
Installing Digispark USB Driver
Digispark use USB to communicate with computer, so your computer must install Digispark USB driver
1. Download Arduino for Digispark which come with USB driver
2. Extract the file (DigisparkArduino-Win32-1.0.4-March29.zip) to any folder
3. Execute DigisparkArduino-Win32\DigisparkWindowsDriver\InstallDriver.exe to start installing the USB driver
1. Download Arduino for Digispark which come with USB driver
2. Extract the file (DigisparkArduino-Win32-1.0.4-March29.zip) to any folder
3. Execute DigisparkArduino-Win32\DigisparkWindowsDriver\InstallDriver.exe to start installing the USB driver
Digispark Schematic
I provide two schematics, first one is the official schematic for Digispark, the other one is for testing purposes which the 5v is get from USB port and hence it is lesser components and much more simple.
Plug in Digispark to Computer
1. Plug in Digispark to the USB port of computer
2. USB device is detected for first time use and prompt you to installing Digispark bootloader.
3. Click on Next button until finish.
2. USB device is detected for first time use and prompt you to installing Digispark bootloader.
3. Click on Next button until finish.
Configure Digispark Software
1. Run DigisparkArduino-Win32\Digispark-Arduino-1.0.4\arduino.exe to starting Arduino IDE
2. Click on Tools>Board>Digispark (Tiny Core)
3. Click on Tools>Programmer>Digispark
2. Click on Tools>Board>Digispark (Tiny Core)
3. Click on Tools>Programmer>Digispark
Upload Sketch to Digispark
Upload an example. Click on File>Examples>Digispark_Example>Start
Coding is look like this:
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(0, OUTPUT); //LED on Model B
pinMode(1, OUTPUT); //LED on Model A
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(0, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(1, HIGH);
delay(1000); // wait for a second
digitalWrite(0, LOW); // turn the LED off by making the voltage LOW
digitalWrite(1, LOW);
delay(1000); // wait for a second
}
Follow step below to upload sketch to Digispark.
1. Unplug Digispark from computer before click on the Upload button
2. Click on Upload button now
3. Plug in Digispark to computer when it prompt for "Plug in device now..."
4. If you see "running: 100% complete". Congraturation! you have own a working Digispark.
Coding is look like this:
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(0, OUTPUT); //LED on Model B
pinMode(1, OUTPUT); //LED on Model A
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(0, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(1, HIGH);
delay(1000); // wait for a second
digitalWrite(0, LOW); // turn the LED off by making the voltage LOW
digitalWrite(1, LOW);
delay(1000); // wait for a second
}
Follow step below to upload sketch to Digispark.
1. Unplug Digispark from computer before click on the Upload button
2. Click on Upload button now
3. Plug in Digispark to computer when it prompt for "Plug in device now..."
4. If you see "running: 100% complete". Congraturation! you have own a working Digispark.
Test the Digispark
Connect a 330ohm resistor & LED to both pin5(Digital 0) and pin6(Digital 1) of ATTINY85. Plug the Digispark to computer, both LED is start blinking now.
What Can Do With Digispark
See examples
My website:
http://ediy.com.my/index.php/blog/item/72-digispark-diy-the-smallest-usb-arduino
My website:
http://ediy.com.my/index.php/blog/item/72-digispark-diy-the-smallest-usb-arduino