Batch atmel programmer

Just something that I thought I would share quickly should anyone be interested.

I’ve designed, developed, produced and tested a board with the intention of programming many atmel chips in a ‘batch’

The board is based around a simple atmega8 and issues control over the reset lines of many atmel chips when programming so that only one chip can be reset. It’s a simple but clever process whereby the atmega8 holds the reset line of all the chips that are not to be programmed HIGH whilst releasing the reset line of the chip to be programmed. The ICSP programs the chip, a command is sent to the board over serial (as part of a windows batch file) and the board switches to the next chip, flipping I/O as necessary.

Currently, I can program 8x Atmega328 chips one after another in ZIF sockets very quickly with minimal user input.

Unfortunately, I’m not much of a programmer or computer programmer and so the best I’ve come up with is a batch file that contains commands to AVRDUDE to program and the powershell commands to open serial ports and send data.

I’ve included a couple of pictures to show my setup.

Serial is handled by a CH340T chip and programming by a common and cheap external USBASP.

I’m curious to know peoples thoughts on this setup and whether anyone might be interested in developing a GUI sort of software for it and perhaps ideas on feedback, capturing data whether a chip failed programming or not as the batch program just whips through so quickly, it’s sometimes difficult to see whether a chip failed or not.

Awesome! Please check out Nick Gammon's hex uploader:

It is a program that can upload hex files from sd card. You compile your arduino sketch to get hex code (every single time you press compile). You place it on an sd card and Nick's uploader interacts with you on serial port to determine what to do. You could adapt his code and instead does 1-8 chips in a row when you press a button on your board (maybe next design will have a button and sd card).

I am using his code on my programming gig (bottom is gig, top is target board, spring-loaded pins connect them):


Here is the link to my blog post: