diff -ur usbasp.2011-05-28/firmware/main.c usbasp.2011-05-28-mx-usbisp-v300/firmware/main.c --- usbasp.2011-05-28/firmware/main.c 2011-05-28 02:57:49.000000000 -0500 +++ usbasp.2011-05-28-mx-usbisp-v300/firmware/main.c 2013-11-07 15:40:33.626413704 -0600 @@ -306,11 +306,12 @@ /* no pullups on USB and ISP pins */ PORTD = 0; PORTB = 0; - /* all outputs except PD2 = INT0 */ - DDRD = ~(1 << 2); + /* all outputs except PD2 = INT0 and alternate LED outputs */ + DDRD = ~(1<<2 | 1<<5 | 1<<6); /* output SE0 for USB reset */ DDRB = ~0; + PORTD = 1<<3; // USB D+ isn't on B0 anymore j = 0; /* USB Reset by device only required on Watchdog Reset */ while (--j) { @@ -321,6 +322,8 @@ } /* all USB and ISP pins inputs */ DDRB = 0; + /* all outputs except PD2 = INT0, PD3 = D+, and alternate LED outputs */ + DDRD = ~(1<<3 | 1<<2 | 1<<5 | 1<<6); /* all inputs except PC0, PC1 */ DDRC = 0x03; diff -ur usbasp.2011-05-28/firmware/usbconfig.h usbasp.2011-05-28-mx-usbisp-v300/firmware/usbconfig.h --- usbasp.2011-05-28/firmware/usbconfig.h 2011-05-28 03:28:52.000000000 -0500 +++ usbasp.2011-05-28-mx-usbisp-v300/firmware/usbconfig.h 2013-11-07 15:41:02.326414167 -0600 @@ -22,15 +22,15 @@ /* ---------------------------- Hardware Config ---------------------------- */ -#define USB_CFG_IOPORTNAME B +#define USB_CFG_IOPORTNAME D /* This is the port where the USB bus is connected. When you configure it to * "B", the registers PORTB, PINB and DDRB will be used. */ -#define USB_CFG_DMINUS_BIT 0 +#define USB_CFG_DMINUS_BIT 3 /* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. * This may be any bit in the port. */ -#define USB_CFG_DPLUS_BIT 1 +#define USB_CFG_DPLUS_BIT 2 /* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. * This may be any bit in the port. Please note that D+ must also be connected * to interrupt pin INT0!