Hello and welcome! Today, I'm running you through what I used to create a low-power board for my projects. I'm using the tiny and inexpensive Nordic Semiconductor nRF24L01+ transceiver (see "Tutorial: Nordic Semiconductor nRF24L01+ with the Freescale FRDM-K64F Board") in many projects. It costs less than $3 and allows me to communicate with a proprietary 2.4GHz protocol in a low-power way (see "IoT: FreeRTOS Down to the Micro Amps"). I have that transceiver now running with the tinyK20 board, too:
nRF24L01+ Transceiver With tinyK20
The normal 2×3 pin rows of the transceiver module are not very bread board friendly. I have used the following connections to the nRF module:
- SPI MISO: PTC7
- SPI MOSI: PTC6
- SPI SCK: PTC5
- CE: PTC2
- CSN: PTD1
- IRQ: not connected
- 3.3V: 3.3V
- GND: GND
tinyK20 nRF24L01+ Connection
The project is for Eclipse (NXP Kinetis Design Studio) and is using the RNet wireless network stack:
nRF24L01+ Project for tinyK20
For easier portability to other microcontrollers, the project is using Processor Expert components, which encapsulate the low-level drives and software stacks including the RTOS:
The project includes a command line interface (38400 baud, 8N1) to send and receive messages, to do remote command execution and to inspect the status of the transceiver using Segger RTT. Plus it includes a wireless packet sniffer.
Command Line Shell with Segger RTT
Alternatively, a USB CDC or UART (serial) connection can be used.
I'm not going much into details how to use the nRF24L01+, RNet and all the other components. Check the links at the end of this article for more details.
With this project I have the tinyK20 board enabled with 2.4 GHz wireless connectivity for less than $3 using the Nordic Semiconductor nRF24L01+ transceiver. I plan to use this in one of my next projects which need to have all board components in a small enclosure. Here, the tinyK20 fits well.
The sources of this project are available on GitHub here: https://github.com/ErichStyger/mcuoneclipse/tree/master/Examples/KDS/tinyK20/tinyK20_nrf