Hello
I do not know if it makes sense to integrate the charging functions in the software, having a specialized Li-Po (sample) controller with dimensions of 3x3 mm, especially since it requires virtually no external elements to work, 1 resistor setting the charging current, and a LED signaling charging Moreover, it has built-in functions to prevent the battery from overcharging, which in the case of Li-Pol is very important. And in this case you need to use a 3.3V converter because the battery has 4.2 in a charged state and 3 V in a discharged state. And for this we have MCP1252-33x50 (also samples)

Generally, these cells are charged with constant current, but only until the voltage reaches 4.2V on the cells, and at this level the charger must stabilize the voltage until the current drops to a small value.
It seems to me that it would be better to add support for the XMega family (PDI) and maybe we could even stuff the programming automation into the software so that you do not have to select eeprom, flash, fusebit, lockbit files separately when programming the system only if the files have the same name is to load the entire set immediately, or, as in the discussion above, create an additional file on the card with the list of files to be loaded into the layout.
Another such request, can you put a high state on one of the pins as the programmer is on, I mean to control the LED transistor to illuminate the display, sometimes it would be useful when programming the controller in a place where there is little light.
Regards
Darek