Repository navigation
Releases
BMW Unified Database v1.2.0
Adds engine codes and fixes a set of data-quality problems found in a full review. Built from commit 3d4f33e; rebuilds byte-identically with Node v22.20.0 (see docs/BUILD.md).
New
- Engine codes (
ecu_engine, 242 rows on 198 ECUs). Taken from BMW's own ECU names, with the routing name as a fallback, and searchable throughecu_alias(alias_type = 'engine', for exampleN54orM57TUE).v_ecugains anenginescolumn.
Fixed
-
Removed the remaining personal names and department codes. The build now fails if any come back.
-
358 stub ECUs were named with a 2-letter WinKFP code (for example
QY). They now carry the ECU type. -
ECU families: 153 diesel ECUs moved into
DDEand about 140 engine ECUs intoDME. Group files no longer get a family. About 370 junk families are gone. -
Chassis:
- 11 wrong E39 links removed.
- Chassis are now merged from every routing row, and MINI R5x/R6x codes are recognised.
- Installed-ECU lists for E46, E52, E53 and R50 come from each car's own SP-DATEN files (+379 rows).
- E31, E32 and E34 option codes added (+1,031 rows), and K1X option codes are tagged.
-
English fault text:
- Removed 1,563 German texts that were labelled as English.
- Removed text attached from the wrong table.
- Cut two EnglishEcu tables (
dxc_90,dsc_89) whose text had shifted onto other codes.
16,430 fault rows now carry English.
-
Freeze-frame scaling: decimal-comma and exponent values are kept, and the older
UWF_A/UWF_Blayouts are mapped. About 54k scaling values that were missing are now filled. -
302 fault texts that were stored as a number now hold their real text.
-
diag_addressnow has at least two hex digits (0x07), so all OBDb signals match an ECU. -
ecu_aliashas no duplicates.v_ecupicks routing rows deterministically. Whole numbers in text columns no longer read12.0. -
Docs: counts updated, the Wikibooks VIN source is credited (CC BY-SA), and the cookbook queries are fixed.
Licensing note
Three layers now carry obligations when you redistribute the whole file:
obd_signal(CC-BY-SA-4.0)- the
vin_wmirows withsource = 'wikibooks'(CC BY-SA) fdl_code(GPL-3.0)
See CREDITS.md.
Verify
grep bmw.sqlite.gz SHA256SUMS | sha256sum -c
bmw.sqlite SHA256: db586d1dab5625239345203d3149d9f26a2480c6e958991e44b2026aa5fc9b47
BMW Unified Database v1.1.0
F/G-series coding coverage, and a database you can rebuild byte-for-byte from scratch.
What's new
- F/G-series coding:
fdl_codegrows from 100 to 2,674 coding labels (363 G-series, 95 CAFDs), from the full community FDL cheat set in packetpilot/bmw-f (GPL-3.0).chassis_familynow distinguishes F, G, I and RR, andseries/commentare populated. All other tables are unchanged from v1.0.0. - Reproducible build:
build.mjsnow runs every parser against the 8 pinned sources, then checks the result against the committedbuild-manifest.json. See docs/BUILD.md.
Assets
bmw.sqlite.gz: the database, gzipped (130 MB; 655 MB uncompressed).json.tar.gz: the JSON mirror (one file per ECU plus indexes, ~13 MB).SHA256SUMS: checksums for every asset.
Download and verify
curl -L -O https://github.com/gediz/bmw-unified-db/releases/latest/download/bmw.sqlite.gz
curl -L -O https://github.com/gediz/bmw-unified-db/releases/latest/download/SHA256SUMS
grep bmw.sqlite.gz SHA256SUMS | sha256sum -c
gunzip bmw.sqlite.gz
Uncompressed bmw.sqlite SHA256: 88bd7a0ae2fc73d662efebe81b60b5ece0f37ae79696e9ec45ec48c3831751c6.
Rebuild it yourself
nvm use # Node v22.20.0
node fetch-sources.mjs # ~1.8 GB
node --experimental-sqlite build.mjs # ends with "Byte-identical to build-manifest.json"
Reference data, not a substitute for verified BMW data when writing to a car. The new FDL labels are community-curated, so treat them as a guide. Not affiliated with BMW AG; affected data removed on request.
BMW Unified Database v1.0.0
First release of the BMW Unified Database.
One SQLite database that aggregates BMW ECU diagnostics, fault codes, coding, part numbers, live data, and CAN signals for 2,466 modules, joined by a single ECU key.
Assets
bmw.sqlite.gz— the database, gzipped (130 MB; 654 MB uncompressed).json.tar.gz— the JSON mirror (one file per ECU plus indexes, ~13 MB).SHA256SUMS— checksums for every asset.
Download and verify
curl -L -O https://github.com/gediz/bmw-unified-db/releases/latest/download/bmw.sqlite.gz
curl -L -O https://github.com/gediz/bmw-unified-db/releases/latest/download/SHA256SUMS
grep bmw.sqlite.gz SHA256SUMS | sha256sum -c
gunzip bmw.sqlite.gz
Uncompressed bmw.sqlite SHA256: 48c7c060536d93ce6d6838ef632f33f7c733ec62aced3e4e2bccf6f971109cb0. The build is deterministic; build.mjs reproduces this byte-for-byte from the pinned sources.
Contents
46 tables and 8 views: diagnostics (jobs, results, tables), full fault dictionaries, the chassis-wide coding catalog, routing, hardware part numbers, INPA and OBDb live data, CAN messages and signals, VIN decode, and ISO 14229 DID names. See the README and SCHEMA.md.
Reference data, not a substitute for verified BMW data when writing to a car. Car-relevant data only. Not affiliated with BMW AG; affected data removed on request.