Thursday, March 20, 2008

Vault OS : Update #6

Somebody wrote me at hotmail to ask me what in the heck this post was about. If you do not have the background to know what is involved, I realized it was probably gibberish after reading it again.

Basically, if I get the right paradigm for Vault OS, I will have written a system that not only I can use for my own customized setup, but that anybody can use anywhere. Since last month when I first got some experimental code running, my mind has been shifting around to the correct way to do it. My problem has always been starting on something without the right approach and then realizing 75% of the way through that it was not worth completing because it was not what I wanted.

If I dump my embedded ethernet fixation (it's great if you can make and hook up custom ethernet enabled embedded devices) and I move my mind towards an x86 based global framework, that means you won't have to be an electronics technician to use Vault OS to do anything you want with it if you buy a few I2C devices or simple serial port interface devices. It needs to be so simple a complete layman can plug a jack in the back of the computer and tell Vault OS to recognize it.

I want you to be able to do nothing but plug stuff into jacks and then configure your own Vault OS from inside the program. I want you to be able to say in software, "look for this unique I2C peripheral." Then you can tell the OS what that is. For example, "it's a temperature sensor." Then I want you to be able to script a little monitoring screen and say, "Display that sensor with that ID as a color bar marked in increments of fahrenheit using this formula." You could take the default script that will come with Vault OS and copy it, use it as the basis for your own custom monitoring screen layout. Add some indicators to mark some custom switches.

Ethernet is great. If you have something you want to put on the network with Ethernet, terrific. But I realize that once again writing this system is a wank on my part if everybody has to know how to write custom Ethernet devices to recognize sensors. I just barely know how to do it myself and have only gotten one device to do it correctly at present. Building a system where your control/sensor paradigm relies on Ethernet is still going in the wrong direction. Vault OS terminals should use the network to communicate to one another via TCP-IP, but the control and sensing should use a different, standardized technology. I'm getting to it.

So let's say Vault OS will be based on a few simple, ubiquitous technologies that can be standardized without custom electronics required :

1. x86. Everything runs on a minimal 386 or better in 32 bit protected mode. All x86 devices are expected to have at least one Ethernet network connection (RJ485) and one or more serial plugs. A Vault OS can operate in standalone mode with no network if it has sufficient support for hard drive/compact flash storage of files and is configured to do so.

2. All devices must support a minimum 640x480 256 color resolution, even if the actual LCD is monochrome. Eventually support will be made for devices up to 1026x768 resolution with high color but when it is put in (my SBCs have support in VGA for these resolutions) it will not break the existing functionality.

3. Devices will use either/both mouse or PS2 keyboard PC standard for input.

4. All control/switching/sensing/monitoring I/O will be assumed to take place over the serial or parallel bus of a given Vault OS installation. Ethernet will not be required although it will be supported of course.

5. The easiest, simplest and most convenient standard communications protocol for PCs and the outside world right now is I2C. It is also the easiest to design to be proof against EMP with a wide variety of optical isolators of various manufacture out there. Many PCs of all varieties may have built-in IrDa plugs that support comms over optical cables by default.

How easy is I2C? About as simple as it can get. It's like a mini-Ethernet with 90% of the technical complexity removed. Every I2C device has it's own unique one-of-a-kind address. You plug it in. You get or put data to that address. It's really, really simple. You do not have to be an electronics technician to use it at all.

Here's a good place below to get an overview for a layman and see what kind of prices you'll pay to plug'n'play on Vault OS. Mind you, if you do have a few skills in electronics, many of these I2C devices you can build yourself for peanuts. Even as complete boards the prices are very reasonable. It is likely if you spend anything it will be on an I2C device which will cost more than the computer you attach it to.

1-wire plug-n-play hubs & standardized sensor/control networks.

The control and configuration of truly amazing and cheap peripherals is possible with I2C

You could hook a seismic monitor to a post on your property aboveground and when a person sets it off, that camera image with the time could be displayed onscreen and a mini-map to show where it was triggered. It can intelligently control gamma and sensitivity to get good images at any time day or night.

No comments: