I just wanted to clarify something @bart said months back - the boot code doesn\'t limit what sort of things you can do over USB at all. When the boot code is done talking to the computer, it simulates a full disconnect, as if the digispark was unplugged from the usb port. It then launches your program and that program can optionally use USB libraries to start talking to the computer again
as if it were a freshly plugged in device. The kinds of things you can do are only limited by the digispark being only capable of low speed usb communication. This means HID based projects like mice and keyboards are straight forward. Creating serial ports, webcams, sound inputs and outputs, and other higher bandwidth things is not possible, however some computers will tolerate low speed devices offering those modes anyway, as demonstrated by several V-USB powered serial port emulation projects. You can see this in action by uploading the cdc232.hex firmware from the
http://littlewire.cc/ project which turns your digispark in to a driverless USB TTL serial adaptor.