DIY BACnet Router

A small custom Linux OS (Buildroot) that routes BACnet/IP ↔ MS/TP, with a Rust data plane and a LAN management UI.

Ordinary boot is fail-closed (no forwarding). Lab source routing is evidenced; proving the same gates on a flashed Buildroot image, then shipping GitHub Release downloads from this site, are the open product steps.

Learn (start here)

  1. What is BACnet / IP / MS/TP? — beginner overview
  2. Stack map — rusty-bacnet vs bacpypes3 vs this app’s Rust/React/Buildroot
  3. Linux, USB serial, and MS/TP timing — why latency and by-id paths matter
  4. How we prove the live MS/TP trunk — SSH + cable listen explained simply; what Clause 9 means (not BTL)
  5. Buildroot recipe — what services make the appliance OS
  6. How we test — CI vs lab vs exact-image honesty

Build & run

Page What you get
Quick start Run routerd on a workstation
Build images GitHub Actions build-os → artifacts (Releases = milestone M8)
Architecture Data plane vs management plane
Hardware Waveshare USB RS-485 reference

Pins

Item Value
Buildroot 2026.05.2
Rust (CI) 1.93.0
rusty-bacnet acbf7baefe69d05f2368763dcc659d68e4bc114c

Milestone snapshot

Keep the detailed checklist on the GitHub README.

  • Done (source): M0–M3b scaffold, B/IP qualify, physical MS/TP qualify, isolated + shared-trunk routing evidence
  • Open: M4 exact-image prove → M8 Release downloads → M9 optional local Buildroot only