Wednesday, July 13, 2016

Atmel Retrokit SAM D Edition

In this post I will document an update that I designed of a classic AVR board: The Retrokit!

Atmel Retrokit SAM D Edition


I don't have a lot of information on the original Retrokit board. Based on a post by Jo Uthus on Twitter, it was designed in 1997 by Vegard Wollan. The intent was clearly to demonstrate the speed of AVR microcontrollers compared to other 8-bit devices of the era: PIC microcontrollers, the HC08, and the 8051. The four LEDs on the board blinked at different rates, with the faster AVR completing its blinks first. Of course, the entire board was controlled by a single AVR device which simulated the comparative speeds of the other devices through the blinking LEDs.

The Original Retrokit
Source: Atmel on Twitter 

There was a 2008 re-design of the Retrokit that Jo posted about. The re-make is a really nice SMT design, and there is even a YouTube video showing it in action! It was posted by Joseph Rautenbach and he is possibly the designer. If you see this Joseph, let me know and I'll link in more information about you.

2008 Re-design of the Retrokit

YouTube video on the 2008 re-design of the Retrokit.

Updating the Retrokit to 32-Bit

A lot has changed in the past 19 years since the original Retrokit was designed. We now have a plethora of 16- and 32-bit microcontrollers available to us with speeds and feature sets that far surpass their 8-bit brethren. The devices you can purchase these days for very little cost offer amazing capabilities. Microchip Technology and Atmel, once competitors, have joined forces. The maker movement has exploded. Arduino happened... It's a great time to be a maker and embedded developer. I thought it was time to bring the Retrokit along for the ride.

I created a 2016 re-design of the Retrokit that uses the Atmel SAM D09 microcontroller. This is an excellent 32-bit device that comes in a SOIC package, making it easy to solder. I mimicked the board size and layout of the first Retrokit as closely as possible. The four LEDs are meant to show a comparison in speed between the 32-bit SAM D device, the 16-bit ATxmega, the 8-bit AVR, and the 8-bit PIC microcontroller. There are a lot of devices to select from in each of those families, and if we wanted to be really picky, I could have even chosen a PIC that blew away the little SAM D09. However, I chose representative devices in each category that also demonstrate the development of microcontroller technology over time, from the older PIC 16F series to the modern 32-bit SAM Ds.

The blink rates of the LEDs and completion times are based on MIPS/DMIPS scores for each device. Check out my code on Github linked below to learn more. Here is a video of the Retrokit SAM D Edition in action:

YouTube video showing my Retrokit SAM D Edition board in action.

The blinking LED demo takes 10 seconds to complete, after which the LEDs all stay lit for an additional 5 seconds. After that, the SAM D09 goes into deep sleep mode to save power. Current draw in deep sleep mode is around 2uA, meaning that the CR2032 battery will last a long, long time in that state. To reactive the light show, simply press the Reset button.

Shared as Open Source Hardware (OSHW)

Here is all of the information you need to order PCBs and assemble your own Retrokit SAM D Edition boards or modify the design.

Eagle Files and Firmware: Shared on Github
Atmel Retrokit SAM D Edition: Order PCBs on OSH Park!

Retrokit SAM D Edition Schematic

Parts List

Microcontroller: Atmel SAMD09C13A
Push Button: SPST Though-hole
Bussed Resistor: 470 ohm 5SIP
LEDs: 4x 3mm Red LEDs
Battery Holder: CR2032 Though-hole
R1: 10k ohm 0805 SMD
R2: 100 ohm 0805 SMD
C1: 100nF Ceramic Through-hole, 0.1" lead spacing
C2: 100nF 0805 SMD
Programming Header: 10-pin 0.050" (don't solder this, see note below)

Assembly Note: Tin the square ground pad in the middle of the battery holder footprint before soldering on the holder. The pad should have a little mound of solder on it to make good contact with the battery.

Programming Note: The 10-pin Cortex Debug port is positioned directly underneath the microcontroller so that it is not visible from the front of the board. The connector is not meant to be soldered. After assembling everything else on the board, throw in a CR2032 battery to power it and insert the male 10-pin connector into the female end of the cable from your programmer (such as an Atmel ICE). Then, wedge the connector into the port to program it. Finger pressure will keep it in place for the few seconds needed to flash the firmware, and then you should never need it again.


I hope you enjoy this little re-make of the classic Retrokit. If you assemble your own, please Tweet me a picture @sync_channel. Questions and comments are welcome below.

Thanks for reading!

- Dan W.