Skip to content

LORA LLCC68

reichart edited this page Jul 7, 2026 · 3 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 avec sideband, 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

commandes AT pour LLCC68

Banc de test pour puce ; j'utilise la documentation EBYTE

image

qualité de transmission (RSSI) pour LLCC68

j'ai ajouté un fil de mise à zero M0 et M1 pour les modules EBYTE ; pour les modules DX SMART (LR22 ici) il n'est pas nécessaire de shunter M0 M1

image

CODE

une balise affichant la qualité de la transmission (RSSI) ; la balise compte 3 4 ... 8 ; le niveau ici -5 dBm est tres bon : les antennes sont proches

image

la qualité du signal est variable ; de façon expérimentale j'ai noté

  • antenne longue est bien meilleure en emission
  • antenne 4G ou 868 MHz : 4 G un peu meilleure en réception
  • parasite : un ordinateur ou un téléphone rayonne ( se tenir à 1 m au moins )

AT

Commandes AT pour RSSI sur E220-900T22D :

  1. RSSI du dernier paquet reçu :

AT+RSSI? +OK=-85

Renvoie le RSSI en dBm du dernier paquet.

  1. RSSI instantané du canal :

AT+RSSI +OK=-102

Pas besoin de AT+CTEST=1 sur cet E220.

  1. Réception auto avec RSSI : En mode réception normale (AT+MODE=1), chaque paquet reçu sort :

+RCV=longueur,adresse,data,RSSI,SNR +RCV=5,0,BONJOUR,-89,7

Ici RSSI = -89 dBm, SNR = 7 dB.

Configuration utile E220 :

  • AT+MODE=1 → mode réception auto
  • AT+ADDRESS=0 → adresse par défaut
  • AT+CRATE=2.4 → débit 2.4 kbps (exemple)
  • AT+CH=0 → canal 0 (868.0 MHz par défaut)

Python pour E220-900T22D :

import serial ser = serial.Serial('/dev/ttyUSB0, 9600) ser.write(b'AT+RSSI?\r\n') print(ser.readline()) # b'+OK=-92\r\n'

avec les broches M

Les puces LLCC68 sont programmées par les broches M0 et M1. La programmation des modules LORA E220 donnent plein d'informations

  1. Entrer en mode config
  2. Mets M0=HIGH, M1=HIGH
  3. Attends que AUX=HIGH = module prêt
  4. UART à 9600 8N1 fixe, peu importe la config précédente

Tu as 1s pour envoyer la première commande après AUX=HIGH, sinon il sort du mode.

  1. Format des trames hexa Type Trame Réponse Rôle Lecture C1 00 00 C1 addr_h addr_l reg0...reg5 Lit config + adresses Ecriture C0 addr_h addr_l reg0...reg5 C1 addr_h addr_l reg0...reg5 Ecrit et relit pour vérifier Version C3 C3 C3 C3=Model_H Model_L Ver_H Ver_L Feat Version firmware Reset C4 C4 C4 rien, AUX fait HIGH-LOW-HIGH Reset soft addr_h + addr_l = adresse du module sur 2 octets. 00 00 = broadcast, tous les modules répondent.

  2. Détail des 6 registres REG0 à REG5 Pour E220-900M30S et E220-400M30S

REG0 : UART + Débit air + Taille paquet Bit Valeur Exemple 7-6 Baud: 00=9600, 01=19200, 10=38400, 11=57600 00 = 9600 5-3 AirRate: 000=2.4k, 010=9.6k, 100=38.4k, 101=62.5k 010 = SF9 BW125 2-0 SubPacket: 000=200B, 001=128B, 010=64B, 011=32B 000 = 200B AirRate mapping exact : 000=SF12/125, 001=SF11/125, 010=SF10/125, 011=SF9/125, 100=SF8/125, 101=SF7/125

REG1 : Canal
Canal = (Freq_MHz - 850.125) / 1 MHz pour série 900
Canal = (Freq_MHz - 410.125) / 1 MHz pour série 400
Ex: 867.9 MHz → (867.9-850.125)/1 = 17.775 → 0x12 = 18 → 868.125 MHz.
Pour 867.900000 précis tu fais 0x11 = 17 → 867.125 MHz. Le E220 va par pas de 1 MHz.

REG2 : Puissance + divers Bit Valeur Exemple 7 TX mode: 0=transparent, 1=fixed 0 6 IO mode: 0=pushpull, 1=opendrain 0 5-0 TX power: 00=30dBm, 01=27dBm, 10=24dBm, 11=21dBm 11 = 21dBm Pour 868 MHz EU, mets 11 = 21dBm max puis txp 14 côté RNode pour être légal 14dBm.

REG3 : RSSI + WOR + LBT Bit Valeur 7 RSSI Ambient: 0=disable, 1=enable 6 RSSI Enable: 0=disable, 1=enable 5 TX method: 0=transparent, 1=fixed point 4-3 WOR cycle: 00=500ms, 01=1000ms, 10=1500ms, 11=2000ms 2-0 LBT: 000=off, 001-111=level REG4 : CR + Adresse Bit Valeur 7-6 CR: 00=4/5, 01=4/6, 10=4/7, 11=4/8 5-0 Réservé = 0 REG5 : Preamble 0x00 à 0xFF, valeur * 4 = longueur préambule. 0x0C = 12 → 48 chips.

  1. Exemple complet 867.125 MHz SF9 BW125 14dBm On veut: 9600 baud, SF9/BW125, 200B, canal 17, 21dBm, CR4/5, preamble 12

REG0 = 00 011 000 = 0x18
REG1 = 0x11 = 17
REG2 = 00 11 0011 = 0x33 mais 21dBm = 11 donc 0x03
REG3 = 0x00 pas de WOR
REG4 = 00 000000 = 0x00 CR4/5
REG5 = 0x0C = preamble 12

Trame écriture adresse 0x0000:
C0 00 00 18 11 03 00 00 0C

Tu envoies ça en hexa via RealTerm/Hterm. Le module répond pareil avec C1 au début si OK.

  1. Sortir du mode config Mets M0=LOW, M1=LOW pour mode normal transparent. AUX redevient HIGH quand prêt.

  2. Mode transparent après config En M0=0 M1=0, tout octet reçu sur UART est envoyé en LoRa. Tout paquet LoRa reçu sort sur UART. Pas de AT.

Pour envoyer à une adresse fixe : M0=0 M1=1, et tu préfixes chaque paquet UART de addr_h addr_l channel.

image

CODE

Comprendre les composants

Clone this wiki locally