Solar Battery Management System Processing


A data processing application written in QT and C++ is used to analyse the raw records transmitted by the firmware. This has following functions:
  • Combine raw incoming data records generated between time records into a single csv record for the particular time instant. These are stored in a csv file for import into a spreadsheet program. This conversion allows the values for each entity to be aligned in columns in a spreadsheet. The "Dump All" button produces the full file having all fields present.
  • Extract all such records between specified time intervals and/or for up to 5 specified fields.
  • Append raw data files and extract records automatically into separate contiguous "day" files. This reduces the size of a large dataset to a more manageable series of files.
  • Analyse the energy in ampere-hours generated by the module and used by the loads for all interfaces over a given period.
  • Provide plots of currents and voltages for the batteries and solar module to assist in identification of problems. These are generated from the csv files produced from a full dump of the data.
  • Fault analysis that attempts to identify when the charger is not allocated despite there being a battery that can be put under charge. Fault analysis is still under development. This will be used to identify problems with the automatic battery monitoring algorithms.


The plots can use any csv data file that has been created by this utility. This means that the utility must be used first to transform of the raw data files to an output csv file either over the whole period or into a day by day set of files. At this stage the entire csv file is graphed and there is no facility to zoom or pan the graphs.



Plot of battery voltages over a day using the plot functions.


First created
23 May 2014
Last Modified 16 May 2017
Ken Sarkies 2014