Skip to content

ECU Studio AI v1.19.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 16:44
· 14 commits to main since this release
63ea112

Kennfelderkennung ohne Definition, abgesichert durch eine abschließende Prüfung; Lerndaten ohne nachweisbare Freigabe
sind entfernt, die App zeigt die Art des Belegs statt Prozentwerten. Messungen, Daten und Grenzen:
Entwicklungsbericht und Validierungsbericht. Status je Funktion: validiert = an unabhängigen Referenzen
nachgewiesen, experimentell = vorhanden, aber nicht unabhängig geprüft.

  • TriCore-Programmcode (experimentell): Interpolationsaufrufe, die einen Datensatzkopf übergeben (Anzahl und
    Stützstellen beider Achsen vor den Daten, auch gemischt 8/16 Bit), werden erkannt. Die Zellbreite kommt aus den
    Ladebefehlen der Routine ohne die Zählerzugriffe. Bedingte Sprünge werden verfolgt. Erwartet eine Routine ihre
    Argumente in anderen Registern als a4/a5/a6, wird die Belegung aus ihrem Aufrufverhalten abgeleitet.
    Gemessen nur am MSD80-Vollflash I8A0S, an dem auch entwickelt wurde (Teil-XDF): 73 → 84 von 99 Kennfeldern exakt,
    Kennlinien 164 → 173. Netto 11 mehr: 13 Kennfelder sind neu exakt, 2 in 1.18.2 exakte Kennfelder sind es nicht
    mehr
    (0x4FB18 6 × 7 u16, 0x5604C 6 × 8 u16; bekannte Regression, Aufgabe für 1.19.1). Für andere TriCore-Stände
    gibt es keine unabhängige Referenz. Auf allen anderen Vergleichspaaren sind exakte Kennfelder, Datentypen, Achsen
    und Achsadressen gleich wie in 1.18.2.
  • Drei Erkennungsebenen: Definitionen bleiben unverändert. Funde aus Code und Struktur füllen Lücken, bevor
    Datenmuster und KI zum Zug kommen. Findet die Erkennung über Programmcode oder Struktur dieselbe Tabelle wie eine
    Definition, gilt die Definition als „unabhängig bestätigt“ (nicht als geprüft). Ein Fund allein über Datenmuster
    stützt nur die Lage und wird getrennt gezählt. Widersprüche (Start, Größe, Zellbreite, Byte-Reihenfolge, belegtes
    Vorzeichen) stehen im Scanbericht. Ein Fund, der eine Definition teilweise überlappt, wird nicht mehr zusätzlich in
    die Liste übernommen.
  • Falsche Definition erkannt: Kehren sich bei mehr als 10 % der prüfbaren Kennfelder die Achswerte um, warnen
    XDF-Import und Scan, dass die Definition vermutlich zu einem anderen Softwarestand oder einer anderen Familie
    gehört. Gemessen an lokalen Paaren: passende Definitionen 0,1–0,8 %, falsche 87–97 %. Leere oder gelöschte
    Tabellenbereiche sind nur noch ein Hinweis, keine Warnung (sie sind bei unbenutzten Funktionen üblich).
  • Datentyp nicht erfunden: Ist das Vorzeichen nicht durch Programmcode belegt und entscheiden die Bytes es, zeigt
    der Inspektor die andere mögliche Lesart.
  • Identifikation mit Stufe: eindeutig, wahrscheinlich, mehrdeutig oder unbekannt, jeweils mit Grund.
  • Prüfliste (Werkzeuge): erkannte Kennfelder nach Prüfbedarf, mit Gründen und gemeinsamen Achsen. Bestätigen und
    Ablehnen werden im Projekt gespeichert und gelten nur für die Originaldatei, auf der sie getroffen wurden. Unter
    „Entscheidungen …“ lässt sich jede Entscheidung zurücknehmen. Eine abgelehnte Tabelle bietet ein neuer Scan nicht
    wieder an, außer sie wird jetzt mit stärkerem Beleg gefunden; dann erscheint sie mit Hinweis.
  • Namensübertragung zwischen Softwareständen: Vorschläge, die die Erkennung im Zielstand an derselben Stelle mit
    gleicher Größe, Zellbreite und Byte-Reihenfolge findet, sind gekennzeichnet. Gemessen an MED17 (Entwicklungsdaten):
    „ähnliche Werte“ 92 → 99 % richtig (nicht unabhängig validiert; die App zeigt diese Quoten nicht an). Findet die Erkennung dort andere Achsen, gilt das nicht als Bestätigung. Ist
    eine Achse am Zielort nicht bestätigt, werden ihre Werte nicht mehr mitübertragen; vorher waren bei 296 von 941
    solcher Achsen die Werte falsch. Vorschläge ersetzen beim Übernehmen eine ungeprüfte, unbenannte Erkennung an
    derselben Stelle. Bisher wurden gerade die bestätigten Vorschläge übersprungen.
  • Lernmodelle ohne nachweisbare Freigabe entfernt: Das seit 1.15.0 mitgelieferte Lernmodell für Datenmuster-Funde
    wurde unter anderem mit einer Datei trainiert, deren Herkunftsvermerk Training ausschließt, und mit Daten ohne
    dokumentierte Freigabe. Es ist aus Programm, ZIP, Installer und Quellcode entfernt, ebenso das
    MS43-Strukturmodell (keine Trainingsfreigabe) und die Tabelle der gemessenen Trefferquoten (gemessen an Dateien
    ohne geklärte Herkunft). Die Git-Historie bleibt unverändert, Prüfsummen und Herkunft stehen in der
    Modellkarte § 2e. Der Build bricht ab, wenn eine dieser Dateien (auch umbenannt) wieder in
    ein Paket gerät. Ein neues Modell wird nur mit dokumentierter Freigabe seiner Trainingsdaten angewendet.
  • Folgen für die Erkennung: Exakte Kennfelder, Datentypen, Achsen und Achsadressen bleiben auf allen 15
    Vergleichspaaren gleich. Ohne Modell erscheinen aber mehr ungeprüfte Datenmuster-Funde (z. B. ME9: Präzision
    62 → 42 %, MS45: 66 → 38 %). Formhinweise des MS43-Modells gibt es nicht mehr; sie betrafen nur Kennfelder, die die
    mitgelieferte MS43-Definition ohnehin enthält.
  • Art des Belegs statt Prozentzahl: Jeder automatische Fund zeigt Code-Beleg, Strukturbeleg oder
    Datenmuster-Vermutung. Das ist keine Wahrscheinlichkeit und nicht unabhängig validiert; der Tooltip sagt das.
    TriCore-Codebelege sind als experimentell markiert. Der Katalogfilter nutzt dieselben Stufen. Quoten, die
    1.15.0–1.18.2 in Projekten gespeichert haben, werden beim Laden entfernt; eigene Notizen bleiben. Die historischen
    Werte mit ihrer Herkunft stehen in der Modellkarte.
  • Prüfliste: Reine Datenmuster-Vermutungen ohne Widerspruch stehen als eigene Gruppe nach den Funden mit Code-
    oder Strukturbeleg, jede Zeile als „Vermutung“ gekennzeichnet. Die Gruppe ist beim Öffnen aufgeklappt, weil sie
    auch echte Kennfelder enthält (MS42: alle 22 exakten Funde, MS45: 21 von 30), und lässt sich einklappen
    („Datenmuster-Vermutungen anzeigen“). Alle Funde bleiben im Projekt, im Katalog und im Filter.
  • Training reproduzierbar: Datensatz mit Herkunft, Familien-Auslassung, Seed, Protokoll und Ersetzungsregel.
    Trainiert wird nur mit Daten, deren Freigabe festgehalten ist (training_allowed), und nur ein so trainiertes
    Modell wird im Scan angewendet. Ein freigegebener Datensatz mit vollständiger Referenz liegt derzeit nicht vor.
  • Scan: benannte Stufen in der Statusleiste, durchgehend steigender Fortschritt, schnellere Achsensuche bei
    identischen Ergebnissen. Mit einer großen geladenen XDF fror das Fenster nach dem Scan bisher 35–43 s ein
    (MED17 mit 3446 Definitionen); die Übernahme der Funde dauert jetzt unter 0,3 s bei gleichem Ergebnis.
    Musste das Fenster während eines Scans neu zeichnen (erste Anzeige einer Datei, Schließen der Prüfliste), stand es
    bis zum Scan-Ende still (MS43: 4,7–5,1 s, auch in 1.18.2); jetzt längste Pause 0,11 s bei gleicher Scandauer.
    Beendete Hintergrundaufgaben werden vor dem Freigeben und beim Schließen abgewartet.
  • Bekannte Grenzen:
    • Die Präzision der Funde aus Programmcode ist nicht gemessen. Die TriCore-Codeerkennung bleibt experimentell.
    • Bosch EDC17 setzt Tabellenzeiger zur Laufzeit über a9, das ist statisch nicht auflösbar.
    • EDC17, MG1, MD1, Simos und SID bleiben nicht validiert. Die früheren Hersteller-A2L-Messungen (MSD80, MSD85,
      EDC16, EDC17CP09) lassen sich lokal nicht wiederholen und gelten als historisch.
    • Ein einmaliger Absturz (Zugriffsverletzung) vom 01.11.2026 trat in den späteren Belastungsläufen nicht wieder
      auf. Seine Ursache ist unbekannt.
    • Liegt der Programmordner tiefer als rund 200 Zeichen, startet das Programm nicht (Windows-Pfadlänge).
    • Ein Abbruch wirkt bei MS43 erst nach 3–5 s, weil das Einlesen der mitgelieferten Definition nicht unterbrechbar
      ist. Funde eines abgebrochenen Scans werden nicht übernommen.
    • Geplante Arbeiten für 1.19.1: Aufgaben.

