Monday 6 April 2015

Making DAN - Data Acquisition Node

Transforming MMR-70 in to temperature sensing DAN - Data Acquisition Node.

Back and front (or front and back?) RFM12bs modified to provide analogue RSSI output. AA switch turns on Always Active mode, but in this case it is better to connect DAN to an external 3V power supply as CR2032 is for Power Saving mode only. Actually, in Power Saving mode this DAN draws less than 8 uA. When it wakes up for data measurement and transmission it can draw up to 14 mA, but because it happens only once a minute and takes only few milliseconds CR2032 fully restores before next session. On start up voltage goes down to 2.8V but it is back to 3.0V in about twenty minutes.

Sunday 5 April 2015

Making shDAN - small house Data Acquisition Network

I've been experimenting with different sensors for a while now and even built a small network of sensors using RFM12bs radio transceivers. The only problem - it is very slowly moving project and sometimes I have to spend a lot of time just trying to remember what different components are doing :) So this weekend I desided to document how it works...

shDAN - small/smart house Data Acquisition Network


shDAN stands for "small/smart house Data Acquisition Network". And "small" not necessary relates to a small house, it could be just a small network in a big house :)

Why "small"? Because of the following limitations:
  • No more than 12 Data Acquisition Nodes (DAN) per subnet
  • No more than 6 sensors (zones) per Data Acquisition Node
  • Messages between Base Station and Data Nodes are quite small - 13 bytes only

shDAN main components

ABS - Active Base Station, replies to time sync requests from Data Nodes
LBS - Listening Base Station, only collects data from Data Nodes, but never transmit anything. Useful for a standalone displays or monitoring stations.
DAN - Data Acquisition Node
NID - Node ID, base station is always 0, DANs are in 1 to 12 range, 13-15 reserved.
SID - Sensor ID, up to 8 sensors per NID. Each NIC always has two special SIDs: 0 is RF TX power, 7 indicates List of Sensors.
TOS - Type of Sensor, 1 to 15 range. For example, 1 is for Temperature, 2 Humidity and so on. For all defined types see ```dnode.h```
EOS - End of Session bit
AA - Always Active node. Usually data nodes are in sleep mode to save battery power and wake up only to do new measurement and transmit data to a base station.

shDAN uses simple time-division multiplexing schema to spread different DANs' sessions within one minute. Start of DAN's transmission can be calculated as second = (node - 1)*5 so node 1 transmits first message at 00 sec of every minute, node 2 at 05 sec of every minute and so one. A session cannot be longer than 5 seconds, last message should have EOS bit set to indicate End of Session, so base station can send messages to AA (Always Active) nodes or other nodes can transmit urgent data.

Project's page on GitHub

See SVG pictures below for details.

shDAN topology

Latest SVG at Github