ArdweeNET is designed to be a “network of point-to-point links” arranged in a ring topology. Each node has two neighbours called A and B, it receives frames from A the transmits them to B, and vice versa.

The network can also function in a daisy-chain line topology, in which case the above still applies except for the end nodes which of course only have an A or a B neighbour, not both.

The ArdweeNET protocol is essentially a system of distributed data located on nodes around the network.
A node’s application may subscribe to various data elements (called network variables or NVs) and also may publish other data elements. When an application writes to an NV the data is stored locally on the node and also transmitted to the network where its image is stored on any node that subscribes to that NV

Conversely if a node subscribes to an NV a read by the application simply returns the local version.
This is handled transparently by the APE, as an application programmer you only deal with an API that can be as little as four functions.

Publishing and subscribing

ArdweeNET supports the concept of “publishing” and “subscribing” also known as “producing” and “consuming” and even “feeding” and “reading”.

Nodes transmit data onto the network (publish/produce/feed) to be used or not (subscribed/consumed/read) by other nodes.

ArdweeNET has no knowledge of the payload data being transferred around the network; its meaning and content are of no concern to the protocol.

An application that uses ArdweeNET can be as simple as a program that just receives characters from the network and prints them to an LCD. Or it can be a full-featured industrial-strength application.


ArdweeNODEs have a Unique Node Identifier (UNI) that is used to identify physical nodes. This is eight bits in length with the value 0 reserved for new nodes and 0xFF for broadcast commands; therefore up to 254 nodes can share a network.

In normal operation nodes are never directly addressed and the UNI is only used to identify frames. However in monitor and programming modes the node is addressed using the UNI.

UNIs are obtained automatically when a new node is plugged into a network, there are no DIP switches etc.

Data rates

ArdweeNET it defined to allow data rates up to 1Mbps. This can be varied around the network, for example two nodes communicating over a long and/or noisy line can run at a slow speed even if the rest of the network is operating at high speed.


At lower speeds (~100kbps) nodes can be over a kilometer apart. At the highest proposed speed of 1Mbps the node-to-node distance is in the order of 100m. Note though that unlike a bus topology with ArdweeNET each node is a repeater, so networks can be physically quite large, up to a theoretical 300 kilometers with 254 nodes equally spaced and running at 100kpbs.

Frame format

The ArdweeNET frame is has a fixed length of 16 bytes, this being 6 bytes for overhead and 10 for the data payload of which 8 bytes are normally available for a network variable.

Frames are fixed at this size to allow maximum efficiency when using the LPC1227 hardware and also to increase the determinism of frame delivery times.

The frame format is as follows.

Note that larger data packets can be transmitted by the application, in which case the APE automatically splits the data into chunks and reassembles it on the subscribing node.

All electronics information and designs on this site is released under
the Creative Commons CC BY-SA and/or Open Hardware licences.
Copyright is reserved however (see below)
This material is not in the public domain.

Copyright © 1973-2013 Rob Gray, All rights reserved.
PO Box 450, Gin Gin, QLD, Australia.