BIPERmesh / 868community LoRa mesh

Open project ledger • updated 20 Aug 2026

Biper audit, plan, and structure

One place showing what is genuinely ready, what has been measured on hardware, what still has not, and which evidence must exist before publication.

This page is the project’s technical ledger — written in engineering jargon.

7 + 1
area audits and one simplification pass
1
cube in the buying path: Unit C6L
5
boots with the entropy source measured
1
public system file in the installer (v0.9.0)

Progress audit • 18 Aug 2026

The host is ready, the cube has started returning measurements, publication waits.

Four units arrived on 17 August. On 18 August the cube answered with a measurement for the first time: the radio entropy source, the expander bus, the layer boot. The radio, the range and the current draw we still have not measured, and we do not pretend that we have.

G05 IN PROGRESS / REPO PUBLIC
12 / 12
host gateslint, Biper OS contracts, build, artifact, photo metadata, manifests, privacy, and error states
0
broken Markdown linksa consistent PL/EN restart baseline
3
community maps instead of oursthe map mock-up came down on 18 Aug; we point at maps other people run
60+
files beyond upstreama maintained variant now, not an overlay; the delta is computed from Git and guarded by the fork’s CI; public code: github.com/fiedoruk/biper-lora (as of 20 Aug 2026)
CLOSED LOCALLY

The PL and EN site, the cube screen carried onto the page and held by a gate, light/dark, error states, CSP, SBOM, and the publication lock.

HOST READY / EXTERNAL OPEN

Browser: macOS Chromium is evidenced; Firefox, WebKit, Windows, Linux, iOS, Android and the screen reader remain NOT MEASURED.

STARTED ON HARDWARE

Flashing, layer boot, the expander bus and radio entropy: measured. BLE, the A↔B pair, recovery, range and current draw: still ahead.

LOCKED

The public code repository has been open since 20 August by the owner’s decision: github.com/fiedoruk/biper-lora. The system file, the domain and the deployment were public since 17–19 August.

What the CC correction set closed

PRIVACY

The map mock-up came down on 18 Aug — we draw no map of our own out of invented points and we fetch nobody else’s. We point at three maps the community runs. Production photographs had their EXIF stripped together with the GPS, plus a build gate that will not let the next one through.

INTEGRITY

The target, the version and the SHA of the pinned report are tied to the manifest and the binary, and the flasher carries no second pin in the UI.

FAIL CLOSED

Doctor separates a missing measurement from zero, the release policy ends errors with STOP, and the watcher limits type, time and 2 MB.

GOVERNANCE

PL/EN has an automated parity gate, and CI runs the full set of twelve checks on every change.

ONE CUBE

Since 18 Aug the buying path holds the Unit C6L alone. A shared SX1262 radio does not make another board supported, and a file with its own SHA does not create support before DEVICE and RF.

Work progress

We measure progress by the evidence that closes each gate.

G04 is closed. G05 is open and in progress: the cube is on the desk, the first measurements are in the ledger, and the rest of the device path waits for the two-unit pair session.

G00–G04 complete; G05 in progress on hardware; G06–G09 waiting

  1. G00

    Truth baseline

    PL/EN documentation, decisions, sources, risks, and a restart point.

    COMPLETE
  2. G01

    Product contract

    Biper, a beginner as the first user, the phone as the screen, and a small role-based stack of exact devices.

    COMPLETE
  3. G02

    Architecture

    Upstream-first, a private candidate, an empty approved manifest, and ADR-0002.

    COMPLETE
  4. G03

    HOST MVP

    The site, a locked flashing path, build, and tests.

    COMPLETE
  5. G04

    Browser, security, and accessibility

    macOS Chromium, negative states, CSP, SBOM and responsive layouts are evidenced. Three P0 findings from the panel accessibility audit are closed. Other engines and the screen reader remain NOT MEASURED.

    COMPLETE
  6. G05

    Controlled device lab

    Done: flashing, layer boot, the expander at 0x43, five measurements of the radio entropy source. Still ahead: the C6A↔C6B pair, BLE, recovery, stability and current draw.

    IN PROGRESS
  7. G06

    Private pilot

    5 then 20 people; completion, recovery, time, and real support cost.

    LOCKED
  8. G07

    Public pilot

    Approved artifact only, staged deployment, rollback to the previous version, legal review, and the owner decision.

    LOCKED
  9. G08

    Operations

    Upstream watch, release promotion, incidents, compatibility smoke, and maintenance cost.

    LOCKED
  10. G09

    Portfolio decision

    INVEST / MAINTAIN / RESCOPE / STOP based on the pilot and operations.

    DEFERRED

