Measured performance
Precision you can examine.
Understand how opentag U1 performs, how we test it, and what we’re working toward. Each measurement belongs to a specific setup and firmware version.
July 2026 baseline
Earlier distance results
Static two-way ranging · lower is better
Historical results from one hardware pair and the original firmware profile. These are distance errors, not 2D or 3D position errors. The 1 m measurement was taken at the calibration point.
| Distance | Valid samples | Mean error | P95 absolute error | Reported valid rate* | Reported packet success* |
|---|---|---|---|---|---|
| 1 m | 3,125 | +4.9 mm | 28.0 mm | 52.08 Hz | 99.71% |
| 3 m | 9,245 | −57.2 mm | 77.9 mm | ~51.4 Hz | 97.70% |
| 5 m | 9,256 | +54.8 mm | 77.3 mm | ~51.4 Hz | 97.88% |
*Reported rate and packet success use legacy estimates that can hide outages. Read the measurement limits before comparing reliability.
Conditions: one hardware pair, indoor clear line of sight, same antenna orientation, tape-measured ground truth, and one responder calibration preserved across the sweep. The 1 m row is the calibration-point run; 3 m and 5 m pool three approximately one-minute runs each.
Firmware: the original twr_init-2 / twr_resp-2 50 Hz profile. P95 absolute error means 95% of valid samples were within the stated magnitude of ground truth.
Profile experiments: longer preamble and SFD configurations raised packet delivery to roughly 99–100% at 40 Hz, but increased static P95 error at 5 m. The current twr-5 release is an experimental diagnostic profile, not a new benchmark result.
The download contains the summary values above and their test context. Raw sample logs and exact board revision metadata are not yet published. These short runs are preliminary evidence, not a completed public benchmark or validation of the current firmware.
Measurement limits
Keep outages visible.
The current browser and Python distance summaries calculate rate between the first and last received sample, not over the entire test. Packet-success estimates use an 8-bit sequence and cannot reliably count long outages or resets. A stream that stops early can still report a high rate and success percentage.
Preserve the full test duration, valid sample count, raw records, and a note of every interruption. Compute delivered rate as valid samples divided by the full elapsed test time; do not use the reported packet-success figure alone as an acceptance test. A zero-range sample may also be a negative corrected value clamped by firmware.
The July figures above are historical results from the earlier profile, not validation of today's release. The raw datasets and current-profile acceptance run still need publication. These limitations are tracked in the repository's Missing things checklist.
U1 PCB V2 engineering goals
Targets under test
Targets are acceptance goals, not guarantees. Final results must identify hardware revision, firmware revision, environment, geometry, and sample count.
Reproducible TWR test
Static ranging protocol
- 01
Fix the geometry
Mount both tags at the same height with clear line of sight, consistent antenna orientation, and no movement during each run.
- 02
Measure ground truth
Use a laser distance meter between documented reference points. Record the environment and nearby reflective surfaces.
- 03
Calibrate once
Calibrate the pair at a known distance, then preserve the same offset across the complete distance sweep.
- 04
Collect repeated runs
Use the browser Static Test at 1 m, 3 m, 5 m, 10 m, and 15 m. Capture at least three runs and 500 valid samples at each distance.
- 05
Export untouched CSV
Keep the original timestamped export. It contains measured distance, truth, signed error, RMSE, deviation, and percentile errors.
- 06
Report failures too
Publish dropped exchanges, obstructions, outliers, firmware identifiers, and anything that changed between runs.
Publication contract
What every result must include
- Raw, unedited CSV export
- True and measured distance
- Mean signed error and RMSE
- Standard deviation and P95 absolute error
- Valid sample count and dropped exchanges
- Board, firmware, placement, and environment notes
A result is not promoted to the product page until the source data and test conditions are linked here.