# Can avrdude address individual usbtiny programmers?

I'm envisioning a panel programming jig. In my mind, it consists of a Raspberry Pi, a powered USB hub, and a collection of usbtiny clones each connected to a pogo jig and a target on a panel.

The only question I haven't yet worked out is, when invoking avrdude, I can use -c to tell it to use usbtiny... but how can I tell it which usbtiny I want it to use? The plan is to use a script to go through them all one at a time, and IMHO just attaching a bunch of programmers is easier than trying to come up with a bolt-on to multiplex the SPI bus from one programmer to all the targets.

Multiple USBasp or USBtinyISP devices can be identified by their connection information. From the AVRDUDE manual, appendix B, "Troubleshooting":

• Problem: Multiple USBasp or USBtinyISP programmers connected simultaneously are not found.

Solution: The USBtinyISP code supports distinguishing multiple programmers based on their bus:device connection tuple that describes their place in the USB hierarchy on a specific host. This tuple can be added to the -P usb option, similar to adding a serial number on other USB-based programmers.

The actual naming convention for the bus and device names is operating-system dependant; AVRDUDE will print out what it found on the bus when running it with (at least) one -v option. By specifying a string that cannot match any existing device (for example, -P usb:xxx), the scan will list all possible candidate devices found on the bus.

Examples:

avrdude -c usbtiny -p atmega8 -P usb:003:025 (Linux)
avrdude -c usbtiny -p atmega8 -P usb:/dev/usb:/dev/ugen1.3 (FreeBSD 8+)
avrdude -c usbtiny -p atmega8 \
-P usb:bus-0:\\.\libusb0-0001--0x1781-0x0c9f (Windows)

• Excellent. I'm glad there's a solution. I found lots of doc for avrdude, but not that chunk of the manual. Thanks! – nsayer Sep 26 '14 at 20:37