Hello World
Description
This Hello World application presents a standard and basic usage of the SPARK Wireless Core. This is a good starting point for anyone wanting to design wireless links using the Wireless Core. This application creates a synchronized bidirectional link between 2 devices to exchange predetermined data after a successful pairing.
Behavior
In this example, two devices are setup with the same behavior. The packet exchange is halted until both devices are paired. Once successfully paired, both devices transmit a packet to the other device. The payload consists of the string “Hello, World!” appended with an 8-bit counter value. The counter value is incremented before each transmission. Upon receiving the packet, the application prints the message with useful statistics on a serial interface.
The first device is set up as a “Coordinator” and the second as a “Node”. The Node device will synchronize its clock to the Coordinator device, ensuring that both devices are synchronized to the same time schedule.
Application Schedule
The following diagram illustrates the general structure of the schedule used in this application.
Figure 7: Hello World Application’s Schedule.
Pairing
By default, devices are unpaired at boot. To use the application, start by pairing the devices.
- Pairing:
Press the SW1 button on both devices to start the pairing procedure; RGB should blink blue twice when doing so.
If the pairing procedure is unsuccessful after 10 seconds, the pairing process stops and the RGB should blink red twice.
Once the pairing procedure is successfully completed, the RGB turns magenta and the devices can start exchanging application data.
- Unpairing:
When paired, pressing the SW1 button again unpairs the device; the RGB should blink red twice to indicate the unpairing procedure is in progress.
Unpairing causes the devices to forget their learned addresses. The devices are no longer able to exchange application data.
To start a new pairing procedure, both devices must be unpaired first.
Note
LED behavior changes in pairing mode versus normal execution mode. During pairing mode, LEDs indicate pairing status as described below. Once paired, LEDs indicate packet transmission and reception and fallback mode status.
- Pairing:
Press the SW1 button on both devices to start the pairing procedure; LED0 should blink twice when doing so.
If the pairing procedure is unsuccessful after 10 seconds, the pairing process stops and all the LEDs blink twice.
Once the pairing procedure is successfully completed, the LEDs will cascade and the devices can start exchanging application data.
- Unpairing:
When paired, pressing the SW1 button again unpairs the device; All LEDs should blink twice to indicate the unpairing procedure is in progress.
Unpairing causes the devices to forget their learned addresses. The devices are no longer able to exchange application data.
To start a new pairing procedure, both devices must be unpaired first.
Board User Interface
LED1 toggles every time a packet is successfully transmitted (almost always on because of the high packet rate).
LED2 toggles every time a packet is successfully received (almost always on because of the high packet rate).
Interface |
Name |
Description |
|---|---|---|
SW1 |
Pairing Process |
Pair or unpair the device depending on the current state. |
SW2 |
Reset Stats |
Reset the TX and RX statistics. |
SW3 |
N/A |
N/A |
SW4 |
N/A |
N/A |
LED1 |
Transmission Occurence |
Toggle LED when a wireless transmission occurs. |
LED2 |
Reception Success |
Toggle LED when a wireless reception is successful. |
LED3 |
N/A |
N/A |
LED4 |
N/A |
N/A |
RGB |
Pairing Event |
Indicate pairing event as described in the pairing section. |
LED0 toggles every time a packet is successfully transmitted (almost always on because of the high packet rate).
LED1 toggles every time a packet is successfully received (almost always on because of the high packet rate).
Interface |
Name |
Description |
|---|---|---|
SW1 |
Pairing Process |
Pair or unpair the device depending on the current state. |
SW2 |
Reset Stats |
Reset the TX and RX statistics. |
LED0 |
Transmission Occurence |
Toggle LED when a wireless transmission occurs. |
LED1 |
Reception Success |
Toggle LED when a wireless reception is successful. |
LED2 |
N/A |
N/A |
Configuration
Dual Radio
This application supports Dual Radio but is disabled by default. To activate it, manually define WPS_RADIO_COUNT and set it to 2 for the Node (receiver) only. The Coordinator (transmitter) does not support using more than one transceiver.
Important
Do not activate this feature on the SPARK EVK1.4 hardware as it only has one physical transceiver. Special hardware is required to use this feature on the SPARK Quasar hardware. Contact your SPARK representative to request it.
Terminal
The following figure shows the terminal output of this application.
See Viewing the Terminal for details on how to view the terminal output.
Figure 8: Hello World Serial Interface Output (from left: Coordinator & Node).
See Wireless Core API - Statistics for more details.