Open Physical Telemetry &
Agronomic Intelligence
A high-precision, strongly-typed TypeScript ecosystem for multi-depth capacitive soil moisture, canopy microclimate VPD, FAO-56 evapotranspiration, and ChirpStack LoRaWAN decoding.
End-to-End Telemetry Architecture
From physical sensor probes to immutable OKF DataPoints ledger.
π‘ Physical Probes
BradOS firmware sampling I2C/analog sensors into Float32 Little-Endian binary payloads.
π ChirpStack / LoRaWAN
Autonomous Edge-ADR transmission routed via sovereign Basicstation WSS gateway stack.
βοΈ @bradtech/sensor-lorawan
Zero-allocation dispatching pipeline converting FPorts into calibrated domain metrics.
π Immutable DataPoints
Unified OKF ontology (measured vs computed) stored in PostgreSQL / TimescaleDB.
Open Source Package Registry
Modular, tree-shakeable packages published under GNU AGPL-v3.
@bradtech/sensor-lorawan
ChirpStack uplink binary decoder, BradOS FPort dispatching pipeline, and zero-allocation pre-instantiated domain adapters.
bun add @bradtech/sensor-lorawan
@bradtech/sensor
Foundational sensor abstraction, BaseSensorConverter, ConverterRegistry, Quatrain Sensor facade, and deterministic ReplayEngine.
bun add @bradtech/sensor
@bradtech/sensor-soil
Multi-depth capacitive VWC %, plot-specific linear regression (y = ax + b), van Genuchten soil matric potential pF, and normalized EC @ 25Β°C.
bun add @bradtech/sensor-soil
@bradtech/sensor-air
Crop canopy air microclimate, foliar Vapor Pressure Deficit (VPD in kPa), FAO-56 Penman-Monteith ET0, and spring ground frost risk.
bun add @bradtech/sensor-air
@bradtech/sensor-weather
Rain gauge tipping bucket accumulation & intensity rate (mm/h), 16-cardinal wind anemometer, solar radiation PAR PPFD, and barometric QNH.
bun add @bradtech/sensor-weather
@bradtech/sensor-power
Li-Ion battery state-of-charge (SoC %) non-linear polynomial conversion, brownout risk protection, and MPPT solar harvesting efficiency.
bun add @bradtech/sensor-power
@bradtech/sensor-acoustic
Digital I2S acoustic sensing, sound pressure level (dBA SPL), and frequency spectrum analysis for acoustic rain and wind buffeting.
bun add @bradtech/sensor-acoustic
@bradtech/ontologies
Open Knowledge Format (OKF v0.1) agricultural taxonomies (soils, crops, irrigations), multilingual selectors, and open data JSON-LD graphs.
bun add @bradtech/ontologies
@bradtech/types
Strongly-typed template literal URIs (probes/X, plots/Y, okf:metric/Z), QUDT measurement units, and polymorphic metadata contracts.
bun add @bradtech/types
Live LoRaWAN Decoder & Math Simulator
Test real Base64 Float32 Little-Endian payloads and view the calibrated OKF DataPoints output generated in real-time.
// Processing...
Practical HOWTO Recipes
Real-world TypeScript implementation patterns for IoT and Agronomy developers.
1. Processing ChirpStack Uplinks in Any Microservice
Decode binary messages received via MQTT or webhook from ChirpStack into standardized, immutable OKF DataPoints.
import { LoRaWanPipeline } from '@bradtech/sensor-lorawan'
// Raw JSON uplink payload from ChirpStack MQTT
const dataPoints = LoRaWanPipeline.process({
deviceInfo: {
deviceName: 'b25s004',
devEui: '8c1f640000000004',
tags: { plot: 'plots/saint-emilion-01' }
},
fPort: 15,
data: 'AAAAQEF', // 24.0Β°C in Float32 LE
publishedAt: new Date().toISOString()
})
console.log(dataPoints)
// Emits both measured temperature AND derived foliar VPD!
2. Plot-Specific Soil Moisture Linear Regression
Apply lab pedological calibration curves (y = ax + b) directly on raw capacitive dielectric readings.
import { SoilMoistureConverter } from '@bradtech/sensor-soil'
const converter = new SoilMoistureConverter()
const points = converter.convert({
value: 45.2, // Raw capacitive reading
device: 'probes/b25s004',
plot: 'plots/saint-emilion-01',
timestamp: new Date().toISOString(),
context: {
depthCm: 10,
slope: 1.05, // Plot linear slope (a)
intercept: -0.8 // Plot intercept (b)
}
})
// Accurately calibrated VWC % for clay-loam soils!