First off Mark, I want to say your Firmware is really Awesome! I love how it really does handle the batteries independently. To test it I decided to put in 2 cells that I knew were not the same amount discharged. The file is big so I will email it to you and let you post it if you want. The following are some questions, thoughts and suggestions. Some of them I already know the answer but might as well have it documented.
*Is your code timer driven?
*Do you take any readings during charging, or only when all is quiet?
*How many bit resolution are you running the PWM in this version (508)?
*Is purple for bad battery?
*What resolution are you running the ADC at?
*Could there be any adverse side effects of having one cell discharge while the other is charging or vice versa? My thought would be reading values under the noise of charging, which if you don’t read them while current is flowing, then this wouldn't be an issues. Temperature, anything else? Over all I don’t think it is bad, I think it is great, but just trying to think about it.
*Is it possible to add text to the values printed out like I did in mine? Or is there a reason you would like to leave the text out, like for greater ease of reading it into a future plot program or maybe even when we have the LCD?
*For Rev 6-7 and on, let’s make the switch positions as I have printed on there, Charge, Discharge and Analyze. When set to charge, I was thinking we could have it hit the batteries with a jolt of current every few minutes or so if they are left in the charger, to counter act the 2mA drain on them (which I still haven’t figured out the exact source but am narrowing it down). Of course the LED’s wouldn't indicate this is happening, it would just take place in the background.
*Add the button start for Rev 6-7, not super critical yet but would be nice.
*Also, IMO, I think the Red LED when flashing during charging should be on for a shorter amount of time, like maybe 10ms or so. The time between flashes is fine.
Really great Mark!!