Wednesday, March 19, 2008
Vault OS : Update #5
I always wanted to have an x86 defacto standard for all the computer systems in my vault. Back in 2002, I wished I afford it. That way I could write and test my system on my development machine in the house and then just transfer it on Flash card over into the Vault Manager.
Instead I bought a lot of embedded chips and learned to program them all. I bought the Rabbit 2000, 2 AVRs, 3 Basic Stamps, 6 pic chips, a Hotchip Mini-PC, lots of display and entry hardware. I set up IDEs and learned how to develop for all these tools. I bought more components to try to make them talk to each other ... I2C nodes, Ethernet boards, tons of serial sensors, even built a few of my own low budget weather instruments. The only thing I got running reliably in the shelter was the Rabbit 2000, only now because I'm still working on the power supply down there (which is switched by a relay board on the Rabbit 2000) I only turn it on when I am down there. I've spent a lot of money on embedded stuff and so far don't have much working 24/7 duty to show for it, which is the reason I bought all this junk to begin with. My first step for the entire shelter is to rewire the entire thing for 12 volts using 2.1 mm waterproofed socket jacks instead of those crappy 12 volt automobile sockets. I've got all the components needed - I bought about a million kilometers of 12 volt insulated wire with 2.1 compatible power jacks, 2.1 mm distribution points, 2.1 mm relay boards. In case you're wondering, this is the standard for 12 volt fairy lighting systems in Japan and I scored the low budget motherload on a huge box of this stuff brand new. I definitely want every computer, be it PC or embedded chip, to run off a standard 12 volt line.
So the shelter will be rewired to work entirely off this gauge wire with this standard jack. Just like in your house, all 12 volt tools, cooking instruments, computer systems, fans and accessories will plug into sockets like you have in your house with a 2.1 mm jack as standard rated for several amps.
Then the prices on SBCs came down. I found bargains like my military grade Pentium SBC for $50. I bought some Fujitsu Stylistic 1000 tablets cheap and got them running. I still was thinking of my 24/7 system as running off one of my embedded chips.
This week I scored a 1 ghz SBC complete (VGA High Color, Keyboard, USB, 2xSerial, 2xParallel
, Ethernet, etc. etc. fully loaded) off of Ebay for the sum of $1.00 plus S&H. Then shortly thereafter I got a Pocket PC for $15.99 off same.
Now since Pocket PC supports DOS 32 applications with a little tinkering, I've got a whole new situation on my hands. Even if I have to run it as a .NET app, I can use the Pocket PC as my mobile PipBoy, communicating with the Ethernet node in the shelter via wireless or IRda internally, which is actually very easy to write in .NET CE nowadays. I've got one SBC to go in the main drum, one to go in storage and about a million client terminals if you count all my repainted laptops, Fujitsu tablets and otherwise rejected unmentionables with an x86 board. If I wanted to I could put terminals in every silo, generator room and storage area on my hub.
I am thinking, I should code the Vault OS system as my main, de facto standard for comms, 24/7 sensors, power management, reference, inventory, personnel, switching, control, perimeter detection, the works. I will assume all sensors will be compatible with some PC standard, likely on the serial or parallel port. In addition, any peripheral systems I can get running on my little embedded chips will be a lovely addition if they are Ethernet-enabled. For example, water storage (turning on pumps to bring water down the mountain from the remote into the local tank, running purification, reporting on tank levels in a consolidated fashion) is something that could have it's own dedicated AVR board. The Rabbit 2000 could do nothing but watch real-time charging of batteries, monitor voltage levels, switch to auxiliary sources ... presenting it's front end as nothing but a pack of bytes sent over Ethernet to let the rest of the network know how it is doing.
I am thinking that my embedded stuff is best positioned as dedicated controllers for local systems like permaculture, but the brains of the shelter system 24/7 should be the Vault OS. I am now working along these lines. Instead of last, I will probably put serial/parallel interface routines into the scripting language first. There are so many things that having an x86 platform makes easy to get up and running. As long as it isn't Windows, which is an unreliable bloated hog. Today at work I was tinkering with an embedded .NET system that is supposed to watch real-time controllers, but just seeing the freeze/delay patterns endemic to Windows was cringe-worthy. Any computer system that allows any component of it to halt everything else going on is pretty worthless for embedded work. Don't even get me started on the memory manager, the loading of DLLs that takes place every ten seconds when you are using Windows, etc.
It's not exactly what you would call blood-pounding excitement, but I now have the beginnings of a very complex text interface on Vault OS that is the first thing to appear. As described before, if you don't touch anything, it uses all the settings on the screen to launch the graphic GUI after twenty seconds. This permits it to be run in safe mode, change screen resolution, type in sound card settings, tinker with configuration value pairs, detect network, create service addresses (like the service that provides PDF files on demand), etc. I may do nothing for the next week or two but integrate this screen with everything else.