2006-03-12 version 1.0 o Initial release. 2006-03-31 version 1.1 o Updated patches/avrdude-5.1.diff. The modifications to Makefile.in are now included, so that automake1.9 is not needed to build avrdude. o Changed the dependencies in utils/Makefile so that it will restart after a compilation failure. o Shaved off a couple of instructions in usbtiny/usb.c. The code now fits in 2K when compiled with gcc-4.0.2, provided USBTINY_VENDOR_NAME and USBTINY_DEVICE_NAME are undefined. Gcc-4.0.2 produces about 10% more code than gcc-3.4.3! 2006-07-12 version 1.2 o Moved the original SPI application to the spi/ subdirectory, and added a new IR receiver and LCD controller application in the ir/ subdirectory. o Added an optional additional endpoint (for the ir application). o Reduced the size of the spi application by a couple of bytes. o Converted the usbtiny.py script to a Python module that defines a class USBtiny. Added test scripts to both application directories that use this class. o Created a common make include file for the applications, and a global Makefile that recursively runs make in all subdirectories. 2006-12-15 version 1.3 o Commented out the USBTINY_VENDOR_NAME/USBTINY_DEVICE_NAME macros, to make the code fit when compiled with gcc-4.1.0, which seems to be the standard version in most distributions these days. o Added a pull-down resistor in the ir schematic to avoid a hang in the LCD initialization code when no LCD is attached. The LCD code can now be disabled by defining LCD_PRESENT as 0. o The 1K5 pullup of the ir application is now controlled by an I/O pin, so that the device disappears from the USB bus when it is flashed in-circuit, and is automatically recognized when it comes out of RESET (idea from Reinhard Max). o Updated lirc patch with a gap calculation fix from Reinhard Max. o Fixed some build problems of the libusb python wrapper, and added proper error reporting. o Made the flash and SRAM sizes configurable in the Makefile. 2008-01-16 version 1.4 o Moved the assignment of a new USB device address to the interrupt handler in order to avoid a race condition that sometimes occurred when the PC was rebooted. o Updated the schematics with zener diodes on the data lines, because some PCs seem to have problems with 5V data signals. o Changed the USB ids for the "spi" application to the VID/PID pair of the USBtinyISP project (http://www.ladyada.net/make/usbtinyisp/), because these ids are supported by avrdude since version 5.5. o Avrdude-5.1 patch replaced by new patch for avrdude-5.4. o New patch for lirc-0.8.2. o New configuration macro USBTINY_FAST_CRC to switch between two versions of the CRC algorithm: slow & small or fast & large. o New make target "fuses" to program the low and high fuses. 2010-05-29 version 1.5 o Optimized the USB interrupt handler to make the code both faster and smaller (22 bytes). The interrupt handler now also checks for a pending transmission after an ignored packet and decodes it directly without first returning from the interrupt handler. o Improved the execution speed of both versions of the CRC function. The "slow" version got 25% faster and 4 bytes smaller, while the "fast" version got 50% faster but 8 bytes larger (suggested by Reimar Döffinger). o Added two new configuration macros: USBTINY_DMINUS_PULLUP - control D- pullup resistor with an I/O pin. USBTINY_USB_OK_LED - turn on a LED when the enumeration succeeded. o Added new compiler and linker options to reduce the code size. o Updated the timer input capture interrupt handler of the "ir" application. The inline assembly code didn't work anymore with newer gcc versions, because of changes in the register allocation. The code now works for gcc-4.1.0 and gcc-4.3.4, but it is still fragile. o Other changes of the "ir" application: - The maximum number of IR data bytes is now 36 instead of 35. - The LED briefly flashes after USB enumeration. - Added power filtering for the TSOP1738 device in the schematic. o Added a new USBtiny application "usbtinyisp". This is a modified version of the "spi" application, adapted for use in the USBtinyISP AVR programmer (http://www.ladyada.net/make/usbtinyisp/). The code works for both v1.0 and v2.0 devices. o Added a new template USBtiny application in the "template" subdirectory.