Evidence ladder

A green build does not prove the radio works or authorise publication.

HOSTPROVEN

Content, data, manifests, and logic exist locally.

BUILDPROVEN

Repeatable build, lint, and tests pass.

BROWSERHOST READY

macOS Chromium, 1440/390/320 and 720 px reflow are checked; other platforms are NOT MEASURED.

DEVICEPARTIAL

One C6L cube: flashed, booted, expander found, radio entropy measured five times. The second unit and the whole radio path are still ahead.

RF / EU_868PARTIAL

The first message crossed the air on 17 August, on the base file. Range, link budget, duty cycle and the formal regional review are still ahead.

PUBLICLOCKED

Deployment, the public system file and the public code repository are live (the repo since 20 August).

Biper OS • pre-device T1

A better product without splitting MeshCore.

First we add safe provisioning, recovery, diagnostics and release control. Firmware changes follow a measured baseline and start as small patches sent to the upstream project.

BIPER LAYER / T1 — HOST PREDEVICE COMPLETEOpen the safe device-free laboratory →
  1. L0 / HOST

    Layer contracts

    The pl-eu868-v1 profile, privacy-safe diagnostics, recovery, and the candidate → laboratory → release policy are versioned and validated.

    HOST READY
  2. L1 / HOST

    Device-free recovery

    The lab has a rehearsal PIN and a local AES-GCM round-trip on synthetic data only, with no device identity file.

    SYNTHETIC ROUND-TRIP PASS
  3. L2 / HOST

    Biper Doctor

    Ten fixtures cover missing BLE and airtime telemetry and an invalid measurement set; the validator stops uncertain data.

    VALIDATOR READY
  4. L3 / HOST

    Release Guard

    The read-only watcher confirmed v1.17.1, writes only a report, downloads nothing, and always returns mayPromote=false.

    WATCHER READY
  5. L4–L6 / IN PROGRESS

    Baseline and small patches

    Official v1.17.1 on the C6L, with its own SHA, is flashed and booted. One patch is already fit to send upstream: randomSeed() in setup disables the hardware generator across the whole firmware.

    ON HARDWARE
  6. L8 / LATER

    Biper Relay PL

    More power needs separate hardware, a complete antenna budget and RF measurement. +22 dBm is the SX1262 catalogue limit, not a measurement of our kit.

    DEFERRED

What happens next

Nearest execution plan

Every step has its own boundary. Delivery day covers inspection; the cable appears only in a separately approved stage.

  1. HOST / CLOSED

    Pre-device L1–L3 ready

    Synthetic recovery, Doctor, BLE and airtime states marked NOT MEASURED, the read-only watcher and the device-free laboratory all have contracts and tests.

  2. DONE / 18 AUG

    First flash and the entropy measurement

    C6A: our build → boot → the expander at 0x43 → five readings of the radio source. Along the way we found and fixed the reason the whole firmware had been running on a 31-bit generator.

  3. NEXT / TWO CUBES

    The second unit and the first message

    C6B: the same entropy reading, then the C6A↔C6B pair — the channel, a private message, the delivery receipt, recovery.

  4. IN THE SAME SESSION

    The handling path by hand, not in code

    Four button gestures, the wipe with its countdown, the hotspot and the panel from a phone, and whether the SIEC/SAM mode survives losing power.

  5. HARDWARE-FREE / OPTIONAL

    External platform matrix

    Windows, Linux, Firefox, Safari, iOS and Android remain NOT MEASURED; this does not block the rest of the path.

  6. AFTER THE PAIR

    Stability and current draw

    24 and 72 hours of running, a USB meter in each mode. It is the one number in this project that people ask for and we cannot give.

  7. AFTER DEVICE/RF

    Private pilot

    First 5, then 20 people. We measure completion, recovery, time, and support load.

  8. AFTER THE PILOT

    Public proposal

    Licences, provenance, approved manifest, canary, monitoring, rollback, and a separate owner GO.

