Well, I couldn't help myself I guess. 🙂
KiCad 6 had just been released, I was on vacation and sometimes needed to fill some idle time, so I decided this was a nice small project to get some more KiCad experience. Who knows, maybe if it works well, it might become a product too.
To make the LTSpice concept more practically useful, a couple of things needed to be added:
- Over discharge protection
- Preventing the battery from back feeding the 555 charger
- Under temperature protection
- A battery heater to get the battery up to temperature for charging
These needed to be added with minimal circuitry and cost to stay true to the concept that this is a 555 based circuit first and foremost.
A couple of limitations remain:
- Maximum input voltage is 16V due to the 555 input voltage limit. This is just fine, but something to keep in mind when choosing a solar panel. I switched to the SA555 to get wide temperature range for outdoor use.
- The input source needs to be a "weak" source like a solar panel. Since the switching depends on the input voltage drooping when loaded, a strong source that doesn't droop would probably burn something up. So this shouldn't be used with large powerful solar panels or wall power.
- No charge current limiting. Keep the solar panel small enough to limit the current to 1A or so.
- No over temperature protection.
I implemented it with these features:
- A board stuck to the back of an 18650 battery holder that will hold a LiFePO4.
- Screw terminals for VIN (solar panel) and VOUT (load switch protected battery voltage).
- A pot for adjusting the MPP voltage to what's ideal for the panel.
- NTC thermistor and two heating resistors on the PCB. Battery heating also adjusts to the same MPP voltage as charging does!
I'm quite happy with how such a basic and cheap circuit can do all this.
Here's the beautiful 3D view generated by KiCad:
The pretty logos were probably not necessary for a prototype that may never make it to production, but I felt it was an important part of the learning experience to see how well KiCad handles these things. And to be honest, I was a bit disappointed. There is a function to import SVGs but when I tried it, I would just get white boxes. I had to resort to using this Inkscape plugin to make it work.