Silicon ChipLC and ESR Meter - August 2024 SILICON CHIP
  1. Contents
  2. Subscriptions
  3. Back Issues
  4. Publisher's Letter: Exciting News!
  5. Feature: Techno Talk - That makes so much sense! by Max the Magnificent
  6. Feature: Net Work by Alan Winstanley
  7. Project: LC and ESR Meter by Steve Matthysen
  8. Project: WebMite by Geoff Graham & Peter Mather
  9. Project: WebMite-based Watering System Controller by Geoff Graham
  10. Feature: Circuit Surgery by Ian Bell
  11. Feature: Audio Out by Jake Rothman
  12. Feature: Max’s Cool Beans by Max the Magnificent
  13. Feature: Teach-In 2024 – Learn electronics with the ESP32 by Mike Tooley
  14. Market Centre
  15. Advertising Index
  16. PartShop
  17. Back Issues

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

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

Articles in this series:
  • (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)
Articles in this series:
  • Win a Microchip Explorer 8 Development Kit (April 2024)
  • Net Work (May 2024)
  • Net Work (June 2024)
  • Net Work (July 2024)
  • Net Work (August 2024)
  • Net Work (September 2024)
  • Net Work (October 2024)
  • Net Work (November 2024)
  • Net Work (December 2024)
  • Net Work (January 2025)
  • Net Work (February 2025)
  • Net Work (March 2025)
  • Net Work (April 2025)
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)
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)
Articles in this series:
  • Max’s Cool Beans (April 2024)
  • Max’s Cool Beans (May 2024)
  • Max’s Cool Beans (June 2024)
  • Max’s Cool Beans (July 2024)
  • Max’s Cool Beans (August 2024)
  • Max’s Cool Beans (September 2024)
  • Max’s Cool Beans (October 2024)
  • Max’s Cool Beans (November 2024)
  • Max’s Cool Beans (December 2024)
