[Robotgroup] More USB info
Glenn Currie
kd5mfw at texas.net
Sat Jun 2 23:23:26 PDT 2007
Well I hope the USB information is useful. There is a lot of USB
equipment out there
for very reasonable prices.
For some ham radio related projects, that are directly usable with some
robot
projects, we have had great results with the Linksys WRT54GL. Linksys
started out using Linux to get a a free TCP/IP stack. They also made use
of the host USB drivers in some of their projects like the WRTSL54GS.
The WRTSL54GS only had one USB port, but it does support a hub,
if you plug one in. I have a D-Link 7 port powered hub (has its own
power supply so it can deliver full power to 7 USB ports.) It works
great. I plugged in a bunch of USB disk drives, and thumb drives
and I could mount each file system. I was also able to use the device
to make an interesting 802.11b/g sniffer. I hooked 5 USB 802.11b/g
adapters into the hub. Each radio was mounted in a hacked microwave
horn, thus making each radio directional. It was trivial to run 5
sessions of NetStumbler on a laptop. With 5 directional radios
( basically in a front, rear, left, right and strait up arrangement)
and 5 data streams of signal strength and GPS coordinates, I can
collect essentially 3-D (5-D?) data on access point locations.
I still have to correlate the data sets, that is some work but relatively
straight forward. Fry's runs specials on the Airlink101 model ASLL3026,
USB to 802.11b/g adapters for $9.95. These are fantastic little radios and
there is a lot of interesting hacking that can be done with them.
The mass produced embedded Linux devices could be very useful in
robot projects. They have serial ports, some have two, and there is
JTAG support as well (you have to solder in headers for these ports,
but the support for them is built into every box.) There is information
on the net about doubling the RAM space, as well as many other mods.
Most of the hackers working on these devices are network folks, but
I have seen several projects where they were used for robotic devices.
I think it's great that you are looking for ways to use USB devices. I
learned
a lot about USB several years ago while writing some drivers.
It turned out to be a lot more work than
I had expected. If it had not been for the $14,000.00 USB bus analyzer we
had, I would have never gotten all the code to run.
Jan Axelson's books are quite good. I find it amusing / telling, that his
"USB Complete" book is in it's second edition - I guess it wasn't so
complet now was it? ;-)
Actuallly the second edition coveres the many changes for the USB 2.0 spec.
USB was originally not intended for high bandwith connections. One of
it's original goals was to be inexpensive. By providing a reasonable amount
of power on the bus, peripherals would not need a power supply.
There were some business / people issues about the use of firewire, so some
of the key players pushed for a faster USB spec. so they could compete.
When I first started working with USB devices, the specs looked impressive.
I had been trying to work out a modular, self configuring peripheral bus for
robots. The idea was that things like arms, hands, sensors, including
video,
could be hot plugged and the master controller could automatically configure
the robot to make use of the new device / limb. USB seemed like a good
fit for a while. It supplied enough power to run a microprocessor in each
device, and I had planned for a separate power bus for motors and other
actuators anyway. (Then there was the mechanical coupling to work out.
I wanted
some sort of quick connect disconnect - another project / tangent.)
Once I started working with USB it became clear that, in theory, it was
a good fit for what I wanted, but the implementation on the OS's at the
time was pathetic. Things have gotten much better, but I still have
problems
with my USB to RS-232 adapters. They enumerate OK, but depending on
what else I have plugged into the computer, it can show up as a different
numbered serial port - most of them above COM4. A lot of perfectly good
software can only address comm ports 1 - 4, so when my adapters
enumerate to COM7, such software is useless. With enough work,
I can usually get a system configured so that the USB serial port is usable,
but then it is not really "hot pluggable" and self configuring is it?
It is just a
new and complex pain the the ass.
Perhaps some industrial strength variation to USB would be workable, but
as it is now, if I plugged in an "arm" module it might auto configure to
a leg, an ear or a finger. A hand on an arm is useful, a finger in the ear
is only useful, when you need ear plugs. ;-)
Somehow it brings to mind a situation where Bill Gates in in the
hospital - and the life support system attached to him,
is running Windows.
Can you imagine the horror he would be fill with as the
"Blue Screen of Death" replaced his EKG pattern on the monitor?
Cheers,
-Glenn
>
>
More information about the Robotgroup
mailing list