Silicon ChipMicrochip's new PICkit 5 - November 2023 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: Computer keyboards need an update / Australia Post wants to put prices up again!
  4. Feature: The History of Electronics, Pt2 by Dr David Maddison
  5. Product Showcase
  6. Project: Pico Audio Analyser by Tim Blythman
  7. Feature: 16-bit precision 4-input ADC by Jim Rowe
  8. Project: K-Type Thermostat by John Clarke
  9. Review: Microchip's new PICkit 5 by Tim Blythman
  10. Project: Modem/Router Watchdog by Nicholas Vinen
  11. Project: 1kW+ Class-D Amplifier, Pt2 by Allan Linton-Smith
  12. Serviceman's Log: Charge of the light yardwork by Dave Thompson
  13. PartShop
  14. Subscriptions
  15. Vintage Radio: Recreating Sputnik-1, Part 1 by Dr Hugo Holden
  16. Market Centre
  17. Advertising Index
  18. Notes & Errata: Watering System Controller
  19. Outer Back Cover

This is only a preview of the November 2023 issue of Silicon Chip.

You can view 47 of the 112 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.

Articles in this series:
  • The History of Electronics, Pt1 (October 2023)
  • The History of Electronics, Pt1 (October 2023)
  • The History of Electronics, Pt2 (November 2023)
  • The History of Electronics, Pt2 (November 2023)
  • The History of Electronics, Pt3 (December 2023)
  • The History of Electronics, Pt3 (December 2023)
  • The History of Electronics, part one (January 2025)
  • The History of Electronics, part one (January 2025)
  • The History of Electronics, part two (February 2025)
  • The History of Electronics, part two (February 2025)
  • The History of Electronics, part three (March 2025)
  • The History of Electronics, part three (March 2025)
  • The History of Electronics, part four (April 2025)
  • The History of Electronics, part four (April 2025)
  • The History of Electronics, part five (May 2025)
  • The History of Electronics, part five (May 2025)
  • The History of Electronics, part six (June 2025)
  • The History of Electronics, part six (June 2025)
Items relevant to "Pico Audio Analyser":
  • Pico (2) Audio Analyser PCB [04107231] (AUD $5.00)
  • 1.3-inch blue OLED with 4-pin I²C interface (Component, AUD $15.00)
  • 1.3-inch white OLED with 4-pin I²C interface (Component, AUD $15.00)
  • Short-form kit for the Pico 2 Audio Analyser (Component, AUD $50.00)
  • Pico Audio Analyser PCB pattern (PDF download) [04107231] (Free)
  • Pico Audio Analyser firmware (0410723A) (Software, Free)
  • Pico Audio Analyser box cutting details (Panel Artwork, Free)
Articles in this series:
  • Pico Audio Analyser (November 2023)
  • Pico Audio Analyser (November 2023)
  • Pico 2 Audio Analyser (March 2025)
  • Pico 2 Audio Analyser (March 2025)
