Silicon ChipDSP Active Crossover and 8-channel Parametric Equaliser - July 2019 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: New motor vehicles should have built-in dashcams
  4. Feature: Radiation Hardening by Dr David Maddison
  5. Project: Dual Battery Isolator for 4WD, RVs, Caravans, etc by Bruce Boardman
  6. Feature: Modern PCBs – how they’re made by Tim Blythman
  7. Product Showcase
  8. Project: Speech Synthesis using a Raspberry Pi Zero by Tim Blythman
  9. Subscriptions
  10. Feature: El Cheapo Modules: AD584 Precision Voltage References by Jim Rowe
  11. Serviceman's Log: Repairs for a 'key' client by Dave Thompson
  12. Project: Building the RF Signal Generator (Part 2) by Andrew Woodfield, ZL2PD
  13. Project: DSP Active Crossover and 8-channel Parametric Equaliser by Phil Prosser & Nicholas Vinen
  14. Vintage Radio: The National Panasonic AKQ Walkabout portable by Ian Batty
  15. PartShop
  16. Market Centre
  17. Advertising Index
  18. Outer Back Cover

This is only a preview of the July 2019 issue of Silicon Chip.

You can view 37 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.

Items relevant to "Dual Battery Isolator for 4WD, RVs, Caravans, etc":
  • Battery Isolator Control PCB [05106191] (AUD $7.50)
  • Battery Isolator Mosfet PCB [05106192] (AUD $10.00)
  • Battery Isolator PCB patterns (PDF download) [05106191-2] (Free)
  • Battery Isolator lid panel artwork and drilling template (PDF download) (Free)
Items relevant to "Speech Synthesis using a Raspberry Pi Zero":
  • Raspberry Pi Audio Breakout PCB [01106191] (AUD $5.00)
  • TDA1543A DAC IC (Component, AUD $2.00)
  • TDA1543 DAC IC (Component, AUD $3.00)
  • Raspberry Pi Speech Synthesis software (Free)
  • Raspberry Pi Audio Breakout PCB pattern (PDF download) [01106191] (Free)
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 "Building the RF Signal Generator (Part 2)":
  • AM/FM/CW Scanning HF/VHF RF Signal Generator PCB [04106191] (AUD $15.00)
  • ATmega328P programmed with the firmware for the RF Signal Generator [0410619A.HEX] (V14) (Programmed Microcontroller, AUD $10.00)
  • Pulse-type rotary encoder with pushbutton and 18t spline shaft (Component, AUD $3.00)
  • Firmware for the RF Signal Generator [0410619A.HEX] (Software, Free)
  • AM/FM/CW Scanning HF/VHF RF Signal Generator PCB pattern (PDF download) [05105191] (Free)
  • AM/FM/CW Scanning HF/VHF RF Signal Generator panel artwork, cutting diagrams and STL files (downloads) (Free)
Articles in this series:
  • An AM/FM/CW Scanning HF/VHF RF Signal Generator (June 2019)
  • An AM/FM/CW Scanning HF/VHF RF Signal Generator (June 2019)
  • Building the RF Signal Generator (Part 2) (July 2019)
  • Building the RF Signal Generator (Part 2) (July 2019)
Items relevant to "DSP Active Crossover and 8-channel Parametric Equaliser ":
  • DSP Crossover CPU PCB [01106193] (AUD $5.00)
  • DSP Crossover LCD Adaptor PCB [01106196] (AUD $2.50)
  • DSP Crossover front panel control PCB [01106195] (AUD $5.00)
  • DSP Crossover DAC PCB [01106192] (AUD $7.50)
  • DSP Crossover power supply PCB [01106194] (AUD $7.50)
  • DSP Crossover ADC PCB [01106191] (AUD $7.50)
  • DSP Active Crossover complete PCB set (7 boards) [01106191-6] (AUD $40.00)
  • PIC32MZ2048EFH064-250I/PT programmed for the DSP Active Crossover/Equaliser (V8) (Programmed Microcontroller, AUD $30.00)
  • Pulse-type rotary encoder with pushbutton and 18t spline shaft (Component, AUD $3.00)
  • 128x64 Blue LCD screen with KS0108-compatible controller (Component, AUD $30.00)
  • Firmware and source code for the DSP Active Crossover/Equaliser project [0610619A.HEX] (Software, Free)
  • DSP Active Crossover/DDS/Reflow Oven PCB patterns (PDF download) [01106191-6] (Free)
