Registry
People will build this with parts nobody picked.
The registry exists so that substituting a part is a supported path rather than a fork. Each entry declares what its sensor can and cannot resolve, and the discriminator reads those declarations rather than assuming them. That is what lets a USD 75 thermal array and a USD 329 radiometric camera both contribute to the same band honestly.
Part used in the canonical build. Calibration constants are shipped with the firmware.
Community-submitted substitute that has been run against the conformance suite and produced data the discriminator accepts without adjustment.
Proposed by a builder, not yet run against the conformance suite. Data is accepted but flagged.
Known not to work, or works but produces data the discriminator cannot calibrate. Documented so nobody buys it twice.
| Part | Band | Driver | Standing | Price |
|---|---|---|---|---|
Raspberry Pi 5, 2GB Raspberry Pi · pi5-2gb registered alternatives: pi5-4gb, pi5-8gb unregistered: pi4-4gb | — | — | Reference | $65.00 |
Raspberry Pi 5, 4GB Raspberry Pi · pi5-4gb registered alternatives: pi5-8gb unregistered: cm5 | — | — | Reference | $110.00 |
Raspberry Pi 5, 8GB Raspberry Pi · pi5-8gb unregistered: cm5, jetson-orin-nano | — | — | Reference | $175.00 |
LC29H(DA) RTK HAT with PPS Quectel / Waveshare · gnss-lc29h unregistered: gnss-neo-m9n, gnss-lea-m8t | Navigation and pose | gnss_nmea_pps | Reference | $49.99 |
HQ Camera (IMX477) + 6mm CS lens Raspberry Pi · cam-hq-imx477 unregistered: cam-gs-imx296, cam-imx678 | Visible | picamera2_still | Reference | $78.00 |
HQ Camera NoIR + 850nm bandpass Raspberry Pi · cam-noir-imx477 unregistered: cam-noir-imx462 | Near infrared | picamera2_still | Reference | $96.00 |
RTL-SDR Blog V3 RTL-SDR Blog · sdr-rtl-v3 unregistered: sdr-airspy-mini, sdr-hackrf | Radio frequency | soapy_rtlsdr | Reference | $39.95 |
BME688 Bosch · env-bme688 unregistered: env-bme280 | Environmental | bme68x | Reference | $22.50 |
BNO085 9-DoF IMU CEVA / Adafruit · imu-bno085 unregistered: imu-icm20948 | Navigation and pose | bno08x | Reference | $29.95 |
Lepton 3.5 + PureThermal 3 Teledyne FLIR · lwir-lepton35 registered alternatives: lwir-mlx90640 unregistered: lwir-boson640 | Long-wave infrared | uvc_lepton | Reference | $329.00 |
AS7331 UVA/UVB/UVC sensor ams OSRAM · uv-as7331 unregistered: uv-ltr390 | Ultraviolet | as7331 | Reference | $24.95 |
LD2450 24 GHz tracking radar Hi-Link · radar-ld2450 registered alternatives: radar-iwr6843 unregistered: radar-cdm324 | Millimetre wave | ld2450 | Reference | $14.50 |
IWR6843ISK 60 GHz mmWave Texas Instruments · radar-iwr6843 registered alternatives: radar-ld2450 | Millimetre wave | ti_mmwave | Reference | $299.00 |
RM3100 3-axis geomagnetic sensor PNI Sensor · mag-rm3100 unregistered: mag-qmc5883l, mag-fgm3 | Magnetic and ELF/VLF | rm3100 | Reference | $39.95 |
ICS-43434 I2S MEMS microphone TDK InvenSense · mic-ics43434 unregistered: mic-sph0645, mic-infrabsu | Acoustic and infrasound | i2s_mems | Reference | $12.50 |
CsI(Tl) + SiPM open gamma spectrometer OpenGammaDetector · gamma-csi-sipm unregistered: gamma-gm-tube | Gamma | open_gamma | Reference | $189.00 |
InGaAs 640x512 SWIR module various · swir-ingaas640 | Short-wave infrared | genicam_swir | Reference | $2400.00 |
SM-24 geophone element ION / Sercel · seis-sm24 unregistered: seis-trillium, seis-raspberryshake | Seismic | geophone_ads1256 | Reference | $89.00 |
Am-241 signature cartridge (10 x 0.9 uCi discs) recovered · sem-am241 | Gamma | — | Reference | recovered |
850 nm pulsed IR beacon, 5 W peak generic · sem-ir-beacon | Near infrared | sem_beacon | Reference | $34.00 |
1500 case with breather vent and feedthroughs Pelican · case-pelican1500 | — | — | Reference | $179.00 |
100 W panel + 30 A MPPT + 100 Ah LiFePO4 generic · power-solar-100w | — | ina226_monitor | Reference | $385.00 |
MLX90640 32x24 thermal array Melexis · lwir-mlx90640 registered alternatives: lwir-lepton35 | Long-wave infrared | mlx90640 | Verified | $74.95 |
Registering a part
What an entry has to say
What it cannot do
The most important field. The MLX90640 entry states plainly that at 768 pixels it establishes thermal presence but not thermal morphology, and the discriminator scores it accordingly. An entry that only lists capabilities corrupts analysis rather than extending it.
A sourced price with a date
Component pricing moved 80 to 150 percent on some parts during 2026. An unsourced number is worse than no number, so every entry links to the vendor page it was read from and records when.
A driver, or a note that one is needed
Parts on an existing bus with an existing driver need no code. Anything else needs a Driver subclass that declares its capabilities honestly, returns None rather than a fabricated value on a failed read, and has a simulated path so people without the hardware can still run the pipeline.
Conformance results, once you have them
New entries entering as submitted are accepted and flagged. Running the conformance suite and passing moves the part to verified and removes the flag. Parts that do not work are recorded as unsupported rather than deleted, so nobody buys one twice.
How to submit
Add an entry to schema/hardware.json and open a pull request against Xaxis/nband. The schema is the registry; there is no separate database to keep in sync, which is the point. See the contribution guide for the driver interface and the rules about capability declarations.