Outils pour utilisateurs

Outils du site


gabriel_rotella:gabriel_rotella14

Configuration et test de Lorapipe avec AX.25

Après avoir installé sur les deux PC: MPTCP (dans Mneme avec Multiarch), Rust et lorapipe, j'ai continué à voir la communication entre les deux. Pour cela, j'ai dû d'abord configurer les paramètres du fichier d'initialisation lorapipe.

PPP est le moyen le plus rapide pour exécuter TCP / IP sur LoRa avec lorapipe, mais en raison de certaines limitations telles que le fait que PPP ne peut pas prendre en charge la communication ad hoc vers plusieurs périphériques comme AX.25, et c'est quelque chose que le veut, il a été décidé de travailler avec AX.25. Quoi qu'il en soit un test a été fait, voir Test PPP.

a. Paramètres radio et initialisation

La référence de commande Microchip, disponible sur http://ww1.microchip.com/downloads/en/DeviceDoc/40001811A.pdf, décrit les paramètres disponibles pour la radio. Un calculateur de débit de données LoRa est disponible sur https://www.rfwireless-world.com/calculators/LoRa-Data-Rate-Calculator.html pour vous donner une idée approximative de la vitesse des différents paramètres. En général, en sacrifiant la vitesse, vous pouvez augmenter la portée et la force du signal. L'initialisation par défaut utilise des paramètres haut de gamme assez lents:

sys get ver
mac reset
mac pause
radio get mod
radio get freq
radio get pwr
radio get sf
radio get bw
radio get cr
radio get wdt
radio set pwr 20
radio set sf sf12
radio set bw 125
radio set cr 4/5
radio set wdt 60000

Les commandes get entraîneront l'envoi des paramètres de pré-initialisation à stderr si –debug est utilisé. Un init de vitesse maximale ressemblerait à ceci:

sys get ver
mac reset
mac pause
radio get mod
radio get freq
radio get pwr
radio get sf
radio get bw
radio get cr
radio get wdt
radio set pwr 20
radio set sf sf7
radio set bw 500
radio set cr 4/5
radio set wdt 60000

Vous pouvez créer vos propres paramètres et les transmettre –initfile pour personnaliser les performances de votre liaison RF.

Remarque importante: si vous avez le Lorastik basé sur RN2483, il nécessite une bande dans le cadre de la commande de réinitialisation mac. Vous devrez éditer le fichier de configuration pour dire soit mac reset 868 ou mac reset 433 selon la bande que vous utiliserez. Voir https://github.com/jgoerzen/lorapipe/issues/2 pour plus de détails.

Dans notre cas, comme nous utilisons Lostik basé sur RN2483, j'ai dû modifier le fichier init. Qui pour nous est à: / home / gabriel / Téléchargements / lorapipe-master # et il ressemble à ceci:

sys get ver
mac reset 868
mac pause
radio get mod
radio get freq
radio get pwr
radio get sf
radio get bw
radio get cr
radio get wdt
radio set pwr 15
radio set sf sf12
radio set bw 125
radio set cr 4/5
radio set wdt 60000

Où j'ai modifié mac reset 868 et changé également le statut de la radio pwr à 15, qui est le maximum pour ce chipset.

Après avoir modifié ce fichier, je me suis positionné dans le dossier où se trouve l'exécutable lorapipe (target / release / lorapipe), et je copie ce fichier init-fast.txt dans ce cas dans le même dossier.  

b. Exécution de TCP / IP sur ax.25 avec KISS

Le protocole AX.25 a été initialement conçu pour être utilisé par les radio-amateurs. Étant donné que les systèmes radio-amateurs d'origine ont un certain nombre de propriétés en commun avec LoRa, il s'agit d'un moyen raisonnable d'exécuter une pile TCP / IP sur LoRa. Lorapipe prend cela en charge via le protocole KISS, qui est similaire à PPP pour AX.25.

PPP suppose normalement une connexion point à point fiable. AX.25 et KISS permettent à plus de 2 appareils de partager une fréquence.

Ces instructions supposent Debian ou Raspbian. D'autres systèmes d'exploitation peuvent être différents. Tout d'abord, installez les outils AX.25: apt-get install ax25-tools ax25-apps socat. Maintenant, éditez /etc/ax25/ axports et ajoutez une ligne comme:

lora NODE1 1200 70 1 radio lorapipe

Cela définit un port nommé lora, avec un faux “indicatif” NODE1, un taux de 1200 (ignoré), une longueur maximale de paquet 70 et la fenêtre 1. Gardez la longueur de paquet inférieure à –maxpacketsize. Les cadres KISS peuvent se dilater en raison d'une fuite; lorapipe les fragmentera dans ce cas, mais il est préférable de garder cette taille nettement inférieure à la taille maximale du paquet lorapipe pour éviter autant que possible la fragmentation. Sur d'autres machines, donnez-leur des badges uniques (NODE2 ou FOO1 ou ce que vous voulez).

