function df = parse(filename)

df = readtable('20240122');
df = df(:,1:end-5);  % bug in the firmware creates 5 extra columns

df.Properties.VariableNames = {
    'SampNum1','SampTime1','VbatMain1','VbatPos1','VbatNeg1',...
    'TC_Cont1','Humidity1','Vrse1','Vrse_std1','Vk1','Vk_std1',...
    'Ik1','Ib1','SampNum2','SampTime2','VBiasPos2','Vrse2',...
    'Vrse_std2','Vk2','Vk_std2','Ik2','Ib2'}; % remame variables
df.Properties.VariableDescriptions = {
    'Sample Number mFET', ' SampleTime mFET MMDDYYY HHMMSS',...
    'Main battery voltage', 'VbatPos', 'VbatNeg', 'Temperature (C)',...
    'Humidity', 'Vrse', 'Vrse_std', 'Vk'
}

df = df(~isnan(df.VbatMain1),:)  % removing nans that are created...
% when a user interups the sensor

df.SampNum1 = (1:length(df.SampNum1))';  % samp nums are uniform now 1:n
df.SampNum2 = (1:length(df.SampNum2))';

end