BimmerJson is a converter that takes the decompiled output from BimmerDis (b1v files) and converts it into readable, grouped, beautified JSON.
BimmerDis decompiles BMW diagnostic files into B1V format, exposing raw telegram data. BimmerJson extracts the telegram section (between TBEG "BETRIEBSWTAB" and TEND) and converts it into structured JSON for easier analysis and integration. When multiple rows share the same formatted DS2 telegram, they are grouped under a single telegram key, and the redundant TELEGRAM field is omitted from the parameter objects.
The converter supports two output modes:
- Full Mode (default): Groups rows by the formatted telegram. Each key in the output object is the telegram (formatted as comma‑separated hexadecimal bytes with an appended DS2 checksum), and its value is an array of JSON objects containing all fields (except the duplicate TELEGRAM field).
- Reduced Mode: Similar grouping is applied, but only the essential keys (NAME, BYTE, DATA_TYPE, FACT_A, FACT_B, MEAS, JOBNAME) are included in each parameter object.
Run the executable with the input B1V file and the desired output JSON file.
Optionally, specify the output mode as the third parameter:
BimmerJson.exe "C:\path\to\input.b1v" "C:\path\to\output.json" fullor
BimmerJson.exe "C:\path\to\input.b1v" "C:\path\to\output.json" reduced- Full Mode Example:
{
"0x12, 0x5, 0xB, 0x03, 0x1F": [
{
"NAME": "N",
"POS_ADR": "0",
"LEN_ADR": "0",
"ADR": "0",
"BYTE": "3",
"DATA_TYPE": "5",
"COMPU_TYPE": "--",
"FACT_A": "1,0",
"FACT_B": "0",
"MASK": "0",
"VALUE": "0",
"ANZ": "1.0",
"MEAS": "1/min",
"RANGE": " ",
"JOBNAME": "STATUS_MOTORDREHZAHL",
"LNAME": ""
},
{
"NAME": "VS",
"POS_ADR": "0",
"LEN_ADR": "0",
"ADR": "0",
"BYTE": "5",
"DATA_TYPE": "2",
"COMPU_TYPE": "--",
"FACT_A": "1,0",
"FACT_B": "0",
"MASK": "0",
"VALUE": "0",
"ANZ": "1.0",
"MEAS": "km/h",
"RANGE": " ",
"JOBNAME": "STATUS_GESCHWINDIGKEIT",
"LNAME": ""
}
]
}- Reduced Mode Example:
{
"0x12, 0x5, 0xB, 0x03, 0x1F": [
{
"NAME": "N",
"BYTE": "3",
"DATA_TYPE": "5",
"FACT_A": "1,0",
"FACT_B": "0",
"MEAS": "1/min",
"JOBNAME": "STATUS_MOTORDREHZAHL"
},
{
"NAME": "VS",
"BYTE": "5",
"DATA_TYPE": "2",
"FACT_A": "1,0",
"FACT_B": "0",
"MEAS": "km/h",
"JOBNAME": "STATUS_GESCHWINDIGKEIT"
}
]
}