Gazell ACK Payload Device
This sample shows the Device role for basic Gazell communication. As a single sample, the Device only sends packets and receives acknowledgements from the Host with a 1-byte payload. Follow the instructions and use the files from this page, and the Gazell ACK Payload Host sample.
Requirements
Note
Follow the steps from and include the Gazell ACK Payload Host sample with this sample.
The sample supports the following development kits:
Hardware platforms |
PCA |
Board name |
Board target |
---|---|---|---|
PCA10040 |
|
||
PCA10056 |
|
||
PCA10100 |
|
You can use any two of the development kits listed above and mix different development kits.
Overview
The sample uses the Gazell Link Layer library to exchange packets with payload in two directions. It consists of two applications, a Device and a Host.
- Device
A Device sends a packet and adds a new packet to the TX queue every time it receives an ACK from Host. Before adding a packet to the TX queue, the contents of the buttons are copied to the first payload byte. When the Device receives an ACK, the contents of the first payload byte of the ACK are output to the LEDs.
- Host
A Host listens for a packet and sends an ACK when it has received the packet. The contents of the first payload byte of the received packet is output to LEDs. The contents of buttons are sent in the first payload byte of the ACK packet.
The Device transmits packets with its buttons state and the Host acknowledges all successfully received packets from the Device and adds its buttons state in the ACK packets it transmits. Both devices display the peer’s buttons state on their LEDs You can use this sample to enable simple, bidirectional data exchange over the Gazell protocol between two devices.
User interface
- LED 1-4:
Indicate that packets are received. An LED is turned off when the corresponding button is pressed on the other kit.
- Button 1-4:
The button pressed state bitmask is sent to the other kit. A button pressed is sent as 0 and a button released is sent as 1.
Building and running
The Device sample is under samples/gazell/gzll_ack_payload_device
in the nRF Connect SDK folder structure.
The Host sample is under samples/gazell/gzll_ack_payload_host
in the nRF Connect SDK folder structure.
See Building an application and Programming an application for information about how to build and program the application, respectively.
Testing
After programming the Device sample on one of the development kits and the Host sample on the other kit, test them by performing the following steps:
Power on both kits.
Observe that all the LEDs light up on both kits.
Press Button 1 for the Device sample. Observe that the Host sample turns off LED 1 on the other kit.
Press Button 2 for the Host sample. Observe that the Device sample turns off LED 2 on the other kit.
Optionally, connect to the kits with a terminal emulator (for example, nRF Connect Serial Terminal). See Testing and optimization for the required settings and steps.
Observe the logging output for both kits.
Dependencies
This sample uses the following nRF Connect SDK libraries:
It uses the following nrfxlib library:
It uses the following Zephyr libraries:
include/zephyr/types.h
-
include/kernel.h
include/irq.h