I started the design for the dc/dc converter charger PCB long ago, but never quite finished because I wasn’t happy with the overall layout, feature set or component selection. Well after a lot of work over the past week I have a design that I am happy with. It includes a new two stage charging setup that will allow a lower initial charge voltage (around 3.0-3.3V but fully adjustable) to keep the current in check when the battery is at a fairly low SOC, once the current drops off to a reasonable level the 2nd stage of can be activated which increases the voltage to the final CV voltage of 3.5-3.6V, also fully adjustable. There is an opto-isolator very close to each set of cell terminals that will be used to collect signals that go to the analog multiplexer and will end up at the Arduino for full system voltage monitoring. There is an on board temperature sensor that will send temperature data to the Arduino, mainly for battery box temperature during the discharge cycle to see if I need to heat some or all of the boxes, but also to monitor the temperature during the charge cycle that will eventually be able to cut off the charger if things get hotter than they should, and sound an alarm. The output of the dc/dc converter is kept as simple as possible to reduce the possible failure points. Some people are using a “resistor” or length of wire to act like a resistor to limit the current output of the dc/dc converter. Although this does work in practice it’s not the most elegant solution as it reduces the efficiency of the charging process and produces a lot of heat. I’ve tried very hard to reduce the connection resistance in the whole system so I’m not about to add resistors on purpose. If we take a step back and figure out why there is such a large current during the first stage of the charging process we learn that it’s basically ohms law (V-IR or in this case I=V/R) that determines how much current the cells draw from the charger. So by lowering the output voltage of the dc/dc converter we also lower the current. This trim function is controlled by a low power resistor that doesn’t affect the output connections to the cells. By lowering the voltage to between 3.0 and 3.3V I can control the charging current or the first stage of the charge cycle. After a short period the cell voltage starts to rise and the current draw goes down, at this point I can switch the charging voltage (via a relay and resistor setup) to the final CV voltage of 3.5-3.6V. By adjusting these two voltages I can control the output current throughout the charging cycle. With the resistor or wire acting like a resistor method mentioned above the initial current is controlled however the overall charge cycle will take longer because the output current follows a lower curve which affects the entire charging cycle. An even more elegant but much more complex method would be to use a digital potentiometer, micro controller and shunt to monitor the charging current and adjust the trim voltage in real time on a cell by cell basis to keep a constant current to every cell, this would be the fastest and most efficient charging method, but more costly in parts, design effort and software. This would also allow the implementation of an entire pack charge current and final charge voltage selection by the end user at any time, or automatic charge current selection based on the AC input voltage to get the most out a wall outlet. This would also let you throttle back the charging current if the outlet is shared to avoid tripping breakers without the random CV voltage problem when doing this with the Manzanita Micro chargers.
Below is the current state of the design, I still need to move around some component labels and add labeling for the various terminals, however the electrical design is very simple.
Below is the same design with only the bottom layer shown, this is where all of the high power traces are routed along with some of the signal or trim traces.
Below is the top layer which mainly consists of the voltage monitoring traces that feed back to the multiplexer, with the exception of one high power trace that allowed the use of wider traces at the input to the main storage capacitor due to the fairly close pin spacing. I will probably add some vias or a bottom layer trace near the input pin of the first dc/dc converter so that current flow from the top layer to bottom layer isn’t limited by the single power pin.
Those of you experience in PCB layouts will notice that all of the surface mount parts mount to the bottom as well as the opto-isolator, relay and temperature sensor. All of the terminals, trim pots, jumpers and the dc/dc converter itself mount to the top.
In the early stages of the design I thought that a 4 layer PCB may be required, however with careful component layout and trace routing everything works very well on a 2 layer PCB. The board itself will be thicker than average at 2.4mm (vs 1.6mm which is standard) this will give a bit more rigidity and strength to the board since the dc/dc converters are somewhat heavy. The traces will all be 4oz copper for extra current handling. I still have to decide on the mounting hole arrangement, there are some holes marked on the layout right now but they are a reminder more than anything and will be revised. The parts count is reasonable and it won’t take very long to solder up the 6 PCB’s that will be used in my setup. There are 11 terminal blocks to handle the input and output connections, 10 of those are high current and one is signal level however it makes things easier to simply use the same terminal block in all locations. There is an RJ45 connector with a non standard pin out that CAN NOT be connected to any other Ethernet type device, this connector was chosen because of the simple and cost effective shielded Ethernet cables available in virtually any color and length. This will feed back the temperature and voltage signals to the arduino and carry the data signals and 5v power for the multiplexer. There is a block of terminals that would accept jumpers or other headers/connections/resistors to allow changes to be implemented in the voltage trim process. This basically makes the board somewhat future proof so that I can change the design or how the trim voltage is set. This would allow easier testing of a micro controller/digital pot setup if I ever decide to pursue that design. The PCB cost will be somewhat high due to the large size and low volume, but it will pay for itself many times over in ease of assembly and long term reliability. I admire those who integrate this type of individual charging setup on perf board or other more manual types of mounting and connection method, I can imagine the huge amount of work it would take to make every connection and add every component.
I still need to revise some of the trace routing to clean things up a little, as well as all of the labeling however it’s almost ready to send off to the board house and have the first batch made. I will have to do some more testing to choose the final resistor and trim pot values to give the output voltage ranges that I’m looking for. There will be one 16 cell charging PCB per battery box and a total of 6 battery boxes in the car. This was done to give a certain amount of flexibility on the final weight distribution of the car, there will either be 3 front and 3 rear or 2 front and 4 rear depending on how much weight I need in each location.