Helpful

Device managementPrinciples

Sequence number: general knowledge

For Sequence number troubleshooting, please refer to the Sequence number: troubleshooting article.

General concept

The sequence number is part of the Sigfox protocol overhead and is incremented by the device itself with every message emission. A consistent sequence number received along a message is registered as the reference. A gap in the sequence number continuity might be due to:

  • the device passing through a non-covered area
  • the device firmware was re-flashed, causing the sequence number to restart at 0

Depending on the severity of the sequence number gap, the Sigfox cloud will raise:

  • A Warning event
  • An Error event

Events can be seen in the Device tab through the Events menu.

Whether the sequence number gap triggers a warning or an error event depends on the gap magnitude, subscription level and days elapsed.

Warning event

The "break in message sequence" warning event is purely informative, it allows you to be informed of a break in message continuity.

Error event

The "out of message sequence" error event will cause an interruption in message delivery, the cloud could not assess that the message was indeed coming from the device itself. Incoming messages will be discarded until an acceptable sequence number is received.

Cyclic value

After a full cycle (4096 messages), the sequence number is reset to 0.

Feature explanation

The event raised by the cloud depends on the following calculations:

  • days x 300
  • contract x (days + 2)

days: the number of days spent between two messages, the same day (24h rolling) will equal 1
contract: maximum daily uplink messages on the contract used

These two calculations will define the min and max values.

If the sequence number received is lesser than or equal to the one recorded + min, the message is accepted and the warning event is raised.


If the sequence number received is greater than the one recorded + max, the message is rejected and the error event is raised.

Example

Recorded sequence number: 100
Time spent: 40h
Contract: 50 uplinks/day

So, here, days = 2 and contract = 50

Using the calculations presented above:
2 (days) x 300 = 600
50 (contract) x (2 (days) + 2) = 200

Hence, min equals 200 and max equals 600.

If the sequence number of the incoming message is lesser than or equal to 100 + 200, the warning event is raised.

If the sequence number of the incoming message is greater than 100 + 600, the error event is raised, incoming messages will be discarded until an acceptable sequence number is received.

If the sequence number is between these two values, the comparison is reported to the next message.

Can't find what you're looking for ?

Have questions? Our worldwide Community of expert fans can answer them.
Have answers? Join the Community and help!

slack logo

Ask the community >