| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Arbiter is a deterministic reasoning and safety-policy engine for Zephyr RTOS. It lets you express safety policies, mode-transition logic, and system-level reasoning rules in a declarative YAML model format called ARB, then compile those models into bounded, deterministic C representations that run efficiently on resource-constrained microcontrollers.
manifest:
remotes:
- name: zephyrproject-rtos
url-base: https://github.com/zephyrproject-rtos
- name: bitconcepts
url-base: https://github.com/BitConcepts
projects:
- name: zephyr
remote: zephyrproject-rtos
revision: main
import: true
- name: arbiter
remote: bitconcepts
revision: main
path: modules/lib/arbiter
self:
path: appwest init -m <your-manifest-repo>
west update
west build -b native_sim modules/lib/arbiter/samples/battery_policy
west build -t runarb_version: 0.1
model: motor_safety_policy
target:
rtos: zephyr
profile: static_c
safety_profile: zrm_safety_strict_v0
facts:
- id: motor.speed_rpm
type: uint32
unit: rpm
range: [0, 12000]
source: sensor
stale_after_ms: 20
safety_relevant: true
- id: estop.active
type: bool
source: gpio
safety_relevant: true
modes:
- id: mode.normal
- id: mode.degraded
- id: mode.safe_shutdown
rules:
- id: guard_estop_shutdown
class: safety_guard
when:
all:
- fact: estop.active
op: "=="
value: true
then:
set_mode: mode.safe_shutdown
action: disable_motor_pwm
explanation: E-stop is active, forcing safe shutdown.
criticality: safety_critical
actions:
- id: disable_motor_pwm
type: callback
symbol: app_disable_motor_pwm
must_complete_within_ms: 5
safe_state_action: true# Validate
arbiterc validate model.arb.yaml --strict
# Compile to C tables (primary safety path)
arbiterc compile model.arb.yaml --out-c ARBITER_model.c --out-h ARBITER_model.h
# Compile to binary blob (optional)
arbiterc compile model.arb.yaml --out-blob model.zrmb
# Generate documentation
arbiterc emit-docs model.arb.yaml --out model.md# prj.conf CONFIG_ARBITER=y CONFIG_ARBITER_TRACE=y
arbiter is designed to support deterministic, bounded, explainable reasoning in Zephyr-based systems and to produce evidence useful for functional-safety certification workflows. arbiter has an ASIL D / SIL 4 readiness roadmap.
arbiter is NOT certified to any functional-safety standard. It does not guarantee functional safety on its own. Certification is the responsibility of the system integrator.
This project is licensed under the MIT License.
See CONTRIBUTING.md for guidelines.
| Back | FazBrowse Home | New Git URL |