-
Notifications
You must be signed in to change notification settings - Fork 0
LORA LLCC68
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
Banc de test pour puce ; j'utilise la documentation EBYTE
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
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
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 )
Commandes AT pour RSSI sur E220-900T22D :
- RSSI du dernier paquet reçu :
AT+RSSI? +OK=-85
Renvoie le RSSI en dBm du dernier paquet.
- RSSI instantané du canal :
AT+RSSI +OK=-102
Pas besoin de AT+CTEST=1 sur cet E220.
- 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'
Les puces LLCC68 sont programmées par les broches M0 et M1. La programmation des modules LORA E220 donnent plein d'informations
- Entrer en mode config
- Mets M0=HIGH, M1=HIGH
- Attends que AUX=HIGH = module prêt
- 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.
-
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.
-
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.
- 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.
-
Sortir du mode config Mets M0=LOW, M1=LOW pour mode normal transparent. AUX redevient HIGH quand prêt.
-
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.
L'univers Arduino est vaste ; découvrez des montages en quelques clics pour faire des jouets avec des arduino, les nouveaux modules raspberry pico ou avec du wifi les petits esp CROUS-micro-python

La progression par 5 niveaux des exemples-de-montages est importante pour aborder des projets de plus en plus ambitieux. Compléter votre boite à outils avec des Capteurs, des Afficheurs en utilisant des Instruments de mesure. Regarder les Videos et montez vos propres projets pour refaire les jeux du festival festisol et commencer à utiliser les nouveaux raspberry-pico. Voulez-vous nous aider à développer d'autres applications ? Commencez un peu de code CROUS-micro-python, participez au developpement-voiture ou pour construire des jouets Anumby
