For several months now I have been designing a microcontroller network (field bus), originally for monitoring and control of devices in an RV (motorhome, campervan, caravan etc.) but now I see it as being useful in any environment. It started as a small project for my own use but has grown into something probably too large to fully implement as a one-off just for myself.
The reason for this post then is to gauge interest from other developers. The project would be open (I would propose a similar model to Arduino whereby designs/code etc are freely available but PCBs, made-up hardware etc are for sale) but I would like to know if at least a few people are interested enough to comment on the design, add ideas, build Nodes or an interface shield, or write PC-based control software.
The network is currently called "BUSnet" and some of the main features are itemised below. Also you can visit robgray.com/busnet/index.php for more detailed information and to download spec PDFs.
Yes I know there are dozens of existing field busses around, everything from diode mixing to Lonworks and Profibus. But I feel that they are either too simple with no defined protocol or too complex and expensive. BUSnet will be released under some combination of CC/GNU license (yet to be figured out) so the designs will be available for free. And the hardware basically boils down to a LIN transceiver available for $2 from just about anywhere. And yet BUSnet is well enough defined up to a high level API for a Node made by me to talk to a Node made by you.
Note that the feature list is pretty long, however it is envisaged that most of this will be transparent to Node designers should they wish to interface with one of the pre-programmed ICs. Thus an Arduino, a Picaxe, an ARM or any other processor could talk to BUSnet with just a few ASYNC commands and a single line-driver chip.
Also pre-programmed IO chips are defined so a simple Node can be built with no programming at all.
- Open standard, no royalties, licencing fees or costs for intellectual property. Creative Commons and/or GNU licenses will apply.
- Small Nodes, a Node can be implemented with as little as four components and fit on a PCB less than 12mm square.
- Develop your own Nodes using just 4-5 components and a few commands over a 4800bps ASYNC connection
- Suitable for retrofitting to older vehicles.
- One master control processor (MCU) that controls a network of slave nodes.
- Provision for multiple control units (NCNs).
- 58 physical addresses each with up to 255 IO Points giving a theoretical total of 14,790 Points.
- Implements a "publishing and subscribing" model with 192 logical addresses for common objects and events such as holding tank levels, battery bank voltages etc.
- Very fault-tolerant physical level (uses LIN transceivers).
- High level of error detection for reliability.
- High level of safety with "interlocks", "feedbacks", "timeouts", four security levels and optional hardware to stop rogue Nodes hanging the bus.
- Three-wire network cable includes power and data signals.
- Provision for Nodes to be connected with two wires (or even one wire) using existing cabling and/or body frame.
- Flexible wiring topology, "anything goes".
- Plug-n-play, automatic allocation of addresses when a new node is plugged into the network.
- Usable at a basic level with NO programming, just plug in hardware.
- Scaling and non-linear transforms can be applied to sensor readings.
- Direct Memory Transfer (DMT) of data into a Node's or MCU's memory.
- Event logging with 100mS resolution.
- Points can read/display metric or imperial values.
- Peer-to-peer communications allowed under MCU supervision.
- Vendor-defined commands.
- Three energy-saving modes.
- Bit rate sensing so Nodes can use cheap processors with no crystal.
- Hard reset of Nodes possible with no special equipment.
- Uses off-the-shelf standard electronic components.
- Human-perceptible real time operation using interrupts.
- Expandable, start with an MCU, an LCD display and a single NCN, then add features over time.
- Not restricted to AVR controllers, use the processor of your choice; PIC, Picaxe, ARM, 8051 etc.
Any and all interest appreciated.