Minimus Pinout

Posted in AVR, Minimus on 2012-02-19 at 11:36:59 by Chris – No comments

Bob from thinkl33t drew this beautiful pin-out diagram of the Minimus. So no more tedious cross-referencing the front page of the AT90USB162 datasheet for me!

Many Minimi...

Posted in AVR, Minimus on 2012-02-10 at 11:07:24 by Chris – No comments

237 Minimus boards at £2.54 each!

I noticed the other day that ModTraders UK are selling Minimus AT90USB162 boards for an amazing £2.50 in 100+ quantities. I'm guessing they're really not going to be around for long at that price, so some people from the London Hackspace and I made a bulk order of 237, coming to an eye-watering £600.

Minimus AVR ISP Clone

Posted in AVR, Minimus on 2012-02-02 at 13:44:43 by Chris – No 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
2 Vcc Vcc
3 N/C N/C

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.

cd LUFA-111009/Projects/AVRISP-MKII/
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
sudo make PROG="-c avrispmkII -P usb" flash

Mounting BBC Micro Disc Images Over USB

Posted in Minimus, Old Computers on 2012-01-09 at 18:42:16 by Chris – No comments

Infected by BBC Micro 30th birthday nostalgia, just before Christmas I bought a BBC Micro Model B from eBay for £25. Unfortunately it didn't have a disc drive (or even a disc interface), so I decided to make a cable to connect the BBC's User Port to a USB port on a modern computer (running Windows, MacOSX or Linux), thereby allowing the BBC to read from disc images stored on the PC as if it had a real disc drive attached.

There is a patched Acorn DFS ROM installed in the BBC Micro. The code for this was based heavily on Martin Mathers' BBC Micro MMC-card interface.

The cable itself uses a Minimus AVR-USB board, costing an amazing £4.95, with a firmware based on Dean Camera's LUFA USB stack, which accepts commands from the BBC's User Port using a simple SCSI-like parallel messaging protocol. Commands from the BBC are forwarded over USB to the libusb-based fileserver program, and results returned to the BBC in a similar manner.

Here's a quick video demonstration:

I've tried it with fifty or so disc images downloaded from the Internet, and all appear to work fine. You can get the code from GitHub. No support for the Beeb writing to disc images yet, so you won't be able to save game positions, etc. I also need to add support for more than one drive, and some nicer way of swapping discs...having to ctrl-C the server program and then restarting it with a different disc image is a bit naff.

Right, enough of this blogging lark, I'm off to play Citadel.

Minimus NeroJTAG

Posted in AVR, Minimus, S3BOARD, Xilinx on 2011-09-28 at 19:59:19 by Chris – 2 Comments

NeroJTAG is a simple JTAG-over-USB protocol. It has an AVR implementation, so I tried it loaded into one of my Minimus boards. Because JTAG adapters are powered by the target board, I had to make some minor mods to the Minimus board to support external power.

You can download the AVR code from GitHub. The README details how to build it and load it. Once the firmware is flashed into your Minimus, you can start doing JTAG operations using libnero. I tested it by programming my Digilent S3BOARD using the FPGALink Python binding:

chris@wotan$ cd $HOME
chris@wotan$ curl -sL | tar zxf -
chris@wotan$ cd libfpgalink-20110912/examples/python/
chris@wotan$ wget
chris@wotan$ unzip
chris@wotan$ cat > s3demo.batch <<EOF
> setMode -bs
> setCable -port xsvf -file s3demo.xsvf
> addDevice -p 1 -file S3Demo/s3demo.bit
> addDevice -p 2 -file /opt/Xilinx/13.1/ISE_DS/ISE/xcf/data/xcf02s.bsd
> program -p 1
> quit
chris@wotan$ impact -batch s3demo.batch
chris@wotan$ sudo LD_LIBRARY_PATH=../../linux.x86_64/rel python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from fpgalink import *
>>> handle = flOpen("03eb:3002")
>>> flPlayXSVF(handle, "s3demo.xsvf")
>>> flClose(handle)
| Home | About | Log in | Register |

Powered by WordPress & MakeStuff theme, with Silk icons