# 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:
```bash

	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:
```bash
	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:

```text
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:

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

Open a monitor on each unit:

```bash
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:

```text
TX RNS: Amy says hi. iter=0
```

and received Reticulum payloads like:

```text
RX RNS: Bob says hi. iter=0 | RSSI=-42.0 SNR=9.5
```
![](../../img/20260519_115429_Tue.png)
## 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.
