This year I started a new project which I called usbprog, because I was fed up to the back teeth with buying another programming adapter.
usbprog is a free programming adapter. You can easily install different firmware versions from an "online pool" over USB.
In my little firmware-pool I have already:
- AVRISP mk2 Clone (I works like an original AVRISP mk2 from Atmel) - OpenOCD USB JTAG Interface for ARM7 and ARM9 debugging - an USB to RS232 Converter - I work at an JTAGICE mk2 Clone (I can already start and stop an application over gdb/jtag) - I know somebody who tried an to build an PIC Programmer with usbprog
Given time, there will be a growing pool of firmware versions. If you have to work with a new module you will ideally find the matching firmware to program or connect to this new module in the online pool.
If there is no matching firmware for the required module you shouldn't hastily buy a far too expensive adapter, but ask if it paid to write a new firmware for usbprog and thus to invest in the firmware pool. Often it is done quite quickly, because you can enhance existing software tools. Like in the case of the AVRISP mk2 clone that can be used with every application that supports the original adapter of Atmel, or the adapter for the OpenOCD, a product developed within 2 to3 days.
Best Regards Benedikt