2014-01-28

Digispark & Co

Boxtec discussion recently brought up the fact that the last year has seen a good number of ATtiny85 based boards with USB connectors:
While of these, I own only Digisparks (having been one of their Kickstarter backers), the others seem close enough in design for me to offer a few thoughts about the idea.

Hardware

Electrically, all four boards seem to be based on the Digispark design: An ATtiny85 MCU, an USB connector directly connected to the MCU. Within that basic design, the boards have quite a bit of variety in the mechanical aspects:
  • The Digispark 
    • Features a male USB connector that is simply designed into the PCB. While this is an eye catching and original design, in practice it caused me no end of mechanical problems. Even with perfect mechanical tolerances (which at least the early Digispark boards did not have), having the board sit right next to the USB plug was rarely convenient, so I ended up using a f-m USB extension cable, pretty much negating the point of having a male connector in the first place. 
    • Has a voltage regulator on board and can be externally powered.
    • Has an unique and elegant, squarish form factor that Digistump is trying to build an ecosystem around.
  • The Adafruit trinket
    • Features a standard female USB mini connector, which in practice probably will work out much better than the male connector.
    • Voltage regulator, can be externally powered.
    • Available in 3.3V and 5V variants.
    • Reset button on board.
    • Board looks like a tiny Arduino Micro, pins brought out DIP style. Mounting holes might be quite useful.
  • The Olmexino
    • Female USB mini connector. [Update: Now (wisely) changed to a full size USB connector]
    • No voltage regulator, though it looks like it might be possible to power externally with appropriate voltage. Hardware reset button.
    • Board comes as a DIY kit, which for the most part seems like a fun idea. The only board of the four featuring the through-hole variant of the ATtiny85, and even a socket for it. My one concern is the SMD USB connector, which is not my idea of fun to solder, especially since mechanical reliability is a major concern for this part. [Update: It seems that Olmexino came to the same conclusion. Rev B of this board features a through hole, full size USB connector — unfortunately, nobody seems to make through hole USB mini connectors].
    • Pins brought out SIP style.
  • The Iteaduino Tiny
    • Appears to have a female USB micro connector, which I'm not terribly fond of. In my experience, mini connectors are much more convenient for frequent plugging/unplugging.
    • No voltage regulator, no reset button.
    • Instead of bringing out all pins, this design seems to have a male ISP header. I'm not at all convinced this is a good idea. The whole idea of this family of boards is to be able to do programming through USB. Furthermore, it's impossible to fall back to High Voltage Serial Programming on this board because some of the pins are only brought out through USB.
    • To add to the hardware design issues, Iteaduino apparently did not disable the RESET functionality of the MCU, so of the 4 I/O pins brought out by the header, only 3 can be used safely.
All four of the boards share the concerns of the original Digispark design: Of the 6 I/O pins available on an ATtiny85, only 3 (PB0, PB2, PB5) are truly unencumbered: PB3/4 are connected to USB (which in practice rarely seems to be a problem, but would make me a bit nervous when the board is plugged in), and PB1 has an LED attached, which is a problem in some applications (early Digispark designs had the LED on PB0, which made I2C unusable, but this has long been fixed).

Software

All of the boards use about 2K (the Adafruit Trinket a bit more) of the flash memory for a boot loader allowing the boards to be programmed through USB. If you're used to modern Arduinos, getting used to these boards might have a bit of a learning curve, as reprogramming them is somewhat timing sensitive. None of the boards works with the Arduino IDE out of the box—the Adafruit Trinket requires some manual configuration or a custom Arduino IDE downloadable from their site, while the others use the Digispark customized Arduino IDE.

In addition to regular ATtiny85 activities, all of the boards have some capability to work as an USB device (e.g. a keyboard or a mouse). Generally, the software USB libraries work as advertised, but it tends to be somewhat more fragile than using a true USB capable MCU.

Pricing

One of the attractive features of the Digispark was its low price, and the clone boards are priced even more aggressively. 

Final Thoughts

The Digispark was a rather original design when it first came out. From the neat form factor, to the minimalist USB connector, to the software USB and boot loader support, it featured several novel ideas, and demonstrated they could be done. As for whether they should be done, the situation might be less clear:
  • In hindsight, I don't think the male USB connector was a good idea.
  • The small form factor is really convenient for space constrained projects.
  • The boot loader certainly adds convenience for beginners. If you're comfortable working with external programmers, I'm not convinced the extra convenience of a boot loader is all that useful.
  • Though the software USB support might be a bit finicky to use, it's undoubtedly a benefit for some applications.
In summary, I think these boards are at their most useful when you want USB capabilities in a project, and space and/or money are an important concern. In some projects, having a voltage regulator on board might be convenient as well. For many other projects, it seems to me that a plain ATtiny85 (possibly of the through hole variety) and an external programmer are far more flexible and not all that much harder to use.