Overview
In this article:
This guide provides comprehensive instructions on how to set up, configure, and communicate with the AT Command Modem. It covers hardware connection, serial communication settings, the AT command protocol, and common troubleshooting steps.
Hardware Connection
To connect to your HyperPulse DK, you will need to connect it to a computer with a USB-C cable. It's not necessary to have the battery connected.
To communicate with the satellite, a clear line of sight is required, with no obstructions, as described in the Developer Toolkit QuickStart Guide.
To access the USB-C port on your HyperPulse DK, you will need to open its case. A #1 Phillips-head screwdriver is recommended (sizes #0-#2 are also suitable) for opening the case.
A laptop or desktop computer running Windows, Linux, or macOS, with a USB-C port capable of supplying at least 500 mA current (USB 3.0 or higher recommended).
A USB-C cable is included to interface with the HyperPulse DK for configuring, debugging, and programming the device.
Once you have access to the USB-C port on your HyperPulse DK, connect it to your computer and continue to the next steps.
Uploading the AT Modem Example
The AT Modem example and the Network Information files can be downloaded from the Download Binaries section in Myriota Device Manager.
You can program the example firmware using probe-rs, which is a Rust-based programming and debugging tool.
Installing probe-rs
Install probe-rs if it is not already installed.
For Windows, run the following command in PowerShell:
irm https://github.com/probe-rs/probe-rs/releases/latest/download/probe-rs-tools-installer.ps1 | iexFor Linux or macOS, run the following command in a terminal:
curl -LsSf https://github.com/probe-rs/probe-rs/releases/latest/download/probe-rs-tools-installer.sh | shAfter installation, confirm that the Developer Kit is detected:
probe-rs listNote: On Linux, udev rules may be required before the device can be accessed without sudo.
Programming the AT Modem Application
Program the AT Modem application with the following command:
probe-rs download --chip nRF9151_xxAA --binary-format hex at_modem_myriota_hyperpulse_dk-[VERSION].hexNote: Replace at_modem_myriota_hyperpulse_dk-[VERSION].hex with the actual filename.
Programming Network Information
Program the Network Information file, which contains the satellite scheduling configuration:
probe-rs download --chip nRF9151_xxAA --binary-format hex HyperPulseNetworkConfig.hexNote: Replace HyperPulseNetworkConfig.hex with the actual file path and filename.
Resetting the Device
After programming, reset the device by pressing the reset button on the board, or run the following command to boot with the new files:
probe-rs reset --chip nRF9151_xxAASerial Ports Configuration
Important: There are 2 serial ports involved in this example:
- The one created by USB-C connection: AT interface for sending/receiving commands/messages and responses.
- The one available on the female header of the board: Sends logs on the TX pin. The levels are TTL so you need an adaptor for it.
Both ports have the following configuration:
- Baudrate: 115200
- Data bits: 8
- Stop bits: 1
- Parity: None
- Flow control: None
You need a serial terminal application (e.g., PuTTY, minicom, Tera Term) for both sending/receiving data/commands and observing the logs.
To improve the visualisation of the commands sent and received to/from the device, enable the "local echo" option and new-line receive setting to "auto". For example, on Tera Term, you can find the settings from the Setup - Terminal menu:
New-link and local echo:
Baudrate:
Sequence for sending and receiving a message
After connecting both USB-C cables, the unit will immediately begin transmitting logs on the TX pin of the header. To capture the logs from startup, ensure that your serial terminal is open and ready before connecting the USB-C cables.
In the serial terminal connected to the header TX pin via the adapter, you should see output similar to the example below. Wait until the GNSS fix is complete before proceeding.
Now back to the AT terminal (not the logs one), send the following command to enable the reception of downlinks:
AT#MRECV=1To schedule an uplink message to initiate the connection/session, use this command, passing as argument a hex-encoded string. Here an example sending 5 bytes:
AT#MSEND=5,"0102030405"Wait until this uplink message is received on Device Manager. If you schedule a downlink before the 1st connection of the device after reset, it will be lost.
Now schedule a downlink on Device Manager:
As of now, the downlink messages will only be sent if the device schedules an uplink message. It won't be necessary to schedule any uplink messages to receive downlinks in the next releases of the library and example firmware.
Now schedule another uplink message on the device:
AT#MSEND=5,"0102030405"Now wait for the next revisit time (maximum 1 hour), then the packet will be sent, and the one scheduled in Device Manager will be received.
Here is an example of the full sequence:
You can now see the message on Device Manager:
Basic AT commands summary
For a comprehensive usage guide and list of AT commands, check out the HyperPulse™ - AT Command Reference Manual.
Communication check
-
Sent:
AT\r -
Received:
OK\r
Scheduling an uplink message
-
Sent:
AT#MSEND=20,"0102030405060708091011121314151617181920"\r -
Received:
OK\r
Enabling downlinks notification
-
Sent:
AT#MRECV=1 -
Received:
OK\r
#MSEND command at a time. After that point, the oldest entry
will be overwritten.
