Satellite Transceiver Breakout - Swarm M138 - Hookup Guide
This Tutorial is Retired!
This tutorial has been retired; the satellite service for this product will be terminated at the end of December 2024.
Message Transmit, Receive and Pass-Prediction
Message transmit via Swarm is a little different to (e.g.) the Iridium satellite network.
The Swarm satellite constellation is increasing rapidly, but is not yet complete. There may be times when there are no satellites overhead to receive your message. If you queue a message for transmission during one of these times, the message is stored in the modem and transmitted during the next satellite pass. If you monitor the responses in the GUI or via the Arduino Library examples, you will see a $TD SENT notification when each message is transmitted. You can monitor how many unsent messages are still in the queue via the $MT C=U message.
There are two ways to predict the next satellite pass:
- Via the online Swarm Pass Checker
- Or by using the pass prediction examples in our Arduino Library
- The pass prediction code downloads the Swarm Two Line Element orbit parameters from CelesTrak
- Cross-checks these with the Swarm Pass Checker
- Produces a list of known 'good' satellites for your location
- The TLE orbit parameters are stored on microSD card for use offline (once downloaded, you do not need an Internet connection to perform a prediction)
- If you want to, you could send updated TLEs to your remote Swarm-enabled equipment, via Swarm message, so it can refine its pass predictions!
- The pass prediction examples were written for the SparkFun Thing Plus C - ESP32 WROOM: they use the ESP32's WiFi connection and the on-board microSD socket to store the TLE data
- You can adapt the examples to work on other WiFi and microSD capable boards, such as the: SparkFun MicroMod ESP32 Processor; and the SparkFun MicroMod Data Logging Carrier Board
Message receive via Swarm is significantly different to (e.g.) the Iridium satellite network.
"Mobile Terminated" messages are queued in the ground station and are passed to a satellite that is known to be passing over your modem's location. As a result, this can take tens of minutes, or hours in some circumstances, depending on your location and the timing of the satellite orbits. The message reception interval will decrease as the Swarm constellation increases.
If you are expecting to receive a message, make sure you have the Messages Received notifications enabled, via the $MM N=E message. That way you will receive a notification as soon as the message arrives. Alternatively, you can poll how many unread messages are in the modem's buffer using the $MM C=U message.