Abusing lithium batteries - For Science!

I'm getting back into quadcopters. One thing that has caught my attention is making super small, long range drones that I can power with a single 18650. I have a largish number of nearly new recycled cells, NCR18650BLs that the datasheet only specs for 7A discharge continuous, but nothing on the pulsed load (I believe a 1S nano quad should pull 5-6A normally with bursts up to 20A [fudged based on memory, real anecdata to come]). The datasheet also specs 35mΩ of internal resistance at 1KHz, which implies that at least for testing, the batteries can supply

\( V=I*R \)
\( I=V/R = 3.6V/35m\Omega = 102A \)
\( dutyCycle = 0.5, frequency = 1000Hz \)
\( period = 1/frequency = 1ms \)
\( onTime = period * dutyCycle = 500ms \)

102 amps for at least 500ms! (At least once!) The primary thing I'm concerned with is danger, with a secondary concern for longevity. I'd like to get at least 10 cycles out of each battery (at a minimum!) I have a Siglent programmable active load that can do 30A continuous. I want this to be automated, so I have a DPS3005-USB that I can use to charge the battery.

I'd like to monitor temperature on the battery as well for a standin for health and spicy danger levels, I'd like to keep the temps below about 60C, but might increase my danger tolerance there closer to 100C, as time goes on.

I want to log all this data for analysis and good thing for me, most of my measurement tools have python APIs or ways to get data into python. I'm pretty lazy, and this is a weekend project, so it needs to be fast, so python is perfect.

Test cases:

  1. Capacity testing
    A. Both charge and discharge energy
    B. Done at beginning and end of high stress tests
  2. Standard flight profiles
    A. 5A, with 1 second bursts between 10A and 20A every 3 seconds
    B. Periodic pauses to see battery sag, recovery, and to determine test end (V<3.6V or similar)
  3. Measure degredation of capacity and internal resistance as battery is pushed to lower and lower end voltages, emulating waiting longer to return the drone to home

The hardest part currently is that I don't have a way to measure thermocouples into the computer. I have a PSOC development kit, which should work for this. I believe the analog circuitry in the PSOC5 should be able to amplify a thermocouple enough that it can be read.