Results 1 to 17 of 17

Thread: ZBNumberwang utility for browsing BMW WinKFP data files

  1. #1
    geargrinder's Avatar
    geargrinder is offline Having No Trouble Here BMW CCA Member
    Join Date
    Mar 2010
    Location
    AndoverRockport MA & Intl
    Posts
    14,856
    My Cars
    E46M3Cic E39.540iT E84X1

    Lightbulb ZBNumberwang utility for browsing BMW WinKFP data files

    Introducing ZBNumberwang

    What is it?

    ZBNumberwang is an app to parse and browse the data found in BMW ECU data folders, as used by BMW appplications like WinKFP and Tool32 or ISTA etc.

    These are sometimes referred to as "Daten" files however they are only a portion of what is included in the 'Daten' files for a platform.

    ZBNumberwang will read either of the following directories:

    • The current files used by a current WinKFP installation - example - C:\EC-APPS\NFS\DATA (depends on which chassis files have been loaded)
    • The WinKFP data files for an ISTA installation - typically something like SP-daten ??? \ecudata\Exx\data where Xnn = chassis code (Exx or Fxxx aka E46, F030, etc.)


    To use ZBNumberwang, you select a chassis\data folder (either of the above), let it parse the data, and then can browse the information retrieved and sorted.

    What does it do?
    The basic tabs in ZBNumberwang allow you to see the following...

    System - An extracted summary of identifiers for the module. Worth noting that BMW (and Bosch etc. whoever touches these ECU software files) can be inconsistent about their labeling and tagging and use of fields, but mostly the following will be true:

    At the top are a summary of any unique codes listed for 'ZL System' and 'ZL Project' (or Projekt as it were).

    • System is normally the master engine management system. Bosch ME systems like ME7 or ME9 for instance, or, Siemens systems like MS42 or MSS54.
    • Projekt is normally the actual BMW engine code, and will be a highly familiar code to mechanics, tuners, and even owners. For example M52, S54, S62, N42, etc.


    Next is a breakdown of the "ZLREFERENZ" number. This is a coded number that is not only found in the headers but is often written into the binaries in ASCII plain text as well. In raw form it will look something like "0087160H700BBKMY8", but it is positionally meaningful therefore helpful to parse and examine.

    It consists of 3 sections of 4 characters and 1 chunk of 3-4 (a character was added to the last field for later platforms)

    • ECU Family is a number that is unique to the entire platform. A master ID for all variants of this ECU more or less. There generally will only be one of these.
    • ECU System will be numbers that mostly correspond to the listed ZL Systems. However there might be exceptions, for example, MSS54 CSL has a unique ZLRef system code, but falls under the 'normal' MSS54HP ZL System number (interestingly even despite having unique hardware in the ECU, and being a good example of where it seems BMW hasn't always really followed their own rules for the system)
    • Program Versions will be the variants of the actual program for the ECU that were found. The program is written by a 'long flash' along with a matching data calibration (tune). This is a critial number for tuning/flashing as it is generally the indicator of data layout, although on rare occasion, different prog versions will share same data layout.
    • Calibration Versions are the actual tune-calibration numbers that were found. Each one corresponds to some kind of variation in equipment/tune/regulatory(emissions) that can be written by a 'data' or 'short' flash. The same calibration ID may be issued for 2 program versions, ie. perhaps "JD79" was a calibration update and there were separate JD79 versions created for both program "2601" and "2801".


    ZB / Assembly Numbers
    - The "ZB number" is a number that indicates a valid combination of program + calibration.

    It is the last 7-digits of the pseudo part number that can be retrieved from BMW in the parts catalog in order to determine the latest version of software for a particular car.

    The ZB Number is labeled and referred to variously and inconsistently by BMW, but most commonly:

    • Listed as "ZBNUM" inside file headers
    • The number prompted as "ZUSB" or simply "ZB" in WinKFP and other programs
    • The number shown as "Assembly number" in INPA and other programs


    Each ZBNumber equates to a valid set of the following 3 numbers (which are also 7-digit pseudo part numbers):

    • TypeNumber which is a clustering 'type' very inconsistently used by BMW.
    • HWNumber which is actually the program number
    • SWNumber which is actually the calibration number


    Because ZBNumberwang also reads a history "HIS" file, quite often there are a large number of old numbers in this file for which there are no longer program and/or calibration files in your folder.
    I call these 'ghost' ZB numbers and they can be displayed or hidden as required using tick box.

    ZB numbers are most interesting when breaking down ZB history and supercession chains, but are also essential for using WinKFP. If one has access to very old legacy data package, the original files for these versions may be able to be obtained, however the older data packages are extemely hard to find publicly.

    Type Numbers -
    Any Type number for the current platform can be selected and the valid programs that fall under that Type number will be displayed.

    In this way should the platform of interest use Type numbers in a useful manner, different variations or supercessions of each type can be examined. Again BMW seems to use 'Type' inconsistently so this may or may not be very interesting to explore.

    Programs -
    Each program listed corresponds to an actual flashable Program "0PA" file found in the folder.

    Any program number listed should be flashable by selecting a valid ZB number that corresponds to that program.

    Allows all parsed data for any given program to be viewed in one pane on the left. Also allows list of Programs to be sorted by any data column to search for similarities and breaks. If a 'field' was either blank or not found in the files for a particular version it will not appear in the display pane.

    See notes below for examples of how free-text entry fields are used (or not) by BMW. Standards followed on one ECU may not be followed on another, and consistency is always an issue.

    Calibration -
    Each calibration (or "tune") listed corresponds to an actual flashable data calibration "0DA" file found in the folder.

    Any number listed should be flashable by selecting a valid ZB number that corresponds to that calibration. Naturally the calibration MUST MATCH THE PROGRAM it is written for.

    ZBHistory -
    Will generate a graphical history-cascade for any given ZBNumber.

    Over time, BMW has always issued a long series of program and calibration updates for any given ECU. These most likely were series of minor improvements, maybe more stable idle control, better OBD readiness, etc. or could be minor emissions/regulatory improvements. There is no way publicly to know much about what any given update changed, short of disassembling the programs individually. But we can at least see which ZB numbers were replaced by what, and trace a chain forward to find the 'last final update' for any given ZB number (for example "I have a car with this old ZB/Assembly number in it now, what would the latest version be?" This is the same function that the WinKFP Update process performs for instance).

    This tab mostly self-explanatory but predecessors shows old versions that superceded to the number selected (if any), and supercessions shows the chain of any new replacing programs (if any). The final supercession will be bolded to indicate the 'final' version of that chain.

    General Use Notes:

    • In most tables, any column can be clicked on to sort (click again to reverse sort). This can make searching for certain data or groups of programs (or calibrations) with the same data very easy.
    • Many of the 'fields' are free-entry text comments. However BMW, on any given platform, mostly has established / followed some kind of informal conventions. This pertains to the K_Fx and K_Vx fields specifically. By examining those often additional details about the program or calibration may be determined. Examples:
      • Field K_F1 for an 0DA calibration file may show the chassis-code variant - example "E36/7-MT"
      • Field K_F2 for a calibration may show the emissions standard "ECE" or "USOBD", or, may show a special order-code "SA858"
      • Field K_V2 may be used in the calibration file to record the ZB-number that should correspond to the program or data file you are looking at...
      • etc.

    • Program and Calibration data come from text headers and often data is inconsistent. Issues that may be found include:
      • Missing /blank data in fields that should be 'required' (example - a ZLReferenz 'data' code for a calibration... the ZLR number may be 'short' by 3-4 characters)
      • Pure typos of the wrong data or wrong labels. Inside a K_F/K_V field a number may be labeled as "ZB" or "HW" when it is actually a SW #.
      • Inconsistent use of the K_Fx/K_Vx field 'conventions' across and within platforms.

    • Do not expect those fields to be consistent or complete. BMW / Bosch / Siemens just didn't roll that way. There are occasionally typos in that data as well.
    • Because of problems above, it can be very helpful to examine other fields and see if missing or 'seemingly incorrect' data is provided or corrected within the other comments (unless of course those fields contain errors!)


    Known Issues:

    • Global search button is not implemented yet.
    • Very early and very late data folders have not been comprehensively tested and may have incompatibilities.
    • Folders for early EGS (transmission modules) are not parsed properly as they have some format differences which have not yet been accounted for.
    • Rarely in the case of major hardware variants, in the history tab some platforms may cross a hardware-incompatibility boundary. For example with the MSS54 family the 'non-HP' MSS54 ECU's may show a supercession right through to MSS54HP versions that require different hardware (in this case, with double the memory and file size) and therefore it is not a valid 'flash supercession' but a 'hardware supercession'. WinKFP will not flash across this boundary, but the ZBNumberwang display does not filter for it at this time.



    GET IT HERE:

    ThisIsDropboxLinkForZBNumberwang


    Screenshots:











    Last edited by geargrinder; 05-21-2019 at 02:50 PM.

  2. #2
    Join Date
    Jun 2018
    Location
    Castle Rock CO
    Posts
    264
    My Cars
    1990 325is, 1998 740i
    This tool is awesome and very helpful

    Thank you for posting JC
    I like to pretend I know stuff

  3. #3
    geargrinder's Avatar
    geargrinder is offline Having No Trouble Here BMW CCA Member
    Join Date
    Mar 2010
    Location
    AndoverRockport MA & Intl
    Posts
    14,856
    My Cars
    E46M3Cic E39.540iT E84X1
    Thanks Bryan. I just updated - if you didn't have the version w/ working history page you prob want to try it. Took a long time to finish that.

    Just added screenies so people know what to expect.
    2003 M3CicM6 TiAg
    2002 540iT Sport Vortech S/C 6MT LSD TiAg
    2008 Audi A3 2.0T DSG (the daily beater)
    2014 BMW X1 xDrive28i (wifemobile)

    Former:

    1985 MB Euro graymarket 300SL
    1995.5 Audi S6 Avant (utility/winter billetturbobattlewagen)


  4. #4
    Join Date
    Sep 2011
    Location
    Finland
    Posts
    1,214
    My Cars
    1999 BMW 540iA
    Just wondering why EK726.HIS shows that 7539366 is superceeded by 7539326? BMW official ETK shows that the 7539366 is the latest. ISTA-P and WinKFP also show 7539366 to be the latest.
    Last edited by Spirit Force; 05-22-2019 at 06:15 PM.

  5. #5
    geargrinder's Avatar
    geargrinder is offline Having No Trouble Here BMW CCA Member
    Join Date
    Mar 2010
    Location
    AndoverRockport MA & Intl
    Posts
    14,856
    My Cars
    E46M3Cic E39.540iT E84X1
    Quote Originally Posted by Spirit Force View Post
    Just wondering why EK726.HIS shows that 7539366 is superceeded by 7539326? BMW official ETK shows that the 7539366 is the latest. ISTA-P and WinKFP also show 7539366 to be the latest.
    Dunno, don't have time to look into it... Perhaps there's another parameter aside from HIS that needs consideration.

    Probably I should have noted - if anybody has bugs or improvements, I'm happy to hear them. I've asked 3-4 people to play around w/ this offline before releasing but I don't think many of them got much chance to get too far into it. Would love for people to break it and find some weakpoints so I can fix it up.
    2003 M3CicM6 TiAg
    2002 540iT Sport Vortech S/C 6MT LSD TiAg
    2008 Audi A3 2.0T DSG (the daily beater)
    2014 BMW X1 xDrive28i (wifemobile)

    Former:

    1985 MB Euro graymarket 300SL
    1995.5 Audi S6 Avant (utility/winter billetturbobattlewagen)


  6. #6
    Join Date
    Sep 2011
    Location
    Finland
    Posts
    1,214
    My Cars
    1999 BMW 540iA
    Well the His file only has "Freikennung" parameter. Took a look at Dat and the hardware number is different for those two flashes. So I'm guessing at least one reason. I haven't found good explanation on all those parameters on HIS, DAT etc files. Determing the latest ZB isn't always as easy as it might seem.

  7. #7
    Join Date
    Apr 2018
    Location
    Germany
    Posts
    1
    My Cars
    2007 E92 Coupé
    Hi,

    thank you for the tool.
    Unfortunately I always get an error "unhandeled exception" after selecting the ecu folder.

    Is there a specific .NET version necessary?

  8. #8
    Join Date
    Mar 2019
    Location
    Lithuania
    Posts
    38
    My Cars
    E92
    How to use this tool for E9x? I get crashes, and that it cant find 0pa files.

  9. #9
    Join Date
    Mar 2019
    Location
    Lithuania
    Posts
    38
    My Cars
    E92
    Can you share the code on github?

  10. #10
    Join Date
    Jul 2015
    Location
    UK
    Posts
    1
    My Cars
    2003 BMW 325Ci
    dosn`t work for me. gives an error (.net or something).
    using W10 latest updates, x64.

  11. #11
    Join Date
    Jul 2012
    Location
    Duesselorf, Germany
    Posts
    9
    My Cars
    740i
    This looks like an awesome tool. However i dont get it up and running, what ever path i enter i allways get a failure message.
    any ideas?

  12. #12
    Join Date
    Jul 2012
    Location
    Duesselorf, Germany
    Posts
    9
    My Cars
    740i
    zbnummer.JPG
    does anybody has a hint? The tool is running on a Win 10 x64 maschine.

    Many Thanks in advance!

  13. #13
    busterhax's Avatar
    busterhax is offline Y̝͎̘̍́ͣ̉͑̿̆Ō͎̼̺̬̒ͯ̃̇͗̂ U͈̖
    Join Date
    Jun 2006
    Location
    NYC
    Posts
    8,440
    My Cars
    e36

    ZBNumberwang utility for browsing BMW WinKFP data files

    Quote Originally Posted by mauipascal View Post
    zbnummer.JPG
    does anybody has a hint? The tool is running on a Win 10 x64 maschine.

    Many Thanks in advance!
    A bit late but the 0da and 0pa extensions must be in all caps. Open cmd and navigate to your data folder and type
    ren *.0pa *.0PA
    ren *.0da *.0DA

    That will rename extensions then it will work. I’ve found this fixes the error messages when selecting the module folder


    Sent from my iPhone using Tapatalk

  14. #14
    Join Date
    Jul 2011
    Location
    nairobi, kenya
    Posts
    9
    My Cars
    vw transporter
    Great utility and works so well. thanks so much for the post and I am sure many out here will find it very useful. Many times we have to configure things from scratch and this app helps a great deal. Thanks also for sharing the notes.

  15. #15
    geargrinder's Avatar
    geargrinder is offline Having No Trouble Here BMW CCA Member
    Join Date
    Mar 2010
    Location
    AndoverRockport MA & Intl
    Posts
    14,856
    My Cars
    E46M3Cic E39.540iT E84X1
    ha ha I didn't see any of these updates as i'm not really here anymore. kind of amazed anybody found and is using this, that's great. I think I ran into the caps extension issue during development at some point and never 'fixed' it? if i can find the source for this thing maybe I'll try and fix that and handle when people pick an unsuitable directory (I thought I had that error trapped but apparently not... but its been a long long time)
    2003 M3CicM6 TiAg
    2002 540iT Sport Vortech S/C 6MT LSD TiAg
    2008 Audi A3 2.0T DSG (the daily beater)
    2014 BMW X1 xDrive28i (wifemobile)

    Former:

    1985 MB Euro graymarket 300SL
    1995.5 Audi S6 Avant (utility/winter billetturbobattlewagen)


  16. #16
    Join Date
    Jul 2019
    Location
    Canada
    Posts
    601
    My Cars
    BMW E39 528i 1998
    This is awesome! Thank you so much for this program.

    Unfortunately it doesn't show vehicle versions. I'm not sure what's the cause?



    https://postimg.cc/k6XrZbcK
    Last edited by Bmwe39528i1998; 10-10-2022 at 04:00 PM.

  17. #17
    Join Date
    Sep 2003
    Location
    Moline, IL
    Posts
    1,819
    My Cars
    2009 BMW 335i
    Quote Originally Posted by geargrinder View Post
    Introducing ZBNumberwang
    [...]

    Next is a breakdown of the "ZLREFERENZ" number. This is a coded number that is not only found in the headers but is often written into the binaries in ASCII plain text as well. In raw form it will look something like "0087160H700BBKMY8", but it is positionally meaningful therefore helpful to parse and examine.

    It consists of 3 sections of 4 characters and 1 chunk of 3-4 (a character was added to the last field for later platforms)

    • ECU Family is a number that is unique to the entire platform. A master ID for all variants of this ECU more or less. There generally will only be one of these.
    • ECU System will be numbers that mostly correspond to the listed ZL Systems. However there might be exceptions, for example, MSS54 CSL has a unique ZLRef system code, but falls under the 'normal' MSS54HP ZL System number (interestingly even despite having unique hardware in the ECU, and being a good example of where it seems BMW hasn't always really followed their own rules for the system)
    • Program Versions will be the variants of the actual program for the ECU that were found. The program is written by a 'long flash' along with a matching data calibration (tune). This is a critial number for tuning/flashing as it is generally the indicator of data layout, although on rare occasion, different prog versions will share same data layout.
    • Calibration Versions are the actual tune-calibration numbers that were found. Each one corresponds to some kind of variation in equipment/tune/regulatory(emissions) that can be written by a 'data' or 'short' flash. The same calibration ID may be issued for 2 program versions, ie. perhaps "JD79" was a calibration update and there were separate JD79 versions created for both program "2601" and "2801".

    [...]
    Great work, geargrinder!

    In Tool32, the data reference breakdown is as follows (e.g. 0479SA0T641Z1HZ57):

    High level:
    Steuergeräte kennung (ECU identifier): 047
    Projekt (Project): 9SA0T
    Programmstand (Program version): 641Z
    Datenstand (Data version): 1HZ57

    Detailed:
    Hardwarelieferant (Hardware supplier number): 047
    Hardwarerelevanz zum Programmstand (Hardware relevant to the program version): 9SA
    nicht programmrelevante Varianten der Hardware (Hardware variants that are not relevant to the program): 0
    Projektvariante (Project variant): T
    Programmstand (Program version): 64
    nicht datenrelevanter Änderungsindex (Change index, not relevant to data): 1
    Programmstandersteller (Program version creator): Z
    Datenstandersteller (Data version creator): 1
    frei aber eindeutig belegt??? (Data version ): HZ57

    Alpina B3 Flash/BMS OCC/ER CP/ETS 5/HKS BOV/M3 Control Arms

Similar Threads

  1. Replies: 8
    Last Post: 04-30-2007, 09:32 PM
  2. More Pocono 4-13, Video and Data files
    By AC Coupe in forum Track, Auto-X & Drag Racing sponsored by Bimmerparts.com
    Replies: 0
    Last Post: 04-15-2007, 10:37 PM
  3. Anyone have a Traqmate data file from Summit?
    By AC Coupe in forum Track, Auto-X & Drag Racing sponsored by Bimmerparts.com
    Replies: 5
    Last Post: 11-04-2006, 10:37 PM
  4. THe E36 AND Z BMW Convertible owners file
    By gogomccord in forum 1991 - 1999 (E36)
    Replies: 0
    Last Post: 10-05-2005, 05:38 PM
  5. Say It Isn't So!!! Data File Corrupt!
    By GUINNESS in forum Video Gaming
    Replies: 2
    Last Post: 03-26-2005, 04:40 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •