Silicon ChipWiFi Programmable DC Load, Part 2 - October 2022 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: I3C: Coming soon to an IC near you
  4. Feature: Display Technologies, Part 2 by Dr David Maddison
  5. Project: 30V 2A Bench Supply, Part 1 by John Clarke
  6. Feature: New PICs & AVRs from Microchip by Tim Blythman
  7. Project: PIC & AVR Breakout Boards by Tim Blythman
  8. Subscriptions
  9. Feature: Buck/Boost Battery Charging by Tim Blythman
  10. Project: Multi-Stage Buck/Boost Charger by Tim Blythman
  11. Project: Automatic Train Controller by Les Kerr
  12. Serviceman's Log: Fixing feline follies by Dave Thompson
  13. Feature: Mouser Q & A by Nicholas Vinen & Mark Burr-Lonnon
  14. Project: WiFi Programmable DC Load, Part 2 by Richard Palmer
  15. PartShop
  16. Vintage Radio: STC model 510 portable by Associate Professor Graham Parslow
  17. Market Centre
  18. Advertising Index
  19. Notes & Errata: History of Op Amps, August 2021; AVO Valve Testers, August 2022; iSoundbar, August 2022
  20. Outer Back Cover

This is only a preview of the October 2022 issue of Silicon Chip.

You can view 44 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:
  • Display Technologies, Part 1 (September 2022)
  • Display Technologies, Part 1 (September 2022)
  • Display Technologies, Part 2 (October 2022)
  • Display Technologies, Part 2 (October 2022)
Items relevant to "30V 2A Bench Supply, Part 1":
  • 30V 2A Bench Supply front panel control PCB [04105222] (AUD $2.50)
  • 30V 2A Bench Supply main PCB [04105221] (AUD $5.00)
  • INA282AIDR shunt monitor IC and 20mΩ 1W shunt resistor for 30V 2A Bench Supply (Component, AUD $10.00)
  • 30V 2A Bench Supply PCB patterns (PDF download) [04105221/2] (Free)
  • 30V 2A Bench Supply front panel artwork (PDF download) (Free)
Articles in this series:
  • 30V 2A Bench Supply, Part 1 (October 2022)
  • 30V 2A Bench Supply, Part 1 (October 2022)
  • 30V 2A Bench Supply, Part 2 (November 2022)
  • 30V 2A Bench Supply, Part 2 (November 2022)
Items relevant to "PIC & AVR Breakout Boards":
  • PIC16F18xxx DIP Breakout PCB [24110222] (AUD $2.50)
  • PIC16F18xxx SOIC Breakout PCB [24110225] (AUD $2.50)
  • AVRxxDD32 TQFP Breakout PCB [24110223] (AUD $2.50)
  • PIC & AVR Breakout Board PCB patterns (PDF download) [24110222,3,5] (Free)
Items relevant to "Buck/Boost Battery Charging":
  • Complete kit for the High Power Buck-Boost LED Driver (Component, AUD $80.00)
Items relevant to "Multi-Stage Buck/Boost Charger":
  • Buck/Boost Charger Adaptor PCB [14108221] (AUD $5.00)
  • PIC16F1459-I/SO programmed for the Buck/Boost Battery Charger Adaptor (1410822A.HEX) (Programmed Microcontroller, AUD $15.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)
  • Complete kit for the Buck/Boost Charger Adaptor (Component, AUD $40.00)
  • Complete kit for the High Power Buck-Boost LED Driver (Component, AUD $80.00)
  • Laser-cut clear acrylic front panel for Buck/Boost Charge Adaptor (PCB, AUD $2.50)
  • Buck/Boost Charger Adaptor software & laser cutting files (1410822A.HEX) (Free)
  • Buck/Boost Charger Adaptor PCB pattern (PDF download) (14108221) (Free)
Items relevant to "Automatic Train Controller":
  • Automatic Train Control PCB [09109221] (AUD $2.50)
  • Chuff Sound PCB [09109222] (AUD $2.50)
  • PIC16F1455-I/P programmed for the Automatic Train Controller (0910922A.HEX) (Programmed Microcontroller, AUD $10.00)
  • PIC12F675-I/P programmed for the Chuff Sound module (0910922C.HEX) (Programmed Microcontroller, AUD $10.00)
  • ISD1820-based voice recording and playback module (Component, AUD $7.50)
  • Firmware for the Automatic Train Controller (0910922A/C.HEX) (Software, Free)
  • Auto Train Control and Chuff Sound Generator PCB patterns (PDF download) [09109221/2] (Free)
