Mise en oeuvre du protocole LORA par radio logicielle

De Wiki de Projets IMA
Révision datée du 1 juin 2017 à 15:06 par Mmcharfi (discussion | contributions) (Mise à jour du hackrf one)

Description du stage

Dans le cadre de ma quatrième année de ma formation d'ingénieur spécialités IMA, j'effectue un stage qui a pour but d'étudier la mise en place du protocole LoRa par radio logicielle. Pour réaliser cette étude j'utilise le hackRF One un émetteur-récepteur SDR (par radio logicielle). Dans un premier temps il est nécessaire d'étudier les différentes documentations liées a l'utilisation du HackRF One afin d'établir un descriptif technique facilitant son implémentation. Pour ensuite implémenter l'application qui devras gérer le protocole LoRa.


Avancement du Stage

Semaine 1

Descriptif du HackRF One

GNU Radio et SDR

GNU Radio

Installation

L'utilisation du HackRF One ce fait par la radio Logicielle GNU Radio et de librairie hackrf. Pour installer les différents packages il est préconiser d'utiliser le package manager Pybombs, d'autres alternatives sont possibles ici. Nous ne détaillerons que l’installation via Pybombs.

Installation via Pybombs

Le logiciel Pybombs étant un projet opensource nous pouvons récupérer la dernières version du logiciel d’installation sur Git.

  • 1. Récupérer le dépôt GIT:
$ git clone https://github.com/pybombs/pybombs.git
  • 2. On ce place dans le répertoire pybombs, Nous utilisons l'installateur Python pour installer PyBOMBS.
$ cd pybombs
$ sudo python setup.py install
  • 3.On initialise un chemin de prefix c'est ici que seras installés les paquets.
$ pybombs prefix init ~/prefix 
  • 4.Nous installons le paquet gnu radio.
$ pybombs install gnuradio
  • 5.On fait la meme chose pour la recette hackrf
$ pybombs install hackrf
  • 5.Une fois les paquets installés, pour pouvoir utiliser les commande associés on exécute la commande suivante.
$ source /home/<user>/prefix/setup_env.sh
  • 6.Ajouter cette même ligne a la fin du fichier /home/<user>/.bashrc.

Prise en main du Hackrf One

Test du Hackrf One

Après avoir connecter l'HackRF, on exécute la commande suivante:

$ hackrf_info

Si le HackRF One fonctionne correctement on a la réponse suivante:

hackrf_info version: git-9bbbbbf
libhackrf version: git-9bbbbbf (0.5)
Found HackRF
Index: 0
Serial number: ######################
Board ID Number: 2 (HackRF One)
Firmware Version: 2017.02.1 (API:1.02)
Part ID Number: 0x######## 0x#########

Dans mon cas j'ai tout d'abord eu l'erreur suivante:

hackrf_open() failed: HACKRF_ERROR_LIBUSB (-1000)

Cela est dû aux droits accordés aux utilisateurs concernant l'accès arbitraire des périphériques USB. Une option pour contourner ce problème est d'écrire un règles udev afin d'autoriser à un utilisateur appartenant à un groupe de pouvoir gérer un périphérique. Pour cela il faut crée un nouveau fichier dans le répertoire /etc/udev/rules.d:

$ vim /etc/udev/rules.d/52-hackrf.rules 

et ajouter les lignes suivantes:

ATTR{idVendor}=="1d50", ATTR{idProduct}=="604b", SYMLINK+="hackrf-jawbreaker-%k", MODE="660", GROUP="plugdev"
ATTR{idVendor}=="1d50", ATTR{idProduct}=="6089", SYMLINK+="hackrf-one-%k", MODE="660", GROUP="plugdev"
ATTR{idVendor}=="1fc9", ATTR{idProduct}=="000c", SYMLINK+="hackrf-dfu-%k", MODE="660", GROUP="plugdev"

Ensuite il suffit de redémarrer ou d’exécuter la commande suivante udevadm control --reload-rules en root. Ensuite rebrancher le hackRF One. Si vous n'avez toujours pas accès au hackrf one vérifier que vous appartenais bien au groupe "plugdev".

Mise à jour du hackrf one

Avant d'utiliser notre Hackrf il faut s'assurer qu'il soit bien mise a jour. Tout d'abord avec la commande hackrf_info on vérifie la version du firmware.

Gqrx SDR

Semaine 2