Open Source Internal Combustion Engine Indicating and Cylinder Pressure Analysis Software

catool is an open source command line tool that enables the loading, analysis and export of in-cylinder pressure data. It supports the industry standard AVL IFile file format and can convert this to CSV or MATLAB file formats. catool has been developed over the past 15 years and has proven robustness in both industy and academia.

catool provides:

  • Import/Export in AVL IFile, MATLAB and CSV file formats
  • Cylinder pressure offset correction
  • Cycle based statistical analysis
  • Standard thermodynamic engine cycle analysis
  • Easy addition of proprietary analysis algorithms
  • The foundation for the proprietary catoolRT data acquisition and analysis software

catool 1.3.4 was released on 18 August 2017. Highlights include:

  • Uses statically linked pthreads-win32 library, reducing need for additional DLL files

catool 1.3.3 was released on 15 August 2017. Highlights include:

  • Option to interpolate MFB angles rather than chosing next higher angle
  • Calculate Net and Gross indicated torques
  • Implement alignment option for falling and rising edge start of combustion channels
  • Support analysis plugins
  • Only store analysis channels as names rather than channel numbers
  • Add "channel info" parameter
  • When refering to channel numbers they must be preceded with a hash. i.e. "channel #1 name CYLPR1"
  • Improvements to IFile channel offset handling
  • Various fixes for compiler warnings and Cppcheck/Coverity analysis

catool 1.3.2 was released on 1 March 2017. Highlights include:

  • Motored cylinder pressure can be extrapolated back to BDC
  • New estimated trapped gas mass calculation
  • Additional robustness checks for Start of Combustion configuration
  • Added classification thresholds for Knock/Mega Knock based on knock boss analysis
  • Offset correction converts from psi, kPa, Pa and Mpa to bar if necessary
  • Only use IFile channels for engine speed if they have been loaded
  • Add confgiguration for analogue to digital channel conversion
  • Add ability to skip columns on CSV import (skip-columns)
  • Added CSV output types CA_MEAN and RESULTS_STATS
  • Added 3-point median filter
  • Improvements to IFile offset correction: Polytropic and manifold/intake/exhaust

catool 1.3.1 was released on 27 August 2016

  • Calculate indicated power (hp) and indicated torque (lb.ft)
  • Improvements to automatic analogue to digital channel conversion
  • Calculate injector duration and separation angle (milliseconds)

catool 1.3 was released on 24 June 2016

  • General bugfixes and speed improvements
  • FFT robustness
  • Added reference FFT window
  • Added intake manifold pressure analysis
  • Added exhuast manifold pressure analysis
  • Calculate knock onset crank angle
  • Calculate MFB using smoothed pressure data
  • Calculate MFB at knock onset angle
  • Only calculate maximum coil current on coil current channel
  • Calculate tooth periods
  • Add separate knock boss calculation windows
  • Support reading channel names (channel-names-line) and channel units (channel-units-line) from CSV files
  • Added command "channel XXX filter force" to force filtering even if a filter has already been applied
  • Added support for HP SDF and ATI ATIMAT file formats
  • Added abscissa units to MATLAB file output
  • Better interpretation of file time/date in AVL IFile

catool 1.2 was released on 23 December 2015

  • Add channel filtering
  • Add IMEP mean pressure calculation method
  • Improved digital channel calculation
  • Add additional methods for gamma calculation (specified, indolene, propane, Hayes)
  • Add analysis for knock sensor, igniton and crank position sensor
  • Resize number of cycles
  • Sample data from existing channel
  • Delete channel
  • Copy channel
  • Resample channel abscissa
  • Generate channel (sine, block, crank position sensor)
  • Convert CA/cycle channel to time base
  • Start of better handling of lack of memory
  • Improved polytropic offset correction (closer to AVL method)
  • Knock boss reference window FFT calculation
  • Add mega-knock cycle classification
  • Make results error checking configurable
  • IFile robustness improvements
  • Save catool channel type in IFiles
  • Remove IFile CA_TO_TIME (replaced by channel to time conversion)
  • Improved export of time base IFile and MATLAB files
  • Bug fixes, speed improvements, increased robustness

catool 1.1 was released on 5 June 2015

  • Burn centre of gravity and knock factor calculations added
  • Improvements to analysis request validation
  • Additional configuration of various analysis' added
  • Speed and robustness improvements and bug fixes
  • Coverity Scan and cppcheck fixes

