Multi-Purpose Battery Manager - August 2021
Multi-Purpose Battery Manager n thma y l B m i T By Our recent Battery Multi Logger is a great tool for monitoring and diagnosing battery problems. But sometimes, you need something which will not just monitor what's going on but also take action, such as connecting and disconnecting loads based on battery charge state. That's just part of what this Battery Manager does. O ur Battery Multi Logger (February & March 2021; siliconchip.com. au/Series/355) is a Micromite-based device that monitors the condition and usage of a battery system. It can handle battery systems between 6V and 100V, and it is a convenient tool to keep track of how batteries are being used, ensuring that they are kept healthy. Being heavily discharged or overcharged can greatly reduce a battery's working life, possibly leading to the need to buy an expensive replacement prematurely. So you want to be sure 68 Silicon Chip that you're treating them well. Both of these conditions are relatively easy to rectify, as long as you are aware of them happening, by simply disconnecting the load(s) or charger causing the problem. Our recent Battery Multi Logger unit can monitor this but did not have any means to take corrective action until now. The Battery Manager adds switching modules to the Battery Multi Logger, which can connect or disconnect loads and chargers to keep the batteries healthy. Australia's electronics magazine Part of the design is a new I/O Expander board that provides control signals to allow up to four Switch Modules to independently and automatically connect and disconnect loads as needed. The Battery Manager can also interface with the High Current Four Battery Balancer (March & April 2021; siliconchip.com.au/Series/358) to provide even more detailed information about the state of a multi-cell battery or multi-battery system. The Battery Manager can even be used to program, siliconchip.com.au Features ● ● ● ● ● Compact, flexible and modular addition to the Battery Multi Logger Connect and disconnect up to four loads/sources to protect batteries Low battery drain Can interface with the High Current Four Battery Balancer Capable of switching well over 20A (possibly over 30A) at 10V-60V control and monitor the Battery Balancer. While the Battery Multi Logger hardware remains mostly unchanged from the published design, a new control program adds the interface to configure, control and monitor the Switch Modules and Battery Balancer. The Switch Module and I/O Expander hardware have uses outside the Battery Manager, too. While designed for 3.3V operation, the I/O Expander board will happily work at 5V, so it could be hooked up to an Arduino board or just about any other microcontroller. Similarly, the Switch Module will work with just about anything that can supply a control signal of 3.3-15V. So it can also be driven directly by just about any microcontroller. Switch Module One of the goals of the Battery Multi Logger is to use as little power as possible. So we have designed the new Switch Module to have very low quiescent and operating currents. We are using high-current Mosfets as switches, as these can be controlled with minimal power. The Mosfets are driven by a latching circuit that 'remembers' the state of the switch and drives the Mosfet gates on or off as needed. This latch can be toggled in several different ways. A pair of switch contacts connected to the latch circuit can set its state, providing simple pushbutton control. The Switch Module PCB also incorporates a pair of opto-isolators. Their output transistors are in parallel with the switch contacts. Thus, there is also the option to set the latch state and control the Mosfets via an electrically isolated interface. I/O Expander board You might recall from the Battery Multi Logger article that it doesn't have many free I/O pins left. The two pins that provide the COM1: serial port are not used, though, and are brought out to the Battery Multi Logger PCB edge. But we have earmarked these to interface with other serial devices. A better way to control Switch Module(s) is to use the I2C interface, which is brought out to pins at CON4 of the Battery Multi Logger PCB. We are using a PCF8574 IC, which we described in our article on I/O Expander Modules (November 2019; siliconchip.com.au/Article/12085). This lets us easily add eight I/O ports. In fact, with multiple ICs, we could add up to 128 I/O ports, although that would exceed our requirements. So we have designed a small I/O Expander PCB, which can be controlled using the available I2C bus. It provides eight I/O pins connected to transistors to drive the opto-isolated inputs of Switch Module(s). As noted above, a low quiescent current is important. The PCF8574 draws around 10μA when there is no activity on the I2C bus. Its primary current consumption is the current it supplies to drive the opto-isolators, and they are only active very briefly during switching. Battery Balancer support As we just noted, the COM1: serial port on the Battery Multi Logger is free for us to use. Since the Battery Balancer already has a serial interface, we can simply connect these to allow communication and control between the two. We can also use the Mini Isolated Serial Link (March 2021; siliconchip. com.au/Article/14785) to isolate the different parts of the system. Fig.1 shows an overview of the additions to the Battery Multi Logger to turn it into a Battery Manager. Note the connection from the Battery Balancer to CON6 on the Battery Multi Logger. Fig.1: the Battery Manager consists of the Battery Multi Logger plus the peripherals shown here. Up to four Switch Modules can be added with one I/O Expander; we imagine most constructors will need one or two. It can also interface with the High Current Battery Balancer, allowing cell status and balancing activity to be monitored. siliconchip.com.au Australia's electronics magazine August 2021 69 Updated software Naturally, these extra features need to be controlled and configured. This is done via extra buttons and pages on the Battery Multi Logger's Micromite LCD interface, shown in screengrabs later in this article. There is also a more detailed description indicating how to use these new screens along with those images. The first new page controls the Switch Modules; up to eight triggers can be set. These are voltage or current thresholds that result in an action occurring, such as one or more of the Switch Modules being activated. A latch is also set to prevent repeated activation; a trigger can also reset a latch to provide alternate operation. For example, Trigger 1 can be set to activate when the battery voltage falls below 11V. This sets Trigger 1's latch and, via a Switch Module, also disconnects some non-essential load from the battery, reducing the chance of damage to the battery from deep discharge. Trigger 2 is set to activate when the battery rises to 12.5V and also to reset Trigger 1. Similarly, Trigger 1 can reset Trigger 2. As you might expect, Trigger 2 would be configured to reconnect the load that is disconnected by Trigger 1. Thus these two triggers work to detach a load from the battery except when it has sufficient charge. A similar arrangement in reverse can also work as a crude charge regulator, preventing overcharging. The external switches can also be manually manipulated, either for testing or to override the programming, and you can also manually reset the triggers. Another page shows the current operating state of the Battery Balancer (as reported by the Balancer over its serial port), including which cells are being balanced, in which direction and to what extent. Buttons are also provided to issue commands to the Battery Balancer. Two graph pages are available to show recent data from the Battery Balancer. One page shows the cell and stack balancing activity, while a second page plots the individual cell voltages. I/O Expander operation The circuit diagram of the I/O Expander module is shown in Fig.2. Its CON1 header connects to the Battery Multi Logger's CON2 for 3.3V power and ground. The I2C bus is present at the Battery Multi Logger's CON4, which connects to CON2 here. These are situated to align directly, allowing the I/O Expander module to stack onto the existing hardware, using either stackable headers or being directly soldered. Since it is only four wires, it can be run remotely too, although a direct connection is preferable. The Battery Multi Logger hosts the pull-up resistors required for the I2C bus, so these are not present on the I/O Expander board. It's generally better for pull-ups to be on the master, since only one pair is needed per bus. On the I/O Expander PCB, the 3.3V, ground, SDA and SCL lines from CON1 and CON2 go to IC1's pins 16, 8, 15 and 14, respectively. A 100nF capacitor bypasses IC1's supply. There are two more 100nF capacitors to help source current into downstream connectors CON3-CON6. IC1, the PCF8574, has three address pins (1, 2 and 3) that need to be pulled up or down to set its address. We avoid the use of pull-up or pull-down Fig.2: the I/O Expander adds to the modular nature of the Battery Manager, providing extra I/O ports to drive devices like Switch Modules. Each I/O Expander adds eight signals, enough to control four Switch Modules. It uses the PCF8574 addressable I/O Expander IC, which can be configured to respond to eight different addresses, allowing further expansion. 70 Silicon Chip Australia's electronics magazine siliconchip.com.au resistors as this could increase current consumption. So a group of three jumper pads, JP1-JP3, is provided for this purpose. All pins are pulled low by default, giving a 7-bit address of 0x20 hexadecimal (32 decimal). These jumpers are actually solder pads on the PCB and can be changed by cutting the thin traces and soldering between pads. Since eight I/O pins are ample, we have written the software to simply work with a single I/O Expander board with the default address. The PCF8574 could be replaced by the mostly identical PCF8574A. The only difference is that the PCF8574A uses a different range of addresses; in this case, the default address will be 0x38 (56 decimal), and the software would need to be modified to suit that value. Pin 13 of IC1 provides an active-low input change interrupt signal which is not used in this application. We are using all of the pins as outputs, so we do not need the interrupt function. The remaining pins labelled P0-P7 (pins 4, 5, 6, 7, 9, 10, 11 and 12, respectively) are the I/O pins. They are either weakly pulled up (the default state) or pulled low by a sink capable of around 10mA. Since the opto-isolators on the Soft Switch are active-high devices, we use P-channel Mosfets controlled from these I/O pins to source current from the 3.3V rail. These Mosfets also invert the signals. For example, Q1's gate is connected to pin 4 of IC1 (P0). The gate is also pulled high by a 10kW resistor. While probably not strictly necessary, we have fitted these so that false triggering does not occur while the Battery Multi Logger is powering up. Q1's source is connected to the 3.3V rail and is effectively connected to its drain when the gate goes low, The Battery Balancer can be connected to the Battery Manager to provide greater information about the state of the batteries. It connects via our Mini Isolated Serial Link. delivering 3.3V to pin 2 of CON3. A similar arrangement exists for the other seven I/O pins of IC1. The outputs are arranged in pairs, to provide the complementary on/off functions needed for the Switch Module to operate. Each of CON3-CON6 can connect to the input of a Switch Module, and so we can control up to four Switch Modules with one I/O Expander board. In operation, the I2C host (in this case, the Battery Multi Logger) writes a default value of 0xFF (all bits set high) to IC1, which then sits in this idle state, drawing virtually no current. Its output transistors are off, and all pins on CON3-CON6 are not connected to the 3.3V rail. When an output needs to be activated, the Battery Multi Logger sends a data byte with at least one bit set low. This causes the corresponding pin from P0-P7 to go low, turning on its Mosfet and sending its corresponding output high. For the brief period that the I2C bus is active, IC1 draws a modest 100μA, while any of P0-P7 that are active will cause less than 1mA to be sunk through its pull-up resistor. The transistor will also source whatever current is needed to control the connected Switch Module. Switch Module operation Fig.3 shows the circuit diagram of the Switch Module. As mentioned, up to four Switch Modules can be connected to a single I/O Expander board. CON1 and CON2 are large, highcurrent connections to the positive The I/O Expander (also labelled as an I2C Interface) adds another PCB to the Battery Manager stack. If you need multiple I/O Expanders, you could fit them with stackable headers (as used on Arduino Shields). Just be sure to set different I2C addresses on the stacked PCBs. siliconchip.com.au Australia's electronics magazine August 2021 71 end of a battery and its load or source (eg, a charger). Thus, we perform highside switching, leaving the ground connections uninterrupted. The connections are not polarised, so current can flow in either direction when the switch is on. Across CON1 and CON2 are connected pairs of back-to-back P-channel Mosfets, Q4-Q11. Their sources are connected together, with the drains going to either CON1 or CON2. With the gates held near the source potential, the transistors do not conduct, and the switch is off. If the gates are taken low relative to their sources, then a low-resistance path exists between CON1 and CON2. The Mosfet body diodes pass a positive voltage from either CON1 or CON2 to the remainder of the circuit. CON3 is used to provide a ground connection for the circuit and is wired to the battery system's common negative terminal. The 10kW resistor in series with the GND connection and the 100nF capacitor across ZD2 provide a filtered logic supply (between LOGIC+ and LOGIC_ GND). Typically, around 90% of the battery voltage is present across the 100nF capacitor and ZD2. Zener diode ZD2 does not conduct under normal conditions; it is not even strictly needed for 12V systems, but will clamp any spikes that might be present. It also allows the switch module to be used with battery voltages over 60V. Q1 and Q2 are configured as a bistable latch, with the 100kW and 220kW resistors connected to their gates providing a mutually exclusive interlock. The gate of Q1 is connected to the drain of Q2 and vice versa. If Q1 is on, then Q2's gate is pulled to near its source voltage, and it is off. Similarly, if Q2 is on, then Q1 must be off. This latch is what retains the state of the Switch Module. Q1's gate is also connected to Q3's gate, so that Q3's state is generally the same as Q1's. Q3's drain is also connected to Q4-Q11's gates. When Q3 is on, its drain network (consisting of the 100kW and 220kW resistors and 15V zener diode ZD1) drives the gates of Q4-Q11 to 4-15V below their sources. In this state, Q4-Q11 turn on, closing the Switch Module's connection between CON1 and CON2. Otherwise, their gates are pulled up to their sources by the 220kW resistor and they switch off, opening the Switch Module's connection between CON1 and CON2. Toggling the Switch Module state involves pulling either of Q1 or Q2's gates to LOGIC_GND. This can be done by the phototransistor outputs of OPTO1 or OPTO2, respectively. When a voltage is applied at CON4's pin 2 that is positive with respect to its pin 1, current flows through OPTO1's LED via the 470W resistor, turning on its phototransistor. Similarly, a positive voltage at pin 3 of CON4 triggers OPTO2, pulling Q2's gate low. A connection between the pins of CON5 or CON6 will have the same effect. This allows control by something like a pushbutton, in addition to control by the Battery Manager. If both Q1 and Q2 have their gates pulled low, then naturally, Q3's gate is low too, and the Switch Module is off. Thus the safe 'off' state dominates if conflicting signals occur. This is similar to the state that occurs when power is first applied. In this case, capacitor C1 (which will have been discharged by its parallel 100kW resistor) holds Q1's gate low Fig.3: the Switch Module has two opto-isolated inputs which drive a pair of complementary latching Mosfets. These, in turn, drive a bank of high-current Mosfets for switching loads up to at least 20A. This is useful in its own right, as it can be driven by just about any microcontroller, or even a simple set of contacts such as a pushbutton. Australia's electronics magazine siliconchip.com.au for a brief period, allowing Q2 to turn on before Q1, and the Switch Module is forced into the off state. The time constant of this RC network is less than 1ms, so as long as external pulses are at least this long, then incoming pulses are latched correctly. If the reverse behaviour is required, then the capacitor is fitted adjacent to Q2, to the pads marked C3 instead of C1. The Switch Module will then power up in the on state. Current consumption When sitting in the latched off state, the current consumption is around 500μA at 60V and proportionally less at lower voltages; around 100μA at 12V. When switched on, extra current flows through Q3, adding around 200μA at 60V, down to 40μA at 12V. The current during switching will be higher than this, with Q1, Q2 and Q3 sinking current, but that occurs only very briefly, as the complementary transistors turn off almost instantaneously. Switch ratings P-channel Mosfets Q4-Q11 are SUP53P06 types with a nominal maximum gate voltage of -20V (with respect to the source) and a maximum drain voltage of -60V. These parameters set the practical working limits of the Switch Module. These Mosfets are specified at around 9A continuous current each (at 25°C), but the PCB track width limits this to about 20A across the four pairs; perhaps up to 30A with ample cooling. This can be increased by supplementing the PCB with extra wires soldered directly to the Mosfets. Alternatively, for very light loads, some Mosfets could be left off. The dividers around Q1, Q2 and Q3 have been set to allow operation up to 60V (respecting their 20V gate limit with the 220kW/100kW divider). Since they have gate thresholds down around 3V, they require a battery voltage of at least 10V to work correctly. ZD1 is provided to clamp the gate voltage to 15V for safety. This is generally not a problem for switching loads, as the maximum voltage seen will be the battery voltage. For charging sources, though, the voltage can be much higher. For example, a 12V solar panel can have a 22V open-circuit voltage. Wind turbines can be even higher; they typically siliconchip.com.au The Battery Soft Switch (or Switch Module) uses highcurrent Mosfets as switches so that the total operating power consumption is low. Four of these Switch Modules can be independently controlled per I/O Expander board. need a shunt regulator to prevent their unloaded voltage from reaching dangerous levels. So care should be taken when using this module with a charging source to ensure that the open-circuit voltage does not exceed the Switch Module's limits. The Mosfet types can be changed to allow operation at higher voltages, but other parts of the circuit might have to be modified too. For example, the SPP15P10 type Mosfet used in the Burp Charger for NiMH and NiCad Batteries (March 2014; siliconchip. com.au/Article/6730) can handle up to 100V, and is a direct substitute for the SUP53P06. The other change we recommend for higher voltage builds is increasing the value of the 10kW resistor to reduce the quiescent current through it and possibly ZD2. Consider the section in parallel with ZD2 as having a resistance of around 100kW. So for 100V switching, replacing the 10kW resistor with a 220kW resistor will put around 30V across ZD2, allowing the circuit to operate correctly. We have not specified the SPP15P10 Mosfet in our parts list because it has a much higher drain-source resistance. So it will produce more heat at Australia's electronics magazine the same current level, and we expect most readers will be using the Switch Module below 60V. Handling more current If you find that your current requirements are beyond that of the Switch Module, you can use the Switch Module to operate the coil of a heavy-duty relay. The current when energised will be much higher, but this option allows the Battery Manager to work with just about any load. In this case, just a single pair of Mosfets is sufficient to operate the relay coil (eg, Q4 and Q5). A snubbing diode across the coil is highly recommended, to protect the Mosfets from spikes that the coil might generate when it de-energises. Software updates This is a good point to upgrade the software on the Battery Multi Logger to give it the Battery Manager features, if for no other reason than to get it out of the way before we connect the I/O Expander to the ICSP header (which would make programming trickier). If you have blank chips, follow the original instructions for programming the Battery Multi Logger, including putting the Microbridge firmware on the PIC16F1455. But instead of the August 2021 73 Screen 1: the Battery Multi Logger's Main screen has been updated to add two new buttons for the Trigger and Balancer functions. At bottom right, the trigger state is shown, and the title has also been changed to reflect the unit's new capabilities. Battery Multi Logger firmware file (1110620A.HEX), load the newer Battery Manager (1110620B.HEX) file. Don't forget to set JP2 to the PROG position before using the ICSP interface, and set it back to RUN after programming. For an already-working Battery Multi Logger, you can simply update the MMBasic file. The same library file and LCD OPTIONS are used, so no other changes are needed. The act of loading a program will delete any logged data, so you should export that first, if necessary. The newer software has less space for logged data due to needing more space to store configuration variables for the Soft Switches. Thus, the longterm data is reduced to 10 days, and this allows two Soft Switches (controlled by four triggers) to be fitted. These limits are set by CONST values in the program. We've listed some options below regarding how these two values can be changed and still fit within the existing flash memory. But generally, as long as the sum of the number of days stored and the number of triggers is no more than 14, it should work. These are the D_COUNT and TRIG_ COUNT values. Due to the way they are displayed on the page, TRIG_ COUNT should be no higher than eight, as otherwise, the control buttons cannot be seen. You will need to load the 'crunched' (with comments and whitespace removed) program, as it does not fit in memory otherwise. The uncrunched version is also available so that you can inspect the fully-commented code and make changes if you like. In general, you should follow the instructions for the Battery Multi Logger but replace the respective HEX and MMBasic files with their Battery Manager equivalents. Run the newly installed program to set the AUTORUN flag. Now it should automatically start when powered up. We'll go into the software detail later, but you should see the new main page as seen in Screen 1. Construction options An important first step before building the board is to determine what parts are needed. Given the low cost of the parts for the I/O Expander board, we recommend that you build the full version, which can handle four Switch Modules. However, you could leave off some of the parts if you are sure that you will only be connecting one or two Switch Modules. The specifics of your battery installation might also affect how you build it. We've designed the Switch Module PCB with holes to suit 8mm screws and thus eyelets suiting up to 8G (3.25mm diameter copper) cable, which should be sufficient for anything that the Switch Module can handle. You will need to consider how many Switch Modules you need. Most people will need one or perhaps two to disable non-critical loads when the battery charge state gets low. There's always a critical load that can't be disconnected, and that won't need a Switch Module; you'd much rather have a flat battery than a submerged boat because the bilge pump wasn't running! And assuming you have a reputable charge controller, there will be little need to add a Switch Module inline with any connected solar panels. Similarly, you might or might not need to build and connect a Battery Balancer. If you have a 24V, 36V or 48V system composed of 12V batteries wired in series, you can make good use of the Battery Balancer. If the Battery Balancer and Battery Multi Logger can't share the same ground, you will also need to build the Mini Isolated Serial Link. Regardless, we recommend using the Mini Isolated Serial Link to avoid any potential problems; it's cheap and easy to build, and safer to isolate the two devices. Building the I/O Expander Let's start by building the I/O Expander and connecting it to the Battery Multi Logger; you can add switch Modules after that. If you're just interested in the Battery Balancer related upgrades, you can skip most of the construction (assuming you've already built the Battery Multi Logger and Battery Balancer). The I/O Expander is built on a double-sided PCB coded 11104212 which measures 37.5 x 35.5mm. Fig.4 is the PCB overlay diagram; all the components are on one side, but there are some solder pad 'jumpers' on the underside, so both sides are shown. Since the I/O Expander will essentially become part of the Battery Multi Logger PCB, we have used Fig.4: assembly of the I/O Expander is straightforward – it uses mostly SMD components, but they are easy to handle. Fit IC1 first, ensuring its pin 1 marking is orientated as shown. All capacitors and resistors are non-polarised and of a single value. You don't have to use vertical headers, as shown here; you could use right-angle headers, sockets or just solder wires to the pads. 74 Silicon Chip Australia's electronics magazine siliconchip.com.au surface-mounted parts. We recommend having on hand a fine-tipped soldering iron, flux paste, solder wicking braid, a set of tweezers and a magnifier. Flux paste releases a fair bit of smoke, so good fume extraction or ventilation is important too. Start by fitting IC1, noting that its pin 1 is closest to the mounting hole. We found the marking on this chip difficult to discern; there should be a small circle on the top of the part, and a bevel along the nearest edge. On the chips we have, pin 1 is at lower left when the chip markings are the right way up (with the bevel along the bottom edge). Put some flux on the PCB pads for IC1, rest the chip roughly in place and apply a bit more flux to the top of the pins. It doesn't hurt to be generous! Load the tip of the iron with a bit of solder and tack one pin in place. Adjust the chip if necessary by melting the solder and nudging the chip with tweezers. Once all the pins are correctly aligned, solder them to the PCB. If there are any bridges between pins, remove them with the braid. Add flux to the bridge and press the braid against it with the iron, carefully pulling it away when the braid has drawn up the solder. Solder the transistors next. They are all the same type and are polarised, but should only fit one way due to their shape. Put some flux on the pads and tack one lead in place, then solder the remaining leads. Despite their small size, the leads are well spread around the part, so they are quite easy to solder. Place the three capacitors next; they are near the top of the PCB. Use a similar technique of soldering one lead at a time. The remaining parts are much easier to solder and have larger pads. Follow with the resistors, then clean up any excess flux with the solution recommended by the flux manufacturer (or your favourite one). Parts List – Battery Manager 1 assembled Battery Multi Logger module (February-March 2021; siliconchip.com.au/Series/355), with IC1 programmed with 1110620B.hex instead of 1110620A.hex 1 assembled Battery Balancer module (optional) (March-April 2021; siliconchip.com.au/Series/358) 1 or more assembled I/O Expander modules (see below) 1 or more assembled Switch Modules (see below) 1 assembled Mini Isolated Serial Link (optional) (March 2021; siliconchip.com.au/Article/14785) various lengths of heavy-duty wire, eyelet lugs etc to suit battery and application various lengths of medium-duty hookup wire (see text) various jumper leads (optional; to connect I/O Expander module[s] to the Battery Manager and Switch Module[s]) I/O Expander module parts (per module) 1 double-sided PCB coded 11104212, 38 x 36mm 1 PCF8574 I2C expander IC, SOIC-16 (IC1) [Digi-Key, Mouser] 8 IRLML2244 P-channel Mosfets (Q1-Q8) [Digi-Key, Mouser] 3 100nF X7R SMD 3216/M1206-size ceramic capacitors 8 10kW 1% SMD 3216/M1206-size resistors 1 5-way header (CON1) 1 2-way header (CON2) 1-4 3-way headers or subminiature screw terminals� (CON3-CON6) 1 untapped 12mm-long spacer, ~3.125mm inner diameter 1 M3 x 20mm panhead machine screw Switch Module (per module) 1 double-sided PCB coded 11104211, 82 x 83mm 1 3-way pin header or subminiature screw terminal� (CON4) 16 M3 x 6mm panhead machine screws 4 M3 x 12mm tapped spacers 8 M3 nuts 8 M3 washers � eg, Digi-Key part number ED10562 Semiconductors 2 4N25 opto-isolators, DIP-6 (OPTO1,OPTO2) 3 2N7000 N-channel small-signal Mosfets, TO-92 (Q1-Q3) 2-8 SUP53P06 P-channel high-current logic-level Mosfets, TO-220 (Q4-Q11) 1 15V zener diode (ZD1) 1 39-60V zener diode (ZD2) (optional; see text) 2 1N4148 small signal diodes (D1,D2) Capacitors 1 100nF 100V MKT 1 1nF 100V MKT Resistors (all 1/4W 1% axial metal film) 3 220kW 3 100kW 1 10kW 2 470W A header can be added to the top of the Logger PCB, as shown, to allow in-circuit programming. This header can also provide power to a Mini Isolated Serial Link for connection to a Battery Balancer (singular red wire). Attaching it to the main board Since the I/O Expander is designed to mount directly to the Battery Multi Logger PCB, shut down the Logger and disassemble it. If you have a header fitted to CON2, remove it and clean up the pads to allow the I/O Expander to be fitted. Take the pairs of header pins and sockets and plug them together. Install siliconchip.com.au Australia's electronics magazine August 2021 75 them in their respective holes between the two PCBs, with the female headers on the Logger PCB and the male headers on the I/O Expander PCB. This will reduce the chance of exposed connectors if the I/O Expander PCB is removed. You can then clamp the two PCBs together temporarily with a machine screw and nut (or tapped spacer). This will make them easier to solder. Refer to the photos as a guide. Solder the headers in place, remove the temporary screw and reassemble the stack, including the LCD. Instead of fitting the machine screw in the corner where the I/O Expander sits, use the extra spacer and the longer machine screw to secure everything against the tapped spacer fitted to the back of the LCD. Switch Module assembly The Switch Module is built on a PCB coded 11104211 which measures 81.5 x 82.5mm and uses all through-hole parts. Its overlay diagram is shown in Fig.5. Start by fitting the resistors according to the markings on the PCB. It's best to check their values with a multimeter to ensure you have the correct components. Follow with the two zener diodes. Neither of these are necessary for systems that operate up to around 25V, as there are unlikely to be voltages high enough to cause damage to Mosfets, although it's a good idea to fit ZD1 to protect the Mosfets. ZD2 is only needed for systems that go over 60V. Keep in mind what we mentioned before about solar panels and windmills producing much higher voltages than their nominal ratings. Next, fit the two 1N4148 diodes near CON4, noting their polarity. Follow with the two adjacent opto-isolators. Take care that their pin 1 markings align as shown in our photos. They both face the same way. Now install the two capacitors. As mentioned earlier, C3 does not need to be fitted unless the default behaviour needs to be changed, so it is not shown in Fig.5. After this, mount the three smaller transistors, Q1-Q3. Ensure that they align to their footprints, and push them down as close to the PCB as possible before soldering. Follow with the larger transistors. If you are not fitting all of them, fit those closest to CON1 and CON2 in matching pairs. For example, if you only need four Mosfets to handle your load current, put them in the spots marked Q4-Q7. For each transistor, bend its leads back 90° around 7mm from where they meet the body. Insert the leads through the PCB and fix the tab in place with the machine screw, washer and nut. Take care not to twist the transistors, which might bend the leads. Once aligned with its footprint, solder and trim the leads. The large copper pour will draw heat from your iron, so use a higher temperature if necessary. We've added some thermal relief on the PCB to help with this. Fig.5: the Switch Module uses all through-hole components and is easy to assemble. Watch the orientation of OPTO1 & OPTO2 and the diodes. You can install fewer than eight Mosfets if your load draws less than 20A; just make sure to fit them in pairs (Q4 & Q5; Q6 & Q7 etc). The load can be connected either via the two-way screw terminal, or eye lugs bolted to CON1 & CON2. 76 Silicon Chip Australia's electronics magazine Basic testing You might like to test the I/O Expander and Switch Module at this point. Connect CON3 on the I/O Expander to CON4 on the Switch Module. Connect G to COM, P0 to OFF and P1 to ON. Now attach a 12V power source between CON1 and CON3 on the Switch Module, with the negative terminal to CON3. Connect a multimeter across the empty C3 pads; it should read about 1/3 of the supply voltage. Shorting the CON6 pads on the Switch Module should cause this to drop to 0V and stay there when released. Similarly, shorting CON5's pads will cause the voltage to revert to 1/3 supply. Using the SOFT SWITCH page on the Battery Manager, you can press the green button next to TR0 and TR1 to toggle the state via the I/O Expander. Keep in mind that the software has been configured with some defaults to suit a 12V battery, and these will be active when the Battery Manager is first powered up. If all this is correct, then the I/O Expander and Switch Module are working correctly. Your wiring from here will depend on your application, but consider that CON1 and CON2 are the switch terminals. Ideally, you should have a fuse and separate switch to the battery circuit feeding the Switch Module to protect it in the event of a fault. So take care that you don't connect something that can cause damage or be affected by unplanned switching. You might like to leave this until later, after you have configured the Battery Manager. Note the holes in the corner of the PCB, which are designed to take M3 machine screws, allowing the Soft Switch modules to be mounted in an enclosure. For example, you could fit them to the interior of the same panel as the Battery Manager. Battery Balancer interface You need four wires to connect the Battery Balancer to the Battery Manager if using the Mini Isolated Serial Link, or three if you are not. The fourth wire is to power the isolator. Revision E and later of the Battery Multi Logger PCB has pads breaking out the three connections at CON6. For power, you will need to tap into the 3.3V supply, and the best place siliconchip.com.au for this will be at the Battery Manager's CON2 (which also connects to the I/O Expander's CON1). If you have an earlier PCB, then the only way to tap into the serial data pins (Micromite pins 21 and 22) is to solder directly to the pins at the IC. It's not easy, but it is not much harder than soldering the SOIC parts in the first place. Figs.6 & 7 show the wiring required. Fig.6 depicts how a direct connection would be made, while Fig.7 shows the wiring via a Mini Isolated Serial Link. Note how in both cases, the wires appear to go to two points on the Battery Logger PCB at left. They only need to go to one. If CON6 is present (on Revision E boards or later), then use those connections. Otherwise, use the dashed alternatives. These go to pin 22 of the IC for RX and pin 21 for TX. If CON6 is missing, the ground connection can be taken from pin 2 of the LCD header or the middle pin (pin 3) of CON2, the ICSP header. The preferred arrangement, using the Mini Isolated Serial Link, is shown in Fig.7. Jumpers JP1 and JP2 on the Isolator board are set to the 5V position, which means it takes power from the pin adjacent to ground. Since the Battery Balancer has been designed to have the Mini Isolated Serial Link directly attached, it makes sense to do this, as it matches that configuration. Then run the four wires back to the Battery Multi Logger PCB. If the Mini Isolated Serial Link is fitted upside-down to the Battery Balancer PCB (as in Fig.7), it will not hide the LEDs, although it will slightly overhang the PCB edge. The photo on page 71 shows the Link fitted to the Balancer in this fashion. Due to space constraints, there is no 3.3V connection on CON6, so the best option is to take this from pin 2 of the ICSP header. If you lack CON6, then taking the ground connection from the adjacent pin 3 is a good choice. Similarly, the TX and RX signals are taken from CON6 or the microcontroller pins directly, as shown. While setting up these connections, you might also like to solder a five-way header to either CON2 of the Battery Logger or CON1 of the I/O Expander to regain the in-circuit programming (ICSP) capability. All the things we have hanging from these pins only Fig.6: only one of each colour of wire is needed, but we've shown two options for each, so you can choose a suitable way to connect the two boards. The dashed wires are only needed if you have an early revision of the PCB that lacks CON6. While the boards are notionally at the same ground potential, it wouldn't hurt to add series resistors, but Fig.7 shows an even better option. Fig.7: the preferred method of joining the Battery Multi Logger to our Battery Balancer is via a Mini Isolated Serial Link module. The module needs to be supplied with 3.3V on each side; ensure that the jumper links on the Serial Link are set to the 5V positions, as shown (which actually corresponds to 3.3V in this case). siliconchip.com.au Australia's electronics magazine August 2021 77 Screen 2: the SOFT SWITCH page shows the trigger states and thresholds. Pressing the buttons allows the triggers' operation to be tested and triggers to be manually reset, if this form of operation is preferred. take power and ground connections, so they should not affect programming. But you may have to power the board from USB instead of the programmer during ICSP programming, as the programmer might not be able to provide sufficient current. Reassemble anything you have taken apart during this construction. Then power up the Battery Logger and its connected peripherals. Using it Screen 3: each trigger is configured on its EDIT TRIGGER page, including its thresholds. The page displays the switches it drives and the other triggers it will reset. Screen 4: pressing the SWITCHES button on the EDIT TRIGGER page allows the SWITCH OUTPUTs to be set. You can get an idea of the unit's operation from the example configuration we have provided. Screen 5: the RESET TRIGGERs are set similarly. All the changes made to these (and other triggerrelated) settings are saved on exit from the SOFT SWITCH page. 78 Silicon Chip Australia's electronics magazine With everything configured, we can explore the new screens. Screen 1 is the updated Main screen, with two new buttons and a display for the status of the triggers. If your battery is above 12.5V, you should see Trigger 1 in red. Or if your battery is below 11V, then Trigger 0 might have tripped. Press the Trigger button to see Screen 2. This is an overview of the triggers, with one displayed on each line. Each trigger has a parameter and threshold that it monitors; these are displayed as in Screen 2. When a parameter reaches its threshold, the trigger is tripped and will show a red TRIP button instead of a green OK button. The trigger cannot trip again until it is reset. On each trip event, any combination of switches can be activated. These switches correspond to Soft Switch inputs, and the software delivers a pulse via the I/O Expander to the corresponding switches. Each trip event can also reset any other trigger, allowing alternate action as two triggers track a variable between the two hysteresis points, as demonstrated by the default settings for TR0 and TR1. This is only one way it can be used. Each trigger could be set to require a manual reset or could even reset multiple triggers. The page shown in Screen 2 lets you manually trip and reset each trigger for testing. Each press toggles between the tripped and reset states. Pressing the button (such as TR0 for Trigger 0) takes you to Screen 3, which has more settings. The TRIP and RESET buttons work as you would expect. The various buttons labelled V and I allow the threshold variable and condition to be set. CLEAR removes any threshold, meaning the trigger will not activate siliconchip.com.au Screen 6: the BALANCER CONTROL page is accessed from the MAIN screen, and shows the current cell voltages and Balancer operating mode. Buttons are provided to issue control commands to the Balancer, assuming it is connected and communicating. automatically. The THRESHOLD+ button sets a positive value, while the THRESHOLD- button is used to set a negative value. This is useful for current thresholds; the Battery Manager cannot measure negative voltages. Finally, the SWITCHES and RESETS buttons allow setting of the actions that result from each trigger. Screen 4 shows the switch controls; these correspond to the P0-P7 outputs on the I/O Expander, while Screen 5 shows the reset controls, which correspond to the triggers. All parameters are saved to flash memory when you press BACK from the Trigger overview page seen in Screen 2. This provides a good compromise between usability and flash wear. Screen 7: the BALANCER HISTORY page shows the recent operation of the Balancer, including which cells are being balanced and in which direction. Balancer menu From the Main page, pressing the Balancer button goes to the BALANCER CONTROL page, as seen in Screen 6. The two columns of buttons at left will send commands to the Battery Balancer to move charge between specific cells and the entire stack. The rate at which this happens is set by the third column, with options of 25%, 50%, 75% and 100%; the currently selected value is highlighted. Similarly, the PAUSE and RESUME buttons send commands to the Battery Balancer to pause or resume balancing. The data displayed at the top of the screen is taken from the Balancer in real time. The GRAPH button goes to the page shown in SCREEN7, which shows the relative flow in and out of each cell. Around 100 data points are stored, and these are updated in time with the logging software's 10-second cycle. Thus around 15 minutes of balancing data is available. It is only stored in RAM, so it is erased if power loss occurs. The screen does not automatically refresh; you need to press the Refresh button. Pressing the 'Cell V' button changes the graph to display the individual cell voltages measured by the Balancer. The chart is centred on the current bottom cell voltage, as this will always be present. The graph spans 1V from top to bottom, allowing cell voltage variations to be easily seen. Battery Manager Thus we have updated the Battery Multi Logger to the Battery Manager. siliconchip.com.au Screen 8: similarly, the CELL V HISTORY shows the relative cell voltages (to Cell 1). The button at bottom left allowing easy toggling between these last two pages. We expect many people will have different requirements regarding what they will control and how they will connect things to the Battery Manager. Indeed we expect many people will be adding the Battery Manager to an existing battery installation, perhaps in a car, caravan or boat. And it becomes a relatively simple addition to such a system. In fact, there are so many features in the improved Battery Manager that readers may not even wish to add all of them. But this is easy, as it is entirely Australia's electronics magazine modular in construction. We wouldn't be surprised if some people use the I/O Expander or Switch Module in unrelated projects. Some people may not need the Battery Balancer add-on, especially those with 12V batteries that don't require balancing. Both the I/O Expander and Switch Module will work fine with 3.3V and 5V logic levels, so could be used on their own (or together) with other microcontrollers such as Arduino or Micromite. SC August 2021 79