Silicon ChipTeach-In 2026 - August 2026 SILICON CHIP
  1. Contents
  2. Publisher's Letter: Europe needs a proactive policy on local tech & manufacturing
  3. Subscriptions: ETI Bundles
  4. Feature: How USB-C Power Delivery Works by Andrew Levido
  5. Project: USB-C Power Monitor, part one by Tim Blythman
  6. Feature: Teach-In 2026 by Mike Tooley
  7. Project: The RP2350B Computer by Geoff Graham & Peter Mather
  8. Feature: The Fox Report
  9. Feature: Circuit Surgery by Ian Bell
  10. Feature: Max’s Cool Beans by Max the Magnificent
  11. Feature: Power Electronics Part 5: power factor correction & EMI fifiltering by Andrew Levido
  12. Back Issues
  13. Feature: Audio Out by Jake Rothman
  14. Feature: Techno Talk by Max the Magnificent
  15. PartShop
  16. Market Centre
  17. Advertising Index
  18. Back Issues

This is only a preview of the August 2026 issue of Practical Electronics.

You can view 0 of the 80 pages in the full issue.

Items relevant to "USB-C Power Monitor, part one":
  • USB-C Power Monitor PCB set [04102251-3] (AUD $7.50)
  • PIC16F18146-I/SO programmed for the USB-C Power Monitor [0410225A.HEX] (Programmed Microcontroller, AUD $10.00)
  • 0.91-inch white OLED with 4-pin I²C interface (Component, AUD $7.50)
  • USB-C Power Monitor short-form kit (Component, AUD $60.00)
  • Firmware for the USB-C Power Monitor [0410225A.HEX] (Software, Free)
  • USB-C Power Monitor PCB patterns [04102251-2] (Free)
Articles in this series:
  • USB-C Power Monitor, part one (August 2026)
  • USB-C Power Monitor, part one (September 2026)
  • USB-C Power Monitor, part one (October 2026)
  • USB-C Power Monitor, part one (November 2026)
Articles in this series:
  • Teach-In 12.1 (November 2025)
  • Teach-In 2026 (December 2025)
  • Teach-In 2026 (January 2026)
  • Teach-In 2026 (February 2026)
  • Teach-In 2026 (March 2026)
  • Teach-In 2026 (April 2026)
  • Teach-In 2026 (June 2026)
  • Teach-In 2026 (July 2026)
  • Teach-In 2026 (August 2026)
  • Teach-In 2026 (September 2026)
  • Teach-In 2026 (October 2026)
  • Teach-In 2026 (November 2026)
Articles in this series:
  • Circuit Surgery (April 2024)
  • STEWART OF READING (April 2024)
  • Circuit Surgery (May 2024)
  • Circuit Surgery (June 2024)
  • Circuit Surgery (July 2024)
  • Circuit Surgery (August 2024)
  • Circuit Surgery (September 2024)
  • Circuit Surgery (October 2024)
  • Circuit Surgery (November 2024)
  • Circuit Surgery (December 2024)
  • Circuit Surgery (January 2025)
  • Circuit Surgery (February 2025)
  • Circuit Surgery (March 2025)
  • Circuit Surgery (April 2025)
  • Circuit Surgery (May 2025)
  • Circuit Surgery (June 2025)
  • Circuit Surgery (July 2025)
  • Circuit Surgery (August 2025)
  • Circuit Surgery (September 2025)
  • Circuit Surgery (October 2025)
  • Circuit Surgery (November 2025)
  • Circuit Surgery (December 2025)
  • Circuit Surgery (January 2026)
  • Circuit Surgery (February 2026)
  • Circuit Surgery (March 2026)
  • Circuit Surgery (April 2026)
  • AUDIO OUT (May 2026)
  • Circuit Surgery (June 2026)
  • Circuit Surgery (July 2026)
  • Circuit Surgery (August 2026)
  • Circuit Surgery (September 2026)
  • Circuit Surgery (October 2026)
  • Circuit Surgery (November 2026)
Articles in this series:
  • Max’s Cool Beans (January 2025)
  • Max’s Cool Beans (February 2025)
  • Max’s Cool Beans (March 2025)
  • Max’s Cool Beans (April 2025)
  • Max’s Cool Beans (May 2025)
  • Max’s Cool Beans (June 2025)
  • Max’s Cool Beans (July 2025)
  • Max’s Cool Beans (August 2025)
  • Max’s Cool Beans (September 2025)
  • Max’s Cool Beans: Weird & Wonderful Arduino Projects (October 2025)
  • Max’s Cool Beans (November 2025)
  • Max’s Cool Beans (December 2025)
  • Max’s Cool Beans (January 2026)
  • Max’s Cool Beans (February 2026)
  • Max’s Cool Beans (March 2026)
  • Max’s Cool Beans (April 2026)
  • AOShop (May 2026)
  • Max’s Cool Beans (June 2026)
  • Max’s Cool Beans (July 2026)
  • Max’s Cool Beans (August 2026)
  • Max’s Cool Beans (September 2026)
  • Max’s Cool Beans (October 2026)
  • Max’s Cool Beans (November 2026)
Articles in this series:
  • Power Electronics Part 1: DC-DC Converters (April 2026)
  • SSB Shortwave Receiver (May 2026)
  • Power Electronics Part 3: Isolated DC-DC Converters (June 2026)
  • Power Electronics Part 4: AC-DC Converters with Rectifiers (July 2026)
  • Power Electronics Part 5: power factor correction & EMI fifiltering (August 2026)
  • Power Electronics Part 5: power factor correction & EMI fifiltering (September 2026)
  • Power Electronics Part 5: power factor correction & EMI fifiltering (October 2026)
  • Power Electronics Part 5: power factor correction & EMI fifiltering (November 2026)
