Depz.Sensor 0.2.1

dotnet add package Depz.Sensor --version 0.2.1
                    
NuGet\Install-Package Depz.Sensor -Version 0.2.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Depz.Sensor" Version="0.2.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Depz.Sensor" Version="0.2.1" />
                    
Directory.Packages.props
<PackageReference Include="Depz.Sensor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Depz.Sensor --version 0.2.1
                    
#r "nuget: Depz.Sensor, 0.2.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Depz.Sensor@0.2.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Depz.Sensor&version=0.2.1
                    
Install as a Cake Addin
#tool nuget:?package=Depz.Sensor&version=0.2.1
                    
Install as a Cake Tool

Depz.Sensor (C# SDK)

A contract-first decode/encode SDK for the DEPZ sensor family. Every codec is a byte-exact port of the reference Python SDK, pinned to the shared golden vectors under contracts/vectors (dotnet test).

Documentation

Full docs live under docs/:

Regenerate the API reference after changing source /// summaries:

python3 scripts/gen_api_md.py    # from packages/depz-sensor-sdk-csharp

Sensors

The DEPZ line exposes four distinct user-facing sensor types. The ToF is two separate silicon variants that share one wire/frame layout:

Sensor What it is USB product id SDK surface
SR04 HC-SR04 ultrasonic ranger 0xEC78 Depz.Sensor.Protocol.Sr04
VL53L8CX Base ToF multizone ranger dev-default (ST 0483:56DC) Depz.Sensor.Vl53l8
VL53L8CH CX plus CNH histograms; own PID 0xED40 Depz.Sensor.Vl53l8
BNO086 9-axis IMU / sensor-hub (SH-2 over SHTP) 0xEE08 Depz.Sensor.Bno086

VL53L8CX vs VL53L8CH

VL53L8CX is the base ToF and the development default (it enumerates under the raw ST VID/PID until reprogrammed). VL53L8CH is a superset: same ranging engine plus CNH (compact new histograms), and it ships with its own production USB PID (0xED40, hinted vl53l8ch).

Because both variants stream the same ULD results-frame layout, a single decode path serves both:

  • Vl53l8FrameDecoder — results-frame decode (distance/status/signal/…), shared by CX and CH. The only variant-visible difference is the frame-id footer offset (CX FW / ULD 2.1.0 = 12 bytes from end; CH FW / VL53LMZ 2.0.16 = 4). Select with Vl53l8FrameDecoder.ForVariant(Vl53l8Variant.Cx | .Ch).
  • Vl53l8Advanced / MotionConfig — advanced DCI codecs (motion-indicator config, detection thresholds, xtalk margin). Shared by CX and CH.

Coverage today

Verifiable, golden-vector-backed codecs are implemented for all five sensors:

  • SR04 — command encode + data/period/decay decode.
  • VL53L4CD — register-bridge codecs, result decode, timing/tuning math and init block.
  • VL53L8CX / VL53L8CH — framing → chunk reassembly → results-frame decode (shared), plus the advanced DCI codecs (shared). Exercised end-to-end by a recorded .depzrec replay.
  • BNO086 — SHTP framing/reassembly, SH-2 control encode, input-report and gyro-integrated-RV decode.

Plus the shared foundation: CRC KATs, DEPZ framing encode/decode, USB identity table + discovery ordering, common commands (time-sync, sync-pin), .fwdepz image parse, and .depzdata dataset read.

Not-yet-implemented extension points

These are deliberately stubbed (clearly-named, throwing/TODO stubs) rather than faked, because they cannot be verified from golden vectors alone:

  • CNH histogram decode (VL53L8CH-specific)Vl53l8Cnh. The CH-only compact histogram block is not decoded yet; it is the CH extension point over the shared CX/CH frame decode. No fabricated implementation.
  • Live VL53L8 ULD init/configVl53l8Uld. The firmware-download + register-bridge (DCI) init sequence only means anything against real silicon over the CDC link, so it is out of scope for the decode SDK.

Everything else in the table above is fully implemented and covered.

License

MIT. Open source — source and issue tracker: https://github.com/depz-ai/depz-sensor-sdk.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.1 103 9/6/2026
0.2.0 102 9/6/2026
0.1.4 94 9/1/2026
0.1.3 106 8/20/2026
0.1.2 121 7/6/2026
0.1.1 117 7/6/2026
0.1.0 121 7/6/2026