catool 1.0.5 was released on 22 December 2014

  • Make TLA calculation more robust when pressure peak is at edges of cycle
  • Improvements to digital channel calculation
  • Fixes to manifold pressure pegging
  • CSV: Crank angle results output is of the mean data not the first cycle
  • Improvements to config file parsing, allow channel name to be used in all cases
  • IFile: Improvements to measurement table checking and robustness
  • Various other bug fixes
  • Updates to the rover_v8_csv.ccf and rover_v8_avl.ccf example files

catool 1.0.4 was released on 14 December 2014

  • Improvements to config file parsing, allow channel name to be used in all cases

catool 1.0.3 was released on 13 December 2014

  • CSV: Crank angle results output is of the mean data not the first cycle
  • Make TLA calculation more robust when pressure peak is at edges of cycle
  • Improvements to digital channel calculation
  • Added offset window absolute offset correction method (WINDOW_ABS)
  • Fixes to manifold pressure pegging
  • IFile: Improvements to measurement table checking and robustness
  • Various other bug fixes
  • Updates to the rover_v8_csv.ccf and rover_v8_avl.ccf example files

catool 1.0.2 was released on 11 November 2014

  • Fixes to ensure analysis channels are initialised correctly

catool 1.0.1 was released on 6 October 2014

  • Fix to cylinder volume output in MATLAB files

catool 1.0 was released on 5 October 2014

  • Rate of pressure rise calculated using smoothed pressure trace
  • Smoothed pressure now calculated over entire abscissa range
  • NEW: Calculation of camshaft and injection timing
  • Polytropic indices only calculated during closed volume period
  • Added offset correction based on mean value of another channel
  • Improved robustness for determining engine speed from an IFile
  • Ability to output raw IFile cycle results in CSV format
  • Support 64-bit floating point data in IFiles
  • Various bug fixes, compiler warnings and robustness improvements

catool 0.9.10.7 was released on 27 January 2014

  • IFiles: Check if file is ZIP compressed and warn user, skip data regions that are outside of file (prevent crash)
  • Calculate engine speed from IFile SPEED, CYCDUR, CYCTIME channels if necessary
  • Improvements to PKP calculation at abscissa change points
  • Speed Improvements
  • Bug Fixes (Thanks to Peter Van Wieren)

catool 0.9.10.6 was released on 14 January 2014

  • IFiles: Check if file is ZIP compressed and warn user, skip data regions that are outside of file (prevent crash)
  • Calculate engine speed from IFile SPEED, CYCDUR, CYCTIME channels if necessary
  • Improvements to PKP calculation at abscissa change points
  • Speed Improvements
  • Bug Fixes

catool 0.9.10.5 was released on 13 January 2014

  • IFiles: Check if file is ZIP compressed and warn user, skip data regions that are outside of file (prevent crash)
  • Calculate engine speed from IFile SPEED, CYCDUR, CYCTIME channels if necessary
  • Improvements to PKP calculation at abscissa change points
  • Speed Improvements
  • Bug Fixes (Thanks to Peter Van Wieren)

catool 0.9.10.4 was released on 1 October 2013

  • Cylinder pressure will not be truncated to zero by specifying "channel X channel-offset truncate 0".
  • Outputting time data to CSV file has been implemented
  • "load-channels" or "channel" commands can specify channel names as well as numbers
  • Fixed bug that crashed catool when not loading all IFile channels
  • IFile loading and saving improvements
  • Loading IFiles into MATLAB loads all raw data groups

catool 0.9.10.3 was released on 11 January 2013

  • Various bug fixes

catool 0.9.10.2 was released

catool 0.9.10.1 was released on 18 October 2012

catool 0.9.10 was released on 30 August 2012

  • Cylinder pressure will not be truncated to zero by specifying "channel X channel-offset truncate 0".
  • Outputting time data to CSV file has been implemented
  • "load-channels" or "channel" commands can specify channel names as well as numbers
  • Fixed bug that crashed catool when not loading all IFile channels
  • IFile loading and saving improvements
  • Loading IFiles into MATLAB loads all raw data groups

catool 0.9.9 was released on 26 June 2012.

  • Improved wrist pin offset handling (now per cylinder)
  • Code fixes from Coverity Scan
  • Various bug fixes

catool 0.9.8.3 was released on 20 April 2012.

catool 0.9.8.2 was released on 24 March 2012.

  • Two stroke fixes
  • Various robustness improvements
  • Change default heat release calculation to first law
  • Start of combustion fixes
  • Output channel names in CSV output files
  • cppcheck and splint fixes
  • Robustness checking for IndiCom 1.3 IFile extensions