Articles in this series:
  • Audio Out (January 2024)
  • Audio Out (February 2024)
  • AUDIO OUT (April 2024)
  • Audio Out (May 2024)
  • Audio Out (June 2024)
  • Audio Out (July 2024)
  • Audio Out (August 2024)
  • Audio Out (September 2024)
  • Audio Out (October 2024)
  • Audio Out (March 2025)
  • Audio Out (April 2025)
  • Audio Out (May 2025)
  • Audio Out (June 2025)
  • Audio Out (July 2025)
  • Audio Out (August 2025)
  • Audio Out (September 2025)
  • Audio Out (October 2025)
  • Audio Out (November 2025)
  • Audio Out (December 2025)
  • Audio Out (January 2026)
  • Audio Out (February 2026)
  • Audio Out (March 2026)
  • Audio Out (April 2026)
  • Audio Out (June 2026)
  • Audio Out (July 2026)
  • Audio Out (August 2026)
  • Audio Out (September 2026)
  • Audio Out (October 2026)
  • Audio Out (November 2026)
Articles in this series:
  • Techno Talk (February 2020)
  • Techno Talk (March 2020)
  • (April 2020)
  • Techno Talk (May 2020)
  • Techno Talk (June 2020)
  • Techno Talk (July 2020)
  • Techno Talk (August 2020)
  • Techno Talk (September 2020)
  • Techno Talk (October 2020)
  • (November 2020)
  • Techno Talk (December 2020)
  • Techno Talk (January 2021)
  • Techno Talk (February 2021)
  • Techno Talk (March 2021)
  • Techno Talk (April 2021)
  • Techno Talk (May 2021)
  • Techno Talk (June 2021)
  • Techno Talk (July 2021)
  • Techno Talk (August 2021)
  • Techno Talk (September 2021)
  • Techno Talk (October 2021)
  • Techno Talk (November 2021)
  • Techno Talk (December 2021)
  • Communing with nature (January 2022)
  • Should we be worried? (February 2022)
  • How resilient is your lifeline? (March 2022)
  • Go eco, get ethical! (April 2022)
  • From nano to bio (May 2022)
  • Positivity follows the gloom (June 2022)
  • Mixed menu (July 2022)
  • Time for a total rethink? (August 2022)
  • What’s in a name? (September 2022)
  • Forget leaves on the line! (October 2022)
  • Giant Boost for Batteries (December 2022)
  • Raudive Voices Revisited (January 2023)
  • A thousand words (February 2023)
  • It’s handover time (March 2023)
  • AI, Robots, Horticulture and Agriculture (April 2023)
  • Prophecy can be perplexing (May 2023)
  • Technology comes in different shapes and sizes (June 2023)
  • AI and robots – what could possibly go wrong? (July 2023)
  • How long until we’re all out of work? (August 2023)
  • We both have truths, are mine the same as yours? (September 2023)
  • Holy Spheres, Batman! (October 2023)
  • Where’s my pneumatic car? (November 2023)
  • Good grief! (December 2023)
  • Cheeky chiplets (January 2024)
  • Cheeky chiplets (February 2024)
  • The Wibbly-Wobbly World of Quantum (March 2024)
  • Techno Talk - Wait! What? Really? (April 2024)
  • Techno Talk - One step closer to a dystopian abyss? (May 2024)
  • Techno Talk - Program that! (June 2024)
  • Techno Talk (July 2024)
  • Techno Talk - That makes so much sense! (August 2024)
  • Techno Talk - I don’t want to be a Norbert... (September 2024)
  • Techno Talk - Sticking the landing (October 2024)
  • Techno Talk (November 2024)
  • Techno Talk (December 2024)
  • Techno Talk (January 2025)
  • Techno Talk (February 2025)
  • Techno Talk (March 2025)
  • Techno Talk (April 2025)
  • Techno Talk (May 2025)
  • Techno Talk (June 2025)
  • Techno Talk (July 2025)
  • Techno Talk (August 2025)
  • Techno Talk (October 2025)
  • Techno Talk (November 2025)
  • Techno Talk (December 2025)
  • Techno Talk (January 2026)
  • Techno Talk (February 2026)
  • Techno Talk (March 2026)
  • Techno Talk (April 2026)
  • Techno Talk (May 2026)
  • Techno Talk (May 2026)
  • Techno Talk (June 2026)
  • Techno Talk (July 2026)
  • Techno Talk (August 2026)
  • Techno Talk (September 2026)
  • Techno Talk (October 2026)
  • Techno Talk (November 2026)
