Are these your IO Nodules, as described on your web site?
Yep, although the information on the site is under review as I've made a lot of changes lately.
So they will have an I2C interface?
The network itself is async and chips can interface directly with that IF they have room for the protocol (which I intend to be OS once written). However not all chips have the power or space to implement the protocol (say a Picaxe), so I plan to have chips that interface using async to the network and I2C to an "application processor". That's where the I2C comes from.
Basically a digital sensor, something I've been thinking about for a while.
Yes I've seen all the bricks, jeenodes, etc but AFAIK they are not designed for noisy real-world environments and long distances, and they all still need you to know about the hardware, for example you have to know how to drive a current-sensing chip. My idea is to have a generic interface, you ask a "Point" for it's value and you get a number. How that number was arrived at is immaterial and figured out by the Node designer. You can in fact have "virtual Points" that are just the result of a calculation.
This of course adds complexity because each Node needs a processor and line driver, but as you say these are very cheap now.
Another advantage of this is that measurements are done at the coal face, a 24-bit ADC can be 300 metres away and there are no analogue issues.
I actually just removed that feature from the spec, I'm open to putting it back in but it did add complexity.
define the physical specs of the nodule, so there is a physical "plug-n-play"
Done, in theory a simple network needs no programming.
can query nodule about it's capabilities and then build an interface dynamically at run time
Done. Nodes are allocated address when first added to a network. They then report the number and type of Points they implement and how their data should be displayed. This then is plug-n-play as the Node holds all necessary information for it to function on the network.
code to control and monitor, say a GPS unit from company X, is exactly the same as a GPS unit from company Y, assuming they follow the same interface
Exactly, in this case the Node would report that it has a Point of type GPS and the format of its data is predefined. The Node's data can in fact be "published" if the appropriate logical address has been defined.
can support multiple languages to talk to the nodules using code generation techniques
The controller and/or a gateway Node can be used to talk USB to a PC. A protocol and command set will do be developed but any langauge can be used for a PC application.
I'm just throwing these out there... kinda brainstorming.
Good to hear it and thanks. I'm in the process of designing an evaluation board with about 10 Nodes, a protocol analyser, network PSU and a master controller. They will all be connected on the PCB for easy debugging but also be able to be snapped off so the various bits can be used over wires.
I don't think I've handled all the things you mentioned but it seems that my spec is pretty close.