@mudder looks good! I'm curious, if you don't mind me asking, which software did you use to create the schematic?
I design everything in KiCAD, which is open source and amazing. I've used Mentor Expedition, Altium Designer, Eagle, etc, and KiCAD is my favorite by far.
...
Just sanity checking the MISO v MOSI header connections?
SO on the CAN daughterboard is slave data out pin >> Data >> Master (Arduino)
SI on the CAN daughterboard is slave data in pin << Data << Master (Arduino)
I concur:
SO = MISO
SI = MOSI
Maybe I'm missing what you're pointing out? Is the pinout wrong? I'm horrible with connectors.
...
@mudder Thanks for all your work on this! Question: Since the charger needs a different current limit value for 120VAC vs. 240VAC, how do you plan to sense and control this function? Where will that circuit reside?
Great question.
Let's revisit the data:
| Vac = 120 | Vac = 100 |
Input Power Limit, Datasheet | 1170 watts | 990 watts |
Input Power Limit, Boilerplate
("900 Wmax, Vin:100-120") | 900 watts | 900 watts |
Input Power, Observed | 1405 watts | 1284 watts |
Based on the linear graph shown in the datasheet, the boilerplate 900 watt rating is pretty suspect... If we delete that limit, we're left with:
| Vac = 120 | Vac = 100 |
Input Power Limit, Datasheet | 1170 watts | 990 watts |
| | |
Input Power, Observed | 1405 watts | 1284 watts |
Delta Power | +235 watts (+20%) | +294 watts (+29.7%) |
We can see that the supply is regulating input power as a function of input voltage, just not to MeanWell's specifications. Note that I've operated the supply at Vac=100 volts for about 20 hours without issue.
In my conversion with MeanWell (before they stopped responding a few weeks back), overheating is the primary concern with pulling too much power. To improve performance, I've implemented both of the recommended cooling solutions (conduction heat sink and fan). However, due to space constraints I haven't met MeanWell's minimum heat sink thickness or fan volume... my implementation is below both recommendations, but they only require one implementation so I'm banking on that.
Based on my testing, the input rectifier is by far the weakest link when input voltage is below 120 Vac. Fortunately, MeanWell bolted a temperature sensor directly to it. However, in my testing the input power doesn't dial back, even when the rectifier gets up to 110 degC... fortunately the part is rated to 150 degC.
Fortunately, LiBCM itself has a temperature sensor directly attached to the grid charger... so it can turn the grid charger off entirely if the chassis gets too hot. Obviously I'll need to correlate real-world data from this sensor with how hot the rectifier actually is. It's not ideal, but if we're conservative enough then it will keep the supply in a safe operating region.
LiBCM's isolated Vac_sense circuit can only determine if Vac is present... not the actual input voltage. Unfortunately LiBCM's PCB is too space constrained to improve the existing circuit. Also, the daughterboard I'm designing is too I/O constrained to add an improved Vac_sense circuit there. In retrospect, I should have broken out another dozen I/O pins from the Mega2560.
Since we don't have the I/O to measure the input voltage - or selectively control the input power - we're left with permanently setting the output current to whatever value is safe across all operating temperature. This is accomplished with the Zener diode D2, along with the voltage divider R17/R18/R19/R20 (in the schematic in post #94). Varying the voltage divider and Zener voltages allows us to set the output current to any fixed value.
So then we just need to figure out a safe input power limit. As I noted in my last video, the default output current level is 110% of the recommended continuous operating value. So at minimum I'm going to configure the Zener circuit to set the output current to 100%... it's beyond crazy to me that the default value (if you leave these pins floating) exceeds their specification. My guess is MeanWell anticipates people using this supply in CV mode, whereas I'm using it in CC mode.
I wish I had a more robust answer... but ultimately we have the ability to limit the output power to whatever value is safe across all operating variables.