Teach-In 2026 by Mike Tooley World of Wireless – An Introduction to Radio and Wireless Technology, part 12.10 Short-range RF devices L ast month, we took a deep dive into RF sources, explaining the architecture and operation of some typical low-cost phase-locked loop (PLL) and direct digital synthesis (DDS) devices. This month, our focus shifts to short-range wireless devices (SRD). These versatile chips and modules enable data transmission and reception between remote devices without requiring a wired connection. For good measure, our Hands-On constructional project features a simple RF field strength indicator that can be used for relative measurements up to 450MHz. Short-range wireless applications A growing number of electronic applications are now using wireless technology to transmit data from remote sensors or between distributed sites. These inexpensive wireless systems eliminate the need for physical wiring, providing fast and reliable communication between distant devices. Establishing data connections requires only a pair of wireless transceivers placed at each end. Depending on factors that include device configuration, data rate, antenna type and transmission path, wireless systems can easily achieve working ranges of several kilometres. Fig.10.1 shows a selection of low-cost wireless modules suitable for short-range applications. SRD devices operate with low radiated power and consequently have limited range, so they are unlikely to interfere with other radio services using the same frequency. Because of this, they’re generally subject to less strict regulations compared with most radio communications equipment. Many SRDs operate licencefree, but developers must ensure compliance with rules from national authorities like Ofcom (UK), ACMA (Australia) and the FCC (USA). Typical applications for wireless-connected SRDs include: • access control (including door and gate openers) • control and regulatory systems • cordless audio devices • intruder and other alarms • local area networks (LANs) • lighting control • medical devices and implants • metering devices • motion detectors • radio-frequency identification (RFID) • remote control systems • telematics • wireless microphones Typical frequency ranges for SRD include the ‘sub-GHz’ bands at 433MHz, 868MHz and 917MHz, as well as the popular 2.4GHz band already used extensively for Wi-Fi and Bluetooth devices. Frequency ranges and effective radiated power (ERP) limits in the UK as well as most of Europe are: • 433.05-434.79MHz: +10dBm • 868-870MHz: +10dBm • 2400-2483.5MHz: +20dBm It’s important to recognise that frequency allocations are subject to the policies established by individual national regulatory authorities. The bands listed are further subdivided and allocated to designated services, including ‘non-specific’ categories. Limits apply to individual applications, modes of operation, duty cycles and maximum permitted ERP. The industrial, scientific and medical (ISM) bands, particularly at 2.4GHz, are used for purposes other than telecommunications and broadcasting. These bands permit high-power emissions that can potentially disrupt other lowpower services. Fig.10.1: a variety of low-cost SRD wireless modules. 18 Practical Electronics | August | 2026 Table 10.1: 2.4GHz Wi-Fi channels Channel Frequency 1 2.412GHz 2 2.417GHz 3 2.422GHz 4 2.427GHz 5 2.432GHz 6 2.437GHz 7 2.442GHz 8 2.447GHz 9 2.452GHz 10 2.457GHz 11 2.462GHz 12 2.467GHz* 13 2.472GHz* congestion and interference, especially in densely populated areas. Many readers will already be aware of the need to find unoccupied channels when configuring their own Wi-Fi networks but despite potential interference, the licence-free 2.4GHz ISM band can be a great place to start experimenting with SRD. The technology is well understood and the hardware is cheap! The nRF24 wireless module 14 2.484GHz** * channels 12 & 13 restricted in the USA ** channel 14 is only currently available in Japan and is the only band not 5MHz from the previous band Such applications include RF heating and microwave ovens, so the use of the ISM bands is made conditional on users being willing to tolerate interference generated by such equipment. The 2.4GHz frequency band The 2.4GHz band extends from 2.400GHz to 2.4835GHz (sometimes higher) and it has become immensely popular in a wide variety of domestic and commercial short-range license-free applications. The band is used worldwide for services such as Bluetooth and limited-range wireless networks that provide local internet access. The various Wi-Fi channels are listed in Table 10.1. While most of the world has access to channels 1-11 (2.422.462GHz), restrictions can apply to the use of bands 12, 13 and 14 in some countries. The increased popularity of WiFi, Bluetooth and other services has led to a significant amount of The nRF24L01 from Nordic Semiconductor is a single-chip 2.4GHz transceiver that incorporates an embedded protocol engine to handle the transfer of data to/ from a microcontroller. It is ideal for a wide range of low-cost, lowpower wireless applications. It is designed for operation in the globally available 2.4GHz ISM band. There are several members of the NRF24 family. The latest device (nRF24L01+) is pin-compatible with the nRF24L01 and on-air compatible with the nRF2401A, nRF2402, nRF24E1 and nRF24E2. The nRF24L01+ offers significantly better performance than its predecessor (notably intermodulation and wideband blocking). The addition of internal filtering in the latest version of the chip has improved the margins for meeting national and international RF regulatory standards. The simplified internal schematic of the nRF24L01 is shown in Fig.10.2. We’ve divided it into six functional blocks: 1. Low-power 2.4GHz RF transmitter 2. Sensitive 2.4GHz RF receiver 3. RF synthesiser, to generate the required 2.4GHz channels from a stable quartz crystal-controlled reference oscillator 4. First-in, first-out (FIFO) registers for storing transmitted and received data (which is sent serially) together with a protocol RF Transmitter Transmit filter PA GFSK modulator ANT1 Receive filter LNA XC2 Transmit FIFOs Transmit FIFOs Transmit FIFOs SPI CSn SCK MOSI MISO Enhanced Shockburst Baseband Engine ANT2 XC1 engine, general-purpose registers and a serial peripheral interface (SPI) linked via an internal data bus 5. Radio control logic for the RF section 6. Power management logic that provides several power-saving modes The chip’s SPI interface makes it easy to interface with a microcontroller. This interface provides access to the chip’s internal registers so it can be configured to operate in various ways. The RF front end uses Gaussian frequency-shift keying (GFSK). This is more efficient than conventional frequency-shift keying (FSK) and is the same method of digital modulation that’s used by Bluetooth devices. The chip’s operating parameters, such as channel/frequency, output power and transmitted data rate, are all user-programmable. Its embedded baseband protocol engine is based on conventional packet communication techniques. The nRF24L01 can be programmed for operation in 125 channels within the 2.4GHz ISM band. These channels extend from 2.400GHz to 2.525GHz with a channel spacing of 1MHz. The selected channel needs to comply with the regulations in your country. For example, in the USA, the Federal Communications Commission (FCC) permits operation from 2.400GHz to 2.4835GHz, which is equivalent to the first 84 channels (numbers 0 to 83) for the nRF24L01. For best performance, it’s important to avoid heavily used and adjacent Wi-Fi channels in your locality (see Table 10.1). The range that can be achieved using typical low-power 2.4GHz wireless modules is usually between 10m (inside a building) up to about 100m on a line-of-sight path. With higher power output and an external RF Synthesiser GFSK demodulator Register Set Transmit FIFOs Transmit FIFOs Receive FIFOs Radio Control Power Management VSS VDD VDD_PA Fig.10.2: the simplified internal schematic of an nRF24L01 wireless transceiver chip. Practical Electronics | August | 2026 19 Fig.10.3: high-power versions of the nRF24L01 wireless module fitted with external antennas. antenna (Fig.10.3), the range can be increased to about 50m inside a building and well over 1km if an unobstructed path exists between the transmitter and receiver. The nRF24L01 transmitter output power is programmable to 0dBm, -6dBm, -12dBm or -18dBm. dBm means decibels relative to 1mW so 0dBm corresponds to 1mW, -6dBm to about 250µW, -12dBm to about 62.5mW and -18dBm to about 16mW. When the output power is configured to its maximum (0dBm), the chip needs a supply current of about 11mA; lower at reduced output levels. The transmission data rate (sometimes referred to as the ‘air data rate’) is the modulated signalling rate the nRF24L01 uses when the RF front end is transmitting or receiving data. It can be 250kbps, 1Mbps or 2Mbps. Fig.10.5: an inexpensive DHT22 temperature and humidity sensor. Although a lower air data rate gives better receiver sensitivity, the average current consumption goes up and there’s an increased probability of on-air collisions. The channel, data rate and power can be easily set by writing values to the chip’s internal registers. The transmitter and a receiver must be programmed with the same data rate and channel to be able to communicate with each other! When implementing a data link between two microcontrollers, one needs to be configured as a server whilst the other must be configured as a client. Fig.10.4 shows how this can be done using two nRF24L01 modules and two Arduino microcontrollers. Interfacing remote sensors Let’s look at an application that uses nRF24L01 modules to send data from a remote sensor, receiving it using another nRF24L01 wireless module. We’ve used compact and inexpensive Arduino Nano microcontrollers. At the transmitter, we’ve included an inexpensive DHT22 temperature and humidity sensor (Fig.10.5). It uses a simple three-wire interface to the Arduino Nano. For the receiver, we’ve used a second nRF24L01 module and Nano with the data displayed on a host computer (this can be the same computer used for programming the two Nano microcontrollers). The circuits for the transmitter and receiver are shown in Figs.10.6 & 10.7, respectively. In both the transmitter and receiver, the nRF24L01 wireless modules are interfaced to their respective controllers using the Nano’s serial peripheral interface (SPI). The pin connections for the nRF24L01 are shown in Fig.10.8, while the signals are listed together with their function in Table 10.2. The pin connections for an Arduino Nano are shown in Fig.10.9. We’ve used the microcontroller’s USB port for programming and also as the 5V power source. Using the NRF library An NRF24 library can be used to simplify interfacing with the wireless module. While several are available, we’ve used the RadioHead library from www.airspayce.com/mikem/ arduino/RadioHead/ This library consists of two main classes: Drivers and Managers. Drivers provide low-level access to a range of different packet radio chips (and other devices designed for transporting data in packet form), while Managers provide high-level message sending and receiving facilities. The code will have an instance of a Driver to provide access to the radio and a Manager that uses the specified driver to send and receive messages for your application. Your code needs to instantiate the Driver and Manager; it also needs to initialise the Manager. The Manager can then be used to send and receive messages. The NRF24 libraries are easy to use. For example, to set the RF channel, you could use a statement of the form: nrf24.setChannel(9); The channel parameter should be a value between 0 and 83. Values outside this range will be outside the approved ISM band in most countries (including the UK); 66 should be the highest channel used in the USA. To set the data rate and transmit Fig.10.4: a simple wireless data link based on the nRF24L01. 20 Practical Electronics | August | 2026 Antenna Antenna 1 2 3 4 nRF24L01 6 7 1 2 3 4 nRF24L01 6 7 1 2 3 6 7 1 2 3 6 7 Arduino Nano USB Power/data GND +3.3V D8 D10 SCK MOSI MISO VIN + D2 OUT DHT22 GND - USB Power/data Fig.10.6: a remote temperature/humidity transmitter based on the nRF24L01. power, you can use a statement like: nrf24.setRF( RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm); There are two parameters here: one sets the data rate, while the other sets the transmission power. The data rate can take values of 2Mbps, 1Mbps and 250kbps whilst the transmit power can take values of 18mBm (-18dBm), m12dBm (-12dBm), m6dBm (-6dBm) or 0dBm. As a further example, to set the data rate to 1Mbps and a transmit power of -6dBm, you would use: nrf24.setRF( RH_NRF24::DataRate1Mbps, RH_NRF24::TransmitPowerm6dBm); USB PORT The chip can be set to transmit or receive mode using statements like: nrf24.setRF( RH_NRF24::setModeRx()); nrf24.setRF( RH_NRF24::setModeTx()); Transmitter code The remote temperature/humidity transmitter code is shown in Listing 10.1. This requires including four library header files: Arduino.h, DHT_ Async.h, SPI.h and RH_NRF24.h. #include <Arduino.h> #include "DHT_Async.h" #include <SPI.h> #include <RH_NRF24.h> RH_NRF24 nrf24; /* Uncomment for different sensors */ //#define DHT_SENSOR_TYPE DHT_TYPE_11 //#define DHT_SENSOR_TYPE DHT_TYPE_21 #define DHT_SENSOR_TYPE DHT_TYPE_22 4 5 D10 SCK MOSI MISO Arduino Nano Fig.10.7: a receiver for the remote temperature/humidity sensor. VCC CSN MOSI IRQ 5 2 4 6 8 1 3 5 7 GND CE SCK MISO GND +3.3V D8 4 Fig.10.8: the pinout of the nRF24L01. Listing 10.1: the code for the remote temperature/ humidity transmitter. The listings and libraries in this article can be downloaded from https://pemag.au/link/ acby static const int DHT_SENSOR_PIN = 2; DHT_Async dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 SCK 3.3V REF A0 A1 A2 A3 A4 A5 A6 A7 VIN RST GND VIN MISO MOSI SS D9 D8 D7 D6 D5 D4 D3 D2 GND RST D1/RXD D0/TXD 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Top view Fig.10.9: the pinout of the Arduino Nano. Practical Electronics | August | 2026 /* Initialize the serial port and wireless module */ void setup() { nrf24.init(); nrf24.setChannel(1); nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm); } /* Obtain a reading from the DHT sensor */ static bool measure_environment(float *temperature, float *humidity) { static unsigned long measurement_timestamp = millis(); /* Get readings at five second intervals */ if (millis() - measurement_timestamp > 5000ul) { if (dht_sensor.measure(temperature, humidity)) { measurement_timestamp = millis(); return (true); } } return (false); } /* Main program loop */ void loop() { float temperature; float humidity; if (measure_environment(&temperature, &humidity)) { // Send data via the NRF24 byte data[4]; // Four bytes of data data[0] = ((int(temperature) >> 8) & 0xFF); data[1] = (int(temperature) & 0xFF); data[2] = ((int(humidity) >> 8) & 0xFF); data[3] = (int(humidity) & 0xFF); nrf24.send(data, sizeof(data)); } } 21 Table 10.2: nRF24L01 signals Pin Signal Function 1 GND 0V common 2 VCC +3.3V supply 3 CE Active-high chip enable 4 CSN Active-low chip select 5 SCK Serial clock 6 MOSI Serial data to the module 7 MISO Serial data from the module 8 IRQ Interrupt request (not used here) These library files can be downloaded and installed in the usual way; if you experience problems, a web search for the named file will usually help. We’ve used a DHT22 sensor for this application (and the wireless frost alarm that follows) because it has an extended low-temperature range. If desired, alternative DHT-series temperature sensors can be selected by simply uncommenting the corresponding code. The nRF24L01 is initialised using just three lines of code. We’ve selected channel 1, a data rate of 2Mbps and a transmission power of 0dBm (1mW). Readings of temperature and humidity are taken at intervals of five seconds (5000ms) and two float variables are used to store the temperature and humidity data. The data is sent over the wireless link as a packet of four bytes (two bytes for the temperature data and two bytes for the humidity data). The code has been liberally commented and is given here as a basis for further experimentation. Receiver code The code for the remote temperature/humidity receiver is shown in Listing 10.2. This requires three library headers: Arduino.h, SPI.h and RH_NRF24.h (DHT_Async.h is not needed). The nRF24L01 must be initialised with the same parameters used for the transmitter. If you make any changes to the RH_NRF24 parameters in the transmitter code, make identical changes in the receiver code. The receiver waits for data from the transmitter (arriving every five seconds) before sending it via the Nano’s serial interface for display using the Arduino IDE running on the 22 #include <Arduino.h> #include <SPI.h> #include <RH_NRF24.h> int tempdataReceived; int humidataReceived; // Temperature data received // Humidity data received Listing 10.2: the code for the temperature/ humidity receiver. RH_NRF24 nrf24; static const int DHT_SENSOR_PIN = 2; /* Initialize the serial port and radio */ void setup() { Serial.begin(115200); nrf24.init(); nrf24.setChannel(1); nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm); } /* Main program loop */ void loop() { byte buf[RH_NRF24_MAX_MESSAGE_LEN]; byte len = sizeof(buf); if (nrf24.waitAvailableTimeout(500)) { Serial.println("Checking for received data ..."); // Check for message data if (nrf24.recv(buf, &len)) { tempdataReceived = (buf[0] << 0) + buf[1]; humidataReceived = (buf[2] << 0) + buf[3]; } } } delay(400); Serial.print("Temperature = "); Serial.print(tempdataReceived, 1); Serial.println(" deg. C"); Serial.print("Humidity = "); Serial.print(humidataReceived, 1); Serial.println("%"); host computer. The temperature and humidity data received (tempdataReceived and humidataReceived) are both defined as integers. Testing The receiver and transmitter should work well at distances of up to about 15m with an unobstructed path. In a building, coverage will be reduced by factors like walls, wiring and interference from other 2.4GHz devices. The antenna type and positioning can be crucial for good performance, so it’s worth experimenting with the orientation and position. Received signals may suffer from multiple reflections, with direct and reflected waves arriving simultaneously at the receiver via different paths. It’s therefore extremely difficult to predict the performance of lowpower wireless systems; some on-site experimentation will invariably be required to yield the best results. A wireless frost alarm system Having demonstrated a simple communication system using wireless modules, we shall move on to describe a simple stand-alone application in which wireless is used to implement a remote frost alarm. We shall use the same transmitter arrangement as before, but here the sensor must be a DHT22 to work properly below 0°C. The receiver arrangement incorporates three LEDs to indicate the sensed temperature ranges, together with a piezoelectric sounder to provide an audible frost warning. The receiver circuit diagram is shown in Fig.10.10. The code for the wireless frost alarm receiver is in Listing 10.3. Once again, we need to include three library headers: Arduino.h, SPI.h and RH_NRF24.h. In this application, we are only concerned with temperature data, so we have only declared the tempdataReceived variable. Next, we have defined constants for the upper and lower temperature thresholds, ut and lt respectively. In Listing 10.3, we’ve set these to 5°C (above which the green LED will light) and 2°C (below which the red LED will be illuminated and the alarm will sound). Between the two thresholds, the amber LED is illuminated. For testing purposes, you might like to replace the values shown in Listing 10.3 with values closer to those found in your environment (we used 25 for ut and 23 for lt, corresponding to 25°C and 23°C, respectively). The sub-GHz bands Frequencies below 1GHz offer superior performance at reduced power levels and are generally less congested than the 2.4GHz band, where Wi-Fi and Bluetooth links proliferate. Practical Electronics | August | 2026 Therefore there has been an increasing interest in modules that use the sub-GHz ISM/SRD bands at 315MHz, 433MHz, 868MHz and 915MHz. As not all of these may be legally used in your country, it’s essential to check with your national regulator. The proliferation of devices available from global online sources and ‘grey imports’ makes it essential to check specifications before purchase, particularly to ensure the frequency coverage is correct for your location. The CC1101 from Texas Instruments is a good example of a low-cost subGHz wireless transceiver. It is primarily intended for use within the ISM and SRD frequency bands at 315MHz, 433MHz, 868MHz and 915MHz, but it can also be programmed for operation within several additional frequency ranges, including 300-348MHz, 387464MHz and 779-928MHz. The transceiver incorporates a configurable baseband modem supporting various modulation formats at data rates up to 600kbps. The chip incorporates packet management, data buffering, burst transmission, clear channel assessment, link quality indication and wake-on-radio functions. Like the nRF24L01, it has a conventional SPI microcontroller interface (see Fig.10.11). Its receiving sensitivity is -116dBm at 0.6kbaud when operating at 433MHz and -112dBm at 1.2kbaud for 868MHz operation. Current consumption is typically less than 15mA, varying with the selected transmission power level. The maximum transmission power is +12dBm, while the maximum data rate is 600kbps. Its normal working range is similar to that which can be achieved with similar devices in the 2.4GHz band operating at higher power levels. Distances of 10-100m are typical with lower data rates, but over 1km can be achieved with suitable antennas and a clear, line-of-sight path. Where extended range is essential, for long-range (LoRa) applications, RH_NRF24 nrf24; static const int DHT_SENSOR_PIN = 2; /* Initialize the serial port, radio and I/O */ void setup() { Serial.begin(115200); nrf24.init(); nrf24.setChannel(1); nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm); // Setup digital outputs pinMode(green, OUTPUT); pinMode(amber, OUTPUT); pinMode(red, OUTPUT); pinMode(alarm, OUTPUT); } /* Main program loop */ void loop() { byte buf[RH_NRF24_MAX_MESSAGE_LEN]; byte len = sizeof(buf); if (nrf24.waitAvailableTimeout(500)) { Serial.println("Checking for received data ..."); // Check for message data if (nrf24.recv(buf, &len)) { tempdataReceived = (buf[0] << 0) + buf[1]; } delay(400); Serial.print("Temperature = "); Serial.print(tempdataReceived, 1); Serial.println(" deg. C"); } } 3 4 nRF24L01 6 7 1 2 3 6 7 5 if (tempdataReceived > ut) // Green ON { digitalWrite(green, HIGH); digitalWrite(amber, LOW); digitalWrite(red, LOW); digitalWrite(alarm, LOW); } else if (tempdataReceived <= lt) // Red and alarm ON { digitalWrite(green, LOW); digitalWrite(amber, LOW); digitalWrite(red, HIGH); digitalWrite(alarm, HIGH); } else // Amber ON { digitalWrite(green, LOW); digitalWrite(amber, HIGH); digitalWrite(red, LOW); digitalWrite(alarm, LOW); } Antenna 2 4 Listing 10.3: the NRF24 wireless frost alarm code. int tempdataReceived; // Temperature data received int ut = 5; // upper threshold int lt = 2; // lower threshold int green = 2; // Green LED int amber = 3; // Amber LED int red = 4; // Red LED int alarm = 5; // Sounder 1 GND +3.3V D8 USB Power/data #include <Arduino.h> #include <SPI.h> #include <RH_NRF24.h> D10 SCK MOSI MISO Arduino Nano GND Fig.10.10: a remote frost warning receiver based on the nRF24L01. Practical Electronics | August | 2026 D5 D4 D3 D2 R1 330 R2 330 R3 330 D1 D2 D3 Green Amber Red PZ1 Sounder Fig.10.11: a tiny (17 × 19mm) CC1101 module designed for use at 868MHz. 23 Antenna CC1101 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Level shifting interface USB Power/data GND VCC CE CSN SCK MO MI GND +5V D9 D10 D13 D11 D12 Fig.10.13: the wireless components for the 433MHz multi-mode beacon. From left to right, a low-cost interface board, 433MHz CC1101 wireless module and SMA antenna. P3-2 Arduino Nano P2-1 C4 + 10uF Fig.10.12: the 433MHz multi-mode beacon circuit. the chip can be paired with its CC1109 matching range extender. This add-on provides up to +20dBm output at 868MHz and up to +27dBm at 915MHz. This also improves the receiving sensitivity by about 6dB. An interesting feature of the CC1101 is that it caters for several different forms of modulation, including twoand four-level frequency-shift keying (2-FSK and 4-FSK), Gaussian frequency-shift keying (GFSK) and minimum frequency-shift keying (MSK). GFSK is an extension of the FSK modulation scheme where the frequency of the modulated signal doesn’t change instantaneously at the start of each change of data bit. Abrupt changes in frequency are thus avoided. Consequently, the transition from one logic state to another becomes smoother. In MSK, the frequency difference between logical 0 and 1 is minimised to half the data rate, resulting in a spectrally efficient constant-envelope waveform. The CC11010 also offers amplitude-shift keying (ASK), which Fig.10.16: the circuit for the RF relative field strength indicator. From SK1 RF input C1 100pF L1 47uH C3 4.7nF C2 47nF VR1 10kΩ P2-2 TR1 BC517 c b R2 1kΩ + + - RV1 2kΩ S1 P1-1 B1 9V M1 1mA P1-2 - e P3-1 Fig.10.17: the relative field strength indicator component layout (top). is the same as on/off keying (OOK) when a binary signal is applied. A sub-GHz multi-mode beacon Fig.10.14: the wiring of the 433MHz multi-mode beacon. 24 D2 LED R1 3.3kΩ D1 BAT42 R3 4.7kΩ To provide you with an example of using the sub-GHz bands, we’ve made a simple CC1101 multi-mode beacon for experimental operation. The beacon operates on the SRD frequency of 433.92 MHz, which is shared with part of the 70cm amateur band. Our example generates successive identification messages (including the author’s callsign and location) at fivesecond intervals using four different modulation methods: 2-FSK, GFSK, ASK/OOK, and 4-FSK. The circuit of the 433MHz multimode beacon is shown in Fig.10.12. Connections to the Arduino Nano microcontroller via SPI are like those used for the nRF24L01, but we’ve added an interface to cope with the level-shifting necessary required to interface the 3.3V world of the Practical Electronics | August | 2026 CC1101 with the 5V levels used by the Nano. The level-shifting can be accomplished using an inexpensive module that’s compatible with SRD devices like the CC1101 and nRF24 (available from several online suppliers, eg, https://pemag.au/link/ acck). Fig.10.13 shows the three wireless components required. The interconnection between the interface board and Nano microcontroller can be conveniently made using a short ribbon cable, as shown in Fig.10.14. Incoming power is supplied via the Nano’s type-C USB connector. The code for the 433MHz multimode beacon is shown in Listing 10.4. We’ve used the excellent ELECHOUSE_cc1101 library that provides a huge range of configuration options. In Listing 10.4, we configure the device for operation at 433.92MHz with a frequency deviation of 2.5kHz, a data rate of 125bps and an RF output of 10mW (10dBm). Fig.10.15 shows the frequency spectrum of the output of the 433MHz multi-mode beacon. This was obtained using an inexpensive spectrum analyser (see part 7 in the May 2026 issue) together with a 10dB SMA attenuator connected in the RF output. Hands-On: A simple RF relative field strength indicator This month’s Hands-On project is another useful item of RF test equipment: a simple RF relative field strength meter. It is designed primarily for operation over 3.5-150MHz but provides indications from below 1MHz to over 400MHz with reduced sensitivity. The circuit is shown in Fig.10.16; it comprises a Schottky diode detector (D1) followed by a high-gain Darlington transistor amplifier (TR1). The instrument provides indications using a 1mA moving coil meter (M1) and one LED, which becomes illuminated when strong signals are detected. Sensitivity is varied by means of a preset control, RV1. The instrument is self-contained and operates from an internal 9V PP3 battery. As with our previous Hands-On projects, it is built on a 25 × 64mm piece of perforated copper stripboard, arranged as nine strips each of 24 rows. The component layout (viewed from the top) is shown in Fig.10.17, while the corresponding track layout (viewed from below) is in Fig.10.18. #include <ELECHOUSE_CC1101_SRC_DRV.h> int gdo0; Listing 10.4: CC1101 433MHz beacon code demonstrating different modulation methods. void setup() { gdo0 = 9; // for Arduino Nano Serial.begin(9600); if (ELECHOUSE_cc1101.getCC1101()) { // Check the CC1101 SPI Serial.println("Connected to the wireless module"); } else { Serial.println("Not connected to the radio module!"); } ELECHOUSE_cc1101.Init(); ELECHOUSE_cc1101.setGDO0(gdo0); ELECHOUSE_cc1101.setCCMode(2); ELECHOUSE_cc1101.setMHZ(433.92); // Frequency = 433.92MHz ELECHOUSE_cc1101.setDeviation(2.50); // Deviation = 2.5kHz ELECHOUSE_cc1101.setDRate(0.125); // Data rate = 125bps ELECHOUSE_cc1101.setPA(10); // RF output = 10mW ELECHOUSE_cc1101.setPktFormat(0); ELECHOUSE_cc1101.setLengthConfig(1); Serial.println("Tx Mode"); } void loop() { // Beacon message generated every five seconds Serial.println("Sending 2-FSK"); ELECHOUSE_cc1101.setModulation(0); // set modulation mode to 2-FSK ELECHOUSE_cc1101.SendData("2-FSK de G8CKT Billingshurst West Sussex"); delay(5000); Serial.println("Sending GFSK"); ELECHOUSE_cc1101.setModulation(1); // set modulation mode to GFSK ELECHOUSE_cc1101.SendData("GFSK de G8CKT Billingshurst West Sussex"); delay(5000); Serial.println("Sending ASK/OOK"); ELECHOUSE_cc1101.setModulation(2); // set modulation mode to ASK/OOK ELECHOUSE_cc1101.SendData("ASK/OOK de G8CKT Billingshurst West Sussex"); delay(5000); Serial.println("Sending 4-FSK"); ELECHOUSE_cc1101.setModulation(3); // set modulation mode to 4-FSK ELECHOUSE_cc1101.SendData("FSK de G8CKT Billingshurst West Sussex"); delay(5000); Serial.println("Sending MSK"); ELECHOUSE_cc1101.setModulation(4); // set modulation mode to MSK ELECHOUSE_cc1101.SendData("MSK de G8CKT Billingshurst West Sussex"); delay(5000); } Fig.10.15: the output frequency spectrum of the 433MHz multimode beacon. Fig.10.18: the RF relative field strength indicator track layout (underside view). Practical Electronics | August | 2026 25 1591 ABS flame-retardant enclosures Learn more: hammondmfg.com/1591 uksales<at>hammfg.com • 01256 812812 The required 21 track breaks can be made using a spot-face cutter or a small drill bit, while the six links on the upper side of the board can be made using short lengths of tinned copper wire or component lead off-cuts. Take care to observe the correct polarity of Darlington transistor TR1 and diode D1 (the stripe on the package of D1 indicates the cathode). The completed stripboard is mounted, together with the combined VR1/S1, inside a small ABS enclosure. Suitable cases are available from several online suppliers at a reasonable cost. When purchasing, it’s important to check that the di- mensions of the case are sufficient to accommodate the board (25 × 64mm) and 9V battery, while also having sufficient depth to accept the meter movement. The enclosure used for the prototype measured 100 × 68 × 50mm. Fig.10.19 shows the internal wiring of the RF relative field strength meter. The circuit board is mounted in the base of the enclosure alongside the battery. The variable sensitivity control (VR1), on/off switch (S1), LED indicator (D2) and meter (M1) are mounted on the lid. Point-to-point wiring is used to link the lid-mounted components to the board and battery in the main part of the case. The RF input connector (SK1) is mounted on the top of the enclosure. To avoid the need to solder the coaxial connector, we’ve used a ready-made panel-mounting BNC socket with a 15cm pigtail cable and SMA connector (see Fig.10.20). Adjustment The RF voltmeter probe requires initial adjustment of trimpot RV1 for maximum sensitivity. This is accomplished by disconnecting the RF input (remove any antenna) and setting RV1 to its fully anticlockwise position. Next, switch the unit on and advance VR1 to its maximum Fig.10.19: the internal wiring of the RF relative field strength indicator. 26 Practical Electronics | August | 2026 clockwise setting (corresponding to maximum sensitivity). Now carefully adjust RV1, turning it clockwise until the meter pointer just lifts off the zero position. This completes the adjustment and the meter is ready for use by placing the antenna in the RF field to be measured, eg, near a transmitting antenna. A short telescopic antenna fitted with a male BNC connector will work well for most measurements from 3.5MHz to 450MHz, but care should be taken to avoid overloading the detector. Coming up... Next month, our final Teach-In 12 instalment will provide a host of ideas for further exploration. We will supply some information to get you started with shortwave listening, amateur radio and aircraft radio, as well as LoRa and LoRa WAN technology. Our Hands-On constructional project will be a handy RF preamplifier for use with an SDR or conventional HF receiver. See you PE next time! Parts list – RF relative field strength meter 1 47µH axial RF inductor (L1) 1 1mA moving coil meter (M1) 3 2-way 0.1-inch/2.54mm pitch headers (P1-P3) 1 2k miniature horizontal preset (RV1) 1 panel-mount female BNC socket with male SMA 15cm pigtail connector (SK1) 1 10kΩ linear variable resistor with integral switch (VR1/S1) 1 small plastic pointer knob to suit VR1/S1 1 9V PP3 battery and connecting clip Hardware 1 ABS enclosure, at least 100 × 68 × 50mm 4 brass or nylon M3 × 5mm tapped hex standoffs/spacers 4 M3 × 5mm panhead machine screws 4 M3 × 5mm countersunk head machine screws Semiconductors 1 BAT42 Schottky diode (D1) 1 5mm LED (D2) 1 BC517 NPN Darlington transistor, TO-92 (TR1) Capacitors 1 10µF 16V radial electrolytic (C4) 1 47nF 50V ceramic (C2) 1 4.7nF 50V ceramic (C3) 1 100pF 50V ceramic (C1) Resistors (all ¼W axial, ±5% or better) 1 4.7kΩ (R3) 1 3.3kΩ (R1) 1 1kΩ (R2) Fig.10.20: an external view of the completed RF relative field strength indicator. Practical Electronics | August | 2026 27