USB90μC Minimal Development Board V1.0a

by EverydayInventors, published

USB90μC Minimal Development Board V1.0a by EverydayInventors May 18, 2011


Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

2588Views 2142Downloads


USB90μC: a minimal development board for the Atmel AT90USB162 USB enabled microcontroller.

This is a cleaned up version of a home-designed-and-built development board used to learn how to interface to and write programs for the AT90USB162 microcontroller. A pic of the first home-built version can be seen at http://www.flickr.com/photos/everydayinventors/5368101007/ .

With the exception of the AVR mcu, all parts are through-hole for ease of assembly.

If you don't wish to manufacture a bare PCB yourself, you can get one from BatchPCB: http://www.batchpcb.com/index.php/Products/61022


Device program flash and EEPROM can be programmed over USB using Atmel FLIP ( http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3886 ) or the open dfu-programmer ( http://dfu-programmer.sourceforge.net/ ) software.

Programs can be written in C using GCC for AVR target ( http://www.nongnu.org/avr-libc/ ).

A very good AVR USB library with many examples is Dean Camera's Lightweight USB Framework for AVRs ( http://www.fourwalledcubicle.com/LUFA.php ).

Ubuntu GNU/Linux 10.04 LTS users can install both dfu-programmer and gcc-avr using the Ubuntu Software Center or Synaptic Package Manager.

A simple example test program written in C is included.

Alternate repository for schematics and source code at GitHub:

All Apps

Upgrade this Thing with Thingiverse Apps

Tools and Utilities

Repair, slice, or enhance this Thing

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Ok, spent a few hours with the Arduino environment code and figuring out how to make a new hardware platform profile. It's a bit of a hack, and lots of functionality is missing, but I was just now able to get my first Arduino sketch, a LED blinker, to compile for the USB90uC platform. So, yes, it will be possible to use the Arduino environment to write programs for this board.

I did have to upload the program by hand using dfu-programmer at the command-line as I haven't yet seen how to get the Arduino environment to use something other than avrdude for uploading.

I'll play around with it some more over the next couple days an see what can be done.

Can this be made Arduino compatible, I wonder?

Thanks for this board!

It seems that it can be done at home, with only one layer and few jumper wires, no?

The total cost of the components is around 5
€ / 7$... KUDOS to you!

Thanks. This is a double-sided design, but should be home buildable using a single side etch and point-to-point wiring on the opposite side. If I were to do that, I'd etch the top and mount the through-hole components on the back side except for the USB jack. There is only one via on the board, which is the MCU pin 3 tied to ground.

On the other hand, home etching a double-sided board isn't that much more difficult than a single-sided one. I originally home etched a double-sided design which was only slightly different than this one (see the flickr link above in the second paragraph of the description of this thing.) The th
inner the substrate material thickness of the double-sided copper clad board, the easier it is to align the artwork sides. Mine was 0.25mm. (On a side note, thin copper clad is good for home work 'cause its easy to drill and cut, you can cut it with regular scissors, and has good thermal conductio
n through the board which is nice if you're using the laser printer toner transfer method.) Just make sure when you make your artwork for transfer you include registration marks on the far outside of the design. A light table is nice, but not needed to align the artwork. I held my artwork up to a
bright incandescent bulb to help align it. If you're using a photo-resist method, it should be even easier to do.

Ok, I think I will try soon to make the double-side test.

Just another question: If I understood well, I won't need nothing but an USB cable to upload the firmware / bootloader / programs? No FTDI nor JTAG?

That would be a nice discovery for me!

Right, no external programmer, just a USB cable is all you need. The AT90USB162 device comes from the factory with a 4k USB device-flash-update bootloader already installed. The first time it is powered up, it waits for a program and/or data to write to its non-volatile program flash and data EEPROM memories. Once uploaded and on subsequent device resets, it jumps to the user program written into flash memory. If you wish to overwrite the user program, just hold down the DFU button and briefly press he Reset button and it will re-enter the USB device-flash-update bootloader to await an upload.

You can optionally use the traditional AVR ISP programming method using an external programmer like ATMEL's AVRISP mkII or the USBtinyISP by Adafruit, but there's really no need unless you wish to overwrite the factory-default bootloader or some such.