Minimus AVR ISP Clone

Posted in AVR, Minimus on 2012-02-02 at 13:44:43 by Chris – 6 Comments

The Atmel AVRISP mkII is the official low-cost Atmel AVR programmer. Thanks to Dean Camera's efforts, you can make an AVRISP clone using a £5 Minimus board. Here's one shown programming an S-AVR board:

You want the Minimus board to draw its power from the target board, so cut the +5v line from the USB connector (below left):

Then connect wires from port B on the Minimus to the target board like this (using above right as a guide):

ISP Header Minimus Target
1 PB2 MOSI
2 Vcc Vcc
3 N/C N/C
4 GND GND
5 PB4 /RESET
6 GND GND
7 PB1 SCK
8 GND GND
9 PB3 MISO
10 GND GND

The "ISP Header" column is there if you wish to use the standard AVRISP 10-pin IDC header as I have done. Of course, this is optional; you can just use four signal wires and two power wires to directly connect the Minimus pins to the appropriate target pins if you wish.

wget http://lufa-lib.googlecode.com/files/LUFA-111009.zip
unzip LUFA-111009.zip
cd LUFA-111009/Projects/AVRISP-MKII/
make
sudo dfu-programmer at90usb162 erase
sudo dfu-programmer at90usb162 flash AVRISP-MKII.hex
sudo dfu-programmer at90usb162 reset
sudo dfu-programmer at90usb162 reset

Ignore any "dfu-programmer: no device present" errors. An "lsusb" now should yield "Bus 002 Device 088: ID 03eb:2104 Atmel Corp. AVR ISP mkII". Now let's see if it works:

mkdir foo
cd foo
wget http://www.swaton.ukfsn.org/uploads/2009/01/Makefile
wget http://www.swaton.ukfsn.org/uploads/2009/01/main.c
make
sudo make PROG="-c avrispmkII -P usb" flash

6 Comments

"You want the Minimus board to draw its power from the target board"

Can I ask "why"? Why not power the target from the USB/minimus and not wreck the board? I'm not saying you're wrong... I just want to know why I am :) Thanks.

Reply

Why would you wreck the board? Unless you make a wiring error there should be no wrecking going on. Otherwise, you make a fair point: I think neither of us are wholly wrong, but at the same time neither of us are wholly right either. I guess the correct answer is you're free to choose, but you must be aware of the implications of your choice:

  • The target board may have an onboard power supply incorporating a voltage regulator. Will putting +5V from the Minimus on the output of the regulator (in the absence of any voltage on the input) damage it?
  • The target board may be designed to run at +3.3V, so connecting the +5V from USB may damage some of the components.
  • The target board may draw more current than can be supplied by the Minimus's USB +5V line.

In short, whatever you choose to do, you need to be very clear in your mind what the source of power is and whether its voltage and current-supplying capabilities are appropriate for the needs of the Minimus and the target board.

Reply

By "wreck the board" I mean you're removing the Minimus's ability in the future to be something else as your permanently removing its USB power connection.

I wasn't saying I was right and you were wrong. I'm trying to troubleshoot a problem I'm having and I know very little about all this. I came across your article and it sounded (to me) that it was universally desired/necessary to power the programmer from the target and that's not what I was doing. So I just wanted to know "why".

But now I get that... "it depends" :) fair enough.

Thanks for answering.

- Steven

Reply

No problem! Good luck with your troubleshooting!

Reply

Greetings, thank you for your detailed post on the Minimus to the mkii2 avr hack. I compiled w/o error. The problem is that Atmel studio v6.1 identifies the programmer, reads the voltage, serial and firmware. It would not enter, however,into program mode. I am unclear if a virtual usb comm port should install on plugging the device. I do not detect additional comm ports as happens when I plug in an arduino. Avrdude "can not find a usb device" Can you help me? Perhaps you could send me a copy of your hex file so I can upload to my Minimus to see if this is the problem. Finally, do I have to press any of the buttons to change mode other than for Flip??

Sorry for the long post. I am a newbie and would very much like to get this going.

Thanks again.

Reply

I have never used Atmel Studio so I can't help you with that, but the correct avrdude command line looks something like:

avrdude -c avrispmkII -P usb -p at90usb162 -U flash:r:foo.hex:i

That will read the flash of an at90usb162 (e.g another Minimus) and write it to a file foo.hex. There is a decent tutorial for avrdude here.

You should be aware that Atmel FLIP is only used to program the Minimus with the AVRISP mkII firmware. Once that's done, you never have to use FLIP again. Subsequently the Minimus will enumerate on your computer as vendor and product ID 03EB:2104. It does not enumerate as a virtual COM port but as a custom device, so if you're using Windows you'll probably need a driver for it.

Reply

Leave a Reply

You may use TWiki syntax in your comment. Your email address will not be published.

| Home | About |

Powered by WordPress & MakeStuff theme, with Silk icons