Project structure

One source of truth, three clear zones

The static site, the documentation and the private candidate are kept apart so that a build can never promote a binary by itself.

Biper/restart point, status, and project boundaries
site/the static site and its gates
static-src/PL/EN content fragments, the stylesheet, the browser layer
dist-static/the rsync-ready artifact: twelve documents and local assets
scripts/the site generator, the artifact and deployment gates, screenshots of the cube screen and the panel
tests/twenty tests: contracts, privacy, and release boundaries
docs/parallel PL/EN documentation
pl/Polish source instructions and plan
en/the same meaning in English
adr/accepted architecture decisions
visual/Civic Relay candidate and rendered QA
specs/machine-readable Biper OS contracts
regions/country profile as specification_only
diagnostics/Doctor schema without messages, keys, or exact location
recovery/synthetic encrypted envelope; no production identity format
releases/promotion without automatic stable
artifacts/private system-file candidate for the laboratory
STATUSCURRENT-MISSION.md + STATUS.md

Public / private boundary

SAFE IN REPO

Site code, documentation, contracts, and the approvals manifest with no public binary.

GATED LAB

The exact candidate binary stays private; its hash and evidence state are visible for integrity checks.

NOT PERFORMED

Flashing the system file, BLE, RF, deployment, the domain, a public repository, and publishing the binary.

Data and release flow

Community mapswe point at three that other people runno snapshot of our ownzero real-node data on our side
Official MeshCore releaseone target + SHADEVICE / RFapproved manifest or STOP
Biper OS specshost validatorlaboratory / DoctorG05 or STOP

Hardware

One cube, one trial path

Until 18 August we were comparing two families. The XIAO left the buying path by the owner decision: there is to be one cube, in a factory enclosure, with a screen, so that it can be put in someone’s hand without explaining what to choose. The XIAO hardware stays in the laboratory as a reference point, not as a product.

  1. C6AMEASURED / 18 AUG

    M5Stack Unit C6L U202

    Our build flashed, the layer comes up, the expander found at 0x43, the radio entropy source measured across five boots.

  2. C6BSTILL AHEAD

    The second unit

    The same entropy reading — one cube says nothing about a batch — and then the C6A↔C6B pair: the first message, the receipts, recovery.

  3. XA + XBREFERENCE, NOT PRODUCT

    XIAO ESP32-S3 + Wio-SX1262

    They stay in the laboratory. They are useful for checking that our layer has not tied itself to one board, but we recommend them to nobody.

  4. D9SUPPORT DECISION

    Evidence first, base second

    A second support path opens only if the measurements justify it. A shared SX1262 radio does not make another board supported.

Four units arrived on 17 August 2026. First flash and measurements: 19 August 2026. Radio trials need the owner’s separate approval and have not been carried out yet.

Analysis, not a purchase recommendation • RPT / SOLAR / EXTERNAL

Solar node: XIAO nRF52840 + Wio-SX1262 (analysis of someone else’s product, not our path)

It shares the SX1262 radio family but uses different parts. It runs a XIAO nRF52840 and a different Wio board revision, and the offer adds a 3 W panel, a 0.5 W MPPT charger, four 18650 cells, a mast enclosure, and an N connector. The offer therefore covers real integration work. A Biper recommendation is blocked by missing data on battery protection (BMS), IP rating, the bundled antenna, and winter operation.

See the analysed product at its source

Questions the trials will settle

  • whether the second cube has an equally live entropy source
  • how long a cube runs from a power bank and how much current it really draws
  • whether recovery is repeatable for a novice
  • whether three clicks can be done by hand and not only in code

Release history

What we shipped and what changed

