microReticulumTbeam/exercises/201_microReticulum_ping_pong/README.md

2.9 KiB

Exercise 201: microReticulum LoRa ping-pong

This exercise proves that two T-Beam Supreme units can exchange Reticulum packets over a LoRa interface using Chad Attermann's microReticulum tree staged at:

/usr/local/src/microreticulum/microReticulum

It intentionally mirrors the radio settings and node-label workflow from 01_lora_ascii_pingpong, but sends Reticulum PLAIN destination data packets instead of raw ASCII LoRa frames.

Note that in Reticulum terms, PLAIN is the simplest destination type. It is addressable by a shared app/aspect name only, and payloads are not encrypted to a node identity. Exercise 202 moves to announced SINGLE destinations. Exercise 203 is intended to add a negotiated Link.

Build and upload

Use two environments so the serial output identifies each unit: In one console:


	source /home/jlpoole/rnsenv/bin/activate
	cd /usr/local/src/microreticulum/microReticulumTbeam
	pio run -d exercises/201_microReticulum_ping_pong -e amy -t upload --upload-port /dev/ttytAMY && \
	pio device monitor -d exercises/201_microReticulum_ping_pong -e amy

In another console:

	source /home/jlpoole/rnsenv/bin/activate
	cd /usr/local/src/microreticulum/microReticulumTbeam
	pio run -d exercises/201_microReticulum_ping_pong -e bob -t upload --upload-port /dev/ttytBOB && \
	pio device monitor -d exercises/201_microReticulum_ping_pong -e bob

Note: if the T-Beam unit was previously running a program that prints to the OLED, the OLED as last used will continue to appear even though this exercise has been loaded and a RESET performed. Therefore, do not let the OLED fool you as to the fact that this exercise has been loaded and is running. To avoid a zombie OLED, power off the unit and power on then run the commands above.

The platformio.ini maps each environment to its stable USB symlink:

amy -> /dev/ttytAMY
bob -> /dev/ttytBOB
cy  -> /dev/ttytCY
dan -> /dev/ttytDAN
ed  -> /dev/ttytED

For a one-off override, pass the port as a PlatformIO option, not as a positional argument:

pio run -d exercises/201_microReticulum_ping_pong -e amy -t upload --upload-port /dev/ttytAMY

Open a monitor on each unit:

pio device monitor -d exercises/201_microReticulum_ping_pong -e amy
pio device monitor -d exercises/201_microReticulum_ping_pong -e bob

Expected output includes periodic transmit lines like:

TX RNS: Amy says hi. iter=0

and received Reticulum payloads like:

RX RNS: Bob says hi. iter=0 | RSSI=-42.0 SNR=9.5

Notes

  • The exercise uses the same T-Beam Supreme LoRa pins as exercise 01.
  • Radio settings are 915.0 MHz, 125 kHz, SF7, CR5, sync word 0x12, and 14 dBm.
  • The destination is PLAIN, so both nodes can send and receive without an announce/key exchange. This keeps the proof focused on Reticulum packet serialization, transport dispatch, and the LoRa interface path.