English

Map recognition without a definition, backed by a final validation round. Status per feature: validated = proven
on independent references, experimental = present but not independently checked.

  • TriCore program code (experimental): interpolation calls that pass a record header (count and breakpoints of
    both axes in front of the data, also mixed 8/16 bit) are recognised. The cell width comes from the routine's load
    instructions, without the count reads. Conditional branches are followed. Where a routine expects its arguments
    in other registers than a4/a5/a6, the assignment is derived from its call behaviour. Measured only on the
    MSD80 full flash I8A0S, which was also used during development (partial XDF): 73 → 84 of 99 maps exact, curves
    164 → 173. Net 11 more: 13 maps are newly exact, 2 maps that were exact in 1.18.2 no longer are (0x4FB18
    6 × 7 u16, 0x5604C 6 × 8 u16; known regression, task for 1.19.1). There is no independent reference for other
    TriCore versions. On all other comparison pairs, exact maps, data types, axes and axis addresses are the same as
    in 1.18.2.
  • Three recognition layers: definitions stay unchanged. Findings from code and structure fill gaps before data
    patterns and AI do. If code/structure detection finds the same table as a definition, the definition is marked
    "independently confirmed" (not "checked"). A data-pattern match only supports the position and is counted
    separately. Contradictions (start, size, cell width, byte order, proven sign) are listed in the scan report. A
    finding that partly overlaps a definition is no longer added to the list as well.
  • Wrong definition detected: if the axis values change direction in more than 10 % of the checkable maps, XDF
    import and scan warn that the definition probably belongs to another software version or family. Measured on
    local pairs: fitting definitions 0.1–0.8 %, wrong ones 87–97 %. Empty or erased table areas are now a hint, not a
    warning (they are common for unused functions).
  • No invented data types: if the sign is not proven by program code and the bytes decide it, the inspector shows
    the other possible reading.
  • Identification with a level: unique, probable, ambiguous or unknown, each with its reason.
  • Review checklist (Tools): detected maps ordered by need for review, with reasons and shared axes. Confirm and
    reject are saved in the project and apply only to the original file they were made on. Every decision can be
    withdrawn under "Decisions …". A new scan does not offer a rejected table again unless it is now found with
    stronger evidence; then it appears with a note.
  • Name transfer between software versions: proposals that the target's own detection finds at the same place
    with the same size, cell width and byte order are marked. Measured on MED17 (development data): "similar values"
    92 → 99 % correct (not independently validated; the app does not show these rates). A detection with other axes there does not count as confirmation. Axis values are no longer
    carried over when the axis is not confirmed at the target place; before, 296 of 941 such axes showed wrong values.
    When adopted, a proposal replaces an unchecked, unnamed detection at the same place. Until now exactly the
    confirmed proposals were skipped.
  • Learned models without provable clearance removed: the learned model for data-pattern finds, shipped since
    1.15.0, was trained, among others, on a file whose provenance note excludes training and on data without
    documented clearance. It is removed from the program, ZIP, installer and source code. The same applies to the
    MS43 structure model (no training clearance) and the table of measured hit rates (measured on files without
    clarified provenance). Git history is unchanged; checksums and provenance are in the model card, section 2e
    (German). The build stops if one of these files, even renamed, gets into a package again. A new model is applied
    only with documented clearance of its training data.
  • Effect on detection: exact maps, data types, axes and axis addresses stay the same on all 15 comparison pairs.
    Without the model, more unconfirmed data-pattern finds appear (e.g. ME9: precision 62 → 42 %, MS45: 66 → 38 %).
    The MS43 model's shape hints are gone; they only concerned maps the bundled MS43 definition already contains.
  • Kind of evidence instead of a percentage: every automatic find shows code evidence, structure evidence or
    data-pattern guess. This is not a probability and not independently validated; the tooltip says so. TriCore
    code evidence is marked experimental. The catalogue filter uses the same levels. Rates saved in projects by
    1.15.0–1.18.2 are removed on loading; your own notes stay. The historical values and their provenance are in the
    model card.
  • Review checklist: pure data-pattern guesses without contradictions form a separate group after the finds with
    code or structure evidence, each row marked as a guess. The group is expanded when the checklist opens, because
    it also holds real maps (MS42: all 22 exact finds, MS45: 21 of 30), and can be collapsed ("Show data-pattern
    guesses"). All finds stay in the project, the catalogue and the filter.
  • Reproducible training: data set with provenance, family hold-out, seed, log and replacement gate. Only data
    with a recorded clearance (training_allowed) is trained on, and only such a model is applied in scans. No
    cleared data set with a complete reference is available at the moment.
  • Scan: named stages in the status bar, steadily rising progress, faster axis search with identical results.
    With a large XDF loaded, the window used to freeze for 35–43 s after a scan (MED17 with 3446 definitions); taking
    over the findings now takes less than 0.3 s with the same result. If the window had to repaint during a scan
    (first display of a file, closing the checklist), it stood still until the scan ended (MS43: 4.7-5.1 s, also in
    1.18.2); now the longest pause is 0.11 s with the same scan time. Finished background tasks are waited for
    before they are released and when the window closes.
  • Known limits:
    • The precision of program-code findings is not measured. TriCore code detection stays experimental.
    • Bosch EDC17 sets table pointers at run time through a9, which cannot be resolved statically.
    • EDC17, MG1, MD1, Simos and SID remain not validated. The earlier manufacturer-A2L measurements (MSD80, MSD85,
      EDC16, EDC17CP09) cannot be repeated locally and are marked as historical.
    • A one-time crash (access violation) on 1 Nov 2026 did not recur in the later stress runs. Its cause is unknown.
    • If the program folder is nested deeper than about 200 characters, the program does not start (Windows path
      length).
    • On MS43, cancelling takes effect only after 3–5 s, because reading the bundled definition cannot be
      interrupted. Finds of a cancelled scan are not taken over.
    • Planned work for 1.19.1: docs/AUFGABEN_1.19.1.md (German).

No flash approval: ECU Studio AI does not release modified files for flashing. Checksums, signatures, emissions
and safety functions remain the user's responsibility.


Installation: ECU-Studio-AI-<version>-windows-x64.zip entpacken und ECU-Studio-AI.exe starten, oder den
Installer ECU-Studio-AI-<version>-setup.exe ausführen. Bestehende Installationen finden das Update unter „Einstellungen → Jetzt nach Updates suchen“ (automatisch nur, wenn eingeschaltet).

Windows-Warnung beim ersten Start: Die EXE ist noch nicht code-signiert. Bei „Der Computer wurde durch Windows
geschützt“ auf „Weitere Informationen“ → „Trotzdem ausführen“ klicken. Echtheit prüfen: SHA-256 gegen die
.sha256-Datei, Build-Herkunft mit gh attestation verify <datei> --repo PCTestAdmin/ECU-Studio-AI.