B BuildTrace
Start free

Every unit you ship, traced from part to field.

BuildTrace is an MES for small hardware teams that keeps the record going after a unit ships. Each serial links its BOM revision, change orders, component lots and test results to the firmware it runs in the field.

BBuildTrace
PRODUCT
Parts & Revisions
BOMs
Change Orders
OPERATIONS
Inventory
Build Orders
Serials
Quality
FIELD
Devices
Firmware
Recalls
BOMs / Sensor Hub 3
Sensor Hub 3 HUB3 Rev C released
PartRevQtyDescription
PCA-220r41Main PCBA
MCU-0142r11Microcontroller
CAP-22U-0805r14Capacitor 22 µF via ECO-031
RM-12r31Radio module, serialized
ENC-14r21Enclosure
SCR-M2X6r14Screw M2 × 6
ECO-031 approved, 2 of 2 Rev C is locked. Further changes need a new change order.
Build Orders / BO-1187
BO-118740 × Sensor Hub 3 Rev C Unit 27 of 40
4 Fit MCU board
5 Torque screws
6 Fit radio module
7 Close enclosure
8 Flash firmware
Step 6 of 14
Fit radio module, scan its serial
RM-88213|
Matches BOM line RM-12 r3
stock −1 RM-12 serial RM-88213
stock −1 MCU-0142 lot L-2291
Unit complete. Serial SN-HUB3-004127 created with its as-built record.
Serials / SN-HUB3-004127
SN-HUB3-004127 In field Sensor Hub 3 · Rev C · built under BO-1187
As-builtPart · revLot / serial
Main PCBAPCA-220 r4PCA-220-01944
MCUMCU-0142 r1L-2291
Radio moduleRM-12 r3RM-88213
EnclosureENC-14 r2L-0388
Field
Firmware2.4.1
Radio fw1.9.0
Last check-in4 min ago
Shipped to[Customer]
2026-10-02Firmware updated 2.3.9 to 2.4.1
2026-08-19Shipped
2026-08-12End-of-line test passed, 14 of 14 steps
2026-08-11Built on BO-1187, Rev C per ECO-031

Your build record and your fleet record never meet.

A supplier tells you MCU lot L-2291 is bad. To know which units in the field need fixing you need both halves of each unit's record. Today they live in two tools.

PLM / MRP
Knows how it was built
SN-HUB3-004127
RevisionRev C
MCU lotL-2291
End-of-line test14/14 pass
Firmware todaynot in this tool
Where it isnot in this tool
OTA platform
Knows what it runs
SN-HUB3-004127
Revisionnot in this tool
MCU lotnot in this tool
End-of-line testnot in this tool
Firmware today2.3.9
Where it is[Customer], online
BuildTrace
One record per serial
SN-HUB3-004127
RevisionRev C
MCU lotL-2291
End-of-line test14/14 pass
Firmware today2.3.9
Where it is[Customer], online
Affected: has L-2291 and runs firmware older than 2.4

BuildTrace runs that check across every shipped unit at once. See the recall query

A released revision can't be edited.

Changes go through a change order with a BOM diff and sign-off. Units built afterwards record which ECO they were built under.

ECO-031 · Hub 3 Rev B to Rev CApproved 2 of 2
RefRev BRev C
C14CAP-10U-0603CAP-22U-0805
U3MCU-0142 r1MCU-0142 r1
ENCENC-14 r1ENC-14 r2
BO-1187 · 40 × Sensor Hub 3Unit 27 of 40
Step 6 of 14
Fit radio module, scan its serial
RM-88213 Matches BOM line RM-12 r3
Consumed so far: MCU-0142 from L-2291, PCA-220 from stock

The line fills in the record as it builds.

Operators follow step-by-step instructions and scan parts as they fit them. Stock moves through a ledger, so you can see which lot ended up in which unit.

Shipped units check in to the same record.

Devices report their firmware with a device token. You publish releases per component, and every update shows up in the unit's history next to how it was built.

Sensor Hub 3 · firmware in the field
ReleaseStatusDevices
2.4.1Released212
2.3.9Superseded41
2.3.7Superseded9

Your devices talk to BuildTrace with one HTTP call.

A device reports what it runs and gets back what it should run. Your own updater downloads and verifies the file, so you keep whatever transport you already have.