Articles in this series:
  • El Cheapo Modules From Asia - Part 1 (October 2016)
  • El Cheapo Modules From Asia - Part 1 (October 2016)
  • El Cheapo Modules From Asia - Part 2 (December 2016)
  • El Cheapo Modules From Asia - Part 2 (December 2016)
  • El Cheapo Modules From Asia - Part 3 (January 2017)
  • El Cheapo Modules From Asia - Part 3 (January 2017)
  • El Cheapo Modules from Asia - Part 4 (February 2017)
  • El Cheapo Modules from Asia - Part 4 (February 2017)
  • El Cheapo Modules, Part 5: LCD module with I²C (March 2017)
  • El Cheapo Modules, Part 5: LCD module with I²C (March 2017)
  • El Cheapo Modules, Part 6: Direct Digital Synthesiser (April 2017)
  • El Cheapo Modules, Part 6: Direct Digital Synthesiser (April 2017)
  • El Cheapo Modules, Part 7: LED Matrix displays (June 2017)
  • El Cheapo Modules, Part 7: LED Matrix displays (June 2017)
  • El Cheapo Modules: Li-ion & LiPo Chargers (August 2017)
  • El Cheapo Modules: Li-ion & LiPo Chargers (August 2017)
  • El Cheapo modules Part 9: AD9850 DDS module (September 2017)
  • El Cheapo modules Part 9: AD9850 DDS module (September 2017)
  • El Cheapo Modules Part 10: GPS receivers (October 2017)
  • El Cheapo Modules Part 10: GPS receivers (October 2017)
  • El Cheapo Modules 11: Pressure/Temperature Sensors (December 2017)
  • El Cheapo Modules 11: Pressure/Temperature Sensors (December 2017)
  • El Cheapo Modules 12: 2.4GHz Wireless Data Modules (January 2018)
  • El Cheapo Modules 12: 2.4GHz Wireless Data Modules (January 2018)
  • El Cheapo Modules 13: sensing motion and moisture (February 2018)
  • El Cheapo Modules 13: sensing motion and moisture (February 2018)
  • El Cheapo Modules 14: Logarithmic RF Detector (March 2018)
  • El Cheapo Modules 14: Logarithmic RF Detector (March 2018)
  • El Cheapo Modules 16: 35-4400MHz frequency generator (May 2018)
  • El Cheapo Modules 16: 35-4400MHz frequency generator (May 2018)
  • El Cheapo Modules 17: 4GHz digital attenuator (June 2018)
  • El Cheapo Modules 17: 4GHz digital attenuator (June 2018)
  • El Cheapo: 500MHz frequency counter and preamp (July 2018)
  • El Cheapo: 500MHz frequency counter and preamp (July 2018)
  • El Cheapo modules Part 19 – Arduino NFC Shield (September 2018)
  • El Cheapo modules Part 19 – Arduino NFC Shield (September 2018)
  • El cheapo modules, part 20: two tiny compass modules (November 2018)
  • El cheapo modules, part 20: two tiny compass modules (November 2018)
  • El cheapo modules, part 21: stamp-sized audio player (December 2018)
  • El cheapo modules, part 21: stamp-sized audio player (December 2018)
  • El Cheapo Modules 22: Stepper Motor Drivers (February 2019)
  • El Cheapo Modules 22: Stepper Motor Drivers (February 2019)
  • El Cheapo Modules 23: Galvanic Skin Response (March 2019)
  • El Cheapo Modules 23: Galvanic Skin Response (March 2019)
  • El Cheapo Modules: Class D amplifier modules (May 2019)
  • El Cheapo Modules: Class D amplifier modules (May 2019)
  • El Cheapo Modules: Long Range (LoRa) Transceivers (June 2019)
  • El Cheapo Modules: Long Range (LoRa) Transceivers (June 2019)
  • El Cheapo Modules: AD584 Precision Voltage References (July 2019)
  • El Cheapo Modules: AD584 Precision Voltage References (July 2019)
  • Three I-O Expanders to give you more control! (November 2019)
  • Three I-O Expanders to give you more control! (November 2019)
  • El Cheapo modules: “Intelligent” 8x8 RGB LED Matrix (January 2020)
  • El Cheapo modules: “Intelligent” 8x8 RGB LED Matrix (January 2020)
  • El Cheapo modules: 8-channel USB Logic Analyser (February 2020)
  • El Cheapo modules: 8-channel USB Logic Analyser (February 2020)
  • New w-i-d-e-b-a-n-d RTL-SDR modules (May 2020)
  • New w-i-d-e-b-a-n-d RTL-SDR modules (May 2020)
  • New w-i-d-e-b-a-n-d RTL-SDR modules, Part 2 (June 2020)
  • New w-i-d-e-b-a-n-d RTL-SDR modules, Part 2 (June 2020)
  • El Cheapo Modules: Mini Digital Volt/Amp Panel Meters (December 2020)
  • El Cheapo Modules: Mini Digital Volt/Amp Panel Meters (December 2020)
  • El Cheapo Modules: Mini Digital AC Panel Meters (January 2021)
  • El Cheapo Modules: Mini Digital AC Panel Meters (January 2021)
  • El Cheapo Modules: LCR-T4 Digital Multi-Tester (February 2021)
  • El Cheapo Modules: LCR-T4 Digital Multi-Tester (February 2021)
  • El Cheapo Modules: USB-PD chargers (July 2021)
  • El Cheapo Modules: USB-PD chargers (July 2021)
  • El Cheapo Modules: USB-PD Triggers (August 2021)
  • El Cheapo Modules: USB-PD Triggers (August 2021)
  • El Cheapo Modules: 3.8GHz Digital Attenuator (October 2021)
  • El Cheapo Modules: 3.8GHz Digital Attenuator (October 2021)
  • El Cheapo Modules: 6GHz Digital Attenuator (November 2021)
  • El Cheapo Modules: 6GHz Digital Attenuator (November 2021)
  • El Cheapo Modules: 35MHz-4.4GHz Signal Generator (December 2021)
  • El Cheapo Modules: 35MHz-4.4GHz Signal Generator (December 2021)
  • El Cheapo Modules: LTDZ Spectrum Analyser (January 2022)
  • El Cheapo Modules: LTDZ Spectrum Analyser (January 2022)
  • Low-noise HF-UHF Amplifiers (February 2022)
  • Low-noise HF-UHF Amplifiers (February 2022)
  • A Gesture Recognition Module (March 2022)
  • A Gesture Recognition Module (March 2022)
  • Air Quality Sensors (May 2022)
  • Air Quality Sensors (May 2022)
  • MOS Air Quality Sensors (June 2022)
  • MOS Air Quality Sensors (June 2022)
  • PAS CO2 Air Quality Sensor (July 2022)
  • PAS CO2 Air Quality Sensor (July 2022)
  • Particulate Matter (PM) Sensors (November 2022)
  • Particulate Matter (PM) Sensors (November 2022)
  • Heart Rate Sensor Module (February 2023)
  • Heart Rate Sensor Module (February 2023)
  • UVM-30A UV Light Sensor (May 2023)
  • UVM-30A UV Light Sensor (May 2023)
  • VL6180X Rangefinding Module (July 2023)
  • VL6180X Rangefinding Module (July 2023)
  • pH Meter Module (September 2023)
  • pH Meter Module (September 2023)
  • 1.3in Monochrome OLED Display (October 2023)
  • 1.3in Monochrome OLED Display (October 2023)
  • 16-bit precision 4-input ADC (November 2023)
  • 16-bit precision 4-input ADC (November 2023)
  • 1-24V USB Power Supply (October 2024)
  • 1-24V USB Power Supply (October 2024)
  • 14-segment, 4-digit LED Display Modules (November 2024)
  • 0.91-inch OLED Screen (November 2024)
  • 0.91-inch OLED Screen (November 2024)
  • 14-segment, 4-digit LED Display Modules (November 2024)
  • The Quason VL6180X laser rangefinder module (January 2025)
  • TCS230 Colour Sensor (January 2025)
  • The Quason VL6180X laser rangefinder module (January 2025)
  • TCS230 Colour Sensor (January 2025)
  • Using Electronic Modules: 1-24V Adjustable USB Power Supply (February 2025)
  • Using Electronic Modules: 1-24V Adjustable USB Power Supply (February 2025)
