I think the Soekris 5501's USB port is particularly defective. I haven't done a careful study of my particular problem, but here are a few data points. Start with the exact same piece of USB equipment (a series of Dallas 1-wire temperature sensors, connected to a Dallas DS2490 USB-to-1-wire adaptor, I have 3 or 4 of those assemblies).
Plug one of the DS2490 into a Windows laptop, using the Maxim/Dallas demo software to communicate over USB: Completely reliable, works perfectly out of the box. Multiple DS2490 work too, but I didn't have to use a USB hub (used multiple USB ports on the laptop). Plug one of the DS2490 into a desktop machine running OpenBSD 4.5: Mostly works. Occasionally I get timeouts when reading from USB. Try to connect multiple DS2490 via a powered USB 2.0 hub (cheapo model): Reliability goes down, many timeouts, but basic functionality is there. But if you unplug or add one DS2490, all the others usually get read errors, which requires a reboot. Seems the USB code in OpenBSD needs to be tweaked for longer timeouts, and so device add/remove is handled correctly. The plus side is that software support for the DS2490 in OpenBSD is great: no user-level software required, the temperature monitors can be read with a sysctl command. I have been in contact with the maintainer of 1-wire for OpenBSD, and he admitted that he currently has no time to fix issues, and that 1-wire support in OpenBSD is unfinished and has known bugs. Same hardware configuration, but boot into Linux (Fedora 8, somewhat older). Install some bizarre user-mode software to connect to 1-wire sensors via the DS2490. After much configuring and tweaking, it's capable of reading a single DS2490, but I couldn't figure out how to configure it for multiple DS2490. Seems the software was quickly hacked together by some volunteer without any thought about craftsmanship or quality control, and as soon as it worked for his particular configuration, he lost interest. Not worth investing effort into as, as OpenBSD works so much better. Now take one of the DS2490, and plug it into a Soekris 5501, also running the same OpenBSD 4.5 that worked OK but not great on a desktop machine: Utter failure. The OS sees that there is something there, and tries to communicate with it, but communication fails completely. My first suspicion is that the USB port on the Soekris is underpowered, so I add a powered hub, but that doesn't help either. If I were really interested in figuring out whether the problem with the Soekris / OpenBSD combination is hardware or software, I would install Windows XP on the Soekris (the only OS I've found so far to have perfect USB / 1-wire software support), but that's (a) nearly or completely impossible, and (b) not worth the effort for a minor side project that's only of cosmetic important to me. What do we learn from this: (1) Free software has support and quality issues. (2) The Soekris 5501 hardware does not act exactly like an industry-standard x86 machine, but in some areas (particularly clock, interfaces and power) it's a bit weak. (3) The comfort zone of 5501 hardware is for low-powered network routers and servers, not for interestingly complex IO requiring unusual software or hardware support. Within the comfort zone, the Soekris 5501 works great though. -- Ralph Becker-Szendy [email protected] (408)395-1435 735 Sunset Ridge Road; Los Gatos, CA 95033 _______________________________________________ Soekris-tech mailing list [email protected] http://lists.soekris.com/mailman/listinfo/soekris-tech
