nRF91x1: DECT NR+ Shell
The DECT NR+ physical layer (PHY) Shell (DeSh) sample application demonstrates how to set up a DECT NR+ application with the DECT PHY firmware and enables you to test various modem features.
Important
The sample showcases the use of the DECT NR+ physical layer interface of the Modem library.
Requirements
The sample supports the following development kits and requires at least two kits:
Hardware platforms |
PCA |
Board name |
Board target |
---|---|---|---|
PCA20065 |
thingy91x |
|
|
PCA10153 |
|
||
PCA10171 |
|
||
PCA10165 |
|
When built for a board target with the */ns
variant, the sample is configured to compile and run as a non-secure application with Cortex-M Security Extensions enabled.
Therefore, it automatically includes Trusted Firmware-M that prepares the required peripherals and secure services to be available for the application.
Overview
DeSh enables testing of DECT NR+ physical layer interface and related modem features. This sample is also a test application for aforementioned features.
The subsections list the DeSh features and show shell command examples for their usage.
Note
To learn more about using a DeSh command, run the command without any parameters.
Main command structure:
dect sett rssi_scan ping perf rf_tool status rx mac beacon_scan beacon_start beacon_stop rach_tx associate dissociate status
Application settings
DeSh command: dect sett
You can store some of the main DeSh command parameters into settings that are persistent between sessions. The settings are stored in the persistent storage and loaded when the application starts.
Examples
See the usage and read the current settings:
dect sett -? dect sett -r
Reset the settings to their default values:
dect sett --reset
Change the default TX power:
dect sett --tx_pwr -16
Change the default band to
2
(has impact when automatic channel selection is used, in other words, the set channel is zero indect rssi_scan
or indect mac beacon_start
command):dect sett -b 2
RSSI measurement
DeSh command: dect rssi_scan
Execute RSSI measurement/scan.
Examples
Execute RSSI measurement with default parameters:
dect rssi_scan
Execute longer (5000 ms on each channel) RSSI measurements on all channels on a set band:
dect rssi_scan -c 0 -t 5000
Stop RSSI measurement:
dect rssi_scan stop
Execute longer RSSI measurements on all permitted channels, and instead of default high/low RSSI value-based verdict, use subslot count-based verdict for BUSY/POSSIBLE/FREE and as an end result, see the verdict for the best channel:
dect rssi_scan -c 0 --verdict_type_count -t 3000 -a
Execute longer RSSI measurements on specific channel, and instead of default high/low RSSI value-based verdict, use subslot count-based verdict for BUSY/POSSIBLE/FREE. Additionally, print BUSY/POSSIBLE measurements:
dect rssi_scan -c 1661 --verdict_type_count_details -t 6500
Ping command
DeSh command: dect ping
Ping is a tool for testing the reachability of a neighbor host running with DeSh ping server. You can also use it to measure the round-trip time, demonstrate HARQ and for range testing.
The ping
command uses its own proprietary PDU format and protocol.
At end of a ping session, it prints out the statistics of the session.
On the client side, also server side statistics are printed out if the client side PING_RESULT_REQ
is responded with PING_RESULT_RESP
by the server.
Example 1: basic usage
On both client and server side - scan for a free channel:
dect rssi_scan -c 0
Server side: Set a unique transmission ID and start ping server on manually chosen free channel:
dect sett -t 39 dect ping -s --channel 1677
Client side: Start basic pinging:
dect ping -c --s_tx_id 39 --channel 1677
Client side: Max amount of data in one request with custom parameters:
dect ping -c --s_tx_id 39 --c_tx_pwr 7 -i 3 -t 2000 -l 4 --c_tx_mcs 4 --c_count 10 --channel 1677
Server side: Stop ping server:
dect ping stop
Note
You can use this command also on the client side to abort pinging.
Example 2: automatic TX power tuning
You can use the dect ping
command line option --tx_pwr_ctrl_auto
to enable automatic TX power tuning.
Both sides indicate their expected RSSI level (--tx_pwr_ctrl_pdu_rx_exp_rssi_level
) on their RX in the sent ping PDU.
Based on that and other information from RX for the received ping PDU, the actual TX power is tuned if the feature is enabled.
On both client and server side - scan for a free channel (see previous example).
Server side: Set a unique transmission ID and start the ping server on a manually chosen free channel:
dect sett -t 39 dect ping -s --tx_pwr_ctrl_auto --tx_pwr_ctrl_pdu_rx_exp_rssi_level -55 --channel 1677
Client side: Start pinging:
dect ping -c --s_tx_id 39 --tx_pwr_ctrl_auto --tx_pwr_ctrl_pdu_rx_exp_rssi_level -55 --channel 1677
Example 3: HARQ
You can use the dect ping
command hook -a
to enable the client side to request a HARQ feedback for the sent ping requests.
Based on the received HARQ ACK/NACK, the ping request is resent within a timeout if possible .
On both client and server side - scan for a free channel (see previous example).
Server side: Set a unique transmission ID and start the ping server on a manually chosen free channel (see previous examples).
Client side: start basic pinging and request HARQ feedback from the server:
dect ping -c --s_tx_id 39 --channel 1677 -a
Throughput performance testing
DeSh command: dect perf
Perf is a tool for testing the throughput performance.
The perf
command uses its own proprietary PDU format and protocol.
At end of a session, it prints out the statistics.
On the client side, also server side statistics are printed out if the client side PERF_RESULT_REQ
is responded with PERF_RESULT_RESP
by the server.
Example 1: basic usage
On both client and server side - scan for a free channel:
dect rssi_scan -c 0
Server side: Set a unique transmission ID and start the RX server for 15 seconds on a free channel:
dect sett -t 39 dect perf -s -t 15 --channel 1671
Server side: As an alternative to the previous command, start the RX server with continuous RX:
dect sett -t 39 dect perf -s -t -1 --channel 1671
Client side: Send with MCS-4 and length of four slots for 10 seconds:
dect perf -c --c_gap_subslots 3 --c_tx_mcs 4 --c_slots 4 --s_tx_id 39 -t 10 --channel 1671
Server side: Stop perf server:
dect perf stop
Note
You can use this command also on the client side to abort TX.
Example 2: HARQ
On both client and server side - scan for a free channel (see previous example).
Server side: Set unique transmission ID and start RX server with HARQ + some other tunings:
dect sett -t 39 dect perf -s -t -1 -a --s_harq_feedback_tx_delay_subslots 2 --s_harq_feedback_tx_rx_delay_subslots 3 --channel 1671
Client side: Send with MCS-4 and length of 4 slots for 10 seconds:
dect perf -c --c_gap_subslots 4 --c_tx_mcs 4 --c_slots 4 --s_tx_id 39 -t 12 --c_harq_feedback_rx_delay_subslots 2 --c_harq_feedback_rx_subslots 3 --c_harq_process_nbr_max 7 -a --channel 1671
Client side: Decrease default scheduler delay and rerun the previous step:
dect sett -d 5000
Note
Set the delay back to default to avoid scheduler problems on other use cases.
RX/TX testing with RF tool
DeSh command: dect rf_tool
The rf_tool
is meant for RX/TX testing.
You can use it as a util for running of ETSI EN 301 406-2: sections 4.3 (Conformance requirements for transmitter) and 4.4 (Conformance requirements for receiver).
A frame is sent --frame_repeat_count
times and results are reported, no delay between frames.
Frames up to --frame_repeat_count
define the interval.
Intervals are repeated until --frame_repeat_count_intervals
.
There is also a continuous mode that you can start with the --continuous
option.
You can stop the continuous mode by using the dect rf_tool stop
option.
To configure the frame structure, use the following command options:
rx_frame_start_offset : rx_subslot_count + rx_idle_subslot_count + tx_frame_start_offset + tx_subslot_count + tx_idle_subslot_count
Example 1: bi-directional testing
On both client and server side - scan for a free channel:
dect rssi_scan -c 0
Server side: Start RF mode RX_TX with default frame structure and put it waiting for RX synch:
dect sett -t 39 dect rf_tool -m rx_tx --rx_find_sync --frame_repeat_count 50 --frame_repeat_count_intervals 10 -c 1677
Client side: Trigger to start operation:
dect rf_tool -m rx_tx --frame_repeat_count 50 --frame_repeat_count_intervals 10 -t 39 -c 1677
Example 2: unidirectional testing
On both TX and RX side - scan for a free channel (see previous example).
RX device option 1: RX single shot mode:
dect sett -t 39 dect rf_tool -m rx --rx_find_sync --frame_repeat_count 50 -c 1677
RX device option 2: RX device on
rx_cont
mode:dect sett -t 39 dect rf_tool -m rx_cont -c 1677
RX device option 3: RX device in
rx_cont
mode with the information of TX side to have interval reporting:dect sett -t 39 dect rf_tool -m rx_cont --rf_mode_peer tx --frame_repeat_count 50 --rx_find_sync -c 1677
TX device: Trigger to start operation:
dect rf_tool -m tx --frame_repeat_count 50 -c 1677 -t 39
RX device with option 2: Stop continuous RX to give a report:
dect rf_tool stop cert command stopping. RF tool results at transmitter id 39: - RX/TX Duty Cycle percentage: ...
Example 3: duty cycle (RX+TX) testing
On both TX and RX side - scan for a free channel (see previous examples).
Bi-directional testing:
RX/TX duty cycle percentage 73.91%:
server: dect rf_tool -m rx_tx --rx_find_sync --rx_subslot_count 9 --rx_idle_subslot_count 3 --tx_subslot_count 8 --tx_idle_subslot_count 3 --frame_repeat_count 50 -c 1677 client: dect rf_tool -m rx_tx --rx_subslot_count 9 --rx_idle_subslot_count 3 --tx_subslot_count 8 --tx_idle_subslot_count 3 --frame_repeat_count 50 -c 1677 -t 39
RX/TX duty cycle percentage 82.50%:
server: dect rf_tool -m rx_tx --rx_find_sync --rx_subslot_count 17 --rx_idle_subslot_count 3 --tx_subslot_count 16 --tx_idle_subslot_count 4 --frame_repeat_count 50 -c 1677 client: dect rf_tool -m rx_tx --rx_subslot_count 17 --rx_idle_subslot_count 3 --tx_subslot_count 16 --tx_idle_subslot_count 4 --frame_repeat_count 50 -c 1677 -t 39
TX/RX testing on separate devices:
TX side: RX/TX duty cycle percentage 84.21%:
server: dect rf_tool -m rx_cont -c 1677 client: dect rf_tool -m tx --tx_subslot_count 16 --tx_idle_subslot_count 3 -c 1677 -t 39
Alternatively, RX side with the information of TX side to have interval reporting:
server: dect rf_tool -m rx_cont --rf_mode_peer tx --tx_subslot_count 16 --tx_idle_subslot_count 3 --rx_find_sync -c 1677 client: dect rf_tool -m tx --tx_subslot_count 16 --tx_idle_subslot_count 3 -c 1677 -t 39
Example 4: Bi-directional testing with more data
On both TX and RX side - scan for a free channel (see previous example):
server: dect rf_tool -m rx_tx --rx_find_sync --rx_subslot_count 9 --rx_idle_subslot_count 4 --tx_subslot_count 8 --tx_idle_subslot_count 4 --tx_mcs 4 --frame_repeat_count 50 -c 1677 client: dect rf_tool -m rx_tx --rx_subslot_count 9 --rx_idle_subslot_count 4 --tx_subslot_count 8 --tx_idle_subslot_count 4 --tx_mcs 4 --frame_repeat_count 50 -c 1677 --tx_pwr 15 -t 39
Dect NR+ PHY MAC
DeSh command: dect mac
This command demonstrates a basic sample of the DECT NR+ MAC layer on top of PHY API. It is based on MAC specification ETSI TS 103 636-4. With this command, you can start a cluster beacon, scan for beacons, associate/dissociate, and send data to the beacon random access RX window.
Note
This is just an initial basic sample and not a full MAC implementation. It does not support all the features of the DECT NR+ MAC layer and is not fully compliant with the MAC specification. For example, cluster beaconing with RA allocation and LMS implementations overall are not what is required by the specification.
The following abbreviations from MAC specification are used in the examples:
FT: Fixed Termination point
PT: Portable Termination point
Example: starting of cluster beacon and sending RA data to it
FT/Beacon device - Start periodic cluster beacon TX on default band 1 and on the first free channel:
desh:~$ dect sett --reset desh:~$ dect sett -t 1234 dect common settings saved desh:~$ dect mac beacon_start Beacon starting RSSI scan started. RSSI scan duration: scan_time_ms 2010 (subslots 9648) ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 2335226066): channel 1657 total scanning count 201 highest RSSI -94 lowest RSSI -104 Subslot count based results: total subslots: 9648 free subslots: 9648, possible subslots: 0, busy subslots: 0 not measured subslots: 0, saturated subslots: 0 Final verdict FREE based on SCAN_SUITABLE 75%: free: 100.00%, possible: 100.00% ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 2538716193): channel 1659 total scanning count 201 highest RSSI -97 lowest RSSI -106 Subslot count based results: total subslots: 9648 free subslots: 9648, possible subslots: 0, busy subslots: 0 not measured subslots: 0, saturated subslots: 0 Final verdict FREE based on SCAN_SUITABLE 75%: free: 100.00%, possible: 100.00% ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 2742115281): channel 1661 total scanning count 201 highest RSSI -97 lowest RSSI -104 Subslot count based results: total subslots: 9648 free subslots: 9648, possible subslots: 0, busy subslots: 0 not measured subslots: 0, saturated subslots: 0 Final verdict FREE based on SCAN_SUITABLE 75%: free: 100.00%, possible: 100.00% ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 2945512983): channel 1663 total scanning count 201 highest RSSI -96 lowest RSSI -106 Subslot count based results: total subslots: 9648 free subslots: 9648, possible subslots: 0, busy subslots: 0 not measured subslots: 0, saturated subslots: 0 Final verdict FREE based on SCAN_SUITABLE 75%: free: 100.00%, possible: 100.00% ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 3148976543): channel 1665 total scanning count 201 highest RSSI -68 lowest RSSI -105 Subslot count based results: total subslots: 9648 free subslots: 9641, possible subslots: 0, busy subslots: 7 not measured subslots: 0, saturated subslots: 0 Final verdict FREE based on SCAN_SUITABLE 75%: free: 99.93%, possible: 99.93% ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 3352412279): channel 1667 total scanning count 201 highest RSSI -97 lowest RSSI -105 Subslot count based results: total subslots: 9648 free subslots: 9648, possible subslots: 0, busy subslots: 0 not measured subslots: 0, saturated subslots: 0 Final verdict FREE based on SCAN_SUITABLE 75%: free: 100.00%, possible: 100.00% ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 3555822695): channel 1669 total scanning count 201 highest RSSI -78 lowest RSSI -105 Subslot count based results: total subslots: 9648 free subslots: 9645, possible subslots: 3, busy subslots: 0 not measured subslots: 0, saturated subslots: 0 Final verdict FREE based on SCAN_SUITABLE 75%: free: 99.97%, possible: 100.00% ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 3759189351): channel 1671 total scanning count 201 saturations 38 highest RSSI -56 lowest RSSI -105 Subslot count based results: total subslots: 9648 free subslots: 9623, possible subslots: 5, busy subslots: 20 not measured subslots: 0, saturated subslots: 8 Final verdict FREE based on SCAN_SUITABLE 75%: free: 99.74%, possible: 99.79% ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 3963049409): channel 1673 total scanning count 201 highest RSSI -72 lowest RSSI -105 Subslot count based results: total subslots: 9648 free subslots: 9051, possible subslots: 597, busy subslots: 0 not measured subslots: 0, saturated subslots: 0 Final verdict FREE based on SCAN_SUITABLE 75%: free: 93.81%, possible: 100.00% ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 4166505944): channel 1675 total scanning count 201 highest RSSI -57 lowest RSSI -105 Subslot count based results: total subslots: 9648 free subslots: 9627, possible subslots: 16, busy subslots: 5 not measured subslots: 0, saturated subslots: 0 Final verdict FREE based on SCAN_SUITABLE 75%: free: 99.78%, possible: 99.95% ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 4369912341): channel 1677 total scanning count 201 highest RSSI -95 lowest RSSI -105 Subslot count based results: total subslots: 9648 free subslots: 9648, possible subslots: 0, busy subslots: 0 not measured subslots: 0, saturated subslots: 0 Final verdict FREE based on SCAN_SUITABLE 75%: free: 100.00%, possible: 100.00% ----------------------------------------------------------------------------- RSSI scan done. Found 11 free, 0 possible and 0 busy channels. Best channel: 1659 Final verdict: FREE Free subslots: 9648 Possible subslots: 0 Busy subslots: 0 Scheduled beacon TX: interval 2000ms, tx pwr 0 dbm, channel 1659, payload PDU byte count: 50 Channel 1659 was chosen for the beacon. Beacon TX started.
FT/Beacon device - Check MAC status:
desh:~$ dect mac status dect-phy-mac status: Cluster beacon status: Beacon running: yes Beacon channel: 1665 Beacon tx power: 0 dBm Beacon interval: 2000 ms Beacon payload PDU byte count: 50 Neighbor list status:
FT/Beacon device - Check generated long and short RD IDs from settings:
desh:~$ dect sett -r Common settings: network id (32bit).............................305419896 (0x12345678) transmitter id (long RD ID)....................1234 (0x000004d2) short RD ID....................................27462 (0x6b46) band number....................................1
PT/client side - Scan the beacon:
desh:~$ dect mac beacon_scan -c 1659 ----------------------------------------------------------------------------- Beacon scan started. Starting RX: channel 1659, rssi_level 0, duration 4 secs. ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 16806798765): channel 1659 total scanning count 102 highest RSSI -105 lowest RSSI -112 PCC received (stf start time 16878096625): status: "valid - PDC can be received", snr 97, RSSI-2 -121 (RSSI -60) phy header: short nw id 120 (0x78), transmitter id 27462 len 1, MCS 0, TX pwr: 0 dBm PDC received (stf start time 16878096625): snr 99, RSSI-2 -122 (RSSI -61), len 50 DECT NR+ MAC PDU: MAC header: Version: 0 Security: MAC security is not used Type: Beacon Header Network ID (24bit MSB): 1193046 (0x123456) Transmitter ID: 1234 (0x000004d2) SDU 1: MAC MUX header: IE type: Cluster Beacon message Payload length: 5 Received cluster beacon: System frame number: 108 Max TX power: 19 dBm Power const: The RD operating in FT mode does not have power constraints. Frame offset: not included in the beacon Next cluster channel: current cluster channel. Time to next next: not included in the beacon. The next cluster beacon is transmitted based on Cluster beacon period. Network Beacon period 10 ms Cluster Beacon period 2000 ms Count to trigger: 0 (coded value) Relative quality: 0 (coded value) Min quality: 0 (coded value) SDU 2: MAC MUX header: IE type: Random Access Resource IE Payload length: 7 Received RACH IE data: Repeat: Repeated in the following frames as in repetition and validity fields Repetition: 2 Validity: 100 System frame number: Not included - resource allocation immediately valid RA Channel: Not included - resource allocation is valid for current channel RA Response Channel: Not included - response is sent in same channel as this IE Start subslot: 12 Length type: in slots Length: 10 Max RACH length type: in slots Max RACH length: 4 CW min sig: 0 DECT delay: resp win starts 0.5 frames after the start of the RA TX Response win: 11 subslots CW max sig: 7 SDU 3: MAC MUX header: IE type: Padding Payload length: 24 Received padding data, len 24, payload is not printed Neighbor with long rd id 1234 (0x000004d2), short rd id 27462 (0x6b46) stored to nbr list. ----------------------------------------------------------------------------- RSSI scanning results (meas #1 mdm time 16878683565): channel 1659 neighbor has been seen in this channel total scanning count 102 highest RSSI -104 lowest RSSI -112 ----------------------------------------------------------------------------- ... ----------------------------------------------------------------------------- RX DONE.
PT/client side - As an alternative to the previous command, and if you do not know in which channel the beacon is running, you can scan all channels in a set band:
desh:~$ dect mac beacon_scan -c 0
PT/client side - Check that the scanned beacon is found from neighbor list:
desh:~$ dect mac status dect-phy-mac status: Cluster beacon status: Beacon running: no Neighbor list status: Neighbor 1: network ID (24bit MSB): 1193046 (0x123456) network ID (8bit LSB): 120 (0x78) network ID (32bit): 305419896 (0x12345678) long RD ID: 1234 short RD ID: 27462 channel: 1659 last seen time: 17016336625
PT/client side - Send association request to the scanned beacon:
desh:~$ dect mac associate -t 1234 Sending association_req to FT 1234's random access resource Scheduled random access data TX/RX: target long rd id 1234 (0x000004d2), short rd id 27462 (0x6b46), target 32bit nw id 305419896 (0x12345678), tx pwr 0 dbm, channel 1659, payload PDU byte count: 50, beacon interval 2000, frame time 24205018225, beacon received 17016336625 Association request TX started. TX for Association Request completed. PCC received (stf start time 24205392665): status: "valid - PDC can be received", snr 94, RSSI-2 -122 (RSSI -61) phy header: short nw id 120 (0x78), transmitter id 27462 receiver id: 27761 len 0, MCS 0, TX pwr: 0 dBm PDC received (stf start time 24205392665): snr 100, RSSI-2 -122 (RSSI -61), len 17 DECT NR+ MAC PDU: MAC header: Version: 0 Security: MAC security is not used Type: Unicast Header Reset: yes Seq Nbr: 0 Receiver: 38 (0x00000026) Transmitter: 1234 (0x000004d2) SDU 1: MAC MUX header: IE type: Association Response message Payload length: 2 Received Association Response message: Acknowledgment: ACK Flow count: 0b111: All flows accepted as configured in association request. SDU 2: MAC MUX header: IE type: Padding (1 byte) Payload length: 1 Received padding data, len 1, payload is not printed RX for Association Response completed.
PT/client side - Send RA data to the scanned beacon:
desh:~$ dect mac rach_tx -t 1234 -d "TAPPARA!" Sending data TAPPARA! to FT 1234's random access resource Scheduled random access data TX: target long rd id 1234 (0x000004d2), short rd id 27462 (0x6b46), target 32bit nw id 305419896 (0x12345678), tx pwr 0 dbm, channel 1659, payload PDU byte count: 17, beacon interval 2000, frame time 29319898225, beacon received 17016336625 Client TX to RACH started. Client data TX completed.
FT/Beacon device - Observe that data was received:
PCC received (stf start time 32017011258): status: "valid - PDC can be received", snr 91, RSSI-2 -123 (RSSI -61) phy header: short nw id 120 (0x78), transmitter id 27761 receiver id: 27462 len 0, MCS 0, TX pwr: 0 dBm PDC received (stf start time 32017011258): snr 98, RSSI-2 -123 (RSSI -61), len 17 DECT NR+ MAC PDU: MAC header: Version: 0 Security: MAC security is not used Type: DATA MAC PDU header Reset: yes Seq Nbr: 1 SDU 1: MAC MUX header: IE type: User plane data - flow 1 Payload length: 10 DLC IE type: Data: DLC Service type 0 without a routing header (0x01) Received data, len 9, payload as ascii string print: TAPPARA! SDU 2: MAC MUX header: IE type: Padding (0 byte) Payload length: 0 Received padding data, len 0, payload is not printed
PT/client side - Send association release to the scanned beacon:
desh:~$ dect mac dissociate -t 1234 Sending association release to FT 1234's random access resource Scheduled random access data TX/RX: target long rd id 1234 (0x000004d2), short rd id 27462 (0x6b46), target 32bit nw id 305419896 (0x12345678), tx pwr 0 dbm, channel 1659, payload PDU byte count: 17, beacon interval 2000, frame time 34434778225, beacon received 17016336625 Association Release TX started. TX for Association Release completed.
FT/Beacon device - Observe that the association release message was received:
PCC received (stf start time 37131891398): status: "valid - PDC can be received", snr 93, RSSI-2 -123 (RSSI -61) phy header: short nw id 120 (0x78), transmitter id 27761 receiver id: 27462 len 0, MCS 0, TX pwr: 0 dBm PDC received (stf start time 37131891398): snr 94, RSSI-2 -123 (RSSI -61), len 17 DECT NR+ MAC PDU: MAC header: Version: 0 Security: MAC security is not used Type: Unicast Header Reset: yes Seq Nbr: 2 Receiver: 1234 (0x000004d2) Transmitter: 38 (0x00000026) SDU 1: MAC MUX header: IE type: Association Release message Payload length: 1 Received Association Release message: Release Cause: Connection termination. (value: 0) SDU 2: MAC MUX header: IE type: Padding Payload length: 1 Received padding data, len 1, payload is not printed
FT/Beacon device - Stop the beacon:
desh:~$ dect mac beacon_stop Stopping beacon. Beacon TX stopped, cause: User Initiated.
Building
This sample can be found under samples/dect/dect_shell
in the nRF Connect SDK folder structure.
When built as firmware image for a board target with the */ns
variant, the sample has Cortex-M Security Extensions (CMSE) enabled and separates the firmware between Non-Secure Processing Environment (NSPE) and Secure Processing Environment (SPE).
Because of this, it automatically includes the Trusted Firmware-M (TF-M).
To read more about CMSE, see Processing environments.
To build the sample, follow the instructions in Building an application for your preferred building environment. See also Programming an application for programming steps and Testing and optimization for general information about testing and debugging in the nRF Connect SDK.
Note
When building repository applications in the SDK repositories, building with sysbuild is enabled by default.
If you work with out-of-tree freestanding applications, you need to manually pass the --sysbuild
parameter to every build command or configure west to always use it.
See Providing CMake options for instructions on how to provide CMake options, for example to use a configuration overlay.
Dependencies
It uses the following sdk-nrfxlib library:
In addition, it uses the following secure firmware component: