Silicon ChipIR Remote Control Keyfob - February 2025 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: Staying on Windows 10
  4. Feature: Open-Source Software by Dr David Maddison, VK3DSM
  5. Feature: Using electronic modules - Mini UPS Module by Jim Rowe
  6. Subscriptions
  7. Project: High-Bandwidth Differential Probe by Andrew Levido
  8. Feature: Antenna Analysis, Part 1 by Roderick Wall, VK3YC
  9. Project: Wireless flashing LEDs by Tim Blythman
  10. Project: Transistor tester by Tim Blythman
  11. Feature: The PicoMite 2 by Geoff Graham & Peter Mather
  12. Project: IR Remote Control Keyfob by Tim Blythman
  13. PartShop
  14. Feature: Precision Electronics, Part 4 by Andrew Levido
  15. Project: Programmable Frequency Divider by Nicholas Vinen
  16. Serviceman's Log: Another busman’s holiday by Dave Thompson
  17. PartShop
  18. Vintage Radio: TRF-One AM radio by Dr Hugo Holden
  19. PartShop
  20. Market Centre
  21. Advertising Index
  22. Notes & Errata: Maxwell’s Equations, November 2024; Watering System Controller, August 2023
  23. Outer Back Cover

This is only a preview of the February 2025 issue of Silicon Chip.

You can view 43 of the 104 pages in the full issue, including the advertisments.

For full access, purchase the issue for $10.00 or subscribe for access to the latest issues.

Items relevant to "High-Bandwidth Differential Probe":
  • High-Bandwidth Differential Probe PCB [9015-D or 9051-D] (AUD $5.00)
  • High-Bandwidth Differential Probe PCB pattern (PDF download) [9015-D] (Free)
  • High-Bandwidth Differential Probe panel artwork and drilling details (Free)
Articles in this series:
  • Antenna Analysis, Part 1 (February 2025)
  • Antenna Analysis, Part 1 (February 2025)
  • Antenna Analysis, Part 2 (March 2025)
  • Antenna Analysis, Part 2 (March 2025)
  • Antenna Analysis, Part 3 (April 2025)
  • Antenna Analysis, Part 3 (April 2025)
Items relevant to "Wireless flashing LEDs":
  • Software for JMP021 - Wireless LEDs (Free)
Articles in this series:
  • Wired Infrared Remote Extender (May 2024)
  • Symbol USB Keyboard (May 2024)
  • Wired Infrared Remote Extender (May 2024)
  • Thermal Fan Controller (May 2024)
  • Symbol USB Keyboard (May 2024)
  • Thermal Fan Controller (May 2024)
  • Self Toggling Relay (June 2024)
  • Self Toggling Relay (June 2024)
  • Arduino Clap Light (June 2024)
  • Arduino Clap Light (June 2024)
  • Lava Lamp Display (July 2024)
  • Digital Compass (July 2024)
  • Digital Compass (July 2024)
  • Lava Lamp Display (July 2024)
  • JMP009 - Stroboscope and Tachometer (August 2024)
  • JMP007 - Ultrasonic Garage Door Notifier (August 2024)
  • JMP009 - Stroboscope and Tachometer (August 2024)
  • JMP007 - Ultrasonic Garage Door Notifier (August 2024)
  • IR Helper (September 2024)
  • IR Helper (September 2024)
  • No-IC Colour Shifter (September 2024)
  • No-IC Colour Shifter (September 2024)
  • JMP012 - WiFi Relay Remote Control (October 2024)
  • JMP012 - WiFi Relay Remote Control (October 2024)
  • JMP015 - Analog Servo Gauge (October 2024)
  • JMP015 - Analog Servo Gauge (October 2024)
  • JMP013 - Digital spirit level (November 2024)
  • JMP013 - Digital spirit level (November 2024)
  • JMP014 - Analog pace clock & stopwatch (November 2024)
  • JMP014 - Analog pace clock & stopwatch (November 2024)
  • WiFi weather logger (December 2024)
  • Automatic night light (December 2024)
  • WiFi weather logger (December 2024)
  • Automatic night light (December 2024)
  • BIG LED clock (January 2025)
  • Gesture-controlled USB lamp (January 2025)
  • Gesture-controlled USB lamp (January 2025)
  • BIG LED clock (January 2025)
  • Transistor tester (February 2025)
  • Wireless flashing LEDs (February 2025)
  • Transistor tester (February 2025)
  • Wireless flashing LEDs (February 2025)
  • Continuity Tester (March 2025)
  • RF Remote Receiver (March 2025)
  • Continuity Tester (March 2025)
  • RF Remote Receiver (March 2025)
  • Discrete 555 timer (April 2025)
  • Weather monitor (April 2025)
  • Discrete 555 timer (April 2025)
  • Weather monitor (April 2025)
Items relevant to "Transistor tester":
  • Software for JMP020 - Transistor Tester (Free)
Articles in this series:
  • Wired Infrared Remote Extender (May 2024)
  • Symbol USB Keyboard (May 2024)
  • Wired Infrared Remote Extender (May 2024)
  • Thermal Fan Controller (May 2024)
  • Symbol USB Keyboard (May 2024)
  • Thermal Fan Controller (May 2024)
  • Self Toggling Relay (June 2024)
  • Self Toggling Relay (June 2024)
  • Arduino Clap Light (June 2024)
  • Arduino Clap Light (June 2024)
  • Lava Lamp Display (July 2024)
  • Digital Compass (July 2024)
  • Digital Compass (July 2024)
  • Lava Lamp Display (July 2024)
  • JMP009 - Stroboscope and Tachometer (August 2024)
  • JMP007 - Ultrasonic Garage Door Notifier (August 2024)
  • JMP009 - Stroboscope and Tachometer (August 2024)
  • JMP007 - Ultrasonic Garage Door Notifier (August 2024)
  • IR Helper (September 2024)
  • IR Helper (September 2024)
  • No-IC Colour Shifter (September 2024)
  • No-IC Colour Shifter (September 2024)
  • JMP012 - WiFi Relay Remote Control (October 2024)
  • JMP012 - WiFi Relay Remote Control (October 2024)
  • JMP015 - Analog Servo Gauge (October 2024)
  • JMP015 - Analog Servo Gauge (October 2024)
  • JMP013 - Digital spirit level (November 2024)
  • JMP013 - Digital spirit level (November 2024)
  • JMP014 - Analog pace clock & stopwatch (November 2024)
  • JMP014 - Analog pace clock & stopwatch (November 2024)
  • WiFi weather logger (December 2024)
  • Automatic night light (December 2024)
  • WiFi weather logger (December 2024)
  • Automatic night light (December 2024)
  • BIG LED clock (January 2025)
  • Gesture-controlled USB lamp (January 2025)
  • Gesture-controlled USB lamp (January 2025)
  • BIG LED clock (January 2025)
  • Transistor tester (February 2025)
  • Wireless flashing LEDs (February 2025)
  • Transistor tester (February 2025)
  • Wireless flashing LEDs (February 2025)
  • Continuity Tester (March 2025)
  • RF Remote Receiver (March 2025)
  • Continuity Tester (March 2025)
  • RF Remote Receiver (March 2025)
  • Discrete 555 timer (April 2025)
  • Weather monitor (April 2025)
  • Discrete 555 timer (April 2025)
  • Weather monitor (April 2025)
Items relevant to "The PicoMite 2":
  • PicoMite 2 firmware (Software, Free)
Articles in this series:
  • The Raspberry Pi-based PicoMite (January 2022)
  • The Raspberry Pi-based PicoMite (January 2022)
  • VGA PicoMite (July 2022)
  • VGA PicoMite (July 2022)
  • The PicoMite 2 (February 2025)
  • The PicoMite 2 (February 2025)
Items relevant to "IR Remote Control Keyfob":
  • RFID Programmable IR Fob Remote PCB [15109231] (AUD $2.50)
  • PIC16F15224-I/SL programmed for the RFID Programmable IR Fob Remote [1510923A.HEX] (Programmed Microcontroller, AUD $10.00)
  • RFID Programmable IR Fob Remote complete kit (Component, AUD $25.00)
  • IR$ Remote Control Keyfob firmware [1510923A.HEX] (Software, Free)
  • RFID Programmable IR Fob Remote PCB pattern (PDF download) [15109231] (Free)
  • Sticker artwork for the RFID Programmable IR Fob Remote PCB (Panel Artwork, Free)
Articles in this series:
  • Precision Electronics, Part 1 (November 2024)
  • Precision Electronics, Part 1 (November 2024)
  • Precision Electronics, Part 2 (December 2024)
  • Precision Electronics, Part 2 (December 2024)
  • Precision Electronics, Part 3 (January 2025)
  • Precision Electronics, part one (January 2025)
  • Precision Electronics, part one (January 2025)
  • Precision Electronics, Part 3 (January 2025)
  • Precision Electronics, part two (February 2025)
  • Precision Electronics, Part 4 (February 2025)
  • Precision Electronics, Part 4 (February 2025)
  • Precision Electronics, part two (February 2025)
  • Precision Electronics, part three (March 2025)
  • Precision Electronics, part three (March 2025)
  • Precision Electronics, Part 5 (March 2025)
  • Precision Electronics, Part 5 (March 2025)
  • Precision Electronics, Part 6 (April 2025)
  • Precision Electronics, Part 6 (April 2025)
  • Precision Electronics, part four (April 2025)
  • Precision Electronics, part four (April 2025)
  • Precision Electronics, part five (May 2025)
  • Precision Electronics, Part 7: ADCs (May 2025)
  • Precision Electronics, part five (May 2025)
  • Precision Electronics, Part 7: ADCs (May 2025)
  • Precision Electronics, part six (June 2025)
  • Precision Electronics, part six (June 2025)
Items relevant to "Programmable Frequency Divider":
  • Programmable Frequency Divider/Counter PCB [04108241] (AUD $5.00)
  • PIC16F1455-I/SL programmed for the Programmable Frequency Divider [0410824A.HEX] (Programmed Microcontroller, AUD $10.00)
  • Programmable Frequency Divider kit (Component, AUD $60.00)
  • Software for the Programmable Frequency Divider (04108241A.HEX) (Free)
  • Programmable Frequency Divider/Counter PCB pattern (PDF download) [04108241] (Free)
Items relevant to "TRF-One AM radio":
  • TRF-One PCB pattern (PDF download) (Free)

Purchase a printed copy of this issue for $13.00.