$ curl -X POST "$BUILDTRACE_URL/devices/$SERIAL_ID/commission" \    -H "Authorization: Bearer $USER_TOKEN" \    -d '{"deviceIdentifier": "a4:cf:12:9e:30:11"}'
201 Created{
  "device": { "deviceIdentifier": "a4:cf:12:9e:30:11", … },
  "token": "3f9a…c07d"
}
# flash the token next to the firmware; it is shown once
$ curl -X POST "$BUILDTRACE_URL/device/checkin" \    -H "Authorization: Bearer $DEVICE_TOKEN" \    -d '{"reported": [          {"componentTypeCode": "MAIN",  "version": "2.3.9"},          {"componentTypeCode": "RADIO", "version": "1.9.0"}        ]}'_
200 OK{  "compliant": false,  "manifest": [    { "componentTypeCode": "MAIN",
      "version": "2.4.1",
      "artifactUrl": "…/firmware/main-2.4.1.bin",
      "checksumSha256": "9f2c…e14a",
      "sizeBytes": 412160 },    { "componentTypeCode": "RADIO",
      "version": "1.9.0", … }  ]
}
# your updater fetches main-2.4.1.bin and checks the SHA-256
SN-HUB3-004127Online
MAIN
2.3.9 to 2.4.1
RADIO
1.9.0
Firmware
Not compliant
just nowChecked in, MAIN 2.3.9 reported, 2.4.1 assigned
08-19Shipped to [Customer]
08-12End-of-line test passed
08-11Built on BO-1187 with MCU lot L-2291
API reference (OpenAPI) Device check-in guide Everything in the web app is available through the same API, with role-based scopes per call.
Using a coding agent? Read [DOCS_URL]/llms.txt and add a BuildTrace check-in to our firmware update task.

A supplier flags lot L-2291. Which units are affected?

Filter by what went into a unit and what it runs now, in the same query. From the result you can open a recall or a service order for each unit.

contains lot = L-2291 firmware < 2.4.0 status = in field
SerialRevFirmwareShippedCustomer
SN-HUB3-003981C2.3.72026-07-30[Customer A]
SN-HUB3-003994C2.3.72026-07-30[Customer A]
SN-HUB3-004012C2.3.92026-08-04[Customer B]
3 units

EU Cyber Resilience Act

If you sell connected hardware in the EU, you will need a machine-readable SBOM and a record of which software went onto which product. BuildTrace already keeps that per serial, so you can export it.

11 Sep 2026Vulnerability reporting obligations
11 Dec 2027Full requirements, including SBOM and technical documentation

Pricing

Start free and pay per serial as you ship more. Factory and field are in the same plan.

Free
Prototypes and a first pilot
Starter
Production runs
Team
Production and a fleet in the field
Scale
Several products or sites
PriceFree[PRICE] / month[PRICE] / monthOn request
Serials included[N][N][N]By agreement
Extra serialsNo[PRICE] per 100[PRICE] per 100By agreement
Parts, BOMs, change ordersYesYesYesYes
Build orders, inventory, qualityYesYesYesYes
Devices and firmware releasesNoNoYesYes
Recalls, service, SBOM exportNoNoYesYes
SSO and custom rolesNoNoNoYes
Start freeStart freeStart freeContact us

What teams like yours would pay

A 50-unit pilot buildFree
400 units a year, about 250 in the fieldTeam, [PRICE] / month
3,000 units across two productsTeam, [PRICE] / month incl. extra serials

No surprise bills

You set a monthly cap on extra serials. We email you at 80% and never charge past it. [CONFIRM POLICY]

Monthly billing, cancel any time. Your data exports as CSV and JSON whenever you want it. [CONFIRM]

We're looking for [N] design partners.

BuildTrace is new. We would rather build it with a few hardware teams who ship real units than guess. Design partners get [DISCOUNT] off for the first year, a direct line to the people building it, and a say in what we build next.

You should be shipping, or about to ship, serialized hardware with firmware you update in the field. Applications close [DATE].

Apply as a design partner [Founder name], [role] at Erbo

Recently shipped

Changelog
  • 2026-10-11Final test plans per revision, frozen when a unit is produced. Failing units are recorded too.
  • 2026-10-10Work-instruction steps open the right page of the manual for the substep being worked on.
  • 2026-10-09Reorder points per part, with a dashboard alert when stock drops below minimum.
  • 2026-10-08Obsolete parts now block any build order that would use them.
Status pagePublic roadmap

Try it with one of your own BOMs.

Import it as CSV, run a small build order, and open the first serial. Free up to [N] serials, no card needed.

Start a free workspace Sign in