Version 0.9.8.1 was released on 15 December 2011. This fixes:

  • Bugfix: IFile output had wrong crankangle abscissa
  • Output extended channel names in IFile if necessary
  • Only use extended channel name when loading IFile if less than 64 characters
  • Use default engine speed if no engine speed calculated

Version 0.9.8 was released on 9 December 2011. The highlights include:

  • Use of -360 to 360 degree nomenclature (was previously 0 to 720 degrees) - IMPORTANT: Existing configuration files will need any angular references offset to the new nomenclature
  • Automatic determination of start of combustion channels
  • Cylinder pressure smoothing for pressure rise rate calcs
  • Calculated second order polynomial for TDC determination
  • 98% burn angle calculated correctly
  • Improvements to heat release calculations
  • General robustness improvements
  • Minimum abscissa resolution now unlimited (was fixed at 0.05 degrees)
  • Cylinder volume calculation improvements with offset wrist pin
  • Improved cylinder pressure offset correction
  • Convert AVL IFile to MATLAB using command line switch
  • Improvements to IFile support:
  • Supports interleaved channel data
  • Recognises DISI engine type
  • Supports any abscissa resolution
  • Robustness improvements against invalid files
  • Automatically converts from psi, kPa, Pa or MPa measurements to bar
  • Improved pressure offset support
  • Supports long channel names
  • Supports stdin input in addition to configuration files
Much appreciation to all those providing valuable feedback, bug reports and improvements especially Junghwan Kim, Peter Van Wieren, Erik Doosje, Julien Vanier and Eric Gingrich.

catool 0.9.7.2 was released on 8 December 2010.

catool 0.9.7 was released on 7 October 2009. Highlights included:

  • Various bug fixes and speed improvements (_SAFE_MEMORY)
  • More MISRA compliance
  • Issues resolved from using splint and cppcheck
  • Implemented Checkel & Dale knock algorithm (SAE 860028)
  • Added indicated torque calculation
  • Improved robustness for IFile loading
  • Support for latest IFile format (IndiCom 1.3)
  • Improved IFile support for 2-stroke data

catool 0.9.6 was released on 24 November 2008.The release resolves two issues:

  • MATLAB file output was broken in 0.9.5
  • MEP units are correctly bar rather than Nm

catool 0.9.5 was released on 16 November 2008.

catool 0.9.4 was released on 17 July 2008.

  • Determine cylinder number from channel name during import
  • Fix IFile channel type
  • Fixes to TLA calculation
  • Implement 98% MFB
  • Implement Burn duration calculation (0-2, 0-5, 0-10, 0-90, 2-90, 5-90, 10-90%)
  • Implement Net and Pumping IMEP calculation
  • Thrifted IVO and EVC cam timing parameters
  • Speed improvements
  • Completely implemented in C (rather than C++)

catool 0.9.3 was released on 6 August 2007. Changes include:

  • Multithreading capable using the pthreads library (Windows and UNIX)
  • Fixes to heat release and IMEP calculation
  • Fixes for big-endian and 64-bit architectures
  • General bug fixes and speed improvements

catool 0.9.2 was released on 3 February 2007.

catool 0.9.1 was released on 3 December 2006.

catool 0.9 was released on 25 October 2006.

catool 0.8.2 was released on 12 July 2006.

catool 0.8.1 was released on 4 May 2006.

catool 0.8 was released on 2 May 2006. New features include:

  • Export MATLAB data
  • Import CSV data
  • Import time based data
  • Numerous bug fixes and structural changes for future enhancements
  • Export data in I-File format without any analysis
  • Knock detection improvements
  • Enhanced configuration file options
  • Support for Microsoft Visual C++ 2005 and Borland C++ 5.5

catool 0.7 was released on 30 December 2005.

  • Various speed increases and sanity checking to prevent crashes
  • Improvements to the config file parsing. Keywords are now not case sensitive and the - character can be used before keywords meaning to remove this from the analysis to perform. i.e. output-ca -WIEBE_A will stop the Wiebe A parameter from being calculated.
  • Improvements to IFile loading/saving and structural changes to enable future time based and asynchronous UTC data to be added.
  • Additional start of combustion channel types including ignition angle meters.
  • Internal improvements for future feature enhancements.
  • Loading of CSV files
  • CAT binary data file removed (not required as IFile and CSV import available)
  • FIX: Motored cylinder pressure calculation does not use non-standard min() function

catool 0.6 was released on 16 November 2005.

catool 0.5 was released on 1 May 2005.

catool is a standalone software package, coded in C with full source code available under the GPL.