Skip to content

LORA Sideband

reichart edited this page May 30, 2026 · 25 revisions

8 dépôts github : exemples-de-montages festisol CROUS-micro-python piano visio anumby jouets developpement-voiture raspberry-pico Blog ateliers numériques Repair Café d'Orsay

monter une radio LORA, avec programmation, MESHSTATIC ou RETICULUM demandent des niveaux croissants de calcul ; j'ai testé des montages pour des applications frugales pour faire des répéteurs ou des postes autonomes à faible consommation énergétique

installation avec Raspberry zéro

image

interface PC ; En final en ajoutant du Bluetooth vers le heltec et du wifi pour se connecter, ça fonctionne , j’ai mis aussi un répondeur… qui répond : cpu du Rpi à 5% …

image

pour arrêter la teche rnsd

systemctl --user stop rnsd

installation avec stick HELTEC

image

installation avec esp32s3

SX126xInterface(cs=8, irq=14, rst=12, busy=13)

SIDEBAND / nomadnet

https://github.com/markqvist/nomadnet une version en ligne SIDEBAND

image

mode d'emploi pour connecter SIDEBAND entre PC et smartphone

image

RNODE avec Pi

image

Config

e90557b0da9b8b0f83e9428694d44c65.png

Installation

yay -S sideband

Branche les modules Heltec V2 en USB -> /dev/ttyUSB0

On doit faire parti du group uucp (sudo usermod -aG uucp $USER newgrp uucp)

rnodeconf /dev/ttyUSB0 --autoinstall --baud-flash 115200

Verif

rnodeconf /dev/ttyUSB0 --info

Dans ~/.reticulum/config

[Interfaces]

RNode LoRa
  type = RNodeInterface
  interface_enabled = True
  port = /dev/ttyUSB0
  frequency = 868000000
  bandwidth = 125000
  txpower = 7
  spreadingfactor = 7
  codingrate = 5

Install de rnsd : yay -S python-rns

lance le demon : rnsd -v on  a des erreurs d'accès au module mais ca se stabilise ensuite

Run

sideband

conversion il faut échanger la clé Identity Hash —  dans : ⚙ Paramètres → About / À propos Tu devrais voir un hash de 20 caractères hexadécimaux, quelque chose comme a1b2c3d4e5f6.... C'est l'adresse que tu donnes au PC 2 pour l'ajouter en contact. Tu peux aussi la voir en ligne de commande : rnid

puis on ajoute le contact

PB

  • Lien avec le Heltec pas super stable : bug dans RNodeInterface.py , ajout d'un sleep(1.0) pour éviter l'écriture avec l'ouverture du port cf pulling request de JP https://github.com/samuk/Reticulum/pull/1
  • en attendant on patch le code ligne 431 après thread.start() , on ajoute sleep(1.0)

Augmenter la portée

dBm mW
0 dBm 1 mW
3 dBm 2 mW
7 dBm ~5 mW
10 dBm 10 mW
14 dBm 25 mW
17dBm 50 mW
  • txpower = 17 (max en France)
  • spreadingfactor = 9 (on pourrait aller ->11) au détriment du débit
  • frequency = 868200000 (pour eviter les interférences)
SF7 -123 dBm
SF8 -126 dBm
SF9 -129 dBm
SF10 -132 dBm
SF11 -134.5 dBm
SF12 -137 dBm

Répondeur

Sur le PC HP

  • rnsd -vv
  • Install yay -S python-lxmf et  Run : python lxmf_autoresponder.py (dans partage sur le PC EndaevourOs)

Sur le PC HP

  • rnsd -vv
  • Sideband

Attentes de portée selon Claude IA

Antenne — le Heltec V2 a une petite antenne stub par défaut. Une antenne quart d'onde externe ou une antenne directionnelle peut faire gagner 5-10 dB facilement, ce qui double ou triple la portée effective.

Attentes réalistes en urbain dense :

  • En intérieur à intérieur : 100-300m
  • En extérieur avec ligne de vue dégagée : 1-2 km
  • Avec antennes surélevées (fenêtre haute, toit) : jusqu'à 3-4 km

Mesures

  • Repondeur sur le Bureau : txpower = 7 , sf =7 -> bas de chez Arnaud
  • Repondeur sur le volet du balcon: txpower = 14 , sf =7 -> Abri Bus N118 , BatiColor , pas de réponse à la Troche ou sur le Plateau
  • Repondeur sur le volet du balcon : txpower = 17, sf =9 -> contre la fenetre du salon chez Arnaud

Adresses

  • Répondeur automatique :  d4858077db7446c990b36e8ad78ebb43
  • JP : db2a126920752429bfc27b05ecf13f77
  • Arnaud : 2d6d525231d363738360a95a3ef0adf4

.reticulum/config (Lora)

[[RNode.LoRa]]
            type = RNodeInterface
            interface_enabled = True
            port = /dev/ttyUSB0
            speed = 115200
            frequency = 868200000
            bandwidth = 125000
            txpower = 17
            spreadingfactor = 9
            codingrate = 5

Stockage des messages

Ajouter dans .reticulum/config

[lxmf]
 propagation_node = db2a126920752429bfc27b05ecf13f77
 try_propagation_on_fail = yes

Raspberry

Config

  • Raspberry Pi3 model A+ d'Arnaud : 512MB RAM et 15Gb carte flash , 1USB + le Wifi + 1HDMI non utilisé
  • Il faut du 64bits
63c4a0c8e5604869f28d394ba5dde4d4.png

Installation sur Rpi 3 model a+

  • Flash l'image Debian 13 64b (Raspberry PI Imager) , OS lite (64bits) no desktop avec Wifi (configuré) et ssh ->

    • hostname reticulum-jp , user jp/ciel2000
    • hostname reticulum-ar , user ar/aaa
  • Démarre et connexion via ssh

  • Test raspi-config en local pour changer le wifi : semble OK

  • Mise à jour : apt update / apt full-upgrade / apt autoremove

  • RAM Disk 

    Créer un tmpfs de 60 Mo 

    • Édite /etc/fstab : sudo nano /etc/fstab
      • Ajoute : tmpfs /mnt/ramdisk tmpfs defaults,noatime,size=60m 0 0
    • sudo mkdir /mnt/ramdisk
    • sudo mount -a
    • Vérifie : df -h | grep ram
  • apt install pip

  • En mode user

    • pip install rns
    • Modif de RNodeInterface.py
    • pip install lxmd
  • rns -vv (démon reticulum à lancer via systemd)

  • écriture du script de répondeur via l'IA

  • Mise en route de la messagerie lxmd

  • Config reticulim avec mode transport et accès client via le Wifi

[reticulum]
        enable_transport = Yes
        share_instance = Yes
        instance_name = default



[logging]
    loglevel = 4

[interfaces]
    [[RNode.LoRa]]
            type = RNodeInterface
            interface_enabled = True
            port = /dev/ttyUSB0
            speed = 115200
            frequency = 868200000
            bandwidth = 125000
            txpower = 17
            spreadingfactor = 9
            codingrate = 5

[[LocalTCP]]
            type = TCPServerInterface
            enabled = yes
            listen_ip = 0.0.0.0
            listen_port = 4242

[lxmf]
            propagation_node = db2a126920752429bfc27b05ecf13f77
            try_propagation_on fail = yes

Clone this wiki locally