I rearranged the start sequence and serial logging so it makes more sense while starting up.
I also eliminated the bug where discharging starts at 100% load. You can now set the start PWM level.
int Start_PWM = 200; // Starting value for PWM before current control kicks in. 0-255
While I was at it, I attributed the original article in the source.
New source is up.