Finally got around to doing some serious testing, and overall the results are looking good!
I used a prototype with the battery holder area broken off and an external battery connected. This configuration has the smallest PCB copper area, and as such will have the worst thermal performance. I tested with a Pi3 @ 100% CPU first to get a baseline. This first thermal shot is running from the battery without charging:
Very good, doesn't get hot at all even though the Pi is cooking!
Now a shot while also charging the battery:
The hot spot is hotter and has shifted to the charging area, which makes sense. The charger is an asynchronous step-down design, which is less efficient than the synchronous boost converter.
To be able to see the components (which are on the bottom, facing the Pi), at this point I decided to switch to my electronic load instead. First I ran the system at a load of 1A, similar to a Pi3 at 100% CPU:
As expected, the culprit is the asynchronous charger's Schottky diode. Unfortunately, the diode will always drop a voltage, so it will always dissipate heat. Because I anticipated this, I put a ton of vias around the diode to try and pull as much of this heat as possible to the top side ground plane. As the images show there's only a few degrees C difference between the diode temperature and the temperature measured on the top side, so this seems to be doing the trick. My prototype PCBs only use 1 oz copper as well, for production I intend to use 2 oz copper instead which should increase the heat sinking capability of the ground plane.
Next I wanted to see what would happen if I really loaded this puppy. I cranked up the electronic load to 2.5A. I only designed the system for 2A loads, but I like to be mean during testing to make sure things aren't marginal.
Ouch, hot! Unfortunately the FLIR camera can't seem to measure hotter than 120C, so I don't know how hot the diode actually is. On the plus side, the diode is rated for 150C, and I had it running for several days like this without anything going up in smoke. :)
The boost converter got pretty hot too at this load:
As this chip is rated up to 125C, I don't think this is something to worry about at this point. If the system is going to be used at high load and elevated ambient temperature, more thermal management will have to be added. I intend to do some future tests with a heat sink on top of the PCB as well.
On the low power side, the system is pulling 3-4 uA from the battery with the Pi off, so it seems my scheme to disconnect the charger from the battery when not charging is working as well.
I tried to run at high load continuously but I ran into an issue with that. I would try to run overnight but would find the system off in the morning. I finally figured out the charging chip was regulating to a lowish 104 mV across the current sense instead of 120 mV. So the system was discharging the battery instead of charging it. I had to lower the load to 1.8A to keep the battery charging. This means that I need to make some adjustments in the current sense resistors to account for tolerances due to temperature etc and still reliably charge the battery at 2A load.