
Control transfer function now accepts callback in order to split long chunks of data, if necessary. NAK_LIMIT is now tied to an endpoint – it is now possible to have NAK_LIMIT set to 1 for interrupt endpoint and 32000 for bulk endpoint of the same device simultaneously. Several minor code improvements has also been made. Also, a standard mechanism of device initialization/polling/releasing has been added to enumeration. It is now possible to connect USB hub to the shield and have many devices on USB bus, up to 7 daisy-chained 8-port hubs plus up to 44 devices connected to hub ports left after daisy-chaining, memory permitting. The high-level interface to USB devices has been re-designed as well.Also, pin reassignment can be done much easier by passing pin numbers into MAX3421E template during instantiation. As a result, low-level transfers became approximately 3.5 times faster. Arduino pin manipulation routines has been replaced with mechanism inspired by Konstantin Chizhov’s C++ AVR pin templates. The low-level interface to MAX3421E has been re-designed.Only 5 Arduino pins are now required for USB Host Shield to function – 3 standard SPI pins (SCK, MISO, MOSI) and 2 remappable pins (SS and INT).This new version contains several major improvements: What started as a quick re-factoring effort transformed to a major redevelopment, but finally all pieces fit together tightly and I am pleased to announce that initial release of USB Host Shield library ver.2.0 has been posted to github.