Items relevant to "K-Type Thermostat":
  • Thermocouple Thermometer/Thermostat main PCB [04108231] (AUD $7.50)
  • Thermocouple Thermometer/Thermostat front panel PCB [04108232] (AUD $2.50)
  • PIC16F1459-I/P programmed for the Thermocouple Thermometer/Thermostat (0410823A.HEX) (Programmed Microcontroller, AUD $10.00)
  • MCP1700 3.3V LDO (TO-92) (Component, AUD $2.00)
  • K-Type Thermocouple Thermometer/Thermostat short-form kit (Component, AUD $75.00)
  • K-Type Thermocouple Thermometer/Thermostat firmware (0410823A.HEX) (Software, Free)
  • K-Type Thermocouple Thermometer/Thermostat PCB pattern (PDF download) [04108231] (Free)
  • K-Type Thermostat panel artwork (PDF download) (Free)
Items relevant to "Modem/Router Watchdog":
  • Modem Watchdog PCB [10111231] (AUD $2.50)
  • Modem/Router Watchdog kit (Component, AUD $35.00)
  • Modem/Router Watchdog Software (Free)
  • Modem Watchdog PCB pattern (PDF download) [10111231] (Free)
Items relevant to "1kW+ Class-D Amplifier, Pt2":
  • 1kW+ Mono Class-D Amplifier cutting and drilling details (Panel Artwork, Free)
