In the past couple of weeks I have come across some mind-bendingly peculiar decisions in Ubuntu's default package selection particularly in relation to USB, and also how ridiculously over complicated USB really is.
Most recently I was trying to scan in a the "Wordsearch" comic that I added this evening and found that my scanner had ceased to function with Sane. This was particularly odd as the scanner I had bought about a year ago was picked specifically because of the mature nature of Linux drivers for the device. After a little searching on the web, I found that it appears to be a problem not with the scanner drivers, but with the USB power management in Feisty. I fixed it by installing scanbuttond, as described on this site. However, it left me wondering, why would the package managers do something to make most USB scanners non functional in the first place, I guess it must be a lack of software testing at the development stage, which admittedly I find a hugely boring task when I'm writing software.
Previously to this I tried to get my memtool project running from Ubuntu, which is where I did the original development at Easter. However it wouldn't work. It seemed that the FT245 USB to FIFO chip that I had used in the project would not sign on, there was no ttyUSB0 device in /dev. Again I went scratching around on the web and found that a program called "brltty" was hogging even the virtual USB serial ports on my laptop. I wondered whether or not I could remove this program safely and soon discovered that it was a driver for a Braille tablet. So un-install brltty, using adept or whatever and then reboot and all should be well. The question I have to ask is why was that installed by default? I'm very glad that the distributors take such a helpful stance for disabled users however surely the majority of users aren't going to need this installed by default.
One bright light in the battle against the insane complexity and general conflicts caused by USB seems to be FTDI, a company that produces some superbly simple and useful USB interface ICs, including the FT245 USB to FIFO that I mentioned before, they also make the FT232 a USB to UART IC with ttl compatible output. However the most sophisticated yet has to be their Vinculum chip, a USB host controller on a chip with an 8-bit microcontroller compatible interface, it can do anything from allow an 8-bit micro to use a USB flash memory stick for storage to transferring files between two mass storage devices, a truly amazing piece of technology. I got hold of one of the VDIP1 development modules last week and I'm still looking forward to playing with it a bit, but the possibilities are enormous.