Articles in this series:
  • Teach-In 2024 (April 2024)
  • Teach-In 2024 (May 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (June 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (July 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (August 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (September 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (October 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (November 2024)
Steve Matthysen’s Arduino-Based LC and ESR METER This enhancement to our Wide-Range Digital LC Meter from June 2019 allows it also to measure capacitor ESR. That is extremely useful for diagnosing faulty equipment because increasing ESR over time is one of the most common ways electrolytic capacitors fail. T im Blythman presented an LC Meter with excellent performance, range and accuracy in the June 2019 issue. The meter is based on a custom Arduino shield and is easy to build. Its accuracy is optimised by auto-calibration features and compensation for the inherent capacitance of the leads and even the Arduino pins. While it’s undoubtedly useful for checking suspect components, for electrolytic capacitors, it is important to know whether it has a low impedance to alternating currents. That requires it to have a low equivalent series resistance (ESR). Why is ESR so important? Electrolytic capacitors are used where high charge storage is required. In many applications, current must flow efficiently into and out of the capacitor to charge or discharge it. ESR acts like a resistor in series with the capacitor, losing energy each time current flows in or out. That ESR also prevents the capacitor from doing its job properly, which is usually stabilising voltage. Say the capacitor is being charged at 1A and then starts discharging at 1A. If it has an ESR of 1W, the voltage seen by the rest of the circuit will suddenly shift by 2V ([1A + 1A] × 1W). For example, that would add to the ripple on a power supply storage capacitor. High ESR values also lead to heating within the electrolytic capacitor, possibly changing the capacitance and reducing the integrity of its electrolyte. One of the most common indications of failed or failing electrolytic capacitors is a sudden or gradual increase in their ESR values. Increased ESR values can introduce a wide range of mysterious circuit failures that are sometimes difficult to pin down. For a switch-mode power supply, these include decreased voltage regulation, filter failures, elevated noise levels, signal losses, or failure to start. Therefore, it makes sense when testing electrolytic capacitors to confirm that their capacitance and ESR values are in the appropriate ranges. Revised design In this design we feed signals into an Arduino Uno driving an LCD. The benefit of doing this is that the ESR front end can be built on a relatively small circuit board and integrated with the LC meter presented in the June 2019 issue. That makes it a great general-­purpose instrument that can 16 Practical Electronics | August | 2024 not only check the ESR of capacitors but also their values (up to a certain limit), plus it can be used to measure inductors and more. Alternatively, you could simply attach the front end to an Arduino Uno (or clone) with a 4-line I 2 C alphanumeric LCD to produce a standalone ESR meter. The code for both the LC-integrated and standalone versions is available for download from the August 2024 page of the PE website: https://bit.ly/pe-downloads If you have already built the LC meter and want to attach the ESR module, you could do that, although starting from scratch is quite possibly the easier option. Measuring ESR Fig.1 shows a simplified diagram representing the theory of operation. S1 and S2 are electronic switches controlled by the Arduino. When no measurement is underway, both S1 and S2 are in the discharge position to ensure the capacitor being tested and the C-Ramp capacitor are maintained in discharged states. At the start of a measurement cycle, the Arduino code places S2 into the Charge position and charges C-Ramp with a constant current of 9.4mA. The resulting voltage at the inverting input of the comparator increases at a steady rate of 20mV/ms (ie, 20V/s). After 480µs, S1 is switched to the charge position for 20µs, connecting Electrolytic capacitor construction In their most basic form, capacitors have two conductive plates (the anode and cathode) separated by an insulating material called the dielectric. There are three main types of electrolytic capacitors based on the material used for the anode and the associated dielectric used in their design: aluminium, niobium oxide and tantalum. Capacitance is directly proportional to the total surface area of the plates but inversely proportional to the distance between the plates. Hence, the thinner the dielectric, the more efficient capacitors become. Dielectrics have a high resistance; for low-value capacitors, examples include various polymers, mica, ceramics and even some liquids and gases, including air. In all three types of electrolytics, the anode consists of the primary material (aluminium, niobium oxide or tantalum) and the dielectric is a very thin layer of the respective oxide (pentoxide for niobium) deposited on the face of the anode. This very thin dielectric must be in close contact with the cathode, which is the electrolyte’s purpose. In essence, the electrolyte is the actual cathode, except that we also require a physical connection that allows the device to be soldered into a circuit. To ensure a high-quality coupling with low resistance, the electrolyte is a highly conductive liquid, gel or solid. In aluminium electrolytic capacitors, an efficient way to ensure a high-quality coupling between the two is to sandwich a thin electrolyte-soaked sheet of paper between the dielectric and the cathode. Manganese dioxide is a solid electrolyte typically used in niobium and tantalum capacitors to connect the cathode to the dielectric. a constant current source to the capacitor being tested. Depending on the range, the applied current is either 0.5mA, 5mA or 50mA. The test current pulse is kept very short to minimise charge build-up on the capacitor plates; we only want to measure the momentary pulse that develops across the capacitor’s equivalent series resistance. Fig.1: S1 repeatedly discharges and then briefly applies current to the DUT. The pulses are too short to charge the capacitor, so the resulting voltage is proportional to the ESR. The pulse amplifier then feeds an amplified version to the comparator, along with a linear ramp, and by counting the number of output pulses, we can accurately determine the ESR. Practical Electronics | August | 2024 Courtesy of Ohm’s law, we know that the magnitude of the resulting voltage pulse is directly proportional to the ESR of the capacitor. The resulting test pulse voltage is amplified by a factor of 20 and is fed into the non-­i nverting input of the comparator. It compares the magnitude of the test pulse to the reference ramp voltage, and if the magnitude of the test pulse is greater than the latter, the comparator produces a 5V pulse at its output. The Arduino code increments a counter and then waits another 480µs before closing S1 again for 20µs to produce another test pulse. Since the ramp voltage increases at a constant rate, it will eventually exceed the magnitude of the test pulses. The Arduino code detects the missing pulse and stops the measurement process, placing both S1 and S2 in the discharge position. The Arduino uses the total number of pulses and the test current to calculate the ESR figure and displays it on the LCD screen. Circuit details Fig.2 shows the circuit diagram of the original LC meter (on the left) with the ESR add-on on the right. However, note that some extra components are shown on the left, such as mode switch S1 and ESR input protection diodes D5 & D6. While only one connection is shown passing between them – the 17 added ESR+ terminal connection – there are 10 further connections between the corresponding pins of CON5 and CON6. Note that GND is shared between both sides via pin 8 of those connectors. We have produced two versions of the PCB. The smaller version that is an add-on to the existing LC Meter design only has the added circuitry on the right (with a few components mounted off-board, such as D5 & D6). However, the larger version of the PCB incorporates everything shown in Fig.2 and simplifies the wiring, especially since CON5 & CON6 are not required. The ESR circuit on the right has three sections: 1) a set of current sources used to pulse the capacitor being tested (upper left), 2) the pulse amplifier (lower left) and 3) the reference voltage ramp generator (upper right). 18 Pulse current sources Transistors Q1, Q2 and Q3 are driven by Arduino Uno digital outputs D12, D11 and D10 when the respective output is pulled low. The Arduino Uno will switch on one of the transistors depending on the measurement range. The 10kW, 1kW & 100W collector resistors set the current pulse to 0.5mA, 5mA or 50mA. There is no current regulation; we rely on the fact that the 5V supply is regulated, and the DUT is initially discharged when the current is applied. Therefore, close to 5V appears across the selected resistor and the current is determined by Ohm’s law. The current pulse is applied to the capacitor being tested via the parallel 100nF and 47µF capacitors which block any DC components. The ESR of this combination of capacitors is inconsequential, given the relatively high values of the current source resistors. Critically, the measurement is taken directly from the DUT terminal, so the circuit is not measuring the ESR of those two capacitors as well. The 100nF capacitor keeps the impedance low at high frequencies, as required by the nature of the short current pulses. Whenever Q1, Q2 and Q3 are turned off, the Arduino Uno digital output D13 switches Q4 on by supplying current to its base. This ensures that the two AC-coupling capacitors are maintained in a discharged state, ready for the next current pulse. Inverse parallel diodes D1 & D4 protect Q4 from potentially high currents should a charged capacitor be connected to the test leads. The maximum pulse voltage for an ESR value of 100W is typically under Practical Electronics | August | 2024 Arduino-based L/C+ESR Meter Fig.2: the original LC Meter circuit is on the left (with a few additions), while the added ESR-sensing circuitry is on the right. Headers CON5 and CON6 are not present on the combined PCB we’ve designed; instead, the ten connections are run via PCB tracks. Otherwise, a ribbon cable joins all pins between the two connectors. 500mV, so D1 and D4 have minimal effect on the pulse voltage. the 270nF capacitor discharged in the absence of a pulse. Pulse amplifier The pulse voltage developed across the capacitor being tested is fed to the pulse amplifier via a 33nF capacitor and a 1kW series capacitor. The pulse is amplified by a two-stage transistor amplifier formed by Q5 and Q6. The ratio of the 6.8kW feedback capacitor to the 150W fixed resistor and VR1 (adjusted for about 200W) sets the gain to 20 (1 + 6.8kW ÷ [150W + 200W]). Diodes D2 and D3 protect Q5 if a charged capacitor is connected to the test leads. The amplified pulse voltage goes to the non-inverting input of the Arduino Uno’s comparator via a 270nF capacitor, which blocks the DC voltage across the 680W resistor at Q6’s collector. This resistor keeps Voltage ramp generator PNP transistors Q7 and Q9 operate as a current mirror circuit to charge the 470nF ramp capacitor at a constant rate. When the Arduino pulls pin 4 of CON6 low, Q9 switches on, causing about 9.4µA to flow through the 470kW resistor. At the same time, Q8 switches off, allowing the ramp capacitor to charge. Q7 mirrors the current through Q9, so the capacitor begins to charge from 0V at 9.4µA. The rising voltage across the 470nF capacitor is connected to the Arduino Uno’s internal comparator (inverting input) via pin 1 of CON6. The Arduino Uno disables the ramp generator by setting pin 4 of CON6 high, turning off the charging via C9 while switching on Q8 to discharge the ramp capacitor. Practical Electronics | August | 2024 Integration with the LC meter The LC meter used the Arduino’s analog comparator inputs (D6 and D7) as digital outputs to drive the coils of relays RLY1 and RLY2. It was necessary to move those functions to D3 and D4 (by modifying the LC Meter code) to allow the ESR function to use the comparator. The larger, combined PCB design includes this rerouting. At the same time, D3 and D4 are shared with the ESR meter as digital I/Os via the selector switch, S1, that chooses between the LC and ESR modes. This was necessary since there were insufficient spare I/Os available on the Uno. As the original LC Meter shield lacks CON5, the wires from CON6 go to the Arduino/ switch pins on my prototype. Additional input protection If the ESR meter were accidentally connected to a charged capacitor, 19 the energy dumped into this circuit could still damage it despite the protections mentioned above. As with a much earlier design, we have included two high-current diodes (1N5404s) connected back-to-back directly across the input sockets: D5 and D6. Despite this, remember to discharge capacitors before testing them! Software The ESR measurement code is based on Bob Parker’s algorithm published in Silicon Chip in the March 2004 issue, with minor changes to the pulse timings to better suit the Arduino Uno. The original design uses a pulse width of 8µs with an off-time of 492µs. Such settings resulted in a slight fluctuation in the readings. For example, a 0.6W resistance would show a reading fluctuating between 0.59 and 0.61. A pulse width of about 20µs improved the stability with no impact on accuracy, so a 480µs off-time was adopted to maintain the overall 500µs period. Parts List – Arduino ESR Meter 1 suitable case [Altronics H0401] 1 Arduino Uno or equivalent microcontroller module 1 20×4 blue backlit alphanumeric LCD with I2C interface [SC4203] 1 double-sided PCB coded 04106182, 68.5 × 115.5mm 1 100μH bobbin-style or high-current axial RF inductor (L1) 4 5V DC coil DIL reed relays (RLY1-RLY4) [Altronics S4100, Jaycar SY4030] 1 200W top-adjust multi-turn trimpot (VR1) 1 3PDT solder tag toggle switch (S1) [Jaycar ST0505] 1 vertical tactile pushbutton switch (S2) 3 PCB-mount right-angle banana sockets; one black, two red (CON2, CON3, CON7) [Silicon Chip SC4983] OR 3 panel-mount banana sockets; two black, one red (CON2, CON3, CON7) 1 4-pin right-angle polarised header with matching plug and pins (CON4) 1 set of Arduino-style regular headers (1×10-pin, 2×8-pin, 1×6-pin) 1 100mm length of 4-way ribbon cable terminated with DuPont sockets at one end 8 M3-tapped 12mm spacers 9 M3 × 6mm panhead machine screws 4 M3 × 6mm countersunk head blackened machine screws Semiconductors 1 LM311 high-speed comparator, DIP-8 (IC1) [Altronics Z2516, Jaycar ZL3311] 3 BC327 or BC328 500mA PNP transistors (Q1-Q3) 2 BC337 or BC338 500mA NPN transistors (Q4, Q8) 1 BC548 or BC547 100mA NPN transistor (Q5) 3 BC558 or BC557 100mA PNP transistors (Q6, Q7, Q9) 2 1N4004 400V 1A diodes (D1, D4) 2 1N4148 75V 200mA diodes (D2, D3) 2 1N5404 400V 3A diodes (D5, D6) Capacitors 1 220μF 16V electrolytic 1 100μF 16V electrolytic 1 47μF 16V non-polarised electrolytic 1 22μF 16V electrolytic 2 10μF 6.3V tantalum or ceramic 1 470nF 63V MKT 1 270nF 63V MKT 3 100nF 50V multi-layer ceramic or MKT 1 33nF 63V MKT 2 1nF 1% NP0/C0G ceramic, MKP or polystyrene [Silicon Chip SC4273] Resistors (all 1/4W 1% axial) 1 470kW 1 220kW 5 100kW 2 47kW 7 10kW 2 6.8kW 1 4.7kW 4 2.2kW 1 1.3kW 3 1kW 1 680W 1 220W 1 150W 1 130W 1 100W Extra parts if building the ESR Meter with separate PCBs 1 double-sided PCB coded 04106181, 68.5 × 53mm 1 3PDT solder tag slide switch (S1) [Mouser 502-50209LX] 1 2x5 IDC header with matching socket (CON6) Ribbon cable and heatshrink tubing 20 The program starts in the high range by setting D12 low and D13 high. This sets the pulse current to 0.5mA. At the same time, the reference voltage generator is initiated by setting D3 low. If the pulse at the Arduino’s non-­ inverting input exceeds the reference voltage, the comparator’s interrupt-on-change feature sets a flag indicating a pulse was detected. Consequently, a counter is incremented, the interrupt flag is reset, and another pulse is applied to the capacitor being tested. This process repeats until the code detects that the flag was not set after applying a current pulse. This signifies that the reference ramp voltage has reached a level greater than the pulse voltage, and therefore the counting is complete. After each count cycle, if the total number of pulses is below 10, the next lower range is selected, and the measurement is repeated until the count produced is between 10 and 100. In the low range, a count between 10 and 100 equates to an ESR reading of between 0.1W and 1W; in the medium range, it represents 1W to 10W; or 10W to 100W in the high range. If the count exceeds 100, the program automatically tries the next higher range until the count is between 10 and 100. If the count remains above 100 on the highest range, then the display will show “Over range!”. Test lead resistance Since we aim to measure ESR values well below 1W, the resistance of the test leads and banana socket connections can introduce errors. Therefore, if the Zero button (S2) is pressed, the Arduino notices its D4 input pulled low and shows the message “Short test leads and press zero…”. Once the leads are shorted, the Arduino repeatedly measures and displays the lead resistance in ohms on the fourth line of the LCD. The code now waits for the zero button to be pressed again and saves the lead resistance in the Arduino’s EEPROM. The stored result is then subtracted from the subsequent capacitor ESR measurements. In addition to displaying ESR measurements on the LCD, the Arduino also produces a serial stream of the measurement data via its USB port. The incremental count is displayed for each current pulse, followed by the final count, the final range selected and the number of Practical Electronics | August | 2024 The prototype Meter was made using a specialised case to suit the display module. While you can use multiple PCBs as shown above, a single board design using the PCB shown in the lead photo requires much less wiring. range changes made during a measurement. Note that the accumulated count includes the effects of test lead resistances. Combined LC / ESR Meter When the LC Meter and ESR Meter are combined, a contact on the LC/ ESR selector switch, S1, signals which mode has been selected to the Uno via its digital input D2. With D2 low, it is in ESR mode. Switching from one mode to the other happens What is a normal ESR value? Electrolytic capacitors include reactive elements, so the ESR value will change depending on the frequency of the applied voltage (there is also an equivalent series inductance or ESL). Temperature changes also affect the reading, as do different manufacturing processes. Manufacturer data sheets typically give the expected ESR values at 20°C and 100Hz, 120Hz or 100kHz, although many do not include such information (or give it differently, eg as a dissipation factor). Thus, providing definitive expected ESR values for all electrolytic capacitors is impossible. Still, we do not expect to see the values exceeding several ohms, and higher-value capacitors should generally have lower ESR values. Capacitors designed for use in switch-mode supplies (often labelled “Low ESR”) should have values of a fraction of an ohm or less. For example, the data sheet for the Panasonic FM-A series of aluminium capacitors gives values from 0.012W to 0.34W ohms varying with the voltage rating (6.3V to 50V) and capacitance (22μF to 6800μF). The data sheet for the RubyCon YXF series for similar capacitance and voltage ranges lists the maximum expected ESR values to be between 0.025W and 1.3W. Table 1 below shows tabulated typical ESR values. These are generalised expected readings, so manufacturer data sheets should be used as a reference. However, it should be apparent that a capacitor is faulty if the measured ESR value exceeds tens or even hundreds of ohms! Practical Electronics | August | 2024 Table 1: typical ESR readings for good capacitors 25V 35V 63V 160V 250V 1μF 10V 5 4 6 10 20 2.2μF 2.5 3 4 9 14 4.7μF 6 3 2 6 5 1.6 1.5 1.7 2 3 6 10μF 16V 22μF 3 0.8 2 1 0.8 1.6 3 47μF 1 2 1 1 0.6 1 2 100μF 0.6 0.9 0.5 0.5 0.3 0.5 1 220μF 0.3 0.4 0.4 0.2 0.15 0.25 0.5 470μF 0.15 0.2 0.25 0.1 0.1 0.2 0.3 1000μF 0.1 0.1 0.1 0.04 0.04 0.15 4700μF 0.06 0.05 0.05 0.05 0.05 10mF 0.04 0.03 0.03 0.03 A version of Table 1 that can be downloaded as a PDF. 21 If you decide to build the ESR meter as separate PCBs, you might also need a mounting arrangement for the banana sockets as shown here and in Fig.8. In this case diodes D5 & D6 are located inside the white heatshrink. after the program completes the current procedure being processed by the Arduino. As previously mentioned, Arduino pins D3 and D4 are shared between the LC and ESR modules. D3 serves as a digital output in both modes; however, D4 is a digital input for the ESR module (for the Zero switch) but an output for the LC meter (driving RLY1). When switching modes, D4 is reconfigured by the code as required. Fig.3: this is the wiring needed to add the ESR feature to the existing LC Meter design by simply adding another small board (at the bottom). We think most constructors will prefer the much easier method of building the single combined PCB! 22 Case selection The case used for the prototype is available from Mouser Electronics (563-HH-3421) or Digi-Key (HH-3421-ND), although stocks are limited. An optional tilt stand is available separately from Digi-Key (377-1171-ND). Because the combined board is considerably narrower than the ESRonly board, it should fit in that case. With an internal depth of 37mm (excluding things like mounting bushes, which could be removed), the Arduino and control board stack should fit, as should mode switch S1, but it will be a bit of a squeeze. Alternatively, you could use just about any rectangular case. It would need to be at least 175mm tall internally for a 20×4 LCD module to fit at the top with the combined control PCB and Arduino below it. The LCD will be around 87mm wide, defining the minimum internal width, while a depth of at least 30mm is required to fit the Arduino Uno, the shield on top of it, and the body of switch S1. The Altronics H0401 sloped case specified in the parts list should have plenty of room. Because of the Practical Electronics | August | 2024 sloping lid, you will need to mount the LCD and other PCBs to the inside of the lid. The screws and spacers in the parts list are intended to allow you to do this; the nut for switch S1 can also be used to hold the board in place. Remember to position the board so that the banana sockets will be accessible (or mount the chassis socket off-board). Construction First, you need to decide if you will build the original LC Meter design and wiring in the add-on ESR module or the combined PCB. We reckon the latter is a lot simpler. Fig.3 shows the wiring required with separate boards, while Fig.4 shows the combined PCB. For the combined version, the only part you need to add externally to Fig.4 is the LCD screen, via CON4. If you want to build the add-on board, it is shown in Fig.5, while the LC Meter board, without the sockets (as we’re using off-board sockets), is shown in Fig.6. We’ll describe the assembly process for the combined board; the two smaller boards are similar, you just need to skip the parts that are not onboard. The combined PCB measures 64.5 × 115.5mm, is coded 04106182 and is available from the PE PCB Service. It’s essentially a larger-­than-normal Arduino shield. Fit the resistors first, checking their values with a multimeter as you install each one. Follow with the smaller diodes (1N4148 & 1N4004), taking care to check their orientations; face the cathode stripes as shown in Fig.4. Next, mount IC1 (which can be soldered to the board or socketed, but watch its orientation), followed Fig.4: the combined PCB is basically the LC Meter shield (top section) with the ESR circuitry added below. Toggle switch S1 selects between the two functions. Some extra mounting holes have been added to increase mounting flexibility, although they unfortunately are not in a rectangle. by trimpot VR1 (ideally a multi-turn type, although universal pads are provided) and pushbutton switch S2. Follow with the transistors. There are nine, of four different types, so make sure to get the right types in each position and orientate them as shown. Bend their leads with small pliers if necessary to fit the pads. The next job is to install the capacitors, starting with the non-polarised MKTs/ceramics (the values should be printed on them, possibly as codes like 102 = 1nF, 104 = 100nF etc) and then the electrolytics. The latter are polarised, so insert the longer positive leads into the pads marked + (the striped side is negative). Remember that the 47µF non-polarised type goes at lower left. If you’re unsure about the values, check each component with a multimeter. Now is a good time to fit the bulkier components like the reed relays Figs.5 & 6: if you want to build the separate ESR board (left), either to use it as a standalone ESR meter or to add to an existing LC Meter (right), here is where all the components go. Besides the 10-way ribbon cable from CON6 (which could be left off & the ribbon cable soldered to the PCB), you also need to wire up the COM− and ESR+ test terminals. Practical Electronics | August | 2024 23 (watch their orientation), diodes D5 & D6 (ditto), the banana sockets and inductor L1. That just leaves the headers and the 3PDT mode switch. The CON4 header needs to be fitted as we’ll use it to connect to the LCD later, unless you plan to solder the LCD wires directly to its pads. CON1 is only needed if you plan to mount the banana sockets off-board and will not solder the wires directly (although you will need to do so for CON7 regardless). The remaining headers mount on the underside of the board. Use standard pin headers for the four SIL connections to the Arduino Uno (or similar) since we will not stack anything on top of this board. However, they need to be fitted using a particular method due to the height of the USB connector on the Arduino Uno board that will fit below. First, apply some insulation to the top of the USB socket on the Uno, such as electrical tape or Kapton tape. Next, insert the Arduino headers into the shield board from the underside. Place a scrap of perfboard, protoboard or similar on top of the header pins that stick out the top of the board, then use a flat object to push the headers down so the tops of the pins are flush with the perfboard. Carefully remove the perfboard without moving the headers, then solder the pins at either end. This will mean there is a gap between the underside of the PCB and the plastic spacer on the headers. That’s so the pins project out further to reach the Arduino sockets despite the USB socket not allowing the shield to be pushed fully down. Finally, the 3PDT toggle switch mounts on the top side of the board into slotted holes designed to suit its rectangular solder lugs. This avoids the need to run nine flying leads, although you could do so if you want to mount that switch elsewhere. If doing so, use a short length of ribbon cable. Testing Make a final inspection of the soldering to ensure there are no solder bridges between tracks and that all the components are in their correct position and correctly orientated. If you have built the separate ESR board, you can do some testing before you wire it up. Connect pin 5 of CON6 to a +5V supply with pin 8 at 0V. Measure the current draw, which should be about 1mA. If the current is significantly higher (or zero), disconnect the supply and look for assembly errors. When plugging the shield into the Arduino, we recommend that you use 12mm tapped spacers and short machine screws to hold the two boards together due to the fact the headers won’t plug fully into the sockets. Attach the four spacers to the mounting holes on the Arduno, but only one needs to be screwed in through the shield to hold it down. The rest just set it at the correct height. If there is a solder joint touching the top of the USB socket that prevents you from tightening the screws, you should trim it flush to the extent possible. When the Meter is switched to ESR mode, a splash screen is briefly displayed showing the ‘Zero value’, which is effectively the offset due to the resistance of the leads and anything else that might be in the measuring circuit. 24 Wiring If you are building the combined PCB, there isn’t much to the wiring. You just need to make up a 4-way cable to go from CON4 to the I2C LCD header. Make sure the connections are made per the labelling on the two Practical Electronics | August | 2024 PCBs, ie, GND to GND, SDA to SDA etc. If in doubt, refer to Fig.3; using a 4-way ribbon cable will keep it tidy. If you haven’t already soldered the I2C adaptor to the LCD screen, do that now, as the 4-way cable from the main board connects to that. If you’re adding the ESR board to an existing LC Meter, or building the boards separately for some other reason, wire them up as per Fig.3. The ten wires from CON6 are shown separately for clarity but again, it’s best to use a 10-way ribbon cable and only split out the individual wires as much as necessary to reach the appropriate pads. Note how, in Fig.3, the LC Meter shield no longer plugs directly into the Arduino since many of the pins are rerouted. Also note that diodes D5 & D6 are mounted off-board in this case. Loading the software To upload the firmware for the Uno board, you need to have the Arduino IDE (Integrated Development Environment) software installed on your computer. If you don’t have it, get it from: www.arduino.cc/en/ main/software The program that runs on the Uno requires an external library to interface with the I2C LCD. Open the IDE and select: Sketch → Include Library → Manage Libraries... ,then search for “liquidcrystal_pcf8574” and install the version by Matthias Hertel. Now open the sketch file: “ESR. ino” for the standalone version or “LC_ESR_Meter.ino” for the combined version. Select the board type as Arduino Uno (Tools → Board Type → Arduino AVR Boards), then use the Tools → Port menu to select the serial port that the Arduino is plugged into. Most versions of the Uno will display as COMx: (Arduino Uno or similar) in the dropdown menu. If you’re using a 16×4 LCD rather than the 20×4 LCD recommended, change the line “lcd.begin(20, 4)” to “lcd.begin(16, 4)”. Compile and upload the sketch by pressing Ctrl-U. If you see the message “Done Uploading” at the bottom of the window, then all is well. If you get an error message, check that the LCD I2C library is installed correctly and that the correct serial port is selected. LCD adjustment If the LCD backlight is not lit, check that the backlight jumper is fitted on the I2C adapter board. If the backlight is working, but there is no text, adjust the contrast pot on the back of the I2C adapter board. Practical Electronics | August | 2024 Fig.7: while not recommended for the combined PCB, here is how the separate PCBs were mounted on an acrylic baseplate for the prototype. Zeroing the test leads The program first checks to see if the resistance of the test leads has been saved in the EEPROM; if not, you will be prompted to perform the Zero process. Follow the 25 the total resistance of the leads to be less than 1W or it won’t accept the result and briefly display the message “Invalid reading or bad leads” before aborting the zeroing process. In normal measurement mode and with the test leads separated, the display should indicate “Over range”. Here is another view of the combined PCB we designed, plugged into an Arduino Uno, at actual size. Note how as well as the banana sockets projecting off the left-hand side, the USB and DC power inputs of the Uno do too. This allows you to make holes in the side of the case for all of those connectors. Screen 1: This screen is seen when no component is connected, or when a resistance over 100W is detected. The bottom line continues to display the lead resistance. If you see this when a capacitor is connected, it's probably not good anymore! Screen 2: Pressing and holding the ZERO button brings up this screen. You should short the ESR measurement terminals using the leads you would use for measurement and confirm that a low value as seen is displayed before pressing the ZERO button again. instructions requesting the test leads to be shorted, and once the displayed resistance is stable, press the zero switch (S2). 26 The display should briefly indicate that the zeroing process is complete before changing to the regular measurement display. The code expects Calibration Calibration is straightforward, using a known resistance of about 68W or 82W. Verify the resistor’s actual value beforehand with a multimeter (deducting the multimeter lead resistances measured when shorting the leads together). Switch S1 (if present) to ESR mode. With this resistor connected via the probes, the screen should display a value close to the resistor value. Adjust VR1 until the reading matches the resistor value. Now try a resistor in the medium range (1-9.9W) across the leads and verify that the reading is close to expected. Similarly, a 0.1-0.9W resistor should give a very close measured result. With calibration complete, you can now test a selection of electrolytic capacitors to get a feel for the meter’s operation. The screen shows the measured ESR on the first line, the range (High, Medium or Low) on the third line, and the saved lead resistance on the fourth line. There is no need to subtract the lead resistance from the displayed ESR value, as that has already been done. If you’ve built the combined LC/ ESR Meter (as we think most people will), now would also be a good time to switch over to LC mode and verify that the unit changes modes when you flick the switch and that inductor and capacitor measurements are correct. Final assembly If you are building the unit as a standalone ESR meter, all that remains is to place the Arduino and ESR shield into an appropriate enclosure, with the LCD visible and the test lead terminals (and possibly S2) accessible. We have not shown the wiring to achieve this but it is similar to what is shown in Fig.3 without the LC Meter shield. The main differences are that the two connections from pins D3 & D4 on the Arduino ► to the ESR PCB via S1 should be run directly, while pin D2 should be tied to GND. The 5V and GND supply connections also connect from the Arduino to the ESR board rather than via the LC Meter Shield. Practical Electronics | August | 2024 Fig.8: while also not necessary for the version built with the combined PCB as described, this shows the mounting bracket used to hold the banana sockets in the prototype. If you have built the combined PCB, fitting it into an enclosure is a bit more straightforward. Again you will need a cut-out to view the LCD screen (unless your case has a clear lid) and possibly a way to access S2 (eg, a small hole in the case). The toggle switch will fit through a hole in the lid of your enclosure, but the board should be mounted against the left edge so that the banana sockets will fit through holes in the side (unless you’ve decided to mount them elsewhere and connect them to the socket pads via flying leads). You could use panel-mount banana sockets mounted just off the GET T LATES HE T COP Y OF TEACH OUR -IN SE RIES AVAILA BL NOW! E left edge of the board and attached via short wires. As in the prototype, you would typically mount the LCD screen near the top of the case with the main PCB below. Power for the prototype was fed in via the Uno’s power connector, with the plug going through a cut-out in the left-hand side of the case. You could use a similar arrangement, or use a chassis-mounting DC barrel socket mounted elsewhere and wired to the VIN and GND pins of the Uno. If your enclosure doesn’t have a clear lid, cut a piece of clear acrylic or other plastic for the display window. You can either glue this onto the underside of the enclosure cover or mount it on top of the LCD. Prototype mounting details Some constructors may wish to use a similar mounting arrangement to the prototype. However, this is not suitable if you are using the combined PCB; it’s only relevant if you have separate PCBs. The boards, mounting brackets and display were mounted on a 4mm-thick acrylic base plate, as shown in Fig.7. Fig.8 shows the reinforcement bracket used for mounting the banana sockets to the case. Depending on Order direct from Electron Publishing PRICE £8.99 (includes P&P to UK if ordered direct from us) your case, you may not need this; you can mount the sockets directly to it, or use the onboard ones. If you are chassis-mounting mode switch S1, you might want to make a similar bracket for it if mounting it directly to the case isn’t suitable. Consider that you should drill a hole about 3mm in diameter in the case for accessing Zero switch S2 later should you need to recalibrate the lead resistance. Having to open up the case to do that could be a nuisance. Table 1 can be printed onto adhesive paper or printed, laminated and glued onto the case as a guide. That is what I did for the prototype. Keep in mind that if you’re using the Combined PCB, the mode switch toggle will be in the middle of where I attached it on my prototype. Depending on where you’ve put the banana sockets, you may be able to attach it higher up to clear that switch. Conclusion Don’t forget to discharge the capacitors before testing them! Reproduced by arrangement with SILICON CHIP magazine 2024. www.siliconchip.com.au EE FR -ROM CD ELECTRONICS TEACH-IN 9 £8.99 FROM THE PUBLISHERS OF GET TESTING! Electronic test equipment and measuring techniques, plus eight projects to build FREE CD-ROM TWO TEACH -INs FOR THE PRICE OF ONE • Multimeters and a multimeter checker • Oscilloscopes plus a scope calibrator • AC Millivoltmeters with a range extender • Digital measurements plus a logic probe • Frequency measurements and a signal generator • Component measurements plus a semiconductor junction tester PIC n’ Mix Including Practical Digital Signal Processing PLUS... YOUR GUIDE TO THE BBC MICROBIT Teach-In 9 – Get Testing! Teach-In 9 A LOW-COST ARM-BASED SINGLE-BOARD COMPUTER Get Testing Three Microchip PICkit 4 Debugger Guides Files for: PIC n’ Mix PLUS Teach-In 2 -Using PIC Microcontrollers. In PDF format This series of articles provides a broad-based introduction to choosing and using a wide range of test gear, how to get the best out of each item and the pitfalls to avoid. It provides hints and tips on using, and – just as importantly – interpreting the results that you get. The series deals with familiar test gear as well as equipment designed for more specialised applications. The articles have been designed to have the broadest possible appeal and are applicable to all branches of electronics. The series crosses the boundaries of analogue and digital electronics with applications that span the full range of electronics – from a single-stage transistor amplifier to the most sophisticated microcontroller system. There really is something for everyone! Each part includes a simple but useful practical test gear project that will build into a handy gadget that will either extend the features, ranges and usability of an existing item of test equipment or that will serve as a stand-alone instrument. We’ve kept the cost of these projects as low as possible, and most of them can be built for less than £10 (including components, enclosure and circuit board). © 2018 Wimborne Publishing Ltd. www.epemag.com Teach In 9 Cover.indd 1 01/08/2018 19:56 PLUS! You will receive the software for the PIC n’ Mix series of articles and the full Teach-In 2 book – Using PIC Microcontrollers – A practical introduction – in PDF format. Also included are Microchip’s MPLAB ICD 4 In-Circuit Debugger User’s Guide; MPLAB PICkit 4 In-Circuit Debugger Quick Start Guide; and MPLAB PICkit4 Debugger User’s Guide. ORDER YOUR COPY TODAY: www.electronpublishing.com Practical Electronics | August | 2024 27