[Robotgroup] Menage aTux. Embedded Gnu/Linux Hardware Recommendation?

Bruce Waters biwaters at austin.rr.com
Tue Feb 5 23:33:06 PST 2008


Rhett,
  For my ferrocement plotter bots I am mixing/matching :
1).wr850g's using OpenWrt Embedded Linux (just like 
    Gray's well hacked wrt54g routers)
     for 802.11g WiFi, 4 wired ethernet ports, plus 2 serial
2).Vex controllers using Microchip mplib/C18 and WPIlib
    for pwm servo/motor outputs, serial, and dido
    There's no real OS here, just the Vex control processor.
    Propeller's or basic stamps are alternatives to Vex.
3).Sick DME 2000 laser rangefinder(s) 
    for accurate positioning via serial (thence wr850g wifi)
     These are normally >1K$ items but I bought some much
     cheaper on Ebay and I love em.
4).Many mongrel rebuilt $10/$20Goodwill scraptops 
    (Compaq Presario 1200s, Gateway Solo 3350s, HP 
     Pavilion N3410s,...) running Edubuntu Linux (some PXE) 
     These scraptops provide USB, hdd, ethernet wired to wr850g, 
     hi-res bot-mounted displays,  optical mice for super cheap 
     closed control loops, serial to Vex,...
5).Compaq DL380 dual processor server with 6X9GB scsi
     raid, running Edubuntu with a PXE server for optional net 
     boot of bot-mounted scraptop Edubuntu linux.
     
     Handheld "dashboard" Edubuntu Scraptops on my home 
     lan (operating as remote operator consoles) communicate
     to any bot-mounted scraptops through the command 
    and control server.   Project design data resides on the
    main ccs server, is translated to high level motion directives 
    for specific plotterbots here and sent to plotterbot scraptops 
    (over a wifi hop) which implement or delegate lower level 
    motion directives with low-latency requirements(eg. to Vex)..

I have wr850g routers I can spare for projects which could
produce subsystems also useful for my purposes.  You might
provide a wireless hop to the serial print head controller that
Vern used in the ping pong ball printer with a couple of these
routers.   Then anyone could mount the head on a mobile
robot and print giant graphics on butcher paper taped to the
floor without storing all that data on the mobile bot.    Two
bots printing the same stream would document their relative
positions in a time synchronized way so that what they did
when could be reviewed afterwards for scoring contests or
for teaching the physics of motion.   The botmounted router 
could have a routine that would print the current value of 
some keyword (myname=R0D0) when a symbolic for that 
keyword appeared in the serial input stream . "My name is 
$myname." might produce "My name is R0D0."  

The wireless hop to the print head controller  idea is just an 
example.  If you think of an application you would like to 
implement, please describe it to me.  Perhaps we can get 
multiple use of expended effort.  

The five bullet description above is in various stages of 
development.  I am a scheduling opportunist so I will not
be publishing any dates for intended completion.  
I obtained most of the hardware I have at a very low
monetary cost relative to its actual value but with
great effort expended at inconvenient times to get 
those good values.   A great many of these items
are rarely available at the prices I paid and some may
be discontinued and may never be available again.
It is therefore imprudent to assume that one can ever
exactly replicate the things I create at reasonable cost.

Luckily, most of the software I have used for this big
project is (so far) publicly available on the web.
Edubuntu Gutsy (7.10) is the workhorse and is
very conveniently distributed.   Edubuntu is being
massively distributed to K-12 users so its distribution
has to be smooth and well tested.  There is an
enormous set of applications also distributed with
the Synaptic Package Manager so a great wealth
of predominantly free software is available with
fora and updates and large user communities.
I think it is the way to go for a great many 
purposes and I intend to use it whenever I
possibly can.

OpenWrt is a hacker beastie so it requires a great
deal more sophistication but it is freely available
on the web and my son did my router flashing so
far.   Techie types can handle it reasonably easily.
This long post essentially seconds the previous
recommendation to use OpenWrt for embedded
Linux.  I am just providing some detail to show
how it might all fit into a productive environment.

MPlab and the C18 and WPIlib are all free versions
of software for Vex (it contains Microchip PICs) and 
involve a somewhat complicated "tool chain". 
Software development types can slog their way
through these.  You can get fairly decent Vex
function from a $200 EasyC Pro alternative which 
might be easier to use for those who would rather 
pay some money to avoid some of the complications
of the free approach.   

Using a simple control program and a little dedicated 
hardware eliminates the extreme "need" get some 
"real-time" version of Linux to deal with asynchronous, 
high-speed-service-required, specifications.  Meeting 
hardware requirements such as these is almost never 
covered very well by an operating system which has 
a myriad of other responsibilities.  Instead, dedicate 
some hardware, dedicate some narrow purpose OS 
(control pgm or a minimal real time Linux) and use 
the usual general-purpose Linux like vanilla Edubuntu 
at all but the lowest  levels of abstraction. 

Bruce Waters


More information about the Robotgroup mailing list