Items relevant to "WiFi Programmable DC Load, Part 2":
  • WiFi-Controlled DC Electronic Load main PCB [04108221] (AUD $7.50)
  • WiFi-Controlled DC Electronic Load daughter PCB [04108222] (AUD $5.00)
  • WiFi-Controlled DC Electronic Load control PCB [18104212] (AUD $10.00)
  • 3.5-inch TFT Touchscreen LCD module with SD card socket (Component, AUD $35.00)
  • Laser-cut acrylic fan mounting-side panel for the WiFi DC Electronic Load (PCB, AUD $7.50)
  • WiFi-Controlled DC Electronic Load laser-cut front panel (2mm matte black acrylic) (PCB, AUD $10.00)
  • Software and laser-cutting files for the WiFi DC Electronic Load (Free)
  • WiFi-Controlled DC Electronic Load PCB patterns (PDF download) [04108221/2, 18104212] (Free)
  • Front panel decal and cutting diagrams for the WiFi DC Electronic Load (Panel Artwork, Free)
Articles in this series:
  • WiFi Programmable DC Load, Part 1 (September 2022)
  • WiFi Programmable DC Load, Part 1 (September 2022)
  • WiFi Programmable DC Load, Part 2 (October 2022)
  • WiFi Programmable DC Load, Part 2 (October 2022)

Purchase a printed copy of this issue for $11.50.

