Tracker Overview

Overview Below is an overview of information to use ECU Tracker.

Author

Daniel

Date

Nov 01, 2021

Version

7.4.0

BOMS

BOM Creation/Inheritance

In the BOMs List, right click on any BOM and select Create BOM. In the BOM Editor, you can select level vehicle. There are 7 new fields in the Inheritance section:

  • Model

  • Year

  • VIN

  • Country

  • Region

  • Trim

  • Variant

All these fields accept integer inputs. For VIN, the value can be alphanumeric but must not contain spaces in between.

_images/bom_editor.png

The new fields can also be seen under the BOMs tab. Select the BOM you want to view.

_images/bom_overview.png

To know more about vehicle inheritance, see Vehicle Package Inheritance.

Vehicles

Each Vehicle or Vehicle Type must specify which Domain Variants are in the vehicle. B22 will use different domain variants than B42.

For now, each Vehicle is its own Vehicle type.

Domain Variants

Each Domain might have several domain variants. There might be a version of the battery domain with 6 SCUs, and a different version with 5 SCUs. There might be a version of the lighting domain used on marketing cars and a different version used for Beta cars. Each Domain Variant must specify which ECU assemblies are inside it.

Another way of looking at a Domain Variant, is that it is defining which ECUs assemblies are compatible with each other and usable in vehicles.

A final use of Domain Variants, is that we could create Domain Variants for different HIL benches if the regular domain variants do not cover our needs.

ECU Assemblies

ECU assemblies, are variants for each ECU which must specify:

  • What software list type to use (if applicable).

  • What addresses to use in the vehicle (if applicable).

  • What hardware revision to use.

ECUs

ECUs contain information for the ECU assemblies to reference including:

  • What addresses or physical locations in the car can use this ECU.

  • What Software List Types are available for the assemblies.

  • What hardware revisions exist.

There is additional information in the ECUs that is used for specific versions (i.e. not applicable to BOMs):

  • There are specific software components (with versions and filepaths).

  • There are software lists that are only usable for specific versions.

_images/bom.png

BOM Objects are Version-less

BOM objects do not specify versions. This way the same BOMs can be used across all the vehicle releases.

BOM Objects show acceptable configurations

Configurations:

  • ECU assemblies specify acceptable groupings of ECU HW revision and software lists together with locations in the car.

  • Domain BOMs specify an acceptable grouping of ECU assemblies.

  • Vehicle BOMs specify an acceptable grouping of Domain BOMs for a specific car or car type.

Manifests

_images/manifest.png

Vehicle

A Vehicle level manifest has a list of everything to flash on the specific Vehicle or Vehicle Type.

Domain Variant

A Domain level manifest has a list of everything to flash on the specific Domain Variant.

ECU Assembly

An ECU Assembly manifest has a list of everything to flash on a specific ECU assembly.

Manifests are versioned

A Manifest can only be created for a specific vehicle release version. The BOMs exist across versions, but a manifest is only for a single version.

Software can be reused

A Manifest can refer to older software versions if the specific pieces of software are reused.

OTA vs CSV Manifests

When creating manifests, the CSV manifests include all of the software that can be loaded. Occasionally this means that both a Bootloader (BL), and Bootloader updater (BLU) will be mentioned.

OTA manifests have only the components that are marked as compliant in the tracker.

Packages

A Package is a collection of all applicable manifests.

Vehicle

A Vehicle Package contains all the manifests for all of the vehicles / Vehicle Types in the fleet.

Domain

A Domain Package contains all the manifests for all of the Domain variants for the same domain.

ECU Level

An ECU Level package contains all the manifests for all the assemblies that use this ECU. - An ECU level package also contains any .ECM (OTA files), that were created for the ECU.

Exported Package

An Exported Package is a package where all of the .ecms and components have been copied to be be in the same subfolder instead of referencing their original locations.

Packages are Supersets of manifests

A Package contains manifests for all of the Domains, Vehicles, or Assemblies in the same group. This is in contrast to a single manifest which only contains information for a single domain variant, vehicle, or assembly.

Packages are versioned

Similar to manifests, Packages exist for specific versions.

Groups

When creating a package, it collects all the Manifests in the same group. It is possible to have a single group called “DF91” for all vehicles which would mean that a single package is created. In the future, we could have different groups such as DF91_Beta and DF91_Gamma if we desire to have different packages. The same thing is true for Domain Variants.

Packages have RC numbers

Every package is a Release Candidate (RC). The first package for every major.minor version is RC1. In order to build a second package, the first one must be marked as a failure under promotion. If a 2nd package is created, it would be RC2. RC numbers exist in: Vehicle packages, Domain packages, ECU packages, and ECU components.

_images/packages.png

Process Flow

Steps:

  1. Update configuration information before each freeze:

    1. Create ECU assemblies

    2. Create Domain Variants

    3. Create Vehicle Types

  2. Packages for every freeze:

    1. Reuse or Create ECU level packages

    2. Promote ECU level packages

    3. Create Domain level packages (Requires every ECU level package in the domain to be promoted)

    4. Promote Domain level packages

    5. Create Vehicle level package (Requires every Domain level package in the vehicle to be promoted)

    6. Promote the Vehicle level package

Note

Note, at any time if tests fail, a package can be failed. If a vehicle level package fails, at least one domain package should be marked as failed, and so should at least one ECU level package. New ECU level packages must be created (and promoted), then new Domain level packages must be created and promoted, and finally a new vehicle package would be created. This process continues until a vehicle package can be promoted/released.

_images/flow.png