logo

cubigato

cubigato GmbH releases ThinkCar TC Reader as Open Source

cubigato GmbH has released the project ThinkCar TC Reader as Open Source under the Apache 2.0 license. The project is now available on GitHub and is available to the developer community.

What is ThinkCar TC Reader?

ThinkCar TC Reader is a Python library and command-line tool for reading and converting ThinkCar .TC diagnostic log files to CSV format. ThinkCar diagnostic devices (ThinkDiag, ThinkScan, ThinkTool) and reseller apps (Kingbolen eDiag, Topdon) record OBD-II live data in a proprietary binary format with the .TC extension. This software enables parsing these files and exporting the data for further analysis.

Main Features

Reverse Engineering the TC Format

The proprietary .TC file format has been fully analyzed and documented through reverse engineering. The insights from this process are described in a detailed blog article:

Reverse Engineering Binary File Formats: ThinkCar .TC Diagnostic Data

The format uses an interesting string table architecture with 1-based indexing and stores all values as string references. The complete format specification can be found in the project documentation under docs/TC-FILE-FORMAT.md.

Usage

The tool can be used both via command line and programmatically:

Command Line:

tc2csv recording.TC
tc2csv recording.TC -o output.csv

Python API:

from thinkcar_tc_reader import parse_tc_file, export_to_csv

data = parse_tc_file("recording.TC")
export_to_csv(data, "output.csv")

# Access metadata and data
print(f"Manufacturer: {data.metadata.manufacturer}")
print(f"Parameters: {data.parameters}")

Technical Details

The project is structured as a modern Python package and uses uv for dependency management. The architecture cleanly separates parser, exporter, and command-line interface. The TC format uses a magic signature (LSX9), little-endian encoding, and stores up to 32 parameters per record in fixed size (128 bytes).

Comprehensive unit tests with pytest document the functionality, and a sample dataset from a Subaru Outback BR (2014) TCM is included in the repository.

Use Cases

The software is aimed at anyone who wants to export vehicle diagnostic data from ThinkCar devices for further analysis. Typical use cases include:

Open Source Availability

The complete source code is available on GitHub:

https://github.com/cubigato/thinkcar-tc-reader

The project is under the Apache 2.0 license and welcomes contributions from the developer community. Developers can clone the repository, create issues, and submit pull requests.