Il s'agit d'une version personnalisée du firmware RNODE, conçu pour une utilisation à l'aide du Moteino Mega par LowPowerLab, avec le module RFM95 LORA.
Ce travail est un dérivé du RNODE développé et vendu par Mark Qvist. RNODE est copyright par Mark Qvist.
Je n'ai pas l'intention de vendre ou de distribuer des RNOdes personnalisés. L'hypothèse ici est que vous savez pourquoi vous êtes ici, et vous savez pourquoi et comment acheter et construire le matériel requis mentionné dans ce dérivé. Mark Qvist et Steve Miller ne sont pas responsables de l'opération indésirable, y compris, mais sans s'y limiter, les choses se brisent, prennent le feu ou l'effondrement du continuum de l'espace-temps. Vous avez été averti.
L'écriture de ce firmware nécessite une étape supplémentaire en utilisant RNODECONFIGUTIL, car clignoter le firmware au Moteino Mega n'écrira pas les données EEPROM nécessaires à l'appareil.
Il est fortement suggéré d'utiliser l'outil de configuration RNODE personnalisé pour le modèle RNODE personnalisé E4.
Il s'agit du firmware de RNODE, un périphérique de communication basé sur LORA très flexible. RNODE peut fonctionner comme un:
RNODE est contrôlé par un puissant MCU ATMEGA1284P et est entièrement compatible avec Arduino. Vous pouvez utiliser ce firmware, ou il peut être programmé comme vous le souhaitez, soit à partir de l'Arduino IDE, soit en utilisant l'un des outils disponibles pour le développement AVR. Ce firmware peut également être édité et compilé directement à partir de l'IDE Arduino.
Pour ajouter RNODE à votre environnement Arduino, veuillez consulter cet article.
Pour configurer un RNODE avec ce firmware, veuillez consulter l'utilitaire de configuration RNODE.
Le firmware RNODE peut être considéré comme stable à ce stade. Si vous trouvez un bogue ou découvrez un comportement involontaire, veuillez le signaler comme un problème ici, afin que je puisse le corriger!
RNODE peut fonctionner en deux modes, contrôlé par l'hôte (par défaut) et TNC:
Lorsque RNODE est en mode contrôlé par l'hôte, il restera en veille lorsqu'il est mis en place, jusqu'à ce que l'hôte spécifie la fréquence, la bande passante, la puissance de transmission et d'autres paramètres requis. Ce mode peut être activé en utilisant l'option -N de cet utilitaire. En mode contrôlé par l'hôte, le mode promiscuité peut être activé pour renifler toutes les cadres LORA.
Lorsque RNODE est en mode TNC, il se configurera sur Prowup et activera immédiatement la radio. Ce mode peut être activé en utilisant l'option -T de cet utilitaire (l'utilitaire vous guidera à travers les paramètres si vous ne les spécifiez pas directement).
Vous pouvez communiquer avec RNODE via le connecteur USB embarqué, soit en utilisant les broches en série sur la carte (étiqueté RX0 et TX0). RNODE utilise une puce USB FTDI standard, il fonctionne donc hors de la boîte sans pilotes supplémentaires dans la plupart des systèmes d'exploitation.
Toutes les communications vers et depuis le tableau utilisent un cadrage KISS avec un ensemble de commandes personnalisé. RNODE n'utilise pas non plus les ports HDLC dans l'octet de commande, et en tant que tel utilise les 8 bits complets de l'octet de commande sont disponibles pour la commande réelle. Veuillez consulter le tableau ci-dessous pour les commandes prises en charge.
| Commande | Octet | Description |
|---|---|---|
| Cadre de données | 0x00 | Un paquet de données vers ou depuis l'appareil |
| Fréquence | 0x01 | Définit ou interroge la fréquence |
| Bande passante | 0x02 | Définit ou interroge la bande passante |
| Power TX | 0x03 | Définit ou interroge la puissance TX |
| Facteur de propagation | 0x04 | Définit ou interroge le facteur d'étalement |
| Taux de codage | 0x05 | Définit ou interroge le taux de codage |
| État radio | 0x06 | SETS OU REQUES |
| Verrouillage radio | 0x07 | Définit ou interroge le verrou radio |
| Détection de l'appareil | 0x08 | Commande de sonde pour la détection des périphériques |
| Promiscuité | 0x0e | Ensembles ou requêtes en mode promiscuité |
| Statistiques RX | 0x21 | Les requêtes ont reçu des octets |
| Statistiques TX | 0x22 | Requêtes transmises octets |
| Dernier RSSI | 0x23 | Indique RSSI du dernier paquet reçu |
| Clignoter | 0x30 | Clignote les LED |
| Aléatoire | 0x40 | Requêtes pour un nombre aléatoire |
| Version du firmware | 0x50 | Requêtes pour la version du micrologiciel installé |
| ROM LIRE | 0x51 | Lire l'octet Eeprom |
| ROM Écrivez | 0x52 | Écrire un octet d'éprom |
| Mode TNC | 0x53 | Active le mode TNC |
| Mode normal | 0x54 | Permet le mode contrôlé par l'hôte |
| ROM Effacer | 0x59 | Efface complètement eeprom |
| Erreur | 0x90 | Indique une erreur |
Jetez un œil dans le dossier "Libraries" pour vous permettre d'utiliser facilement RNODE dans votre propre logiciel.
Voici un exemple Python:
from RNode import RNodeInterface
def gotPacket ( data , rnode ):
print "Received a packet: " + data
rnode = RNodeInterface (
callback = gotPacket ,
name = "My RNode" ,
port = "/dev/ttyUSB0" ,
frequency = 868000000 ,
bandwidth = 125000 ,
txpower = 2 ,
sf = 7 ,
cr = 5 ,
loglevel = RNodeInterface . LOG_DEBUG )
rnode . send ( "Hello World!" )RNODE peut être placé en mode promiscuité LORA, qui déversera les trames LORA brutes à l'hôte. Les cadres bruts LORA peuvent également être envoyés dans ce mode et ont la taille standard de la charge utile LORA de 255 octets. Pour activer le mode promiscuité, envoyez la commande "promiscue" à la carte ou utilisez l'une des bibliothèques de programmation. Vous pouvez également utiliser l'exemple de programme Loramon pour un lora paquet LORA Sniffer.