Author: John Poole
-
Testing Satellite Time Synchronization Across Seven T-Beams
<p>The LilyGO T-Beam Supreme has a real time clock, aka “RTC”, circuit powered by a small hidden rechargeable battery that can hold a charge for 2-3 days. If your T-Beam is without power from A) its larger battery, a 18650 Li-Ion battery or B) a powered USB connector, then your stored date and time value…
-
Achieving 166 µs Clock Synchronization Across 7 T-Beams
After much effort, I finally achieved running 7 T-Beams for 17 minutes, and having them create internal clocks based on satellite pulse per second, aka “PPS”, and finding they spanned by 166 µs. One hurdle I had to overcome was a physical one: 1) the top of the T-Beam contains the GPS antenna which is…
-
Shaving 8–9 Minutes Off Each Test Cycle
A recent dialog reminded me why having a powerful — and fun — Ryzen 7950-based system is helpful. I’m performing testing of hand-held radio units to see how mesh software, ostensibly Reticulum-based units, perform out in the field. The magic of mesh networks is that it can extend the range limits between two radio units.…
-

Simulating A Mesh Network For Reticulum Testing
<h1>Introduction</h1> <p>This article discusses radio transceivers that employ the <a href="https://reticulum.network/">Reticulum</a> protocol. The Reticulum protocol defines the structure of bytes that are transmitted via radio, Ethernet, Bluetooth, and other forms of communication. Here, I’m addressing LoRa radio protocol only. Radio transceivers using Reticulum and its LoRa interface listen for and transmit radio signals which carry…
-

Reticulum Testing: Seeing the Invisible Transmissions
highly technical I’m testing microReticulum, a C++ implementation of Reticulum. I’ve specifically been testing the LINK and transport mechanism. I have three units: BOB, CY & DAN. While all three units are within broadcast range of one another, I have purposefully caused BOB and CY not to be able to receive each other’s transmissions. This…
-

A Reticulum Protocol Specification, Extracted from the Implementation
<p data-start="2791" data-end="3113">I undertook an effort to guide OpenAI’s Codex into creating a specification document for the Reticulum protocol. I had learned that, in practice, Reticulum’s “protocol” is treated more as a reference implementation: the code tree is the embodiment of the protocol, and there is no separate defining specification document.</p> <p data-start="3118" data-end="3167">Long story…
-
Reticulum on Rust: Comparison Of Two Projects
<p><strong><span style="color: #ff0000;">highly technical</span></strong></p> <p>There are two projects that came to my attention where the Reticulum implementation is built using the Rust programming language. I know very little Rust, but I have been impressed with everything so far. Scott Lamb of the <a href="https://github.com/scottlamb/moonfire-nvr">Moonfire NVR</a> project has been suggesting I learn Rust since 2018, and…
-

Creating A Specification After the Fact Using AI
Introduction Protocol specifications are normally written before independent implementations are attempted. The specification is the common contract: it tells each implementer what must be sent, what must be accepted, what may be rejected, and what behavior is expected. Reticulum and LXMF present a different problem: much of the “protocol” must be inferred from a working…
-

Herding T-Beam Cats
Highly technical, but written for those who are blessed with curiosity Introduction I’m testing microReticulum, a C++ implementation of the Reticulum protocol developed by Chad Attermann, on 7 LilyGo T-Beam SUPREMEs. The T-Beams use the ESP32-S, a game-changing small processor. I’ve built an elaborate testing bench which I wanted to document should someone in the…
-
Bluetooth Signal Strength Testing
<p>Now that I have Bluetooth working with Reticulum on the T-Beam, I have the option of testing my Reticulum mesh using Bluetooth instead of Lora. Were I using LoRa, I would have several people walking the neighborhood in an expanding circle fashion so that each node can only reach one other node. This requires having…