Thursday, November 5, 2009

USB Bootloader Kit for ATmega16/32

For working on AVR microcontrollers and particularly if the person is a beginner , it greatly helps if he is shielded from the Hardware or the circuit making aspect for the time being until he gain certain minimum proficiency in programming AVRs.

When this idea of introducing AVR Microcontroller as a new course of Embedded Hardware Design was formulated by Prof RN Biswas based on my request that IIIT already has a legacy of AVR in robotics, so it was required to have a platform which which make this exercise of teaching and doing Lab Experiment on AVR a reality.

Prof RNB is very particular about courses and he takes care that they are structured properly and with indepth planning.
I was already involved in designing the AVR Kits for Robocamp at that time and after seeing its design, he wanted a new design in which only PORTs interconnections and USB link to Laptop is present, so that the breadboarding part is done hands on by the students.

Finally after making lots of layouts of a kit wired around ATMega16 and after taking care o lot of issues, this was the final design of AVR USB Bootloader Kit.

1. USB Bootloader enabled, directly dump your hex file into the controller.
2. LCD(removable) connections through Burg Strip.
3. Connections to all PORT pins.
4. ISP connector
5. Powered through USB cable or external power supply.
6. LCD can be powered independently.
7. Slide Switch for enabling Bootloader.
8. LEDs for power & bootloader condition.
9. On Board 12MHz crystal.

The USB Bootloader firmware was avliable at Thomas Fischl(of the USBasp fame) and from Objective Development.
The Bootloader is the USP of this kit.

This kit was designed keeping in mind the experiments that the Students of Embedded Hardware Design, Microprocessor Based System Design and Embedded Systems-1 for UG2, UG3 and PG1-VLSI respectively needs to perform using Atmega16 microcontroller.

The Silkscreen of the circuit is shown

and also the kit in being use during a stepper motor experiment

Back Side of PCB

                                                                   Front Side of PCB

The Resolution is pretty bad for want of a better Camera, anyways the size of PCB is 10*6 cm.

The base circuit of USB Bootloader Kit for ATmega8 is

For making the kit with ATmega16 , the following changes need to be done in the firmware:
1. Change the D+ & D- pins to what is convenient to your design , though keep D+ to INT0 to avoid major changes in firmware.

2. Change the Bootloader address in the firmware, the compiled code that comes is according to ATmega8 whose memory size is 8KB , so the starting address of the Bootloader program(size 2KB) is 6KB. In case of Atmega16 whose memory size is 16KB , the starting address of Bootloader code 14KB (16KB-2KB).

3. Compile the changed code.

4. Before dumping the Bootloader code into the controller, have a 12MHz crystal connected in circuit and do all three steps together ie setting Fuse bits(High and Low) and writting the Bootloader code.

5. We are using HIDBoot Utility to dump the code into the controller using ISP.

6. In case the procedure is not successful, you can try that again , since the controller does not get bricked.

The Pdf of Layout of USB Bootloader Kit

USB Bootloader Kit User Manual

 - Any Queries are most welcome !!! :)


  1. Hi
    I need a USB programmer for atmega16 can you help me?

  2. Hi,
    can you please provide me the pcb layout or the circuit diagram of the above USB bootloader kit for Atmega16.
    Its really urgent, please please help...
    mail it to
    please do mail or post it..i'll really appreciate any help..thanks!

  3. Layout link is not working!
    can you provide another link?

  4. This comment has been removed by a blog administrator.

  5. hi
    the info you have provided has proven to be really useful for a beginner like me !!!!..... if only you could give specifications of all the passive components !!.... thanks in advance !!!....

  6. Hello Sir,
    Will you be able to send me the schematic of the above board on my email address i.e.,

    I really tried to make the usb bootloader for ATMega16 but all the time my Device is Not recognize in computer, I made the changes in firmware also.

    Please help me with firmware also.

    Thanks and Regards
    Birendra Kumar