Sampl-sensor-andrew

Version 6 (Anthony Rowe, 08/11/2009 09:58 pm) → Version 7/11 (Anthony Rowe, 08/11/2009 10:00 pm)


== SAMPL Sensor Andrew ==

svn checkout svn://sensor.andrew.cmu.edu:/srv/svn/repos/sensor-andrew

'''Step 1: Install Loudmouth'''
* Install: glib2, expat, gnutls
{{{
cd sensor-andrew/sox/libs/loudmouth
./configure
make
sudo make install
}}}

'''Step 2: Install C Sox Library'''
* Double check the path of GLIB, GNUTLS, LOUDMOUTH etc in vars.mk
* This may work fine with the default values
{{{
cd sensor-andrew/sox/libs/lib_c
make
sudo make install
}}}

'''Step 3: Build FireFly sox-gateway'''
* In this step build "gateway_client" which will be used to communicate to the SLIPstream server and then in turn to the FireFly gateway node
* edit makefile to correctly set XMPP_LIBRARY_PATH to sox/libs/lib_c
{{{
cd nano-RK/projects/SAMPL/slip-clients/sox-gateway
make
}}}

'''Step 4: Flash FireFly nodes'''
* First Program the nodes
{{{
cd nano-RK/projects/SAMPL/clients/FF-basic-sensors
make clean
make program
}}}
* You will see a red blinking led and the following messages from the serial port:
{{{
* ERROR reading MAC address from EEPROM run eeprom-config utility
* ERROR reading MAC address from EEPROM run eeprom-config utility
* ERROR reading MAC address from EEPROM run eeprom-config utility
}}}
* Next, set the EEPROM values
* MAC Address
* Subnet MAC
* Encryption Key (optional)
* Wireless Update image file (optional)
* Note the following with respect to the MAC address:
* The first six hex digits in the MAC address denote the subnet
* All nodes must be part of the same subnet to communicate
* The gateway node must be set to 0 inside a subnet
* No other node besides the gateway can be 0
* Use the config-eeprom tool to set the EEPROM
{{{
cd nano-RK/tools/EEPROM_mac_set
make (if not already built)
./config-eeprom /dev/ttyUSB1 00000001 26 00112233445566778899AABBCCDDEEFF
}}}

'''Step 5: Flash FireFly gateway'''
* Flash the gateway node that will be connected to the gateway computer
{{{
cd nano-RK/projects/SAMPL/gateway
make clean
make program
}}}
* Set the EEPROM like any other FireFly client except with the last two hex digits being '00'
{{{
cd nano-RK/tools/EEPROM_mac_set
./config-eeprom /dev/ttyUSB1 00000000 26 00112233445566778899AABBCCDDEEFF
}}}

'''Step 6: Run the SLIPstream Server'''
* The SLIPstream server forwards messages from the gateway_client to and from the gateway firefly node
* Connect the gateway node and run the server as follows
{{{
cd /nano-RK/tools/SLIPstream/SLIPstream-server
make
./SLIPstream /dev/ttyUSB0 5000
}}}
* Reset the gateway node and you should see something similar to the following on the SLIPstream server
{{{
Netmask = 0x0 0 0
MAC = 0x0
Channel = 26
slip_init()
bmac_started()
Waiting for SLIP data...
}}}

'''Step 7: Run the sox-gateway'''
* The sox-gateway will handle requests to the sensor network and arbitrate communication with sensor andrew
* Edit the following files in "configs" directory before starting
* pkt-script.xml
* This is an XML file describing the default operation of the network. Sensor polling times and scripts can be configured here.
* ff_basic_sensor_cal.txt
* This file contains sensor calibration information for each FireFly environmental node in the subnet
* jiga_watt_cal.txt
* This file contains JigaWatt calibration information for each JigaWatt FireFly sensor board
* xmpp-config.txt
* This file contains the XMPP configuration used to set the gateway's Sensor Andrew JID and password. This is not required unless XMPP support is enabled.
* registry.txt
* This file contains the Sensor Andrew registry ID values that should be sent with each XMPP message for database logging. This is not required unless XMPP support is enabled.
* subscribe-nodes.txt
* This file should contain the event-nodes of any devices that require external actuation. The gateway will subscribe to these nodes so that it receives any incoming actuation commands or configuration messages.
* To test the new subnet, run the gateway_client without connecting to Sensor Andrew follows
{{{
cd nano-RK/projects/SAMPL/slip-clients/sox-gateway
./gateway_client localhost 5000 -verbose -no_xmpp
}}}
* After running the gateway, you should see data coming back from each node.
* Now try running the node so that it publishes
The gateway is typically run like this data to inside a Sensor Andrew. This requires that you configure the XMPP specific files Andrew subnet
{{{
./gateway_client localhost 5000 -slipstream_mirror 5001 localhost
}}}