The Electronics Box Version 1.0, circa March 2001




Serpac “unbreakable” model 500 case from Mauser Electronics.



Mount waterproof connectors for the solenoids.

Mount a GPS.

Make custom ribbon connectors without the ones we aren’t using, like the keyboard connector.


Solid State Relay driver board

Custom board by Phil.

Six SSR for driving the engine solenoids, and a couple spares.

They are crydom parts, CMX60D10, rated for 10A and 60VDC.  Digikey part

number CC1125-ND.


There are LED’s in parallel with the switched loads so we can tell what is active without anything connected.



Rebuild on PC104 footprint

Put in a full eight relays, which will also get rid of our current 1-6 instead of 0-5 issue.

Better connectors for the outputs

Make a custom cable so it can connect to the computer’s digital IO ports instead of lpt1

Direct IO port mapping from PC104 connector?


Sensor Board

Custom board by Russ.

Two Gyration MG-100 dual axis rate gyros and a CXL04M3 Analog Devices three axis accelerometer from Crossbow.

(what microcontroller and other chips did you use?)


This outputs eight raw A/D values over RS232 at up to 60hz.  The A/D is 12 bits, but the center point of the gyros is around 0x110 and the accelerometer is around 0x220, so we are getting 9-10 bits of precision delivered.


It was originally intended to use Gyration’s custom ASIC for the MG-100, but they were strange enough to interface to that we used the same A/D chip as the accelerometer.



Get better data out of the gyros, they currently have issues.

Direct IO port mapping from PC104 connector?

Add more sensors: 3 axis magnetometer, barometer, read the gyro’s temperature sensors, extra external connections.

Trim down the accelerometers cable and make a lower profile connector for it.

Make it automatically send the data without needing a poll command.



Two 7.2V, 3 amp-hour radio control car batteries from Radio Shack provide the main power source.


We also had a 9V separate for the sensor board, but we will be dropping that next time.



Add lit switches independently for the computer, sensor board, driver board, and a few spares.

Time how long we can run all four solenoids before running down the batteries and log the voltages.

Add a DC power jack so I can run it on the bench without draining batteries.

Can that double as a battery charger?  If not, add dedicated charger inputs.




WinSystems 133mhz 5x86 EBX form factor SBC with 32 mb ram

WinSystems PC104 DC-DC power converter board

WinSystems PC104 IDE-FLASH 1.8” ATA flash drive carrier board

M-Systems 160mb 1.8” ATA flash drive

PSI PC104 PCMCIA board (note, this is 5V PCMCIA only!)

Linksys ieee802.11b wireless Ethernet PCMCIA card


Running a linux installation grown from a LEM install.


This was much more of a hassle to get right than expected.  Most embedded system hardware is like time warping backwards over five years.


The default Red Hat install floppy kernel wouldn’t recognize the on board Ethernet controller, because some earlier probe had killed it.  Configuring and building a stripped down kernel fixed that, but I never did figure out exactly what the poison option was.


I originally tried to use a Compact Flash carrier board for the solid-state storage, but it would always produce strange disk errors under heavy use in Linux.  I tried the latest kernels, but it never cleared up.  I assume it was something to do with the ancient IDE controller on the motherboard, because CF is reported to work on other Linux systems.


The IDE-FLASH combination does work exactly like a hard drive, but it has the annoyance that it won’t share an IDE master/slave relationship with anything but another flash drive, so you can’t have either a hard drive or CD Rom hooked up at the same time (the CF board could have another drive as a slave, but not as a master).  That made installing everything a headache, because it had to all be done over Ethernet with custom boot disks.


I also have a 8mb Disk-On-Chip, but that isn’t enough space for me, and it requires extra messing around with the kernel and DOC firmware to even get started.  On the plus side, it does coexist fine with normal IDE devices, which is a bigger bonus than I was expecting before I went through all the headaches with the other flash solutions.


The default PCMCIA driver setup resulted in system lockups on any card insertion, until I removed all the IO ports and explicitly gave it only a small range.


The first PCMCIA net card I got (a D-Link) turned out to be a 3.3v only card, which didn’t work in my 5v PCMCIA carrier board.  I was shocked to discover that they aren’t keyed differently.


The second PCMCIA net card I got (a linksys) does work, but only in infrastructure mode, so I need to lug an access point around.  I think I can change to a different driver and get it working, but I wish I had been able to find a lucent card locally, which is the best supported.


The final annoyance was that the parallel port was at a different location than all my other computers, and even though the board has a hundred jumpers on it, that was a fixed location.


Building a stripped down linux install was an adventure.  I enjoyed ripping out all the SysV init scripts and replacing them with a single boot script and a single shutdown script.



Replace the EBX motherboard with a more modern PC104 form factor board.

Move the solenoid pulse width modulation to an RTLinux kernel driver.

Replace the linksys card with a lucent card so Ad-hoc nets work correctly.