The full CHANGELOG lives in the layer repository and will reach GitHub together with the code opening.

  1. v0.8.1–0.8.17 • 19–20 Aug 2026

    Pair-trial day: seventeen patches to a working messenger

    Each from a defect the owner hit while testing two cubes: the hotspot name is a word, not digits — and each cube gets its own (both announced themselves as Biper-15FE, because the identifier slice the name came from is shared by a whole batch); the Wi-Fi password is fixed per cube and the hotspot window stays up while a phone is connected; the hotspot seats four devices, so a remembered laptop cannot lock the phone out; a cube in SIEC mode announces itself shortly after power-on, SAM stays silent; the contacts tab speaks a human word (KONTAKTY) and the Wi-Fi word can be set by the owner. The root of the pair that could not see each other turned out to be single: build-flag ordering compiled one class into two memory layouts, so the radio path stored contacts where the panel never looked. The panel now declares its protocol version (messages reach the phone), the password alphabet lost its OLED look-alike twins, the SLYSZE counter gained a presence beacon and treats a received message as proof its sender is alive, and the station word pool grew to 294. On the evening of 20 August the pair talks both ways from two phones, and an external UX audit closed the day inside the panel: a permanent recipient capsule at the input, the alarm reachable from every screen, green reserved for the link state.

  2. v0.8.18–0.8.19 • 20 Aug 2026

    An external audit, four decisions, and a hard legal limit

    An external 36-area review of the whole fork (an independent AI model, 20 Aug 2026, internal report), executed with a falsifier on every claim — several findings rejected against evidence, the rest verified in code before anything was touched. The heaviest fixes: the radio oscillator powered as the vendor schematic demands (3.0 V instead of 1.8), the screen font completed (the wipe-in-progress caption was losing W, Y and U), messages received before the panel's first visit no longer lost, length gates on paths that read past the declared frame, and a compile-time guard on the contact-list geometry. On top of that, four owner decisions: a hard 10% airtime limit baked in so that no setting can raise it (the ETSI limit for the rescue sub-band), the hotspot gesture at a full three seconds, radio parameters kept community-compatible until measured, and a proper board definition with the real 16 MB of flash and a partition table ready for future cable-free updates. The pair trial after a full wipe: the cubes found each other on their own, and a private message got its radio acknowledgement in 1.2 seconds.

  3. v0.8.20 • 20 Aug 2026

    The second independent audit: state truth and recovery

    A full review of both repositories by an independent AI reviewer (20 Aug 2026, internal report pinned to exact SHAs) confirmed nine P1 findings — each verified in code before anything changed. All six logic findings land in this release: DELIVERED lights up only when a confirmation hits the awaited marker — a late, duplicated or foreign one no longer changes the screen; the missing return in the frame-accept path is now a compile error, because the global warning silencer is stripped from our environments; the 10-second wipe gesture works with a dead display, and the countdown is audible; the hotspot window is held by a live panel, not by a merely remembered station; a full queue answers “busy” instead of losing a command silently; a phone taking over the panel flushes the old session’s pending commands. Plus a hard 8-character password check, verified page and task registration, Wi-Fi-name truth mid-window, 11 host tests of the pure delivery logic, and CI that now also builds the stock C6L profiles. This page now also tells the truth about the fork’s scale — see the metric above.

  4. v0.9.0 • 20 Aug 2026

    The panel is the interface: Bluetooth leaves the release

    An owner decision after two independent reviews: the shipped system is the no-Bluetooth variant. The official app over BLE and the panel used at once could interleave each other’s responses (single-client protocol state in the MeshCore base), the BLE stack advertised pairing indefinitely, and conversations held outside the panel were invisible to the cube’s screen. After the change: the install file is a third lighter (1.56 MB), twice the free memory with the window open, and the screen sees every conversation. The full pair test ran on the exact bytes the installer ships: 10/10 messages confirmed both ways, median 0.82 s. The cube is not locked — whoever prefers the official app flashes stock MeshCore, and our installer always brings the Biper system back.

  5. v0.8 • 19 Aug 2026

    The iPhone reaches the panel, the screen admits who it hears

    Apple’s network probe got the welcome page instead of a redirect, so the iPhone’s sign-in sheet browsed the cube as captive.apple.com and the panel’s origin guard rightly answered “bad host” to every tap. After the fix the sheet lands on the cube’s own address and the panel opens from the phone. Two visibility patches along the way: the SŁYSZY counter now counts a node the first time it is heard, and the panel bridge no longer goes deaf once the hotspot window closes.

  6. v0.7 • 19 Aug 2026

    The wipe holds the screen to the end

    After the countdown the cube shows its fastest rings with the word WYMAZUJE until it reboots — previously the normal screen returned for a moment (owner-reported during testing). Along the way the site’s pixel-parity gate caught a never-ending loop in the rings’ square root before it reached a cube; the layer’s internals moved to English ahead of opening the repository.

  7. v0.6 • 19 Aug 2026

    First public build in the installer

    The Biper system on MeshCore v1.17.1: the cube-served panel with contact backup on the phone, the screen language plus LED and buzzer signals, the SIEC/SAM relay switch persisted across restarts, a hotspot with the cube's password, wipe with a countdown, since 0.9.0 no Bluetooth in the release, identity-key export and import compiled out. The file's SHA-256 stands next to the installer and in the release manifest.

  8. 17–18 Aug 2026

    Internal milestones, never released

    In order: hotspot, screen, sound and light, ninja mode, the memory diet (34 → 115 kB free), captive portal, the panel–radio bridge, the panel, hardening. Each milestone closed with a measurement on the development cube.