Articles in this series:
  • 1kW+ Class-D Amplifier, Pt1 (October 2023)
  • 1kW+ Class-D Amplifier, Pt1 (October 2023)
  • 1kW+ Class-D Amplifier, Pt2 (November 2023)
  • 1kW+ Class-D Amplifier, Pt2 (November 2023)
Items relevant to "Recreating Sputnik-1, Part 1":
  • Sputnik design documents and Manipulator sound recording (Software, Free)
Articles in this series:
  • Recreating Sputnik-1, Part 1 (November 2023)
  • Recreating Sputnik-1, Part 1 (November 2023)
  • Recreating Sputnik-1, Part 2 (December 2023)
  • Recreating Sputnik-1, Part 2 (December 2023)

Purchase a printed copy of this issue for $12.50.

Microchip PICkit 5 and MPLAB X v6.10/.15 We frequently work with Microchip microcontrollers, so we were keen to try the new PICkit 5. Microchip Technology kindly sent us a sample. This was also our introduction to the latest version of their free MPLAB X software, which has several new features. Review by Tim Blythman S ince we primarily use Microchip’s PIC microcontrollers for our projects, we’re keen to stay up-to-date with the latest hardware and tools for programming and debugging them. The PICkit range is intended as a low-cost tool for evaluation and development. It stretches back to the original PICkit 1 from 2003. They offer other devices, such as the ICD 5, which are more capable and provide more features, such as device emulation. In 2016, Microchip Technology purchased Atmel Corporation, best known for their 8-bit AVR microcontrollers and 32-bit ARM chips. In 2018, they released the PICkit 4, which introduced support for the chips previously made by Atmel. Earlier PICkits had a six-pin programming header; the PICkit 4 introduced an 8-pin header to handle a broader range of chips and programming protocols. The PICkit 5 is a direct update to the PICkit 4 and keeps the same 8-pin socket. MPLAB X IDE is the software we use most to develop firmware for PIC microcontrollers. With an appropriate compiler installed, it allows you to write programs in C or assembly language. Version 6.10 is the first version to support the PICkit 5 (until recently, we were using v6.00). Version 6.15 was released while we were writing this article. Later, we’ll discuss the MPLAB X IDE, focusing on new features introduced over the last few years. “IDE” stands for integrated development environment and describes software with the necessary tools for writing, testing and deploying software. The MPLAB X IDE includes (among many other features) a text editor, compiler integration, a debugger and a programmer interface. When we reviewed the PICkit 4 in the September 2018 issue (siliconchip.au/ Article/11237), we found it substantially faster than its To program recent Microchip microcontrollers, you’ll need a PICkit 4, Snap or PICkit 5. They all contain a SAM E70 processor, but only the PICkit 5 has Bluetooth and the ability to connect to the MPLAB PTG app. The yellow wire on the Snap is a modification we described on page 69 of the June 2021 issue. 62 Silicon Chip Australia's electronics magazine predecessor, especially for in-circuit debugging. That article also explains what in-circuit debugging involves. For more background on MPLAB X, see our introductory guide in the January 2021 issue (siliconchip.au/ Article/14707). That article also covered setting up and using MPLAB X, specifically version 5.40. In case you aren’t familiar, we’ve provided a Glossary at the end of the article, explaining some of the terms that are in this article. The PICkit 5 The PICkit 5 comes in a black plastic enclosure of about 85 × 43 × 13mm. Most of the front is covered by a brushed aluminium panel with the Microchip and MPLAB PICkit 5 logos. Protruding about 5mm is an eightpin header socket at one end and a USB-C socket at the other. The back has a microSD card slot. Included in the box with the PICkit 5 is a USB-A to USB-C cable, about a metre long, plus a sheet of PICkit 5 stickers. A small hole near the USB socket provides access to an emergency recovery button. On an adjacent corner is a hole for a lanyard to be attached. The PICkit 5 is almost identical in appearance to the PICkit 4. Apart from the front panel label, the only external difference is the change in the USB socket to USB-C. This is a welcome but not unexpected upgrade. So much equipment seems to wear out or break at the USB connector; the more robust USB-C socket will hopefully avoid that and also provides commonality with most modern smartphones and tablets. The other big difference is that the PICkit 5 incorporates a Bluetooth 5.0 module. The intent is for the PICkit 5 to siliconchip.com.au Fig.1: although it might look like a simple device, you can see that there are quite a few parts needed for the PICkit 5 to do all that it does. communicate with a smartphone running the MPLAB PTG (Programmer-­ to-go) app. The Programmer-to-go feature has been available since the PICkit 3 and allows a firmware image to be programmed into a device without needing a full computer. The user guide indicates that the PICkit 5 supports PIC and AVR microcontrollers, dsPIC digital signal controllers and SAM and CEC (Arm Cortex) microcontrollers and microprocessors. A full device support list (including other Microchip programmers) can be found at siliconchip.au/ link/abpl Checking that list, we see that the PICkit 5 supports much the same range of parts as the PICkit 4. The PICkit 5 supports interfaces such as Microchip’s own ICSP, JTAG (Joint Test Action Group), SWD (Serial Wire Debug) and various AVR protocols like UPDI, PDI, ISP and TPI. It can also provide a virtual USB serial port (known as the “data stream interface” in the user guide). Hardware Ever curious, we opened up the case for the PICkit 5 to see what is ‘under the bonnet’. It sports a 300MHz SAM siliconchip.com.au E70 processor along with numerous peripheral components to generate the variety of programming voltages that are needed and interface with various targets. You can see the internals in the photos overleaf. Our review of the PICkit 4 also included photos of the PCB, and it’s clear that the resemblance doesn’t end with the enclosure. Indeed, the PICkit 5’s internals look very similar. Most components are in the same place in both programmers, except where they needed to be moved to accommodate the USB-C socket and Bluetooth module. Fig.1 shows the block diagram of the PICkit 5. The Snap programmer (reviewed in the March 2019 issue; siliconchip. au/Article/11628) also bears a SAM E70 processor but lacks the capability of high-voltage programming (high-­ voltage here means above 5V and up to 14V) and it can’t supply power to the target processor. Even with the upgrade to a USB-C socket, the PICkit 5 is only capable of USB 2.0 speeds. Still, 480Mbit/s is quick enough for most of its tasks. Since many modern PIC microcontrollers require at least a PICkit 4 or Snap for programming, we expect many readers will already know about Australia's electronics magazine these devices, so we’ll focus on the updated features. As expected, programming and debugging with a PICkit 5 is the same fast and simple experience that PICkit 4 users will be familiar with. App and Bluetooth Being able to program a microcontroller without it being connected to a computer is a handy thing, especially since it gives complete galvanic isolation. The Programmer-to-go (PTG) feature was available with the PICkit 3 and PICkit 4, but the new app makes it easier to use. The app is available for Android and iOS and is called “MPLAB PTG”; a search for this on your respective app store should find it. We used the Android version in our testing. Screens 1-3 show what the app looks like. A PTG image must be loaded onto the PICkit 5 before the app can be used. You will also need a microSD card to hold the image. We’ll discuss this process later when we get into the MPLAB X IDE. Screen 1 shows the results after scanning for devices; the app has detected the PICkit 5. Tapping on the device serial number takes you November 2023  63 to Screen 2. The BROWSE SD button shows a picker (the individual PTG images are actually folders on the microSD card filled with numerous files). Toggling the app’s PTG mode switch causes the PICkit 5’s light to flash green. This indicates that PTG mode is active; the same pattern is seen if PTG mode is activated from a computer. With a PTG image selected, the PROGRAM button takes you to Screen 3, which, in this case, has logged a successful programming effort. The diagnostic message shown when programming fails could be more descriptive; it simply says it failed. Programming from the IDE or IPE will give a much more detailed message, such as whether an incorrect voltage was present, a different chip was detected or even the specific location at which program memory could not be programmed or verified. The PICkit 5 can take power from the target circuit (through the eightway header), and we had no trouble programming a chip in this scenario. The ability to easily select and program different images in the field will be convenient, as will not needing to worry about connecting a separate power supply. We also tried hooking the PICkit 5 up to an Android mobile phone via a USB-C to USB-C cable. In this case, the phone supplied power to the PICkit 5 (and thus the target chip). We even tested serial communications using the ‘Serial USB Terminal’ app on Android and were able to send (typed into the Android phone) and receive data using the PICkit 5’s serial data pins. So, with a suitable mobile device and perhaps other apps, the PICkit 5 becomes a much more useful tool for working in the field. We see great potential for the MPLAB PTG app and Bluetooth connectivity and for many different features to be added in the future. If you don’t have the app, it’s still possible to initiate PTG programming. Like the PICkit 4, it’s done by pressing the logo on the front of the programmer, activating the internal switch, as long as the PICkit has previously been set to PTG mode. MPLAB is Microchip’s development ecosystem that includes an IDE, IPE (integrated programming environment), compilers and a wide range of programming and debugging devices. Several other code tools exist, including MPLAB Harmony and MPLAB Code Configurator. The MPLAB X IDE replaces the older Windows-only MPLAB IDE, which dates back over 20 years. The significant change was that the MPLAB X IDE became available for Mac and Linux operating systems. It’s proprietary software that’s free to download and use, although some compiler optimisation options are only available with a paid license (“PRO”) upgrade. We try to design our projects to require only the free compiler options so that anyone can modify the code, although sometimes that isn’t possible. Note that free evaluation trials are available for the PRO license versions. Also, if you want to try the IDE software without installing it on your computer, there is a cloud-based version at siliconchip.au/link/abpm Apart from the IDE, there have been updates to the compilers (which have their own version numbers) and the device family packs (DFPs). These elements mean that the overall development environment is quite modular. Different versions of the IDE, compilers and DFPs can be installed alongside each other. Screen 1: the PTG app is intuitive to use. After scanning for devices, the specific PICkit 5 can be identified by its serial number and selected. Screen 2: the microSD card can be browsed to select a PTG image. Pressing the PROGRAM button changes to Screen 3. Screen 3: the programming screen provides some simple pass/fail statistics, much like the MPLAB IPE, as well as a status log. 64 Silicon Chip MPLAB ecosystem Australia's electronics magazine siliconchip.com.au MPLAB X IDE will prompt you if there is a version mismatch (eg, the selected DFP is not installed); resolving the problem is as simple as clicking on the link in the prompt to download the correct version. You can check and update DFPs from the Tools → Packs menu item. For example, support for the newer 8-bit PIC parts is available by installing the PIC16F1xxxx pack (see our article in the October 2022 issue; siliconchip. au/Article/15505). If you need older versions of the software (for example, to maintain an old project), there is an archive, see: siliconchip.au/link/abpn Compilers Three different compiler families work with the MPLAB X IDE. XC8 targets 8-bit devices, including PIC10, PIC12, PIC16 and PIC18 parts. With the takeover of Atmel, this also includes many 8-bit AVR devices. XC16 works with 16-bit microcontrollers with PIC24 and dsPIC prefixes. XC32 is a 32-bit compiler for the wide variety of 32-bit processors from the Microchip and Atmel stables. This includes PIC32 (MIPS and ARM) and SAM parts. All compilers include other tools, such as assemblers. Late 2021 saw the release of version 6.00 of the MPLAB X IDE, followed not long after by version 4.00 of the XC32 compiler. This marked the time at which all three compilers were truly C99 compliant and began to share a standard C Library. MPLAB X IDE v6.xx The 6.xx version projects are not backwards compatible with older versions, although there is a tool to convert back to the older version. Our full Windows install of version 6.10 of the MPLAB X IDE, including support for all processor families, comes to around 11GB. The latest versions of the compilers add around 2-3GB each. Version 6.15 is much the same. The XC8 Compiler Options now allow optimisation level 2 to be selected without requiring a PRO license. Previously, only up to optimisation level 1 could be used with the free license. That is excellent news! The PICkit 5 circuit board looks quite similar to the PICkit 4. The main differences are the USB-C socket and the Bluetooth module, just visible under the notch in the main PCB. Note the tactile switch under the light guide, which is activated by pushing on the front of the PICkit 5. Compiler Advisor One new tool since version 6.00 is the Compiler Advisor. According to siliconchip.com.au Fig.2: the PRO Comparison option starts a Compiler Advisor analysis. Note how the Debugging build option is now the default. Australia's electronics magazine November 2023  65 Fig.3: even if you don’t have a PRO license, the Compiler Advisor will allow you to see how it would perform against the free compilation options. This can even be a handy tool for free licence users, as occasionally, the obvious optimisation setting is not necessarily better. Fig.4: the PTG options available on the Setting page of the MPLAB IPE are similar to the PTG app, although there is the option to change the image name from the IPE. The IPE is the best way to manage multiple PTG images. 66 Silicon Chip Australia's electronics magazine the documentation, this can be used with XC8 from version 2.30, XC16 from version 1.26 and XC32 from version 3.01. The Compiler Advisor window can be opened from the Tools → Analysis → Compiler Advisor menu, and it can be run from the Build or Clean and Build dropdown buttons (Fig.2). This option is labelled as (Clean and) Build with PRO Comparison. The project is compiled with several different optimisation settings, and the results (specifically program memory and data memory usage) are shown as a chart, as in Fig.3. The Compiler Advisor takes a bit of time to run, as it effectively runs a build for each available optimisation option (four in our example). You can easily switch to using one of the suggested optimisation configurations by clicking the link on the chart. You don’t need a PRO license to use the Compiler Advisor, although you will get more compilation options displayed if you do. As you can see (at least for this project), the PRO option offers substantial reductions in program memory usage. The release notes for version 6.15 of the IDE mention improved tool stability and using recent releases of the compilers to reduce build (compilation) times. We compared XC8 versions 2.40 and 2.41 and did notice quicker compilation with the newer version. The compilers are now throwing up more warnings, particularly in relation to C language standards. That’s a good thing, as it could pick up code errors that are not obvious. Another subtle difference we noted since versions 6.05 is that the “Build” (and “Clean and Build”) button now defaults (in versions 6.10 and 6.15) to doing a “Build for Debugging”, which you can see when you hover your mouse pointer over it. This can be a problem if you intend to build for production (deployment to a device), as debug builds can misbehave if no debugging tool is connected. Fig.2 shows how this appears in the IDE, with the “Clean and Build for Debugging” as the default at the top. So to do a Clean and Build for production now requires using the dropdown menu to select that specific item. You can also use the F11 and Shift+F11 key combinations. siliconchip.com.au Programmer-to-go Setting up the PICkit 5 to use the Programmer-to-go feature means sending a PTG image to the programmer. From the IDE, a dropdown option on the Program Device button will do that. Alternatively, the IPE has a section on the Settings tab to manage the PTG images. Fig.4 shows that section of the Settings tab and the Browse PTG window that can be opened. The IPE is the best option if you want to view and organise the PTG images and give them specific names. The PTG images are more than just the HEX files; they are folders incorporating all the settings used by the PICkit 5, such as whether the target or the PICkit circuit supplies power (and, if so, what voltage) and the programming speed. PICkit 4 obsolescence With the introduction of the PICkit 5, it appears that the PICkit 4 is being phased out, with Microchip Direct (www.microchipdirect.com) now listing it as “not recommended for new designs”. The PICkit 5 is listed at US$94.99, while the PICkit 4 is not much cheaper at US$88.54. Conclusion The PICkit 5 does everything the PICkit 4 can and more. Bluetooth, the PTG app and the USB-Serial port are all features that we plan to use. We see great potential for wireless communication in a programming and debugging tool. If your PICkit 4 is working well and you don’t need these new features, you probably don’t need to get a PICkit 5 right away. But for those looking at buying a programmer, the PICkit 5 is not much more expensive than the PICkit 4 and looks like it will have support into the future. Look for part number PG164150. As mentioned, you need at least MPLAB X 6.10 to use the PICkit 5. Even if you don’t have a PICkit 5, we don’t see any reason not to upgrade to the latest MPLAB X, although you will have to watch out that the Build buttons have changed their default behaviour. The PICkit 5 is available (at the time of writing) from the following suppliers: Microchip Direct: PG164150 DigiKey: 150-PG164150-ND Mouser: 579-PG164150 SC siliconchip.com.au PICkit 5 – Glossary of Terms Assembler Converts assembly language code (a human-readable low-level language) into binary object code. Compiler Converts code in a high-level language (such as C) into assembly language or object code. The process might be called compiling or building. Debugger A hardware or software tool that can be used to monitor what a program is doing and determine the cause of incorrect operation. Firmware Software that is programmed into persistent storage on an embedded device, typically a microcontroller, usually in the form of binary or hexadecimal code. IDE Integrated Development Environment; software that includes all necessary tools for writing software, compiling it into object code and programming the object code into a target microcontroller. Some also feature a debugger. Interactive debugging The process of interacting with a running microcontroller to see what it is doing and to assist in finding bugs/errors. This can include pausing operation through the use of breakpoints, inspecting variables and registers and stepping slowly through program instructions. The debugger may require specific object code produced by the compiler to work. Microcontroller A chip typically containing a microprocessor, integrated peripherals, memory and sometimes storage. These features allow such a device to operate as a standalone computing device that can directly interface with attached hardware. Basically, a one-chip computer. Object code Code in a machine-readable format that can easily be converted into a memory image for programming into a target device, ready to run. A typical image format is the Intel Hex (.HEX) file format that MPLAB X IDE can generate. Production build Object code that can be used for deployment to a finished product, as distinct from a debugging build, which contains extra information only needed by the debugger. Production code is usually smaller and faster than debug code. Programmer A hardware tool that can be used to transfer a firmware image to a microcontroller. Some programmers (including the PICkit range) are also capable of debugging. Target A microcontroller (and perhaps the circuit it is part of) that will be programmed or debugged. The LED status bar (located just above the logo) adds a slash of colour to the PICkit 5; its intensity can be adjusted. Blue indicates the device is idle, while flashing green means it is in PTG mode. Australia's electronics magazine November 2023  67