ModuSense Data Sampling and Packet Sequencing with Swarm
This document aims to explain how data is collected by the FreeWave Fusion Mini and how that data arrives at the FreeWave Data Portal when used with the Swarm modem.
Data is collected by the Fusion Mini based on the sample interval configuration. It is important to remember there are three sampling interval settings:
- The Onboard Telemetry (battery, location, etc) and Bluetooth Sensor sample interval
- RS-485 Port 1 sample interval
- RS-485 Port 2 sample interval
When shipped, the Fusion Mini is configured with a default 15-minute interval across all three settings. In some cases, this interval may vary depending on the attached RS-485 sensors and the number of sensor readings that the sensor provides, and the amount of power used per interval. Some sensors only return one value while others like a weather station multiple values (temp, humidity, pressure, etc).
The satellite data plan on the Swarm network is limited to 750 x 192-byte messages per calendar month, so the sample interval needs to be configured in a way that will stay within the bounds of the data plan. This works out to be approx. 24 x 192-byte messages per day. Additional data plans can be added to accommodate more data, costs associated will be billed automatically.
When the sample interval is triggered, the readings from the various sensors and the onboard telemetry are combined into a single sub-message and stored in the main onboard memory. For a 15-minute sample interval, this happens four times per hour.
The 15-minute sub-messages are not queued for transmission on the Swarm network at the same time. This process occurs separately and within a separate time interval. By default, this is set to 1 hour. This means that once per hour the Fusion Mini will package up the four sets of readings (based on 15-minute intervals) into one compressed and encoded transmission message. This message is then passed to the Swarm modem for transmission when possible (queued on the Swarm modem until the next pass).
The transmission message creation process varies depending on the number of connected sensors. For example; a Fusion Mini with two RS-485 sensors and a few Bluetooth sensors might add up to 54 bytes per 15-minute interval. When the hourly process triggers for transmission message creation, the 4 x 54-byte sub-messages are combined into a total of 216 bytes which is larger than the single Swarm message size of 192 bytes. The FreeWave firmware will split the 216 bytes into two separate transmission messages (roughly this would be a ~192-byte message and a ~24-byte message depending on data boundaries) to be able to send over the Swarm network. It is also important to know that once the messages are queued on the Swarm tile, they cannot be changed or edited. This means that the 2nd smaller message from our example cannot be added onto by subsequent sensor readings and the balance of the second 192-byte message is not able to be used - thereby reducing the overall amount of data that can be transmitted in the 750 message limit for the month. Something to consider when planning the 15-minute intervals and associated data collection.
How is the data ordered?
The FreeWave firmware and on-board memory will send the messages to the Swarm modem as LIFO (Last-in, First-Out). This ensures the most recent data is transmitted first.
The Swarm modem sends the data over the satellite as FIFO (First-In, First-Out).
While they are not operating in the same way, there is no impact on the display of data on the dashboards and the ordering is only evident when viewing the contents of the messages.
In the example above, you can see the Swarm messages ordered in the FIFO method. Inside the individual Swarm message, you can see the messages ordered as LIFO where sub-message 0 is the first sub-message with the Swarm message however, it has the latest timestamp out of the four sub-messages.
Queuing Data and Backlogs
Swarm satellites are not always available, so the Swarm modem will queue messages while it's offline, and send the data based on FIFO when the satellite is available.
Issues can arise when the Fusion Mini is unable to contact a satellite for longer periods of time.
The Swarm modem will store messages for a maximum period of 48 hours before they are removed from the queue. If the message queue count is over 1024 messages over that 48 hour period, no more messages will be allowed to be queued and subsequent attempts will fail until the queue is cleared.
Factors such as the satellite link can cause the Swarm modem to not be able to send messages and can cause the Swarm modem to discard messages. This will be evident by straight lines between two data points where the two data points are hours or days apart.
Ensuring reliable and consistent data flow
Fusion Mini location and too frequent sampling can affect consistent data flow.
This article explains potential issues with the Fusion Mini contacting Swarm satellites when there are obstructions that can potentially interfere with Swarm message transfer. Having your Fusion Mini at a location with unobstructed views of the sky can alleviate issues with data transmission.
If you have a Fusion Mini with multiple sensors attached with frequent sampling periods and you can't move it to more unobstructed locations, you could run into a queuing issue and potentially lose data. Changing the RS-485 sensor sampling time on the FreeWave App will require less data per transmission cycle and help to ensure a more stable data flow. A reduction in the number of readings per hour or per day will also improve battery life in most cases, so if you have low-light conditions this can help.
For specific questions or additional clarification on how Swarm data plans work, please get in touch with the FreeWave SupPort Team.
Comments
0 comments
Please sign in to leave a comment.