Some processing thoughts:

grep ^1 log | tail -n +119 > log-locked

octave:

octave:1> a=load("log-locked");
octave:3> t=1:10000;
octave:5> keith=a(:,3);
octave:7> calib=a(1,4)
calib =  1.9507
octave:8> dac=a(:,5);
octave:9> adc=a(:,6);
octave:12> meas=-(dac - calib * adc);
octave:25> plot(keith(t),meas(t))
octave:48> [p, errorest] = polyfit(keith, meas, 1);
octave:57> p
p =

   20405.9116453934  -31177.1688297700

octave:59> plot(t,keith(t) * p(1) + p(2),t,meas(t))
octave:66> t=1:710872;
octave:73> plot(t,keith(t) * p(1) + p(2) - meas(t))
octave:75> axis([0 710872 10 -10])
octave:76> # generally +- 5 over the entire range.  this is on the scale of "dac values" so that's pretty damn good.
