Hello All,

This is going to be a short review on the Digispark USB Development Board. The Digispark had a very successful Kickstarter Campaign as a very cheap microcontroller development board.

This review is purely from a hobbyist point of view and is for the entire development board not the ATtiny85 MCU it has onboard.

Introduction

The Digispark is a $10 ATtiny85 based development board which is like a very light version of the ATmega328 microcontroller found on the Arduino Uno. It has much lower capabilities but the small size makes a lot of sense for lighter projects. The Digispark incorporates the ATtiny85 with a USB port and some other niceties to make development easier. It comes with 5 digital IO pins, 4 ADC pins, and 3 PWM pins. It also has a USB interface as well as SPI and I2C interfaces through a common Universal Serial Interface.

I actually picked up this clone for just under $3.

First Impressions

My absolute first impression of this board was that I loved its size, and how it would be awesome for portable projects. It does lack in GPIOs but for most projects I only use 3-4 and for those it makes perfect sense.

Once I got started however I started hitting alot of road blocks. I started with their basic Start example, but right of the bat it did not work. I had already added the Board to my Arduino IDE using the Boards Manager but as soon as I Clicked upload, I instantly saw an error. The error I saw was

Java.io.IOException: Cannot run program "/Users/{USERNAME}/Library/Arduino15/packages/digistump/tools/micronucleus/2.0a4/launcher": error=13, Permission denied

Luckily this was a descriptive error and I fixed it but fixing permissions in the micronucleus folder by running the following commands:

chmod a+wx /Users/{USERNAME}/Library/Arduino15/packages/digistump/tools/micronucleus/2.0a4/launcher  
chmod a+wx /Users/{USERNAME}/Library/Arduino15/packages/digistump/tools/micronucleus/2.0a4/micronucleus

After fixing this, I got the uploader to start but it refused to detect my board. I tried unplugging and plugging it back in several times and finally the upload progressed but it showed me this error:

Assertion failed: (res >= 4), function micronucleus_connect, file library/micronucleus_lib.c, line 100.

I was quite stumped for a while, but after looking at some forum recommendations, I decided to just recompile micronucleus. Micronucleus is the bootloader for the Digispark and other ATTiny microcontrollers to enable it to be used with
the Arduino IDE. I cloned it using git and ran make CONFIG=t85_default and copied over the micronucleus executable to my arduino packages folder.

However after clicking Uplaod, I still had the same problem of my board not being detected. After many times of plugging and unplugging it my upload was successful and it finally worked.

After trying out a few more examples, I realized that though this board is great, it still has a lot of problems and the unplugging/plugging involved in uploading every time is just terrible.

Here is the Digispark Pinout for your reference:

Conclusion

This is a great board but it is still VERY rough around the edges and the developers still have a lot of work to do before an average hobbyist will be comfortable using it. Lets face it, for most projects the similarly priced higher performance Arduino Nano makes more sense. When size is a real constraint, then maybe the Digispark is the right option, but personally, I am going to stick to my Nano until they make ALOT of improvements.