Maintenant KISS commence:

kissattach / dev / ptmx lora 192.168.1.2
kissattach /dev/ptmx lora 192.168.1.2
AX.25 port lora bound to device ax0
Awaiting client connects on
/dev/pts/7

Cette adresse IP a été inventée; vous pouvez utiliser n'importe quelle adresse IP RFC1918 ici; assurez-vous simplement qu'ils sont différents sur chaque nœud.

Dans mon cas, utilisez les adresses 192.168.1.2 et 192.168.1.3 pour qu'elles se trouvent sur le même réseau:

root@mneme:/home/gabriel# ip a
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b4:b5:2f:78:b1:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.77/24 brd 192.168.1.255 scope global dynamic enp5s0
       valid_lft 81089sec preferred_lft 81089sec
    inet6 fe80::b6b5:2fff:fe78:b1c7/64 scope link 
       valid_lft forever preferred_lft forever
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 68:94:23:0b:ce:ef brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic noprefixroute wlo1
       valid_lft 81132sec preferred_lft 81132sec
    inet6 fe80::206f:adb1:c5a1:a358/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
4: bridge0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 3a:d4:c1:9d:a3:0d brd ff:ff:ff:ff:ff:ff
5: ax0: <BROADCAST,UP,LOWER_UP> mtu 70 qdisc pfifo_fast state UNKNOWN group default qlen 10
    link/ax25 9c:9e:88:8a:62:40:00 brd a2:a6:a8:40:40:40:00
    inet 192.168.1.2/24 brd 192.168.1.255 scope global ax0
       valid_lft forever preferred_lft forever
root@titania:/home/gabriel# ip a
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether a4:5d:36:c9:b0:7b brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.5/24 brd 192.168.1.255 scope global dynamic enp5s0
       valid_lft 81039sec preferred_lft 81039sec
    inet6 fe80::a65d:36ff:fec9:b07b/64 scope link 
       valid_lft forever preferred_lft forever
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 3c:77:e6:0a:c2:b7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.60/24 brd 192.168.1.255 scope global noprefixroute wlo1
       valid_lft forever preferred_lft forever
    inet6 fe80::867:77aa:2184:907f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
6: ax0: <BROADCAST,UP,LOWER_UP> mtu 70 qdisc pfifo_fast state UNKNOWN group default qlen 10
    link/ax25 9c:9e:88:8a:64:40:00 brd a2:a6:a8:40:40:40:00
    inet 192.168.1.3/24 brd 192.168.1.255 scope global ax0
       valid_lft forever preferred_lft forever

Il dit se connecter à /dev/pts/7, donc nous ferons exactement cela:

sudo socat /dev/pts/7,rawer EXEC:'./lorapipe --initfile=init-fast.txt –-debug /dev/ttyUSB0 kiss,pty,rawer'

Maintenant, vous devriez pouvoir envoyer des ping et parler entre eux. Les commandes standard fonctionneront à ce stade. Vous voudrez peut-être ajuster la taille du paquet dans / etc / axports à partir de 70. Pour télécharger le lien, Ctrl-C les sessions socat et exécutez killall kissattach.

Ensuite, ajoutez la route statique sur chaque PC afin que la communication des liaisons radio communique entre elles, car si ce n'est pas lors du ping de l'autre PC pour tester la liaison radio, il a utilisé le câblage car il est plus rapide:

ip route add 192.168.1.2/32 via 192.168.1.3 dev ax0
root@mneme:/home/gabriel# ip route
default via 192.168.1.254 dev enp5s0 
default via 192.168.1.254 dev wlo1 proto dhcp metric 600 
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.77 
192.168.1.0/24 dev ax0 proto kernel scope link src 192.168.1.2 
192.168.1.0/24 dev wlo1 proto kernel scope link src 192.168.1.100 metric 600 
192.168.1.3 via 192.168.1.2 dev ax0
root@titania:/home/gabriel# ip route
default via 192.168.1.254 dev enp5s0 
default via 192.168.1.254 dev wlo1 proto static metric 600 
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.5 
192.168.1.0/24 dev ax0 proto kernel scope link src 192.168.1.3 
192.168.1.0/24 dev wlo1 proto kernel scope link src 192.168.1.60 metric 600 
192.168.1.2 via 192.168.1.3 dev ax0

Ensuite, j'ai fait le test avec ping:

Comme vous pouvez le voir, le lien est plus lent qu'avec PPP.

gabriel_rotella/gabriel_rotella14.txt · Dernière modification: 2020/07/14 15:48 par Gabriel Rotella