Friday, 16 May 2014

phenoptix AVR ISP Shield - First impressions

Yesterday I assembled and tested the phenoptix AVR ISP Shield. Here's what I found out while trying it out.

First, a bit of background. I needed to build a batch of low-cost Arduino clones. In the past I've bought basic DIY kits from oomlout which include pre-programmed chips, but this time I wanted to keep the cost as low as possible. That meant I needed to buy chips without a boot-loader (as mentioned in yesterday's post) and then install the boot-loader myself, using an existing Arduino as an In-System Programmer (ISP).

I've done that before using a breadboard, some jumper wires and a handful of extra components.  It's a fiddly process and easy to get wrong. This time I decided to get an ISP shield designed for the purpose. It added a little to the cost, but I though it would save time and money in the future and it was fun building it :)

There are lots of Arduino ISP shields on the market, including models from Adafruit and SparkFun. I decided to go with the version from phenoptix, for several reasons.
  • Phenoptix is a UK company, and I was keen to try out their service
  • The shield looked easy to build
  • It can be used on a couple of smaller AVR chips (the ATTiny2313 and the ATTiny85) both of which I want to use in other projects.

The kit

I ordered the kit on Wednesday and it arrived the next day.

The kit arrives
The kit has no printed instructions, but the label has a URL which takes you to the product page. That in turn has a link to an Instructable which describes the assembly process.

The Instructable is pretty good, though I hit a couple of minor issues to do with the Arduino headers.

The UNO is different

Issue number one is that modern Arduinos (like the UNO that I was using) have more header sockets that the older models. If you're unfamiliar with this change you might worry about the apparent mismatch between the number of holes for header pins in the shield and the number of sockets on the Arduino. It's actually not a problem so long as you break the supplied header strip to fit the shield, not the Arduino.

Once you've done that you can follow the advice in the Instructable and use the Arduino to support the header pins while you solder them into the shield. I disagree with the next bit of advice. It suggests that you solder just one pin on each header while using the Arduino as a jig, and then remove the shield to solder the remaining pins. That's the second issue.

Don't lose your pins!

The header pins fit very snugly into the Arduino sockets. If you've only soldered in one pin on each header, there's a risk that the remaining pins will stay stuck in the Arduino when you pull the shield out, leaving you with holes in the headers and pins in the Arduino. That started to happen to me. 

Fortunately I'd encountered the problem before, and stopped pulling out the shield before it lost any pins. I pushed it back and soldered each pin to the shield before removal, and everything was fine.

The assembled kit in use
Now I had an assembled shield and was keen to try it out. The remainder of the Instructable contains a script to use for the burning of the boot-loader, but there were no instructions about how to configure the Arduino IDE to do the actual boot-loader installation. I'd done this many times before, and found it easy to recall the details, but a newcomer might be very frustrated.

The author promised to explain what to do in a less product oriented Instructable, but I couldn't track it down. I'll ask about that; if it's still a work in progress I'll post details of what I did as a stop-gap!

The end result

I've used it to burn a boot-loader into an ATMega328p ( the chip that most clones use) and a venerable ATMega8. I have several Mega8s lying idle, and it will be great to put them to work at last!

The problems I had to work around were minor issues, and easy to fix. I'm very happy with the product, and want to explore the phenoptix range. I'm working on a justification for getting one of their robot arms, which look a lot of fun!