Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

No Format
$ sudo apt-get install python2.7 python2.7-dev supervisor stunnel4 ntp
$ sudo pip install configobj pyzmq protobuf pyserial


Info

The pyzmq Python package requires a compiler and the Python development package (headers and library) to build a Python extension.


Serial devices

The AP Bridge software interacts with the I/O of the AP Mote through serial devices: The Serial API port of the AP Mote is used for general communication between the AP Bridge and the AP Mote, and another I/O is used to reset the AP mote.  In the  Include Page_def_usb_IPmgr_def_usb_IPmgr reference the DC2274 reference design, the reset line of the AP Mote is connected to the FTDI interface chip, such that writing to the TX line of the reset port sends a hardware reset to the AP Mote.  If the Linux system connects to the Serial API port directly, a GPIO is used to drive the AP mote reset line.

...

The update-apc-config.py script can also be used to perform manual configuration of the AP Bridge instances as described in the  Include Page_def_ip_vmgr_AP_UG_def_ip_vmgr_AP_UGVManager AP Bridge User's Guide

Startup and shutdown

In the reference software distribution for the Raspberry Pi, the AP Bridge is managed by the supervisor process controller. 

The AP Bridge installs its supervisor configuration under APC_HOME/etc/supervisor.conf.d. In order for the system-level supervisor to pick it up, the following lines supervisor configuration must be added to the supervisor configuration updated in /etc/supervisor/supervisord.conf. These changes make it possible for the AP Bridge processes to be managed by supervisor and for the dust user to control the processes without using sudo. After making the configuration changes, the supervisor daemon must be restarted. 

In the unix_http_server section, update to:


No Format
[unix_http_server]
file=/var/run/supervisor_server.sock
chmod=0660
chown=dust:dust

In the include section, add:

No Format
[include]
files=/opt/dust-apc/etc/supervisor.conf.d/*.conf

To restart supervisor:

No Format
$ sudo service supervisor restart

When started in the default configuration, the AP Bridge launches a script that waits for NTP to synchronize time before launching the main AP Bridge process, named apc. The NTP service should be started before the AP Bridge is started.    

Secure communication

The AP Bridge software does not implement the TLS security layer itself. Instead, to implement secure communication with the VManager, the AP Bridge uses stunnel running on the same device. To secure the AP Bridge connection, stunnel is configured to listen to local TCP port 9100 and connect to TCP port 9101 on the VManager host. From the AP Bridge, stunnel establishes a connection to the remote VManager and negotiates the cipher suite with stunnel on the VManager. Stunnel uses the host's openssl library, so both the stunnel and openssl packages should be kept up to date on the VManager and AP Bridge systems. If you do not specify a specific set of security suites to use, stunnel will revert to openssl defaults. Configuring openssl for a particular security suite, or operation in FIPS mode, is left to the system operator.

...

Refer to the commands section of the  Include Page_def_ip_vmgr_AP_UG_def_ip_vmgr_AP_UGVManager AP Bridge User's Guide for a complete list of available commands.

...

  • The AP Bridge binaries are installed in APC_HOME/bin. 
  • The AP Bridge software reads its configuration from APC_HOME/conf. The AP Bridge process(es) are managed by configuration files stored in APC_HOME/etc/supervisor.conf.d
  • The AP Bridge generates log files toto APC_HOME/logs. Log files are automatically rotated when they reach a certain size.
  • The AP Bridge writes certain runtime information to APC_HOME/var/run


Network connectivity

If the system is being built with APs physically separated from the VManager system, then the simplest implementation is to connect all the devices to the same Ethernet network. Any method that provides a reliable TCP/IP connection between the APs and VManager can be used including WiFi, or cellular. The network connectivity must be consistent and reliable so that the APs can communicate constantly with the VManager. The VManager will consider an AP to be lost if its connectivity is interrupted for 30 seconds. In the event that an AP is lost, the VManager will immediately reassign all mote paths through the remaining APs and motes that are only connected through the lost AP may be lost as well. If the AP returns later on, then the VManager will slowly re-integrate the AP into the network topology through normal optimization cycles. 

...

In the event that the VManager system and AP Bridges are not synchronized, the SmartMesh IP network will continue to work normally, however mapping network time to UTC time accurately may be impossible. 

GPS connectivity

The VManager 1.1 release provides support for using a GPS device for time keeping in the AP Bridge software. In the reference configuration for a GPS-enabled AP Bridge, the GPS device's PPS signal is used to feed both the AP Mote and the NTP software running on the AP Bridge device. The AP Bridge software uses GPSd to read the time from the GPS device and to track whether the GPS device is properly synchronized. 

TODO: describe how GPSd is configured, AP Bridge parameters to connect to GPSd

TODO: describe special configuration of NTP to enable GPS inputs, special configuration of RPi kernel to enable PPS GPIO

Troubleshooting

TODO: migrate troubleshooting to a new page

Verifying device time synchronization

...

No Format
$ ntpdate -q pool.ntp.org
...
25 Mar 14:09:49 ntpdate[12569]: step time server 132.163.4.101 offset -26.481737 sec


 TODO: list the GPS verification steps

References

...

  • GPSd