~ Tim Blythman’s NFC Programmable ~ IR Remote Control Keyfob Sometimes you need a small infrared (IR) remote control for just a handful of functions. This remote is about the smallest we’ve seen, it can hang on your keychain and you can make it yourself. It has three buttons that can trigger separate functions that are programmable wirelessly via NFC. W e’ve used the Jaycar XC3718 IR Remote Control for Arduino in several projects, most recently in the Multi-Channel Volume Control from December 2023 and January 2024 (siliconchip.au/Series/409). Its small size is a perfect match for the handful of functions that are needed in that project. Another project that supported that remote is the Eight Channel Learning IR Remote Receiver from October 2024 (siliconchip.au/Article/16669). Unfortunately, the XC3718 remote has been discontinued, so we were keen to find a replacement. Rather than having buttons that send fixed IR codes, and rely on the receiver to be able to adapt to that, we felt we could improve it. It would be handy for such a device to be programmable. The difficulty lies in adding a way to allow codes to be added or changed easily. We don’t want to massively complicate the device with a screen, more buttons etc! Nor would it be ideal to build external hardware to plug into a socket on the keyfob. Luckily, there is a neat solution. You might recall our Dynamic NFC/ RFID Tag from July 2023 (siliconchip. au/Article/15860). It combined a small chip with a PCB trace antenna to create a programmable NFC/RFID tag that can be used to hold and transfer small amounts of information. NFC (near-field communications) is a protocol based on RFID (radio frequency identification) technology. It allows communication with devices over short distances, typically up to 5cm. It’s the technology that’s used in things like contactless credit cards and transit passes. Here, we have used NFC to add 64 Silicon Chip a programming interface to the IR Remote Control. An external device such as a mobile phone becomes the programmer, and the setting can be transferred wirelessly to the Remote Control, without needing a socket or opening the case! The Remote Control is simply placed against the NFC reader on a device (eg, on the back of a mobile phone) and an app is used to control the transfer of data. The NFC chip we are using doesn’t even need external power, so the data can be transferred without a battery fitted to the Remote Control. Other features Since we are using the same chip as the earlier Dynamic NFC/RFID Tag, you can use this device similarly if you wish. The ST25DV04 has 512 bytes of EEPROM that can be used to store all manner of information, as well as the configuration for the Remote Control. Compatible chips with more storage are also available (up to at least 8kiB). The NFC protocol allows up to four different NDEF (NFC Data Exchange Format) records to be stored. Programming the Remote Control only requires a single text format NDEF record to hold the programming data; the remaining space can be used to store any other information you want. For example, an NDEF record can contain a URI to link to a webpage, or a WiFi record that contains the information needed to connect to a WiFi network. It could even contain a virtual business card, embedding data relating to contact details and phone numbers. The MIME record type could contain a complete file, such as an image, Australia's electronics magazine although its utility is somewhat limited by the small amount of memory on the chip. So you could also use the RFID Programmable IR Fob Remote as a portable NFC tag which can be used to pass around information such as webpage links or virtual business cards. The data is transferred by simply tapping the fob against an NFC reader. Circuit details Fig.1 is the complete circuit diagram. Power comes from coin cell BAT1 in a holder, which has a 22μF capacitor across it. This relatively large capacitance helps to even out the demands on the coin cell. Its life­ span can be adversely affected by high loads. A further 100nF capacitor provides local bypassing for IC2, a PIC16F15224 microcontroller. This is a fairly basic 8-bit 14-pin part, but it has PWM and timer features to allow the modulation and timing needed to implement an IR transmitter. This chip also has a very low-power sleep mode, which is handy for a device powered by a small cell. IC2 connects to the CON1 header for in-­ circuit serial programming (ICSP) at its pins 1, 4, 12, 13 and 14. A 10kW pullup on pin 4 sets the microcontroller to run normally unless a programmer overrides this signal. IC1 is the ST25DV04 dynamic NFC tag chip. Pins 2 and 3 connect to a PCB trace inductor which has a nominal inductance around 4.7μH. When combined with the chip’s internal 28.5pF capacitance, it is resonant at NFC’s 13.56MHz frequency. The trace inductor consists of eight loops on the back of the PCB. siliconchip.com.au ● Compact keyfob case: 61 × 36.5 × 15.8mm ● Can attach to a keyring ● Three buttons to trigger the IR emitter ● Power supply: CR2032 lithium coin cell ● Standby current: <1μA ● Active current: 3mA ● Status indicator: red/green LED ● IR protocols supported: NEC, Sony SIRC and Philips RC5 & RC6 ● Low battery indicator ● Integrated NFC tag ● Programmable with ST25 NFC Tap mobile app ● Can work with our Multi-channel Volume Control, Eight Channel Learning IR Remote Receiver and other projects IC1’s pin 4 is ground, while power on pin 8 is supplied by IC2’s pin 8, along with a 100nF bypass capacitor. This means that IC2 can completely power off IC1 by setting that pin low (although IC1 can still get power from its antenna in that case). Pins 6 and 7 of IC2 connect to pins 5 and 6 of IC1 for the I2C interface; each also has the requisite 4.7kW pullup to the switched power line. Tactile pushbuttons S1, S2 and S3 connect to pins 5, 3 and 2 of IC2 respectively, with the other sides connected to ground. The microcontroller applies an internal pullup to those pins so that the switch state can be detected; these pins are in a high state until the button is pressed, then it goes low. The remaining circuitry drives the infrared (IR) transmitter LED2, and a bicolour indicator LED1. LED1’s red and green junctions are in inverse parallel with other, with both in series with a 2.2kW resistor connected between pins 9 and 10 of IC2. By driving one pin high and the other low, either the red or green LED can be lit. The section around IR LED LED2 has been designed to provide high bursts of current to drive the transmitter, while at the same time enforcing a low average current draw on the coin cell. The 470W resistor and 22μF capacitor provide a local buffer, while the 100W resistor limits the peak current. With the values used, the average current draw of LED2 during transmission is 2mA, while the IR LED sees peaks of 15mA, which gives a good compromise between transmission power and the draw on the coin cell. LED1 and IC2 will also draw current while the transmitter is active, adding to the load on the cell. siliconchip.com.au This simple circuitry only switches the IR LED to be on when IC2’s pin 11 takes Mosfet Q1’s gate high, and off when pin 11 is low. The microcontroller must modulate the signal to suit the receiver detection frequency and the expected protocol. Firmware The microcontroller runs with a 2MHz instruction clock, much lower than its 8MHz maximum. That reduces its current draw when it is active by about 2mA. If the clock was much slower, the micro would struggle to generate the necessary waveforms for IR transmission. The micro is normally in sleep mode and it draws less than 1μA. Our Coin Cell Emulator from December 2023 (siliconchip.au/Article/16046) gives a reading of 0.0μA in this state! Thus, the cell life will be dominated by how much the Remote Control is used and the cell’s shelf life. When a button is pressed, the micro ‘wakes up’ from sleep mode and acts upon the button presses. When the buttons are released and transmission has ceased, the micro checks the supply voltage. If it is 2.6V or higher, the green LED in LED1 is flashed briefly; otherwise, it flashes red. This is a simple but effective battery status indicator. The IR transmitter combines a timer and PWM peripheral to generate the IR modulation, which can vary between 36kHz and 40kHz, depending on the Fig.1: the Remote Control circuit is straightforward. IC1 is powered from one of IC2’s I/O pins, allowing it to be fully powered off to minimise battery drain. The circuit around Q1 and LED2 allows LED2 to be driven at 15mA peak while limiting the draw on the coin cell to only 3mA. Australia's electronics magazine February 2025  65 NFC programming That IC1 can be programmed via its RF interface is completely transparent to the rest of the circuit. Its electrical interface is much the same as many I2C EEPROM devices, although its contents also include a header identifying the size and nature of the data, which needs to be read and validated before the data is processed. In the event that all three buttons are pressed at the same time, the micro quickly alternates the green and red LEDs to alert the user. When the buttons are released, it powers on IC1 and attempts to read an NDEF text record from its internal memory, then powers down IC1 immediately. If the read is successful and correctly formatted data is found, the codes are loaded into memory and are available for use the next time any of the buttons are pressed. During this sequence, LED1 blinks in various patterns to report on the status of the programming. We’ll discuss the text format, programming and LED colour codes in more detail later, as well as the use of the ST25 NFC Tap mobile app. Construction The PP43 fob enclosure that we are using for this project comes equipped with buttons (to actuate the switches) and a 3mm hole that suits LED1. However, since these cases are designed to house RF transmitters, they lack a hole for the IR LED. We recommend adding this hole as the first step, since it will be easier and neater to tweak the location of the IR LED than to modify the hole in the case. You can use the PCB to mark it out, or use the measurements in the Fig.2 drilling diagram. Firmly tape the two case halves together. The hole is centred on the division between the two halves. We found it worked well enough to drill both 2.2kW LED1 K Figs.3 & 4: most of the components on the front of the PCB are M3216/1206 passives or SOIC chips, so they should be easy enough to solder, even for those inexperienced with surfacemount work. Don’t forget to fit the two components on the back of the PCB. The 22μF capacitor helps protect the coin cell from brief high-current demands that could shorten its life. This diagram is shown at 175% scale. 66 Silicon Chip 22m F S1 IC1 K 100W S2 100nF PCB assembly The remaining parts can now be fitted to the PCB. They are mostly SOIC or M3216/1206-sized SMD devices, along with some through-hole parts. So it is easy enough to construct even if you have had minimal experience working with SMD parts. At a minimum, you will need a syringe of flux paste and tweezers if you are accustomed to working with through-hole parts. Your flux will likely recommend a cleaning solvent; if not, isopropyl alcohol works well for most fluxes (you can use methylated spirits in a pinch). We also recommend you keep on hand some solder-wicking braid, a magnifier and a fume extraction fan. If you don’t have such a fan, work near an open window or outdoors. Working on a uniform light-coloured background will help you find any parts that you drop, and a magnifying lamp can also be helpful. S3 100nF Q1 4.7kW BAT1 4.7kW 10kW IC2 CON1 CR–2032 10kW 22mF + Fig.2: you can use the dimensions here to locate the hole for the 5mm IR LED, or simply slot the PCB into place and use it to place marks on the case. There is a locating pin on the case to ensure that the PCB is aligned. 470W halves at the same time as long as they were securely held together. Check our photos to confirm the placement of the hole and start with a smaller pilot hole to locate it accurately. You can see that the hole sits underneath the black button. It is a 5mm diameter hole and, of course, it goes in the opposite end of the case from where a keyring would attach. The metal battery tabs included with the case are not needed since we are using a cell holder fitted to the PCB. LED2 protocol. The processor encodes the IR signal as a series of active and inactive phases at the carrier frequency. The Remote Control supports the NEC, Sony (SIRC) and Philips (RC5 and RC6) protocols. John Clarke explained all of these in detail in the article on the Eight Channel Learning IR Remote Receiver. An interrupt is triggered on each PWM cycle, providing the timing to step through the active and inactive phases of the encoded signal. LED1 is driven in time with the active phases of the IR signal, to give confirmation that transmission is occurring. The colour reflects the battery state; it flashes green if the battery is fine or red if its voltage is low. When the transmission cycle ends, the buttons are checked and the IR transmission continues if the button is held down. For most protocols, that means simply repeating the previously sent sequence, but the NEC protocol uses a special repeat packet instead. Australia's electronics magazine siliconchip.com.au Proceed to fit the parts in the locations shown in the Fig.3 and Fig.4 overlay diagrams. Start with Q1, the only SOT-23 device. Smear a tiny bit of flux paste on its pads (that will make soldering much easier) and rest it in place according to the silkscreen marking, with its leads flat against the PCB. Tack one lead, then check the positioning of the remaining pins over their pads and adjust as needed by remelting the solder. With it correctly located, solder the remaining leads and refresh the first lead by adding a tiny amount of extra flux paste before touching the iron to it. The same process can be used to solder IC1 & IC2. Before soldering any pins, it’s most important that you identify pin 1 on the IC, which is usually indicated by a dot or divot in one corner. Failing that, look for a chamfered edge along one side. With that side on the left and the writing facing you, pin 1 will be at upper left. Match each chip’s pin 1 with the markings on the PCB and Figs.3 & 4. Solder these parts in place, just like Q1. If you get a solder bridge between two pins, leave it in until all the leads are soldered. To remove a bridge, add more flux, then gently push the braid against the solder with the iron. When it draws in the excess solder, gently slide both away from the part. Now you can fit the four capacitors using the same technique. There are two 100nF parts, one adjacent to each IC. These will be thinner than the 22μF parts. One 22μF part is near the top of the PCB, while the other is on the back. The resistors will be marked with value codes (see the parts list). Make sure that the values match the silkscreen and overlay in Fig.3. There are seven resistors to be fitted. Next, solder the cell holder in place. Align it with the markings on the PCB, being sure that the cell entry faces the corner of the PCB near the BAT1 marker on the silkscreen. You can also compare its orientation to the photos. Take care to line it up correctly, since it may prevent the screw being fitted if it is too close to the edge of the board. Apply a little solder to one pad, then check its position. If you’re happy with that, apply a generous amount of solder to both pads to give mechanical strength. That completes the surface-mounting parts, so clean off any excess flux using your solvent and allow the board Parts List – IR Remote Control Keyfob siliconchip.com.au Australia's electronics magazine 1 double-sided PCB coded 15109231, 30.5 × 52mm 1 Supertronic PP43 keyfob enclosure 1 2032-size SMD coin cell holder (BAT1) [eg, Linx BAT-HLD-001] 1 CR2032 or CR2025 3V lithium coin cell (BAT1) ♦ 1 5-way pin header, 2.54mm pitch (CON1; optional, for ICSP) ♦ 3 4.3mm-high 6×6mm through-hole tactile switches (S1-S3) 1 M2×6mm Nylon machine screw and hex nut 1 lid label sticker Semiconductors 1 ST25DV04K-IER6S3 (or equivalent) dynamic RFID tag chip, SOIC-8 (IC1) 1 PIC16F15224-I/SL 8-bit microcontroller programmed with 1510923A.HEX, SOIC-14 (IC2) 1 3mm bicolour (red/green) LED (LED1) 1 5mm IR emitter LED (LED2) [TSAL6200 recommended] 1 2N7002 N-channel Mosfet, SOT-23 (Q1) Capacitors (all SMD M3216/1206, X7R ceramic) 2 22μF 10V 2 100nF 50V Resistors (all SMD M3216/1206, 1%, ⅛W) 2 10kW (code 1002 or 103) 2 4.7kW (code 4701 or 472) 1 2.2kW (code 2201 or 222) 1 470W (code 470R or 471) 1 100W (code 100R or 101) This Remote Control will easily fit in your pocket and can trigger up to three different functions. It makes the perfect compact companion for devices like the Eight Channel Learning IR Remote Receiver. The PCB slots into the case and aligns with a pin moulded into its base. The ICSP (in-circuit serial programming) header can be left in place. Note the screw to prevent the coin cell being removed by children. Both images are shown enlarged for clarity. SC7421 Kit ($25 + P&P): includes all parts listed except the two marked with ♦. The microcontroller is pre-programmed, but the NFC chip will be blank. February 2025  67 to dry thoroughly. Take the time to inspect it under magnification for bridges or bad solder joints, since they will be easier to correct now than later. Through-hole parts Bend IR LED2’s leads at right angles directly behind the body. Make sure they are bent in the right direction, such that the shorter cathode lead will go into the hole marked K on the PCB. Push it into the holes and solder one of the leads so that the lens points out parallel to the PCB, then trim both leads (leave the unsoldered one long enough to solder later). You can now place the PCB in the bottom of the case and confirm that LED2 lines up with the hole. Having only one lead soldered will make it easier to adjust the position. Once it is aligned with the hole, solder the other lead. Next, fit the three tactile switches. These must be no more than 4.3mm high; any taller and they would be permanently depressed by the case buttons. They must also be mounted flat against the PCB for the same reason. You can now use the PCB along with the top half of the case to check the position of the bicolour LED, LED1. Its top lip should sit no more than 7mm above the PCB. The K cathode marking on the PCB corresponds to the cathode of the red LED in the package. Test this with a multimeter set to diode mode. When the LED lights up red, the pin connected to the multimeter’s black lead is the one that should be placed in the hole marked K. If you have a pre-programmed chip for IC2, you can fit a coin cell and test the LED’s operation. Pressing and holding one of the buttons should cause the LED to flicker and flash green, assuming a fresh cell has been fitted. If it’s red instead, you should swap its leads. Programming IC2 The hole shown in Fig.2 allows the IR emitter LED to poke out through the end of the case, as seen here. Note the location relative to the buttons. 68 Silicon Chip The ICSP header is only needed if you have to program a blank chip for IC2. A standard height (11mm total) header strip will not foul the case when fitted, so we recommend that you solder this in place and leave it; it will not affect the operation at all. The software we use for programming PICs is Microchip’s IPE (integrated programming interface), which can be downloaded as part of the MPLAB X IDE from www.microchip. com/en-us/tools-resources/develop/ mplab-x-ide A Snap, PICkit 4 or PICkit 5 programmer can be used for programming. A coin cell should be fitted to provide power if needed; for example, the Snap cannot provide power. Connect the programmer to the CON1 header, aligning the pin 1 arrows on the programmer and PCB. Choose the PIC16F15224 as the part, click connect and confirm that communication is established. If powering IC2 from the programmer (PICkit), you will need to enable that before clicking the connect button. Load the HEX file, program it into the chip and check that Australia's electronics magazine it verifies correctly. The LED should briefly flash green as programming finishes or when you disconnect the programmer. Final assembly Fit the cell (+ side up) and secure it with the machine screw and nut through the adjacent hole, feeding the screw from the bottom of the PCB. The case should neatly snap together around the PCB. Check that the buttons actuate correctly and the LED lights up as described earlier. If the LED lights when no button is pressed, one of the switches may be stuck. Check the solder joints on the back of the PCB and trim down any that are too tall. The PCB should slot neatly into the case and sit flat. The default programming is to suit the Multi-channel Volume Control, with the red and blue buttons increasing and decreasing the volume, respectively (think hotter and colder!). The black button controls the mute function. The default codes are for an NEC device at address 0, with command codes 21 (red), 7 (blue) and 67 (black). You might see these values reported differently on some systems. An example is the Micromite or PicoMite IR decoder, which will report codes 168, 224 and 194 respectively because it uses a reversed bit order. The device code is still reported as 0 as the bits are the same when reversed. Simple hardware, such as the IR Keyboard we created in August 2018 (Turn any PC into a media centre; siliconchip.au/Article/11195), can also be used to interact with this and other IR transmitters. The excellent irremote Arduino library makes it easy to receive all sorts of IR signals. Programming the NFC chip To use the Remote Control with other hardware, you will need to program it to use new codes. First, you need to determine the protocols and codes to use. If you do not have a manual or other reference for these, hardware similar to the IR Keyboard can be used to read codes from an existing remote. The Arduino irremote library comes with a sample sketch called “ReceiveDump”, which reports the protocol and details of received IR signals. We used this extensively during our testing of the Remote Control to check that it was delivering the correct codes. siliconchip.com.au The NDEF text record required to program the Remote is much the same as a CSV (comma separated variable) file. The first field in each row is a code that identifies the protocol; the codes and protocols are listed in Table 1. The next field is the address code in decimal, followed by the command or data field, also in decimal. You will need the ST25 NFC Tap mobile app and a device that has NFC capabilities. We used an Android phone and downloaded the app from the Play Store (siliconchip.au/link/ ac38). We haven’t tested it, but the app also appears on the Apple App Store (siliconchip.au/link/ac39). There may be other apps that will work; we previously tried the NXP TagInfo and TagWriter apps. Any app that can read and write NFC NDEF records should work. Screen 1 shows the welcome screen Table 1 – protocol codes for RFID Programmable IR Fob Remote for the ST25 NFC Tap. Hold the back of the Remote Control against the back of the phone (or other device). Screen 2 shows what you will see when the NFC tag in the Remote Control is read. Tap the NDEF tab to see Screen 3, then the blue button at bottom right and select the option to add a plain NDEF text record to the tag. Screen 4 shows the text field; you simply enter the codes and values as shown, pressing the Enter key between each line. The red button is on the first line, blue on the second and black on the third. When you have finished making changes, save the new text to the tag using the save button at top tight. The ST25 app uses a line feed (LF, ASCII 0xA) as the line separator, so if you use a different app, make sure that this is the same. The values shown in Screen 4 are equivalent to the default settings provided by the Remote Control. You can also add an extra column with notes or comments about each line. Just be sure to separate it from the other values with a comma and be aware of the limited memory available. There are many other things that you can do with the app. For example, Screen 3 has a copy button at top right that can be used to clone tags. Screen 1: the ST25 NFC Tap comes from STMicroelectronics, who produce the ST25 range of chips. It’s a good idea to open the app before scanning a tag. Otherwise, your device might open a different app when the tag is brought near. Screen 2: when a tag is first scanned, some basic information is provided, including the serial number. The tabs along the top provide more options. Screen 3: a blank tag will have no NDEF records yet. The blue button at the bottom right of this page allows records to be added. siliconchip.com.au Addr. Protocol Code bits Cmnd. bits NEC N 8 8 Philips RC5 5 5 6 Philips RC6 6 8 8 Sony 12-bit S 5 7 Sony 15-bit T 8 7 Sony 20-bit U 13 7 Australia's electronics magazine February 2025  69 The Memory tab can be used to read, write or erase the tag’s EEPROM. If a tag is not working correctly, you can try erasing the EEPROM and rewriting the settings. The Memory tab also allows the tag contents to be read from or written to a file. The DEFAULT.BIN file in the downloads for this project can be written to the tag to similarly reset it to containing the default IR codes. You can add other NDEF records to the tag. In our experience, a device will typically act on the first valid record that it recognises. So if you wish to add an alternative record for people to scan (such as a WiFi handover record or URI record), we suggest adding it before the text record for the Remote Control. Non-text records are simply ignored by the microcontroller. Remote Control use While the above process writes a set of codes to IC1, these are not automatically loaded. Instead, the buttons are used to do this under user control. Pressing all three buttons at the same time will trigger the read sequence. While the buttons are held down, the LED will alternate red and green. Releasing the buttons starts the reading process. Firstly, IC2 checks if IC1 is present and if it is not, the LED flashes red once for about a second. If IC1 is present but no NDEF text record is found, then nothing is shown on the LED. This can be expected with a blank NFC chip, such as if construction has just been completed. If a valid NDEF text record is found, the LED will flash once for each of the three button codes, in order from left to right, green if it is valid or red if it is not. If it is valid, the code will be updated; otherwise, the current code is kept. After this, normal operation resumes and you should see a brief flash indicating the battery status. In general, the code requires a valid protocol code as per Table 1. The address and command values provided must fit within the number of bits prescribed. For example, a value of 256 for either the address or command of an NEC code would be invalid, since these are eight-bit values and 256 requires nine bits to encode. After programming, the Remote Control operates with the new codes. Simply push each button and the corresponding IR code will be sent for as long as the button is held down. If a second button is pressed, while the first is still down, the first code will continue until the first button is released, then the second code will start. If you start to see the LED flashing red instead of green during operation, then the battery is getting low; down around 2.6V. The circuit itself will function down to near 2.0V, but IR range will suffer due to the lower SC current provided to LED2. Completion We’ve created a label for the keyfob shown below. There’s space for functions to be added in permanent marker below each button on the sticker. The kit for this project will include a sticker with this artwork – attach it to the front of the fob case. As we noted, the files in downloads include a DEFAULT. BIN file (containing the values seen in Screen 4) that can be written directly to the EEPROM, if you wish to experiment with it. The downloads also include the HEX file for programming the microcontroller and the MPLAB X project files. Screen 4: the text shown here matches the default settings of the remote control. The text can be stored to the tag with the SAVE button (floppy disk icon) at upper right. 70 Silicon Chip Screen 5: the Memory tab provides access to low-level read and write functions. You can also store the tag contents to a file. Australia's electronics magazine There are spaces on this label to add a legend for each button so you know what it does. This will be provided as a sticker in kits purchased from the Silicon Chip Shop, and will also be available to download. siliconchip.com.au