This is standard USB host. It supports all USB 2.0 transfers, even isochronous (if device is slow enough). So in theory, working with anything that talks USB is possible - flash drives, webcams, audio, printers, etc.; limiting factor would be Arduino's program memory size.
The shield also have 16 general purpose lines - 8 inputs and 8 outputs, where inputs can also be programmed as interrupt lines. Can be used to control LCD, buttons, and such.
Ok, even cooler... I presume that from your experience, it is easier to use old devices that don't require so much coding, such as old printers etc.
From reading the pages you have written about it and the examples you have done, I presume that the arduino could be programmed to run different code depending on what device is plugged in...
On this image, are the 16 lines the ones on the left?
Also, from the looks of it, the shield is not stackable/it has to be on the top, correct?
What configuration options are there regarding pin use?
Keyboard and mouse are the easiest. They support so-called "Boot protocol" intended for use in PCs before OS loading - such as POST, BIOS config and such. In this protocol, keyboard data format is fixed - the fact that you don't need to parse report descriptor simplifies code significantly.
Current code supports single device on the bus; switching devices on the fly is possible. At present, multiple devices on the bus are supported in data structures of the USB library only; in the future, I may add code to support multiple devices or throw it away altogether to save space depending on how people would like to use the thing. The limitation is, again, Arduino resources - the keyboard polling sketch I mentioned earlier in the thread compiles into ~6500 bytes binary; this does not look like much, but, again, keyboard is the simplest of all USB devices.
This is correct. Inputs are on the top, outputs on the bottom. To support 5V levels GPIO lines are also equipped with level translators (74AHC245 and 74HCT245 ), which can be mounted in the spaces provided.
There is an article about this -> http://www.circuitsathome.com/mcu/arduino-usb-host-shield-build-log-part-43 SPI signals are hardwired, 4 control signals have jumpers and can be re-routed.
Ok, how's your project going with the LCD display showing what you type?
Out of interest, any reason why you did not make the shield stackable?
Is there any way that you can stack 2 together? You said that some of the pins are hardwired, I presume that means, only one USB host shield per arduino stack...