WiFi-Controlled Programmable DC Load Part 2: by Richard Palmer ѓ Handles up to 150V DC, 30A & 300W ѓ Uses a computer CPU cooler to handle high power dissipation with modest noise ѓ Constant voltage (CV), constant current (CC), constant power (CP) and constant resistance (CR) modes ѓ Step test modes (square, ramp and triangle) with variable rise/fall times ѓ Data logging ѓ Touchscreen, USB or WiFi (web browser) control, including via smartphone/tablet ѓ SCPI programmable over WiFi and isolated USB ѓ Retains settings with power off ѓ Over-voltage, over-current and reverse voltage protection ѓ Useful for power supply, battery and solar cell testing This Programmable Load can handle supplies delivering up to 150V, 30A or 300W. That makes it ideal for testing power supplies, solar panels or other DC sources. We explained how it works last month. This article includes the PCB assembly details, overall construction, testing and some usage tips. 86 Silicon Chip Australia's electronics magazine siliconchip.com.au It is vital that a dummy load can dissipate a lot of power, and this one can handle up to 300W, thanks to the use of two CPU tower coolers and four large TO-247 package Mosfets. It can be controlled using its onboard touchscreen, via a web interface over WiFi or using SCPI. SCPI support is ideal for integrating it into a suite of test instruments, and it allows for semi or fully automated testing. There are three PCBs to build: one control panel, which has the ESP32 with WiFi, the touchscreen and the other user controls; the main Load board with two Mosfets; plus a daughterboard with two more. Once those boards have been built, they can be wired up, tested and then housed in a ventilated metal case that is just the right size for fitting everything inside. Importantly, it also provides decent ventilation for safely dissipating up to 300W. There are quite a few construction steps, so let’s start by building the control board. Control board assembly The first steps are to build and test the touchscreen control module, followed by the main load PCB. Once both are working correctly, the load daughterboard (which adds the two extra load Mosfets) can be built and tested. To build the controller board with a 3.5in touchscreen, you can follow the instructions in the original articles (May & June 2021; siliconchip.com. au/Series/364). Note that the overlay diagram presented in June 2021 was incorrect (it’s now fixed in the online version). So you’re better off using Fig.9 in this article instead. As some slight circuit changes are required on the control board (described last month), I have created a new PCB coded 18104212 (167.5 x 56mm). This can still be used to build the original Programmable Hybrid Lab Power Supply with WiFi, or it can easily be adapted to this project, depending on which link options are used (made by soldering across pairs of closely-spaced pads). Assembly of the control module is Fig.9: this updated control PCB has extra link options on the back (JMP_ENCB, JMP_PIN13 & JMP_LED), so it can be used for the Hybrid WiFi Lab Supply and the WiFi DC Electronic Load. Some extra component pads are needed in this application to filter analog voltages that the Lab Supply did not require. This overlay diagram fixes significant errors in the originally published version. There are two locations for the rotary encoder, to allow for different-sized knobs. siliconchip.com.au October 2022  87 The Control board can be cut into three separate pieces and then joined with ribbon cable. If you use a large enough case the boards do not need to be cut. straightforward as there aren’t many components on it – see Fig.9. If you are using the recommended case, start by cutting the board into three pieces along the dashed lines and through the rectangular cut-outs, to separate the switches and encoders from the display section. Clean up the edges and make sure you haven’t created any short circuits between the cut tracks. Next, fit all the SMD passives where indicated. We’ve ‘cut some holes’ in the ESP32 module in Fig.9 so you can see where the components go underneath it, including the two 100nF we’ve added as per the Fig.8 circuit diagram in the previous issue. The 10μF and 47μF capacitors are shown as polarised tantalum types, but you can use (and we recommend) ceramics, which are not polarised, so their orientation doesn’t matter. The next step is to bridge the appropriate pairs of solder pads. Leave all four links, labelled LK1 to LK4, open (do not solder them). The other three sets of solder pads labelled JMP_LED, JMP_ENCB and JMP_PIN13 have three pads each, and you need to bridge from the middle pad to one of the outer pads, but not both. These have little arrows which show the pad to bridge the centre pad for the original design. For this design, 88 Silicon Chip bridge the pair of pads furthest from the arrows at JMP_ENCB and JMP_ PIN13. The existing bridges closest to the arrows will need to be cut. JMP_LED is bridged to force the LED backlighting for the LCD panel on at full brightness. The other position is for software control, but there aren’t enough spare pins on the ESP32 for that function in this project, so just set it at full brightness by shorting the arrowed pair of pads. Now fit the through-hole parts, including CON2 (but not CON1 and REG1) and the headers for the ESP32 modules on one side. Before soldering the headers for the ESP32 module, plug them into that module and then slot them into the PCB to get them at the proper spacing (there are two possible rows of solder pads on one side). Next, install the switches, rotary encoders and LED on the other side of the board. Solder the LED so that the top of its lens is about level with the top of the tactile switch actuators without caps. Attach the 14-pin and 4-pin headers on either side of the touchscreen module (if they didn’t come pre-soldered; usually, the 14-pin header is, but the 4-pin header isn’t). Insert these headers into the holes on the control PCB so that the pins just project through to the rear, then solder them in place, ensuring the face of the screen is parallel with the PCB. The DC socket and micro SD card socket are not needed for this project. Power is supplied to the board through the pads for CON1, labelled + and −. With the three sections of the control board now essentially complete, join them with two 10cm lengths of ribbon cable as in Fig.9. The encoder’s integral switch is not used in this project, and GPIO pin 26 is employed for another purpose, so you should only bridge the bottom six pins between the main control board and the encoder panel, as shown. While you could modify the earlier PCB (coded 18104211) for use in this project, there isn’t much point as the new one is the same price and makes it much easier. But if you must, cut and re-route the two tracks as per Fig.8 last month and tack on two 100nF throughhole ceramic capacitors. Commissioning the Control board The bare ESP32 module and a USB Australia's electronics magazine cable are all that are required for the first stage. Mounting the module on the Control board will come later. We assume that you’re already somewhat familiar with the Arduino development environment. If you don’t already have the Arduino IDE (integrated development environment) installed, you can download it from www.arduino.cc/en/software If you haven’t already, you will need to add ESP32 board support. Go to File → Preferences and add “https:// dl.espressif.com/dl/package_esp32_ index.json” to the Additional Boards Manager URLs. Next, open the Boards Manager (Tools → Board → Board Manager), search for ESP32 and click “Install”. This will set up the development environment and add an extensive list of example programs to the list. Set the Board to “ESP32 Dev Module” via the menu (see Screen 1). The rest of the settings may be left as the defaults. Plug in the ESP32 module and select the new communication port that appears in the menu. To check that it is working correctly, open the Communication → ASCII Table example and upload it (CTRL+U in Windows). Open the Serial Monitor, set the baud rate to 9600, and the screen should fill with the ASCII output out of the test sketch. Loading software over-the-air To demonstrate other possible applications for the Control board, we’ve created a version of the WiFi weather app as a demonstrator program for the D1 Mini LCD BackPack (October 2020; siliconchip.com.au/Article/14599). This is also a good way to test the Control board independently. The GitHub repository for this project is at https://github.com/palmerr23/ ESP32-DCLOAD We have made a ZIP file available for download from siliconchip.com. au/Shop/6/6518, which includes two display options: a 2.8in or 3.5in touchscreen. The 2.8in version ends with -28.BIN while the other version ends with -35.BIN. Load it using the OTA update process described below. The Weather app has a built-in OTA function to simplify loading the power-supply controller code. Over-the-air programming of the ESP32 is a two-stage process. First, we load a simple sketch with the over-theair (OTA) updater via USB. Load up the siliconchip.com.au #include #include #include #include #include <WiFi.h> <WiFiClient.h> <WebServer.h> <ESPmDNS.h> <Update.h> const char* host = “esp32”; const char* ssid = “YourSSID”; const char* password = “YourPassword”; WebServer server(80); Screen 2: to upload code to the ESP-32 via WiFi (OTA update), you need to add your network credentials towards the top of the program, as shown here. The hostname can be left as-is or changed to suit your requirements. Screen 1: once you have selected the correct Board in the Arduino IDE Tools menu, the settings should be set to the same values as shown. ArduinoOTA example (File → Examples → ArduinoOTA → OTAWebUpdater). Fill in your WiFi credentials (SSID and password) at the top of the program (see Screen 2). Open the Serial Monitor and change the baud rate to 115,200. Save the Arduino sketch, as we’ll be using it again. Compile and upload the sketch, and note the IP address displayed in the Serial Monitor. Move the Data folder and its contents from the download pack into the same folder as your saved OTAWeb­ Updater.ino file. Edit your WiFi credentials into the profile.json file. Close the Serial Monitor. In the Tools menu click ESP32 Sketch Data Upload to copy the files in the Data folder to the ESP32’s local file system (SPIFFS). This file system remains intact when new programs are uploaded. Now you can disconnect the ESP32 module and plug it into the Control board, ensuring that its 5V pin is closest to CON2 and its 3.3V pin is towards CON1 & REG1 (see Fig.9). Plugging it in the wrong way around Screen 3: when presented with the ESP-32 login page, use the default credentials of “admin” & “admin”. There’s no need to change these as they are only used once. could be catastrophic! Make sure that the TFT touchscreen is mounted on the Control board. Power this combination up using a USB cable or (if you fitted CON1) a DC supply of about 9-12V. The USB cable doesn’t have to be plugged into your computer, although it could be. Open a web browser on your computer and type in the ESP32’s IP address. You should be presented with a login screen (Screen 3). The username and password are both “admin”. There’s no point changing these to something more secure, as we’ll only be using this sketch once. After logging in, select the software file you’ve downloaded with the “Choose file” button (Screen 4), then “Update”. The web page will track the upload progress; then, after a short delay, the ESP32 will reboot, running the weather app (see Screen 5). Once you have verified that the Control board is working correctly, you can load the DC Electronic Load program. It is part of the same ZIP package that contained the weather app, and like that one, the suffix of -28.BIN or -35. BIN indicates which screen size it is for (this project is designed around the 3.5in option). The controller should display an error message at startup, as the I2C ADC and DAC chips are not yet connected to the Control board. Screen rotation & calibration Some TFT screens come with the origin of the touchscreen rotated 180° from that of the display. If your touchscreen appears not to be working, that Screen 5: if your module has been assembled and programmed correctly, once it has connected to your WiFi network, it should give local weather data, as shown here. Screen 4: once logged into the OTA page, you can select a file and then upload it into the ESP-32’s flash memory remotely using the “Choose file” and “Update” buttons, respectively. siliconchip.com.au Australia's electronics magazine October 2022  89 Screen 6: from the launch screen, pressing the SET button at upper right brings you to the calibration screen. Pressing the ROT button in the centre of this screen will adjust the orientation of the display if the touch controls are reversed. could be why. Try tapping the screen near the SET legend at upper right. If this lights the ST or NOR button, simply tap the ROT button in the centre of the screen (see Screen 6). The number below it should change from 3 to 1. Wait for the yellow [E] indicator to go out (after around 30 seconds), and the new value will be stored permanently in the ESP32’s EEPROM. Use this TCH button at the calibration screen’s bottom-left corner to align the touchscreen accurately with the display. Follow the prompts, touching each of the two + symbols six times. As above, it will permanently store the values after 30 seconds. Building the main Load PCB The main Load PCB is coded 04108221 and measures 107 x 81.5mm – see Fig.10. Install all components on this PCB other than Mosfets Q1 & Q2 and 5V regulator REG1. Start with the five SMD ICs, taking particular care to orientate them as shown in Fig.10, then follow with all the SOT23 devices and surface-mounted resistors and capacitors. With all the SMDs in place, give the board a good clean to eliminate any flux residue and then inspect all the solder joints, especially those on the fine-pitch ICs. If you find any dodgy looking joints, add some flux paste and briefly touch them with the tip of your soldering iron to reflow them. If you find bridges between pins on an IC, use flux paste and solder wick to remove the excess solder. Now fit the two larger through-hole resistors and the two smaller ones, which are mounted vertically. Follow with axial inductor L1, also vertical, plus the sole through-hole capacitor, a 1μF plastic film type. 90 Silicon Chip Now is a good time to solder the wire shown in blue in Fig.10. Use a short length of medium or heavy-duty hookup wire as this carries the current for one of the two Mosfets. Similarly, add the wire shown in red between the middle pin of the two Mosfets. You don’t have to loop it the way shown in our diagram; make it as direct and short as possible, without covering the Mosfet mounting pads. Next, fit the connectors. There are a few options here. CON1 and CON2 are required, and their notches must be orientated as shown. If you will be using 4-pin PWM fans as recommended, install CON9 and CON10 with the locking tabs facing as shown. Otherwise, fit CON11 and CON12, which suit 2-pin or 3-pin fans. You can solder the lug-mount NTC thermistor directly to the CON15 pads, or use a polarised header as shown. Either way, don’t attach the thermistor to anything yet. We recommend using headers for convenience for CON13, CON14 & CON16, but soldering wires to the PCB pads instead (eg, lengths of ribbon cable) is certainly possible. Early testing You will need to make the two ribbon cables for testing, as shown in Fig.11. They aren’t just for testing; they will be used in the final assembly. Connect the main Load PCB to the control board via the 20-wire ribbon cable and the ESP32 to a computer or 5V 1A power supply via USB. Do not connect the 12V supply at this stage. You should have already loaded the software, but this time, no hardware-­ related warning messages should appear on the control screen. The voltage and current readings on the screen should be close to zero initially and should reset to zero after a few seconds. The temperature reading on the control screen should indicate the approximate room temperature. Grip the thermistor between your fingers, and the temperature should change. Fig.10: assemble the main Load board as shown here. Most of the components are SMDs; start with the ICs and then fit the passives, transistors and other parts. The main decisions to make during assembly are whether to leave some of the headers off and solder wires directly to the board instead. That will initially save you time, but it makes testing and disassembly more arduous. Australia's electronics magazine siliconchip.com.au If you have a serial monitor (terminal) program, like the Arduino IDE Serial Monitor, set the baud rate to 115,200 and connect the ESP32 controller to your computer (or restart it if it was already connected). The serial monitor output should indicate that two I2C devices are registered, the ADC at address 0x48 and the DAC at address 0x60-67. MCP4725 devices are programmed at manufacture with one of four different I2C base addresses. Any variant may be used as the controller searches for I2C devices in the appropriate address range. If either I2C device has not registered, check for open or short circuits on the SDA and SCL lines. Check that the two I2C pull-up resistors are mounted on the control board. If only one device is showing, check for soldering problems on the other device – particularly the SDA, SCL, ground and supply pins. Setting up the WiFi network Now that the Control board has been programmed, when you power it up, the control menu should appear with a green box overlaid (see Screen 7). The program will try to connect to a local WiFi LAN and time out after 10 seconds, if you have not yet provided it with credentials by editing the profile.json file. Fig.11: the two ribbon cables needed are simple to make as they just have one IDC connector at each end. Make sure to crimp them hard enough for all the blades to penetrate the ribbon cable’s insulating and make good contact with the copper inside, but not so hard that you crack the plastic! Note that some IDC connectors lack the top locking pieces. If no network is found, another 10-second delay should occur while it seeks an existing ESPINST network. Finally, it should become the Access Point for the ESPINST network. At this point, the green box should disappear, leaving the main menu displayed. A small green “W” near the top right corner indicates that WiFi is operating. cases, you can resolve this by powering the ESP32 module from an independent 5V supply. If the problem persists, try adding a 47μF electrolytic between the module’s 3.3V supply rail and its ground pin, as shown in Fig.12. I highly recommend using a USB isolator for any USB connection to your computer while testing or operating the Load. Otherwise, the appliESP32 module stability cation of a reverse polarity voltage or Some ESP32 modules have over-­ other fault conditions could destroy sensitive brownout detectors causing both the ESP32 and your computer by multiple restarts, particularly when creating a high-current ground loop if connected via a USB hub. In most a USB isolator is not used. Screen 7: once the Control board has been programmed, when you first power it up the screen shown above should be displayed. This is the program trying to connect to a local WiFi LAN address. This photo shows one of the mounting arrangement options for the Mosfets. The mounting holes can be drilled between the heat pipes if there is room, or just outside them; either way works. Note that this is a prototype PCB. siliconchip.com.au Australia's electronics magazine The 9mm thick CPU cooler to PCB mounting block made from MDF. October 2022  91 Fig.12: a 47μF electrolytic between the 3.3V and ground pins on an ESP32 module can help if repeated ‘brownout detector triggered’ restarts are encountered. The bare leads should be insulated. USB isolators are available offthe-shelf at a relatively low cost on websites like Amazon, eBay and Ali­ Express. For example, www.ebay.com. au/itm/313938468819 Finishing board assembly Now install the 5V regulator (REG1) on the main Load board, being careful with its orientation, and plug the cooler fan(s) into their headers. Apply 12V to CON16 with the indicated polarity, and the fan(s) should briefly operate at full speed, then reduce to idle. The fan speed should start to rise as the thermistor temperature exceeds 28°C. Gently use a hairdryer to raise the thermistor temperature. Above 35°C, the fans should be running at full speed. At a reading of 65°C, an over-temperature warning message should appear on the screen. This is a convenient point to calibrate the thermistor, before it is attached to the Mosfet’s case. Follow the instructions in the user manual PDF, part of the software download package for this project at siliconchip. com.au/Shop/6/6518 The voltage on the Mosfet gate terminals (labelled “G” in Fig.10) should be close to 0V when any of the following is true: the output is switched off, the current setpoint is 0.0A and the load is on (connected), or the thermistor temperature is over 65°C. Set the voltage and current setpoints to any value greater than 1.0, and the load set ‘on’. Both gate terminals should rise to 8-9V. Now connect the relay control wiring to CON13, using the appropriate pin (+5V or +12V) for your relay coil voltage. The relay should operate when the load is on and release when the Off button is pressed. Temporarily connect KELVIN+ on CON14 to VIN and KELVIN− to GND. Temporarily bridge the 12V supply to VIN. The voltage reading on the control panel should be close to 12V when the output is on. Basic operations have been validated at this stage, and we can add the power components. Mosfets and power testing Mark out the Mosfet mounting holes on the CPU cooler, as shown in Fig.13. Drill and tap the mounting holes to 3mm or 1/8in (3.175mm). Drill either the holes between or outside the heat pipes, depending on the cooler used. Either is possible for the Hyper 103, but using the outside positions gives greater clearance. Depending on the CPU cooler chosen, the holes may be between the heat Fig.13: the drilling pattern for the heatsink cooler. Drill the holes either between or outside the heat pipes, depending on the cooler used. For the Hyper 103, the outside position gives greater clearance. 92 Silicon Chip Australia's electronics magazine pipes or outside the heat pipe group. With the dimensions of the PCBs, the maximum spacing between holes is 30mm, leaving just enough lead length to solder in the Mosfets in the outer positions. Compare the photos on the previous and next spreads, which show the difference between the two different mounting options. The minimum difference in the Y-axis position of the two holes on either side is 9mm, when the Mosfet leads are bent as close as possible to the package. Mount the Mosfets on the cooler with thermal paste but no insulating washers. Cut the 9mm-thick mounting blocks from MDF or similar and insert them between the CPU cooler and PCB, as shown on the previous spread. Blocks, rather than standoffs, are used for better lateral stability. Bend the Mosfet leads up and solder them to the PCB. Mount the thermistor onto either of the Mosfet cases. You can now complete the wiring as per the wiring diagram, Fig.14. Remember to use heavyduty wiring for the current-carrying cables between the two Load PCBs, the relay module and the output terminals. More testing Connect a low-voltage supply across VIN and COM (you can patch the 12V supply powering the PCB to VIN for this test). Set the target voltage to a few volts above the supply voltage, set the target current to 50mA and press the On button. The control panel current should read 50mA. Increase the current value to 500mA and measure the voltage across each of the two shunt resistors. Each reading should be close to 10mV, and they should be within 10% of each other if the load is balanced correctly. If you are using a supply that can deliver higher currents, increase the set current to a few amps and check that the voltages across the two shunt resistors remain balanced. Now build and connect the daughterboard using the PCB coded 04108222, which measures 81.5 x 66.5mm (Fig.15). It is basically a cut-down version of the main board, so use the same procedure, and like before, leave out the Mosfets initially. Similarly to that main board, it also requires two heavyduty wire links, as shown. Connect the daughterboard to the relay and negative terminal using siliconchip.com.au mSDCARD SKT REAR OF CONTROLLER PCB (LCD MODULE AT FRONT) 19 20 CONTROL CON2 – CON4 CON3 CON1 1 2 12V DC INPUT SOCKET (ON REAR PANEL) WIFI ENABLED INSTRUMENT PANEL REVB + 10kW NOTE: VERIFY SOCKET PINOUT, INCLUDING WITH RESPECT TO PLUGPACK POLARITY 100nF LK3 ENC_SW 1kW C 2022 100nF REAR OF ROTARY ENCODER AND DIRECTION SWITCHES PCB 100nF 10kW REM ON/OFF 100nF 100nF 100nF REAR OF ON/OFF SWITCH PCB DAUGHTER BOARD Q4 FQA32N20 IC2 VIN 20mW 3W Q3 FQA32N20 20mW 3W CON3 TO MAIN PCB GND + SENSE 10 IC4 INA180B MAIN BOARD CON1 TO CONTROL BOARD 20 Q2 FQA32N20 L1 Q1 FQA32N20 IC1 TO RELAY CON13 1 CON16 12V + – GND VCC IN1 + NC ON_H 100W OPTO-ISOLATED RELAY MODULE VIN – CON10 4-PIN (PWM) FANS CON9 20mW 3W THERMISTOR CON15 THERM 1 +5V COM HIGH/LOW LEVEL TRIGGER TP-I SLA05VDC-SL-C TP-V KELVIN 20mW 3W CON2 30A 250VAC 30VDC GND CON14 LOW HIGH CON2 NO 1 100W CON11 CON12 2x PWM COOLING FANS – SENSE Fig.14: running separate wires between each board and the front terminals helps distribute the current load. Run the GND bridge between the boards with a short stout cable to minimise ground potential differences and double the cable from the relay to the Load’s positive terminal to increase current capacity. siliconchip.com.au Australia's electronics magazine October 2022  93 Fig.15: the daughterboard has two power modules and a current monitor IC, identical to those on the main board. Control and sensing are transmitted to the main board via a ribbon cable. Note that the daughterboard layout has changed substantially since the photo was taken. separate wires to balance the currents between the boards, as shown in the wiring diagram (Fig.14). Note the short but thick ground wire (green) connecting the main and daughter boards at the GND points on each. You can now install the daughterboard Mosfets and re-test the Load. Mounting it in the case The CPU coolers, which support the load PCBs, are mounted on a plate attached to the side rails of the enclosure, as seen in the photographs, using a custom side panel with dimensions shown in Fig.16. Mount the coolers as far to the rear of the case as practical. This ensures there is enough space for the control panel components and relay at the front of the case. Take care that the CPU cooler fins are well clear of the metal case and wiring, as they will be at the full input potential. It may be necessary to reverse the fans on the coolers, so that they suck air through the fins and blow it out the side of the case. All mounting screws on the support panel should be countersunk to avoid interference with the enclosure sleeve. The prototype used 3mm Perspex, with top and bottom folds to increase rigidity. You can cut this yourself, or we can supply it laser-cut from 3mm clear acrylic (but without the bends). Alternatively, you could use metal or thin plywood. The support plate mounts on the inside of the case’s side rails, with the fan mounting holes 30mm above the base of the case. This provides airflow below the cooler and headroom for the components on the PCBs. Additional ventilation is provided by cutting a hole in the rear panel to mount a 120mm fan guard, and making a substantially larger opening in the panel on the CPU cooler side, covered by two 120mm plastic fan guards. A 100 x 100mm grid of 61 x 7mm holes in the bottom panel toward the front of the case boosts airflow to the front CPU cooler (see Fig.17). To ensure good airflow, it’s best to remove any filtering material from the fan guards. Once the cooler support panel is in place, mark the two fan guard cutouts and mounting holes on the side panel. They should be placed side-byside, covering the existing slots in the sleeve. Once the cut-outs and holes in the sleeve have been made, slide the sleeve in place and mark the screw holes onto the CPU cooler panel. Fig.16: this CPU cooler mounting plate attaches to the enclosure’s side rails. The coolers are mounted towards the rear (right) of the enclosure to allow space for the control panel at the front (left). All holes should be countersunk to prevent the screw heads from binding on the case’s metal sleeve. You can mark additional clearance holes for the fan guard screws with the cover sleeve in place. Fan mounting holes are 4.5mm in diameter, while the case mounting holes are 3mm. 94 Silicon Chip Australia's electronics magazine siliconchip.com.au Fig.17: the airflow hole pattern for the base of the case. Position it towards the front of the case. Holes will be needed in the CPU support panel so that the fan guard mounting screws don’t bind on it. Drill relief holes for the screws and nuts, or self-tappers, a few millimetres larger than their diameter. Mount the third fan guard toward the top of the rear panel and the coaxial power socket toward the bottom corner furthest from the CPU cooler panel. The relay module mounts on the case floor, at the front and on the opposite side to the CPU cooler support plate. Ensure adequate clearance is provided for the CPU cooler fins. On my relay module, one of the mounting screws was uncomfortably close to the tracks going to the contacts, so I used a Nylon standoff and screw on that corner. Front panel The front panel components mount on the metal faceplate provided with the case. A 2mm black acrylic cover panel or decal finishes off the face. See siliconchip.com.au The photo shows how the PCBs mount on the CPU coolers, the coolers mount to the custom side panel via the fans, and the side panel mounts to the case rails. Australia's electronics magazine October 2022  95 Screen 8: the web browser control interface’s main tab. Screen 9: the Load’s TestController device popup. the cutting diagram, Fig.18, and note that you can also purchase a laser-cut and etched acrylic panel to save a fair bit of effort. You might still want to add labels to that panel, though, or fill the etched areas with white paint. Drill and cut holes in the metal panel shown with red or black outlines in Fig.18. The mounting holes for the TFT panel and switch modules should line up with the parts on the control board, and they should be drilled to 2.5mm, then countersunk so that the screw heads are clear of the cover panel or decal. The countersink will expand the holes; then, they can be drilled out to 3.5mm. The hole marked C is for the LED, and those marked B are for component mounting screws. The touchscreen is mounted directly to the back of the metal panel. Spacers are needed for the switch and encoder panels, to ensure the keycaps protrude a few millimetres. The spacers are 6mm if a 2mm Perspex cover plate is used, or 8mm for a decal. The ‘wings’ on the touch panel cutout provide clearance for the TFT connector pins, which should be filed down or snipped on the TFT module so that they don’t touch the cover panel or decal. If a Perspex cover panel is used, a printed paper label sits behind the clear piece of Perspex to protect against screw-head damage. Once you’ve finished mounting everything to the front panel, your Load should be ready for calibration. Calibration A power supply capable of providing more than 12V at 1A is required for calibration. Higher voltage and current capacity will result in more accurate calibration. Set the Load’s voltage setting at least 5V higher than your supply’s voltage to avoid the Load going into voltage limiting. Connect an accurate ammeter in series with the Load, set the current to the desired test current and switch on the Load. Follow the current calibration instructions in the Load user manual. Repeat with a voltmeter across the load for voltage calibration. Also calibrate the thermistor now, if you didn’t do it earlier. Using the Load Screen 10: the main screen displayed on the Load. 96 Silicon Chip Australia's electronics magazine The manual included in the project download package describes the opersiliconchip.com.au Fig.18: the touchscreen mounts directly behind the mounting panel. 6-8mm spacers are needed for the switch panels, so that the keycaps protrude a few millimetres from the finished front panel. The location of the encoder cutout shown is for the encoder mounted at the lower location on the control board. ation of the WiFi DC Load in detail. Most functions can be accessed from the instrument’s front panel, via the browser interface or using TestController or another SCPI control application. Logged data is downloaded via the browser interface in CSV format. The web browser interface is comprehensive, as shown in Screen 8, mirroring all settings and readings of the siliconchip.com.au touch screen other than calibration and communication. You can find the Load’s IP address in the touch screen’s Settings → Comms menu; communication is not encrypted. A TestController instrument definition file for the load is included in the project downloads. It has a device popup (Screen 9) with the most common settings and controls available. Australia's electronics magazine TestController has its own logging and analysis functions. To limit the interaction between the automatic update cycle of values on the control panel and web interface, and the ability to set parameters in TestController, the update cycle is set to 20 seconds. Values changed elsewhere and readings will update on this cycle. SC October 2022  97