Project policy

The Biper Charter

Six rules written down now, before anyone asks for them. Changing any of them takes an explicit owner decision, with the reasoning and the date. The Charter has a permanent address: /en/biper/charter/.

  1. RESCUE IS FREE

    Crisis communication has no paywall

    The installer, the system file, the emergency panel and the instructions stay free. Supporting the project may cost money. A feature somebody’s safety depends on never will.

  2. OPEN CODE

    The firmware layer will be published under MIT

    The decision was taken on 17 August 2026. Anyone will be able to read what the device they carry in a crisis transmits.

  3. TRADEMARK

    We will register the “Biper” mark in the open

    With a public statement of who files it and why. The filing and its status go into this ledger, alongside the rest of the decisions.

  4. AI DISCLOSED

    Biper’s development is AI-assisted and we say so plainly

    In the README, in the documentation and here. The code goes through reviews, quality gates and on-hardware tests. We see no reason to stay quiet about the tool we work with.

  5. NO GATEKEEPERS

    We will not build an app you must have before the hardware works

    The phone will reach the cube through an open panel served by the device itself. A paid client as a condition of working is off the table.

  6. COMMUNITY

    Community channels will be nobody’s private property

    When a forum, a chat or a map appears, administrative access will be documented and transferable.

The Charter is a statement of intent. The commitments about open code, the trademark and the panel concern things not yet built, and we track their state in the same ledger as the rest of the work.

Why MeshCore and not Meshtastic?

Airtime economics in the 868 band

Meshtastic broadcasts messages by managed flooding: every node repeats what it hears, so the whole network pays airtime for a single message. MeshCore learns routes and sends direct messages along a chosen path, keeping flooding where it makes sense — adverts and the channel. In Poland we transmit in the 868 band under a transmit-time limit, and a network for a crisis has to work when many people write at once. That was reason number one.

The architecture fits the cube

Clean roles (companion, repeater, room server) and a simple protocol in which the phone is the screen: that is exactly Biper’s model. We added our layer to a small C++ library — at the start (17 Aug) it was four marked touch points in one file of theirs, +94 lines. Today it is an openly maintained variant: 60+ files and roughly 13.6k lines — our own layer (screen, panel, hotspot, CI gates) plus fixes in shared files; the exact delta is computed from Git by the fork’s CI (as of 20 Aug 2026).

Hardware we want to put in someone’s hand

At the time of the choice MeshCore supported compact, ready-made modules built on the ESP32-C6, and the system itself is small enough that 4 MB of flash holds it together with our emergency panel. Meshtastic had nothing to offer us on this platform then.

The MIT licence

MeshCore is MIT-licensed. Opening our own layer and shaping the product freely needed no licensing compromises.

The short answer, for a first-time question

Meshtastic is a great hobbyist tool and a great map. We needed a frugal radio that survives many conversations at once in a crisis, and a library simple enough that you can build your grandmother a device with it.