41 projects
pamoja-radios
The Semtech SX126x and SX127x LoRa radios and the SX1302 and SX1303 gateway concentrators: their commands, registers, and decoders, the amplifier setting a regional EIRP ceiling allows, a duty-cycle guard, and simulated chips that stand in for a module.
pamoja-hal
The embedded-hal traits every driver takes, a bit-banged 1-Wire bus, simulated parts and scripted buses that stand in for hardware, the Linux backends over i2c-dev, spidev, and the GPIO character device, one I2C bus and one serial port a program and its drivers share, and delays that sleep or only count.
pamoja-gateway
What a LoRaWAN gateway speaks: the Semtech packet forwarder protocol and the Basics Station protocol on both sides, the network side of a single site, and a bridge from the radio to the link that leaves it.
pamoja-zenoh
Zenoh key expressions: validity, canonical form, matching, and whether two expressions share or cover keys.
pamoja-update
Signed firmware manifests, streaming image verification, and A/B slots that fall back on their own.
pamoja-trust
Trust and operation: Proving what a node did, saying it in confidence, fixing it in the field, and deciding how often it can afford to do any of that.
pamoja-transports
Transports and testing: Reaching the network when no single link always works, and testing all of it with nothing plugged in.
pamoja-telemetry
Observability that ships only what is worth the bytes as link cost rises, while counting everything.
pamoja-sync
Offline-first queues in memory or on disk, bounded or not, the on-disk one surviving power loss, and the drain that forwards them in order when a link returns.
pamoja-sim
Noisy and replay sensors, a recording actuator, a simulated robot that dead-reckons its pose, and a link that loses sends on a pattern.
pamoja-session
X25519 key agreement, HKDF, and ChaCha20-Poly1305 with an anti-replay window, with no TLS stack.
pamoja-serial
SLIP and COBS byte stuffing with streaming decoders, so a UART byte stream carries discrete packets.
pamoja-sensors
Datasheet-anchored drivers for eleven parts, from every language: the BME280, BMP280, DS18B20, HDC1080, INA219, INA226, ADS1115, OPT3001, SCD4x, SHT3x, and TMP117.
pamoja-sensing
Sensing and actuation: The parts wired to a board: a thermometer that checks its own bytes, a servo pulse, a stepper walking its coils, and a part of your own.
pamoja-security
ed25519 device identity: sign a reading and verify it, so a gateway can prove it is authentic.
pamoja-routing
Reverse-path routing that learns the cheapest route from overheard traffic.
pamoja-ros2
ROS 2 names, RIHS01 type hashes, CDR encoding, and rmw_zenoh key assembly, with no ROS 2 installed.
pamoja-radio
Radio and reach: Budgeting airtime, framing a mesh packet, routing it, and securing a LoRaWAN uplink: everything a node needs to reach a network it cannot see.
pamoja-profiles
Profiles and robotics: A node written down as a JSON file, rules between nodes as another, and the naming and encoding rules a robot's topics follow, with no ROS 2 or Zenoh installed.
pamoja-profile
Named, ready-to-run device profiles from plain data or a JSON manifest, run as a node in every language.
pamoja-power
Duty cycling and an energy-aware governor that stretches work as the battery drains and holds its mode against a wandering charge.
pamoja-native
The compiled pamoja engine for Python and the generated contract every pamoja package builds on. Installed as a dependency, not directly.
pamoja-mqtt
An MQTT client with the topic and wildcard rules, acknowledged delivery, retained messages, a last will, and TLS, as the core transport.
pamoja-modbus
Modbus RTU for RS485 field devices: a client that polls them over a serial port with the line's timing, simulated devices that answer as real ones do, and the frames with their CRC-16/MODBUS.
pamoja-mesh
Addressed, hop-limited, CRC-checked frames and duplicate suppression that floods a packet exactly once.
pamoja-mavlink
MAVLink v1 and v2 framing, signing, named message fields and enum values, and the mission, command, and offboard protocols.
pamoja-lorawan
LoRaWAN 1.0.x MAC framing, AES-CMAC and AES encryption, and both halves of the OTAA join.
pamoja-lora
Time-on-air, duty-cycle off-time, the regional channel plans a LoRa node must keep to, and the link budget that sets its range.
pamoja-loopback
An in-process transport with topic matching, a fault injector, and outages on demand, for testing with no broker.
pamoja-ladder
Cheapest reachable link first, buffering to a store when every link is down.
pamoja-kit
Plain-language helper math: smoothing, calibration, PID and thermostat control, a trigger with hysteresis, trend and surge prediction, rolling windows, unit conversions, geo, and robot motion.
pamoja-gpio
I2C address frames with reserved-range checks, the four SPI clock modes, active-high or active-low switches and contacts, and GPIO lines opened on a Linux board.
pamoja-field-io
Field I/O: The wires a gateway actually has: framed serial packets, an RS485 request and the reply it draws, a CAN frame, the address a chip answers on, and the bus that carries a driver to the part.
pamoja-core
The pamoja engine's surface for Python: the runtime version, the error every native call raises, and the transport every link shares, the counterpart of the pamoja-core crate.
pamoja-codec
CBOR, JSON, and raw codecs behind one trait, and batch packing for metered links: delta and varint for integers, and a quantizer for f32 readings.
pamoja-coap
A CoAP client and the server it reports to, over UDP, with confirmable delivery and observe.
pamoja-can
CAN 2.0 and CAN FD frames with 11- and 29-bit identifiers, J1939 decode and compose, and a node on a bus, simulated or a Linux interface through SocketCAN.
pamoja-bus
An in-memory typed publish and subscribe event bus, with publishers that never wait and subscribers that count what they miss.
pamoja-audit
A tamper-evident, hash-chained log; altering, reordering, or dropping a record breaks verification.
pamoja-actuators
A PCA9685 driver for servos, LEDs, and valves, and stepper drivers for four coil lines or a step and direction chip, in every language.
pamoja
The whole pamoja framework in one package: every capability of one memory-safe Rust core, behind an idiomatic Python facade, for IoT, robotics, and drones.