Microcontrollers are lots of fun to play with as well as to build useful things. They come in all sizes, shapes and varieties. I am always, however, intrigued with the tiny controllers, like AdaFruit’s Trinket. Well, the latest one I’ve started to tackle is the DigiSpark. The DigiSpark is small and comes in several types. I am using the USB flavor. This little guy is on a very small board, about the size of a nickel, and is, itself, a USB dongle.
It features six I/O lines, plus power and ground pins. This thing is a little bit more versatile than the original Trinket, but not much more. The USB version has the added advantage of being a USB dongle itself, meaning you can build a project that plugs into a USB port and act as an external controller. You don’t need USB, once you have programmed it, the power and ground pins can be used to power the device.
The nice thing about the DigiSpark is that you can use the Arduino IDE and SOME of the libraries to program the device. There is a nice tutorial on setting up a newer release of the IDE and add DigiSpark support.
In a nutshell:
Start the IDE (Install 1.6.x if you don’t already have it installed)
Click FILE, then PREFERENCES
in the Additional Boards Manager URL’s box, enter: http://digistump.com/package_digistump_index.json
Click Tools, then BOARDS
Select Board Manager and then Contributed
In the dialog box that pops up, select DIGISTUMP AVR BOARDS
Close the Board Manager
You should now see the DigiSpark boards in the IDE
The thing that tripped me up was uploading a sketch. I didn’t realize that you don’t need to have the device plugged in prior to uploading (you are told this, but it didn’t sink in.) Once I unplugged the device, clicked upload and THEN plugged it in, it worked like a charm.
So, now I have to figure out what I want to do with this cool little device.
But, wait…I still have not really said anything about the device, what it has on it, etc.
It is based on the ATTiny 85 and features six I/O pins:
All pins can be used as Digital I/O
Pin 0 → I2C SDA, PWM (LED on Model B)
Pin 1 → PWM (LED on Model A)
Pin 2 → I2C SCK, Analog
Pin 3 → Analog In (also used for USB+ when USB is in use)
Pin 4 → PWM, Analog (also used for USB- when USB is in use)
Pin 5 → Analog In
The ATTiny 85 specs:
- 8 Bit Data Bus
- 20 MHz Max Clock Frequency ( w/ external crystal )
- 8 kB Program Memory Size
- 2.7 V to 5.5 V Operating Supply Voltage
- 6 I/O Pins
- 512 bytes of RAM
Two things you cannot do from the IDE: burn the bootloader and use the serial monitor. Some libraries will work, most will not. There is no short circuit or reverse polarity protection, so be careful or you will certainly destroy the board, and, if connected via USB (which it really should not be if using external power) the computer could be damaged as well.
SAMPLE IDE OUTPUT
The IDE, as with other Arduino’s, displays the compiler and upload progress in the text area below the coding window. Several rather bothersome messages can show, but, not to worry, it is normal. See my sample output below.
Sketch uses 668 bytes (11%) of program storage space. Maximum is 6,012 bytes.
Global variables use 9 bytes of dynamic memory.
Running Digispark Uploader…
Plug in device now… (will timeout in 60 seconds)
> Please plug in the device …
> Press CTRL+C to terminate the program.
> Device is found!
connecting: 16% complete
connecting: 22% complete
connecting: 28% complete
connecting: 33% complete
> Device has firmware version 1.6
> Available space for user applications: 6012 bytes
> Suggested sleep time between sending pages: 8ms
> Whole page count: 94 page size: 64
> Erase function sleep duration: 752ms
parsing: 50% complete
> Erasing the memory …
erasing: 55% complete
erasing: 60% complete
erasing: 65% complete
>> Eep! Connection to device lost during erase! Not to worry
>> This happens on some computers – reconnecting…
>> Reconnected! Continuing upload sequence…
> Starting to upload …
writing: 70% complete
writing: 75% complete
writing: 80% complete
> Starting the user app …
running: 100% complete
>> Micronucleus done. Thank you!
Micronucleus is the name of the bootloader. The disconnect message was a little disturbing, but not a problem.
Maybe I’ll adapt my Battlestar Galactica LCD game to this thing…
Here is a link to the Trinket posts on the blog. It is very similar to the DigiSpark.
digiStump is the maker of the device and they have other products as well. Take a gander around their site. There is a nice Wiki page and forums.
Finally, you can purchase one from Amazon for $4.88 each. Of course, you can support digiStump by purchasing the device from them, they sell it for $8.95, a little higher than Amazon, but you will be supporting the makers and encourage further development of the product.