Test the Quectel CC660D-LS radio module
The Quectel CC660D-LS is a 3GPP non-terrestrial network (NTN) satellite communication module. This guide contains the configuration and AT commands for the module and evaluation board.
Set up the evaluation board
These instructions are for Windows users. If you have a different operating system, adjust the steps accordingly.
-
Insert the emnify SIM card into the SIM reader slot of the Quectel board.
-
Attach the antennae (NTN and GNSS) to the board to the board using the antenna connectors. Use the image below as a reference.
-
Connect the USB cable to your PC and the board's UART port. Make sure you've installed the USB-to-UART driver on your PC.
-
Set the jumpers to ensure the correct voltage as described in the Quectel CC660D-LS TE-B User Guide.
Test setup for the Quectel CC660D-LS evaluation board
-
In your Windows PC, go to the Control Panel and check your Device Manager for the assigned communications port (COM port) of the evaluation board (EVB).
-
Open PuTTY (or another SSH client), then set the connection type to Serial.
-
Enter the COM port assigned to the EVB and set the speed to a baud rate of 115200.
After establishing a connection between your SSH client and the module, refer to the Quectel AT Command Guide to complete the initial configuration.
Available AT commands for testing
To test the satellite connectivity the CC660D-LS module provides, use the following AT commands.
CC660D-LS only supports NTN (that is, NBNTN
), so there's no radio access technology (RAT) selection available.
For more information about using AT commands to configure devices, see emnify's Introduction to AT commands webinar.
Retrieve modem manufacturer and revision
ATI
Example response
Quectel_Ltd
Quectel_CC660D-LS
Revision: CC660DLSAAR01A01
Query IMEI
AT+CGSN=1
Example response
+CGSN: 860952060001998
Query ICCID
AT+QCCID
Example response
+QCCID: 89883030000007437921
Query IMSI
AT+CIMI
Example response
901430003909019
Set and query APN
Set the Access Point Name (APN) to em
:
AT+QCGDEFCONT="IP","em"
Example response
OK
Query the current APN:
AT+QCGDEFCONT?
Example response
+QCGDEFCONT: "IP","em"
Configure band
See available bands:
AT+QBAND=?
Example response
+QBAND: (0-6),(24,15,65,23,255,256)
Get the currently active bands:
AT+QBAND?
Example response
+QBAND: 15,24,65,23,255,256
Skylo uses bands 255 and 256. Setting both frequencies is safe, but this slows down the network search and attachment time.
AT+QBAND=1,255,256
Example response
OK
To save time, only configure one band. Currently, 255 is used in North America and 256 in Europe. Choose the band that corresponds to your region.
AT+QBAND=1,256
Example response
OK
Band | FWD (UE Tx) | RTN (UE Tx) | Separation | Region |
---|---|---|---|---|
B255 | 1525-1559 MHz | 1626.5-1660.5 MHz | -101.5 MHz | Global |
B256 | 2170-2200 MHz | 1980-2010 MHz | 190 MHz | Europe |
B23 | 2180-2200 MHz | 2000-2020 MHz | 180 MHz | North America |
Request GNSS information
+QGNSSINFO: STATUS
Replace STATUS
with an integer that indicates whether the embedded microcontroller unit (MCU) needs to provide GNSS information.
Value | Description |
---|---|
0 | MCU doesn't need to provide GNSS information |
1 | MCU needs to provide GNSS information |
The following example command indicates that the MCU needs to provide GNSS information:
+QGNSSINFO: 1
Example response
OK
Set GNSS information
The MCU uses this command to actively set and query the terminal's current GNSS position information. The module uses the inputted GNSS position information for satellite communication timing and frequency compensation.
AT+QGNSSINFO
Example response
OK
When the module needs GNSS position information, it actively reports the unsolicited result code (URC) +QGNSSINFO: 1
to notify the MCU to input GNSS position information to the module.
AT+QGNSSINFO=LATITUDE,LONGITUDE,ALTITUDE,SPEED,ACCURACY
Replace the placeholders according to your GNSS information using the following table as a reference.
Placeholder | Data type | Description |
---|---|---|
LATITUDE | Double | Latitude value in degrees. Maximum length is 11. |
LONGITUDE | Double | Longitude value in degrees. Maximum length is 11. |
ALTITUDE | Float | Altitude value in meters above the WGS84 reference ellipsoid. |
SPEED | Double | Speed in meters per second. Maximum length is 11. |
ACCURACY | Integer | Estimated horizontal accuracy radius in meters at the sixty-eighth percentile confidence level. |
The following example command sets the GNSS information to the emnify office on the nineteenth floor in Berlin, Germany:
AT+QGNSSINFO=52.506284,13.393259,89,0,0
Example response
OK
Turn on registration status notifications
AT+CEREG=2
Example response
OK
Query available networks
AT+COPS=?
Example response
+COPS: (0,,,"90198",9),,(0-3),(0-2)
90198
is the Skylo network code.
You're ready to attach to an NTN network if you see it in your response.
Query registration status
AT+COPS?
Example response - Not registered to any networks
+COPS: 0
OK
Example response - Registered to Skylo
+COPS: 0,2,"90198",9
OK
Register on a specific network
AT+COPS=1,2,"90198",9
Typically, the module attaches to the Skylo network quicker automatically (that is, AT+COPS=0
).
But for debugging, you can use the preceding command to manually attach to the Skylo network.
As a result, you should see a reported CEREG
state change.
The following table outlines the possible values.
Value | Description |
---|---|
0 | Not registered and MT isn't currently searching for an operator |
1 | Registered to the home network |
2 | Not registered, but MT is currently trying to attach or is searching for an operator |
3 | Registration denied |
4 | Unknown |
5 | Registered and roaming |
Check network status
This command is used in engineering mode.
AT+QENG=0
There are four available modes to pass to this command:
Value | Description |
---|---|
0 | Displays radio information for serving and neighbor cells |
1 | Only used if the modem is in the RRC-CONNECTED state |
2 | Displays the total working duration time of the Tx (transmitting GPS satellite) and Rx (receiving spacecraft) |
3 | Displays the public land mobile network (PLMN) status |
Example response
+QENG: 0,229360,2,26,"27BBFA",-133,-13,-120,0,256,"0FBA",0,,3
The response contains the following values:
+QENG: 0,SC_EARFCN,SC_EARFCN_OFFSET,SC_PCI,SC_CELLID,SC_RSRP,SC_RSRQ,SC_RSSI,SC_SINR,SC_BAND,SC_TAC,SC_ECL,SC_TX_PWR,OPERATION_MODE
Generate IP data traffic by PING over ICMP
AT+PING=8.8.8.8
Example response
OK
+ping: begin, 8.8.8.8, data size= 64
+ping: finish, Packets: Sent = 1, Received =1, Lost = 0 (0% loss)
+ping: RTT statistics: Minimum = 8142, Maximum =8142, Average = 8142
![](/assets/images/portal-events-delete-pdp-context-ping-dd6a392624c1ab5cb595e3e19656f9d0.png)
Generate IP data traffic over UDP
Skylo NTN doesn't support Transmission Control Protocol (TCP) connections.
Create UDP socket
Creates an IPv4 UDP/IPv4 socket. The modem's response establishes the socket ID so it can be used to send or receive IP data over UDP.
AT+ESOC=1,2,1
Example response
+ESOC=1
OK
Establish UDP connection with a remove server
AT+ESOCON=SOCKET_ID,REMOTE_PORT,REMOTE_ADDRESS
Replace SOCKET_ID
with the integer response from the preceding +ESOC
command, REMOTE_PORT
with the remote listener port, and REMOTE_ADDRESS
with the IPv4 address of the remote server.
Example response
OK
Send UDP packet to a remote server
AT+ESOSEND=SOCKET_ID,DATA_LEN,DATA
Replace SOCKET_ID
with the integer response from the preceding +ESOC
command, DATA_LEN
with the length of the data you're sending in bytes, and DATA
with the data you're sending encoded as hex digits.
The following example command sends "text message" to the remote server. The response in ASCII read: "9999test message0000"
AT+ESOSEND=1,12,74657374206D657373616765
Example response
OK
+ESONMI=1,20,3939393974657374206d65737361676530303030
Close socket
AT+ESOCL=SOCKET_ID
Replace SOCKET_ID
with the integer response from the preceding +ESOC
command.
The following example command closes the socket with ID 1
:
AT+ESOCL=1
Example response
OK
![](/assets/images/portal-events-delete-pdp-context-udp-e8727b951984e93b108b5faf40fd87c0.png)