I blew up my Olimex ISP500 programmer the other night. I left it plugged into my mac and target board. The next night when I went to use it, there was no life. On a whim, I replaced the AT90USB162. When I plugged it in, it actually came up in DFU mode. Wonderful. So now I’m in the process of reverse engineering the schematic for this so that I can reflash some sort of programming firmware on to it. The default olimex firmware seems to be encrypted. I may still see if I can read the firmware image off of a working unit, but I suspect it is all protected.
Ok a quick update… I hacked on a RST and HWB button. You can see them in the first photo. The is a 10k pullup added to a conveniently existing pad below the hwb (lower) button in the photo. The DFU loading works wonderfully now. I’ve uploaded a modified version of the AVRISP2 programmer code from the LUFA project. I can talk to the programmer now, but not any devices. The ADC for the target voltage still needs work.
One further update the programmer now works, I had to tweak the software to invert the miso data from the target, since there is a schmitt trigger invert, probably as a cheap level shifter.
Now that everything works, you will find attached:
- Reverse engineered schematic for the olimex (Olimex ISP500 Schematic)
- The patch to the LUFA 111009 code for olimex isp 500 board support (buttons and leds) and the miso patch for the schmitt trigger inverter. (olimex.patch v2)
- AVRISP-MKII.hex
- and some sample output/usage:
Make the programmer code and program the Olimex ISP 500
Chucks-Mac:AVRISP-MKII chuck$ make dfu dfu-programmer at90usb162 erase dfu-programmer at90usb162 flash AVRISP-MKII.hex Validating...9870 bytes used (80.32%) dfu-programmer at90usb162 reset
Use the newly repaired Olimex to read a target board
Chucks-Mac:AVRISP-MKII chuck$ avrdude -c avrisp2 -P usb -p at90usb1287 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude: Device signature = 0x1e9782 avrdude: safemode: Fuses OK avrdude done. Thank you. Chucks-Mac:AVRISP-MKII chuck$
Other Notes
This code was built using LIBUSB since I’m on a Mac. It’s nice to know you can spent 3 days, and $3 for parts to fix a $40 programer 🙄 I guess that is why they call it a hobby.