Articles in this series:
  • DSP Active Crossover and 8-channel Parametric Equaliser (May 2019)
  • DSP Active Crossover and 8-channel Parametric Equaliser (May 2019)
  • DSP Active Crossover and 8-channel Parametric Equaliser, part two (June 2019)
  • DSP Active Crossover and 8-channel Parametric Equaliser, part two (June 2019)
  • DSP Active Crossover and 8-channel Parametric Equaliser (July 2019)
  • DSP Active Crossover and 8-channel Parametric Equaliser (July 2019)

Purchase a printed copy of this issue for $10.00.

In this third article, we test the DSP Crossover modules, then finally connect them together and power the whole unit up. Once it has been tested and assembled into its case, you can then set it up before hooking it up between your preamplifier and power amplifier(s), so that it can process the sound as required. DSP Active Crossover and 8-channel Parametric Equaliser A s mentioned in the previous articles, this DSP Active Crossover is built from six different modules: a power supply/signal routing module, a CPU board, an analogto-digital converter (ADC) board, two identical digital-to-analog converter (DAC) boards, a front panel control board and a graphical LCD with a small adaptor so that it can connect directly to the CPU board. Those previous articles described how the circuits of each module worked and how they join together. We also gave the assembly instructions for all the aforementioned modules. So if you’ve been reading along and working as you go, at this stage, you should have a complete set of modules, but you will not have connected any of them together or applied power yet. So now we get to the fun part: powering everything up, plugging the modules together, and seeing if it works (fingers crossed!). Once we’ve verified that everything is working, we can mount all these modules in a case and then we’ll explain how to use the resulting device and what sort of performance you can expect from it. Testing The first thing to check is that the power supply board is working properly. Regardless of whether you are planning to power the final unit using a plugpack or mains transformer, the easiest way to test it is by wiring a 12V AC plugpack to CON13 on the power supply board, either between pins 1 & 2 or pins 3 & 4. Don’t plug anything else into this board for now. If you don’t have such a plugpack, mount the mains transformer, mains input socket and fuseholder in a metal case (it’s usually easiest to place these all in one corner). Complete and insulate all the mains wiring before powering it up, and ensure that the metal case is Earthed directly back to the mains input socket or cord. If using a captive mains power cord, ensure it is adequately clamped to the case using a cord grip grommet or P-clamp, so that pulling on the cord won’t allow any internal conductors to come loose. Part III – Design by Phil Prosser . . . Words by Nicholas Vinen 86 Silicon Chip Australia’s electronics magazine siliconchip.com.au CON9 CO N9 An alternative to mounting the unit in the plastic case, as seen opposite, is to use a 19-inch rack mounting case – here seen with a brushed aluminium front panel for a really professional appearance. (PGEC) (PGE C) (PG (P G ED) (GND (G ND)) (VDD) (V DD) (MCLR) 8 7 6 5 4 3 2 1 JP5 JP 5 1k 100nFF 100n 1 00nF 100nFF 100n 1 CON23 IC ICSP SP BACK OF PICKIT 4 SPI2/I2S 1 PORT PO RTB B 10k D15 D1 5 REG3 RE G3 1 390 1.2k Programming with a PICKIT 4 is much faster than with a PICKIT 3, which is especially helpful in this project, as the HEX file is rather large – 2MB. siliconchip.com.au There is no visible indication when the power supply board is powered up. As soon as you have applied power, check the DC voltages at each of the above points. If any of these are wildly off, check the AC voltage(s) being applied to CON13 and ensure that they are not too far from the nominal 12V. The transformer being lightly loaded at this time, readings of 13-14V would not be surprising. Note that because of the resistor values used to set the regulator output voltages, and since there is no current being drawn from the power supply as yet, it is possible that the regulated rails may be even higher than the ranges above suggest. That’s because the worst-case minimum load requirements of the regulators are not catered for with the other boards unplugged. So if any of the expected readings are below the ranges specified, or well above them, then you should switch off and check for faults. But if they are slightly too high, you can try connecting a 100Ω resistor from 100nFF 100n Fig.16(a): how to connect a CON5 CON CON1 CO N10 0 PICkit to program the CPU using hook-up wire or patch cables. Note that the PICkit is upsidedown so that pin 1 is at the bottom. Keep the wires short, or programming may fail. GND GN D Fit a fuse with a rating as recommended for the transformer you are using. This may be around 1A, or possibly slightly more if using a toroidal transformer, as these can have a higher inrush current when power is first applied. During the following testing steps, if using a mains power supply, ensure that you can’t come into contact with any of the mains conductors while probing the board. Set your multimeter to a low DC volts range (eg, 20V). Before applying power, check the markings on the board to see where you will be probing. The right-hand end of the 0Ω resistor/wire link below D26 is a convenient place to connect your black ground probe. You will be checking the voltages at the +9V, -9V, +5V, +3.3V, and VA (5V) pads, as indicated in Fig.11 on page 83 last month, and the PCB itself. These voltages can vary slightly from those indicated. The acceptable ranges are: 9.2-10.4V (±9V), 4.7-5.4V (+5V, VA) and 3.153.6V (+3.3V). BACK OF PICKIT 4 (PGEC) (PGE C) (PG (P G ED) (GND (G ND)) (VDD) (V DD) (MCLR) 8 7 6 5 4 3 2 1 Fig.16(b): alternatively, you can use an IDC header on a short 10-way ribbon cable soldered to a pin header for programming. the test point to ground to see if that brings the reading back down into the expected range. If it does, then you can proceed. Otherwise, start looking for soldering or component faults. Programming the micro Once you’re confident that the power supply is working, if your micro is not already programmed, now is a good time to do that. If you have a Fig.17: the first step to set up MPLAB X IPE is to select the correct PIC chip, as shown here, and check that it has detected your programmer. Australia’s electronics magazine July 2019  87 Fig.18: to make things easier, rather than powering the board externally, the PICkit can supply power to IC11 during programming, as long as you have checked this box. PICkit 3 or PICkit 4 (or similar), you don’t necessarily need to power the board up to do this; the programmer can supply power to program the chip, and indeed, it is safer to do it this way. As mentioned last month, the programming header (CON23) does not have the same pinout as the PICkit 3/4, so you need to make up an adaptor to connect it. This could be as simple as five male/female jumper leads plugged into CON23 at one end, and the appropriate PICkit pin at the other end. Or, you could crimp a 10-pin IDC line socket onto a spare section of 10way ribbon cable, then separate the wires at the other end, cut some off short and solder the others to a 5-pin header. You can then plug the PICkit into that header. To program the chip in our prototype, we soldered a 5x2 pin box header onto a small piece of veroboard, along with a 5-pin right-angle header, and then made the five required connections using short lengths of Kynar (wire wrap wire) soldered between the pads. Regardless of the method you choose, the required cable configuration is shown in Figs.16(a) and 16(b). Remove jumper JP5 during programming and re-insert it when finished. If using a PICkit, you can load the HEX file into the PIC32MZ chip using the free Microchip MPLAB IPE software, which is installed along with the MPLAB IDE (also a free download). Grab this from the following link: microchip.com/mplab/mplab-x-ide Having installed the IPE (if you don’t have it already), launch it and change the Device field to “PIC32MZ2048EFH064” (see Fig.17). If you can’t find that device in the list, you need to update to the latest version of the software. Plug in your programming tool, then select it from the list and click “Apply”, then “Connect”. If your tool does not support this chip, you will get a message saying so. Fig.19: now we can load our HEX file, connect to the PIC and program it. If successful, you should get the same messages in the bottom pane as we did here. You may get an error message saying that no power was detected and the connection has failed. This is fine, as we want to ensure that the PICkit is set up connectly before applying power to the chip. Now, to the right of “Hex File”: below, click “Browse” and select the HEX file which you have unzipped from the download package for this project, obtained from the SILICON CHIP website. Next, click on the “Power” tab on the left side of the screen. You may need to switch the software to “Advanced Mode” to access this tab. Ensure that the “Power Target circuit from Tool” option is ticked (Fig.18). Switch back to the “Operate” tab, check that your programmer is connected to the CPU board correctly (if not, click the “Connect” button again) and press the “Program” button. You will get a series of messages at the bottom of the screen indicating the progress (Fig.19). If programming failed or you get a message that the software is unable to detect or connect to the target device, check your wiring. If that’s good, then you may have a problem with the soldering of IC11 or some associated components, or you may have one or more solder bridges on the board. Examine it carefully for faults. Our first attempt to program the chip in our prototype failed. We carefully examined all the pins of IC11 under magnification, but couldn’t see any obvious problems like bridges or unsoldered pins. We solved this by adding flux paste to all the pins of IC11 and then re-flowing the solder using a hot air rework station. So that is worth trying if you can’t figure out why it isn’t working. We are guessing that the solder on one of the pins on our chip hadn’t flowed down onto the pad below, but it’s hard to say for sure. Whatever the problem was, it’s gone now. Assuming IC11 is soldered correctly, and your programmer is wired up as shown, the chip should be successfully programmed and verified. You can then move on to the next stage of testing. Further testing The next step is to test the control circuitry. You will now need the three 10-wire ribbon cables you made up earlier (described at the end of last month’s article). In each case, make 88 Silicon Chip Australia’s electronics magazine siliconchip.com.au Fig.20: a PC-based spectrum analyser plot showing the output of the DSP Active Crossover when fed with a (near) pure sinewave. THD readings are shown at bottom; note that these were not done with a full-scale signal (which likely would give better results) but also, they do not incorporate noise (ie, they are not THD+N readings). sure that the pin 1 triangle/red wire goes to pin 1 on the connector that you’re plugging it into, and note that it’s possible to plug in the IDC headers offset, so that some of the pins are not connected. So avoid doing that. The two shorter cables connect from CON7 on the power supply board to CON17 on the CPU board, and from CON18 on the power supply board to CON11 on the CPU board. On the power supply board, pin 1 of each C C 9.5 A B 24.5 35 15 35 A 24.5 5 99.5 C HOLES A: 13.0mm HOLE B: 7mm CC 7 4 1 HOLES C: 3mm 74 74 82 C ALL DIMENSIONS IN MILLIMETRES CC 4 13 72 66 7 connector is at bottom right. On the CPU board, pin 1 of CON7 is near D16 while pin 1 of CON11 is near the 10µF capacitor. The third, longer cable connects from CON19 on the power supply board to CON20 on the back of the front panel interface board. Again, make sure that the pin 1s are wired correctly. Pin 1 of CON20 is near to rotary encoder RE1. You will also need to wire up the LCD screen. This is done using the 20-way ribbon cable. Plug one end into CON8 on the CPU board (pin 1 is Above left (Fig.21) are the three holes required in the front panel controls, which are all mounted on the front panel PCB – the two pushbutton switches (S1; “Exit” and S2; “Select”) and the Rotary Encoder. Exact positioning on the panel is unimportant as the front panel PCB determines the position. At bottom left (Fig.22) is the cutout for the liquid crystal display, while below (Fig.23) are the four holes required for two pairs of RCA sockets (the third set would be identical but the separation may vary). 40 52 AT LEAST 60 9 9 A A 7 7 B SC SC  2020 1 91 9 7 4 CC siliconchip.com.au 7 13 74 74 CC 4 B A 7 Australia’s electronics magazine 7 SC  20 1 9 A HOLES A: 10.0mm HOLE B: 3mm ALL DIMENSIONS IN MILLIMETRES July 2019  89 Screen01: the initial splash screen, which is quickly followed by… Screen02: a second splash screen, giving the software version and build date, which is then followed by… Screen03: the default screen, which gives volume control and starts at 0dB. Rotate the encoder knob to... Screen04: adjust the volume. If can go up as high as +12dB or down as low as… Screen05: -104dB. Pressing either pushbutton (or the knob) on this screen takes you to… Screen06: the main menu, which has four options. Use the rotary encoder to change the current selection and press S2 or the knob to go into that sub-menu. Screen07: in the crossover sub-menu, first you select which band you want to adjust using the rotary encoder (you can still adjust other bands after making the initial selection). Screen08: here we’ve selected Band 2. Only two bands are initially available. You need to change other settings to activate Bands 3 & 4. Selecting a band takes you to… 90 Silicon Chip next to the mounting hole in the lower-right corner of the PCB) and connect the other end to the small LCD adaptor, which you will have already soldered to the back of the screen. Pin 1 is marked on that PCB. If you don’t have that adaptor, you can separate the wires in the ribbon cable and solder them to the 20 pins on the LCD screen module, with the red wire to pin 1 and so on. That’s how the original prototype was built, but it’s a tedious process, hence the adaptor board. You can now apply power and check that the LCD screen lights up and you get a sensible display on the screen. You will need to adjust contrast trimpot VR1 before you see anything on the screen. Also check that LK2 is in the VEE position. Turn the rotary encoder and check that you can scroll through the menus, and that pressing the front panel buttons gives the expected results. A lack of display on the screen could be due to several problems. If you programmed the microcontroller yourself, you know that it is at least running, but there could be a soldering fault on one of the pins connecting to the LCD, or there could be a wiring problem with the cable. LED2 on the CPU board should flicker when the display is updated, and you can force this to happen by turning the rotary encoder knob. As the CPU board has two onboard regulators and generates its own 3.3V rail, if it doesn’t work straight away, then it’s a good idea to check that first. The left-hand pin of CON5, labelled GND on the PCB, makes a good reference point. There is a via between CON5 (near the GND terminal) and CON10 which connects to the +5V rail from the power supply, so check this voltage first. Next, check the voltage on the other terminal of CON5. You should get a slightly lower reading, of around 4.7-4.8V, due to the forward voltage drop of D15. Next, to check the 3.3V rail, probe either of the vias immediately to the left of the PIC, IC11. The easiest one to reach is the one just to the right of the capacitors to the right of JP5. Expect a reading of 3.17-3.58V. Anything outside this range suggests a problem with regulator REG2 or one of its associated components. Switch off and check the board carefully. If the power supply rails check out, it’s a good idea to verify that the primary oscillator is running. You will need a frequency meter which goes up to at least 8MHz; some DMMs have this function. Using the same ground point as a reference, probe the left-hand end of the 470Ω resistor near the bottom right-hand corner of IC11. You should get a reading close to 8MHz. If you don’t, then either IC11’s oscillator amplifier is not operating (suggesting a problem with the chip, its soldering or its programming) or there is a problem with crystal X2. If you are seeing the 8MHz signal but still not getting anything on the LCD, that suggests a connection problem between the chip and the LCD, so check all the headers and cables. If LED2 is not flickering, IC11 may not be programmed correctly or there is a bad connection somewhere, probably on the CPU board. It’s also possible that LED2 has been installed backwards. If you’ve verified its orientation and the chip programming, and it still isn’t lighting up, check your soldering carefully. Plugging the rest of the boards in Assuming you have had success with the LCD and controls, you can now connect the other three boards. As Australia’s electronics magazine siliconchip.com.au shown in Fig.6 on page 35 of the May 2019 issue, CON16 connects to CON2 on the ADC board, while CON14 goes to CON3 on the first DAC board (woofer output) and CON15 goes to CON3 on the second DAC board (tweeter output). As with the other cables, be careful to make sure that the pin 1 side of each plug goes to the pin 1 marked for each header, and that you don’t plug them in offset by one row of pins. All the ADC and DAC boards have pin 1 on the side of the header closest to the nearest edge of the board, and similarly, on the power supply/routing board, pin 1 of each header is towards the bottom edge. We specified three different cable lengths last month, since these three boards will be different distances from the power supply module. In our prototypes, the ADC board is closest, so it uses the shortest cable; however, there’s nothing to stop you from using a different arrangement. Once those are all plugged in, check that JP1-JP4 are inserted and that LK1 is set to SDO4. The only way to really test it is to connect a signal source to the ADC inputs, power the unit up and check that you’re getting appropriate signals from the four outputs, using either a scope or a power amplifier and speakers. If using an amplifier, turn the volume down initially in case there’s something wrong; otherwise, your ears may get blasted! If you don’t get the expected result, check that all the jumpers are in the correct positions (see last month). ... Screen09: the first adjustment, which allows you to adjust the lower -3dB point using the rotary encoder, to as low as 15Hz. Pressing S1 will take you back to the volume screen, or press S2 to go to... Screen10: the second crossover adjustment, the upper -3dB point, which goes as high as 15kHz. Here it is set to 199Hz. Pressing S2 takes you to… Screen11: the lower slope adjustment. You can select None, 6dB/octave or 12dB/ octave Butterworth, or 24dB/octave LinkwitzRiley filters. Then press S2 to go to… Screen12: the upper slope adjustment, where you have the same options. Press S2 again to go to… Preparing the rear panel The steps for final assembly are: drill and cut holes in the front and rear of the case, determine the ideal location for each module and mount them to the case, attach the LCD and control board to the front panel and then complete the wiring. On the rear panel, you will need to drill six holes of 9-10mm diameter for the RCA sockets. Ideally, you should also drill a 3mm hole for each pair of RCA sockets, to mount the connector to the rear panel so that it isn’t damaged when pushing the plugs in. The hole pattern required is shown in Fig.23. Each group of holes will need to be at least 60mm apart, to give room for the boards to fit side-by-side. You may wish to increase the space between the ADC module and the two DAC modules (assuming your case is large enough), to make the distinction more obvious. On the rear panel, you will also need to mount either a concentric socket for a plugpack or a mains cord or socket (ie, an IEC input socket). While it’s a good idea to also fit a fuseholder to the rear panel for the plugpack-powered version, it isn’t strictly necessary. However, you definitely need a fuse if using a mains power supply. Our second prototype, shown in the photos here, is plugpack-powered. Screen13: the delay adjustment, allowing timecompensation of drivers in a speaker cabinet. The setting (up to 6239mm) is converted to a delay based on the speed of sound. Press S2 again to go to… Screen14: the attenuation adjustment, which can be set from 0dB down to -20dB. It can be used to compensate for different driver efficiencies etc. Pressing S2 again takes you to… Screen15: the option to invert the signals for this output, which may be useful if you have drivers wired out-of-phase. Rotating the knob… Mains wiring For a mains supply, if you’re fitting an IEC socket for convenience (wired-in or “captive” mains cords can be a bit of a pain), you can use one with an integral fuse and then you won’t need to mount a separate fuseholder. But note that IEC sockets with fuse holders often have exposed, live conductors on the inside, so it’s a good idea siliconchip.com.au Australia’s electronics magazine Screen16: selects inverted mode, while rotating it further returns to normal (non-inverted) mode. One more press of S2 takes you to… July 2019  91 ... Screen17: the crossover mode screen. By default, it’s Stereo, as shown here, but you can change it to… Screen18: Bridge mode, where the second output is an inverted version of the first output, for using two mono amps (or one stereo amp) to drive a speaker in bridge mode. Pressing S2 again… Screen19: cycles through the same set of options for the next band, starting with the lower -3dB point adjustment and then all the different settings and bands until it loops back to Band 1. Screen20: here’s the main menu again, and this time we have selected the Parametric settings. Pressing S2 takes us to… Screen21: this screen lets you choose which parametric equaliser band to adjust. There are four bands which apply to both channels, plus two that only apply to each of the two individual channels.... Screen22: The rotary encoder lets you select any of these eight equaliser bands. Here we have selected the first band which applies only to Channel 1, and here… Screen23: we have selected the second band which applies only to Channel 2. Pressing S2 on any of these options takes you to… Screen24: this screen, which lets you switch on or off each equaliser band. Pressing S2 again takes you to... 92 Silicon Chip to apply neutral-cure silicone sealant in these areas so that they are not a shock hazard if you operate the device with the case open, during testing. It is somewhat easier to drill a hole to suit a wired-in mains cable, and that is a valid approach; just make sure you fit a proper ‘safety’ fuseholder wired in series with the active lead, and that you provide adequate clamping to ensure the mains cord can’t be accidentally pulled out, even if the unit is dropped. The best way to do this is either using a cord grip grommet (although this does require a properly profiled hole to be made) or an appropriately sized cable gland. If using a cable gland, it’s best to fit the part which tightens up around the cable on the inside of the case, so it can’t be loosened from the outside. Alternatively, apply superglue (cyanoacrylate) to the threads before tightening it up. Another thing that’s necessary if you are using a mains power supply in a metal case is to properly Earth the case. Run a short green/yellow striped Earth wire (stripped from a section of 10A-rated mains cable) directly from the mains input socket to a chassis-mounting eyelet or spade lug. If the case is painted, scrape the paint away around the lug mounting point. Use the largest diameter screw possible to attach this lug, along with shakeproof washers and two nuts. If using a captive mains cord, simply separate its Earth wire and run it to this chassis Earth lug. You do not need to make an Earth connection anywhere else in the device. You also need to ensure that there is good electrical continuity between the various case panels when the case is assembled. This may require removing some paint where the panels are screwed together, or otherwise attached. Verify that you have a low resistance between any exposed metal on the case and the mains Earth pin before powering the unit up. Mounting the modules Once you have made the holes in the rear panel and attached and wired up any required power supply components, you can mark out the mounting hole positions for the power supply board, CPU board, ADC board and DAC boards. Drill these to 3mm, deburr, then attach the modules using machine screws and tapped spacers. You can then wire them back up, as you did during the testing. That just leaves the LCD and front panel control module to mount. You need to make a rectangular cutout 82mm wide and 52mm tall in the front panel for the LCD screen to fit through. (See Fig.22). Make sure it’s centred vertically on the panel, and at least 5mm from any protrusions on either side, as the LCD board is slightly larger than the screen (92mm x 70mm). You can draw the required outline on the panel and then cut it out using a rotary cutting tool like a Dremel. Or you could drill a hole and then use a nibbling tool. Either way, file the edges smooth and make sure that the panel fits, then mark out and drill the four 3mm corner mounting holes. You can then attach the panel using 16mm M3 machine screws, nuts and washers. Extra nuts and/or washers can be used to space the LCD board out from the panel (see the photo on page 86). Finally, drill the holes for the rotary encoder, pushbuttons and mounting screws as shown in Fig.21(a). This can be used as a template, but make sure it’s far enough away Australia’s electronics magazine siliconchip.com.au from the LCD screen mounting location that the two boards will not foul each other. We attached our control board to the rear of the front panel using 9mm M3 tapped Nylon spacers, with black machine screws holding it on at the front and nickel-plated machine screws at the rear. Ensure that the holes are large enough to prevent the switches from binding. You can then attach the rotary encoder knob and connect the LCD panel and control board back to the CPU board and power supply board respectively, as per your earlier tests. Performance Fig.20 shows the output of a spectrum analyser connected to one pair of outputs on the DSP Active Crossover. A pure 1kHz sinewave is being fed into the inputs. This shows up in the spectral analysis as a large spike just to the left of centre. The readout below shows that this fundamental signal measures -9.72dBFS for the left channel and 1.62dBFS for the right channel. “dBFS” stands for ‘decibels full scale’. In this case, the full-scale output is around 2.2V RMS, so those signals are at around 0.72V RMS and 1.8V RMS, respectively. The smaller spikes you can see to the right of the fundamentals, at 2kHz, 3kHz etc are the harmonics, ie, the distortion products resulting from the signal passing through the unit. The most significant are at 3kHz and 5kHz, ie, the third and fifth harmonics. The software measures the relative levels of each harmonic and the fundamental (first harmonic) and feeds them into a formula to calculate the total harmonic distortion (THD) ratio for each channel, which it’s showing as 0.0004% for the left channel (remember, that’s the one with the reduced signal level!) and 0.0001% for the right channel. Note that if you incorporated the noise measurement (seen in the wiggly bases of the plots), these figures wouldn’t be quite as good, but they’re vanishingly low either way, and you certainly won’t complain about the sound quality coming out of this device. Using it The DSP Active Crossover is set up and controlled using a menu system. Menu entries are shown on the graphical LCD while the rotary encoder and two pushbuttons are used to scroll through entries, select them and go back to the start. The various menu screens are shown in the panels overleaf and on these pages, along with a description of each one. After showing two splash-screens in quick succession, the unit defaults to the volume control screen. This allows you to use it as a preamp, varying the volume with the rotary encoder knob, from -104db up to +12dB (the default is 0dB). Pressing either button (or the knob, if your rotary encoder has an integral button) takes you to the main menu, which has four options. The rotary encoder selects between those options, while button S2 or the integral rotary encoder pushbutton selects the current option. This button is used as an “Enter” key while button S1, at right, acts as “Escape”, to go back to the main screen without making any further changes. Once you’ve selected one of the options, you use S2 to cycle through the available sub-options and the rotary encoder to make changes to those options. SC siliconchip.com.au Australia’s electronics magazine ... Screen25: the centre frequency adjustment screen. Select a frequency from 15Hz to 15kHz using the rotary encoder, then press S2 to… Screen26: adjust the gain or cut for this equaliser band, from -10dB to +10dB. Pressing S2 again… Screen27: lets you set the Q of the filter, to a value between 0.1 and 10, which affects how wide a range of frequencies it affects. Screen28: back at the main menu, this time we’ve selected the Save option. Pressing S2 brings us to… Screen29: a screen where you can choose one of three settings banks to save to. Use the rotary encoder to select one, or press S1 to abort. Press S2 or the knob… Screen30: to save the settings to EEPROM. This screen is displayed for a short time, then the display returns to the default screen, ie, volume control mode (Screen03). Screen31: the final option in the main menu is to load the settings you have saved. Bank 0 is loaded by default at startup. To load a different configuration, select this option and press S2… Screen32: then select a bank to load using the rotary encoder, and either press S2 to load it, or S1 to abort and go back to the volume control screen. July 2019  93