Difference between revisions of "Semtech LoRaMote"
Herve.Becher (talk | contribs) |
Herve.Becher (talk | contribs) |
||
Line 12: | Line 12: | ||
EXTENSION HEADER : Yes, 20 pins |
EXTENSION HEADER : Yes, 20 pins |
||
REMARK : The MCU and Radio are on an IMST iM880A module |
REMARK : The MCU and Radio are on an IMST iM880A module |
||
− | |||
=Logiciel= |
=Logiciel= |
||
Line 20: | Line 19: | ||
=Installation, Build et Flashage= |
=Installation, Build et Flashage= |
||
Cette section décrit le processus d'installation, de compilation et de flashage de la LoRaMote via un ST-Link v2 sur Ubuntu 16.04 LTS. |
Cette section décrit le processus d'installation, de compilation et de flashage de la LoRaMote via un ST-Link v2 sur Ubuntu 16.04 LTS. |
||
+ | |||
==Installation de [https://github.com/texane/stlink stlink]== |
==Installation de [https://github.com/texane/stlink stlink]== |
||
Line 38: | Line 38: | ||
===Etapes=== |
===Etapes=== |
||
− | Clonez le projet stlink de texane. |
+ | * Clonez le projet stlink de texane. |
git clone https://github.com/texane/stlink.git |
git clone https://github.com/texane/stlink.git |
||
− | Déplacez-vous dans le répertoire du projet et lancez la compilation. |
+ | * Déplacez-vous dans le répertoire du projet et lancez la compilation. |
cd stlink; make release |
cd stlink; make release |
||
− | Rendez-vous ensuite dans le répertoire <code>build</code> et installez stlink au niveau système. |
+ | * Rendez-vous ensuite dans le répertoire <code>build</code> et installez stlink au niveau système. |
cd build/Release; sudo make install |
cd build/Release; sudo make install |
||
− | Vous pouvez vérifier l'installation en exécutant simplement <code>st-info</code>. |
+ | * Vous pouvez vérifier l'installation en exécutant simplement <code>st-info</code>. |
st-info |
st-info |
||
− | Si une erreur du type <code>cannot open shared object file</code> survient, rechargez le cache des bibliothèques dynamiques. |
+ | * Si une erreur du type <code>cannot open shared object file</code> survient, rechargez le cache des bibliothèques dynamiques. |
sudo ldconfig |
sudo ldconfig |
||
− | Installez ensuite les règles <code>udev</code> en copiant le contenu du répertoire <code>$ |
+ | * Installez ensuite les règles <code>udev</code> en copiant le contenu du répertoire <code>$STLINK/etc/udev/rules.d</code> dans <code>/etc/udev/rules.d</code>. |
cd ../..; sudo cp etc/udev/rules.d/* /etc/udev/rules.d/ |
cd ../..; sudo cp etc/udev/rules.d/* /etc/udev/rules.d/ |
||
− | Rechargez les règles soit via l'une des commandes suivantes, soit en redémarrant simplement votre machine. |
+ | * Rechargez les règles soit via '''l'une''' des commandes suivantes, soit en redémarrant simplement votre machine. |
sudo udevadm control --reload-rules |
sudo udevadm control --reload-rules |
||
sudo udevadm trigger |
sudo udevadm trigger |
||
− | Créez ensuite le groupe '''<code>stlink</code>''', puis donnez-vous ce groupe. Celui-ci est nécessaire pour accéder sans privilèges root au ST-Link v2 via les règles installées précédemment (à vérifier). |
+ | * Créez ensuite le groupe '''<code>stlink</code>''', puis donnez-vous ce groupe. Celui-ci est nécessaire pour accéder sans privilèges root au ST-Link v2 via les règles installées précédemment (à vérifier). |
sudo groupadd stlink |
sudo groupadd stlink |
||
sudo usermod -aG stlink $USER |
sudo usermod -aG stlink $USER |
||
+ | |||
Vous pouvez maintenant connecter le flasher et vérifier qu'il est bien visible. |
Vous pouvez maintenant connecter le flasher et vérifier qu'il est bien visible. |
||
st-info --probe |
st-info --probe |
||
Des informations de base sur le flasher devraient être affichées. Si celui-ci n'est pas détecté, assurez-vous que les règles udev sont bien installées et activées et, dans le cas d'une machine virtuelle, que cette dernière ait accès au périphérique. |
Des informations de base sur le flasher devraient être affichées. Si celui-ci n'est pas détecté, assurez-vous que les règles udev sont bien installées et activées et, dans le cas d'une machine virtuelle, que cette dernière ait accès au périphérique. |
||
+ | |||
==Compilation de [https://github.com/Lora-net/LoRaMac-node LoRaMac]== |
==Compilation de [https://github.com/Lora-net/LoRaMac-node LoRaMac]== |
||
Line 75: | Line 77: | ||
===Etapes=== |
===Etapes=== |
||
− | Clonez le projet LoRaMac-Node et déplacez-vous dans le répertoire. |
+ | * Clonez le projet LoRaMac-Node et déplacez-vous dans le répertoire. |
git clone https://github.com/Lora-net/LoRaMac-node.git && cd LoRaMac-node |
git clone https://github.com/Lora-net/LoRaMac-node.git && cd LoRaMac-node |
||
− | Créez le répertoire <code>build</code> et exécutez CMake. |
+ | * Créez le répertoire <code>build</code> et exécutez CMake. |
mkdir build && cd build |
mkdir build && cd build |
||
cmake -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain-arm-none-eabi.cmake" -DAPPLICATION="LoRaMac" -DCLASS="classA" -DACTIVEREGION="LORAMAC_REGION_EU868" .. |
cmake -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain-arm-none-eabi.cmake" -DAPPLICATION="LoRaMac" -DCLASS="classA" -DACTIVEREGION="LORAMAC_REGION_EU868" .. |
||
− | L'environnement est prêt, vous pouvez maintenant programmer votre application dont les sources se trouvent dans <code>$ |
+ | L'environnement est prêt, vous pouvez maintenant programmer votre application dont les sources se trouvent dans <code>$LORAMAC_NODE/src/apps/LoRaMac/classA/LoRaMote/</code>.<br> |
Plus d'informations sur le support d'IDE (notamment [https://www.kdevelop.org/ KDevelop]) et le debugging sont disponibles sur le [https://github.com/Lora-net/LoRaMac-node/blob/master/Doc/development-environment.md tutoriel source]. |
Plus d'informations sur le support d'IDE (notamment [https://www.kdevelop.org/ KDevelop]) et le debugging sont disponibles sur le [https://github.com/Lora-net/LoRaMac-node/blob/master/Doc/development-environment.md tutoriel source]. |
||
Une fois votre application prête à déployer, lancer simplement <code>make</code> depuis le répertoire <code>build</code>. Les fichiers <code>LoRaMac-classA.bin</code> et <code>LoRaMac-classA.hex</code> seront générés dans le répertoire <code>$BUILD/src/apps/LoRaMac/</code>. |
Une fois votre application prête à déployer, lancer simplement <code>make</code> depuis le répertoire <code>build</code>. Les fichiers <code>LoRaMac-classA.bin</code> et <code>LoRaMac-classA.hex</code> seront générés dans le répertoire <code>$BUILD/src/apps/LoRaMac/</code>. |
||
+ | |||
==Flashage de l'exécutable== |
==Flashage de l'exécutable== |
||
+ | |||
+ | * Assurez-vous tout d'abord que le flasher est opérationnel, pour cela tapez : |
||
+ | st-info --probe |
||
+ | * Connectez le flasher à la LoRaMote via le connecteur JTAG, puis allumez la LoRaMote. |
||
+ | * Flashez ensuite l'application en utilisant '''une''' des commandes suivantes : |
||
+ | # utiliser le fichier BIN |
||
+ | st-flash write path/to/bin/file 0x8000000 |
||
+ | # utiliser le fichier HEX |
||
+ | st-flash --format ihex write path/to/hex/file |
||
+ | * Patientez (le transfert est assez long...) |
||
+ | (Des erreurs de vérification du binaire peuvent survenir, mais celles-ci peuvent être ignorées) |
||
+ | * Une fois le transfert terminé, éteignez puis rallumez la carte - les trois LEDs devraient s'allumer brièvement témoignant du bon fonctionnement de la carte. |
Revision as of 01:02, 23 March 2018
Matériel
MCU : STM32L151CB - 128K FLASH, 10K RAM, Timers, SPI, I2C, USART, USB 2.0 full-speed device/host/OTG controller, DAC, ADC, DMA RADIO : SX1272 ANTENNA : Printed circuit antenna BUTTONS : No LEDS : 3 SENSORS : Proximity, Magnetic, 3 axis Accelerometer, Pressure, Temperature GPS : Yes, UP501 module EXTENSION HEADER : Yes, 20 pins REMARK : The MCU and Radio are on an IMST iM880A module
Logiciel
Installation, Build et Flashage
Cette section décrit le processus d'installation, de compilation et de flashage de la LoRaMote via un ST-Link v2 sur Ubuntu 16.04 LTS.
Installation de stlink
Source
Prérequis
- CMake version 3.6 minimum
- Compilateur C (gcc)
- build-essential
- libusb-1.0 et libusb-1.0.0-dev pour la compilation
Machine virtuelle sur Windows
Si vous êtes sous Windows et passez par une machine virtuelle, vous devrez télécharger et installer les pilotes du flasher depuis le site de ST.
http://www.st.com/en/development-tools/stsw-link009.html
Etapes
- Clonez le projet stlink de texane.
git clone https://github.com/texane/stlink.git
- Déplacez-vous dans le répertoire du projet et lancez la compilation.
cd stlink; make release
- Rendez-vous ensuite dans le répertoire
build
et installez stlink au niveau système.
cd build/Release; sudo make install
- Vous pouvez vérifier l'installation en exécutant simplement
st-info
.
st-info
- Si une erreur du type
cannot open shared object file
survient, rechargez le cache des bibliothèques dynamiques.
sudo ldconfig
- Installez ensuite les règles
udev
en copiant le contenu du répertoire$STLINK/etc/udev/rules.d
dans/etc/udev/rules.d
.
cd ../..; sudo cp etc/udev/rules.d/* /etc/udev/rules.d/
- Rechargez les règles soit via l'une des commandes suivantes, soit en redémarrant simplement votre machine.
sudo udevadm control --reload-rules sudo udevadm trigger
- Créez ensuite le groupe
stlink
, puis donnez-vous ce groupe. Celui-ci est nécessaire pour accéder sans privilèges root au ST-Link v2 via les règles installées précédemment (à vérifier).
sudo groupadd stlink sudo usermod -aG stlink $USER
Vous pouvez maintenant connecter le flasher et vérifier qu'il est bien visible.
st-info --probe
Des informations de base sur le flasher devraient être affichées. Si celui-ci n'est pas détecté, assurez-vous que les règles udev sont bien installées et activées et, dans le cas d'une machine virtuelle, que cette dernière ait accès au périphérique.
Compilation de LoRaMac
Source
- https://github.com/Lora-net/LoRaMac-node
- https://github.com/Lora-net/LoRaMac-node/blob/master/Doc/development-environment.md
Prérequis
- GNU ARM-Toolchain
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa sudo apt-get update sudo apt-get install gcc-arm-embedded
- Pour le debug : OpenOCD
Etapes
- Clonez le projet LoRaMac-Node et déplacez-vous dans le répertoire.
git clone https://github.com/Lora-net/LoRaMac-node.git && cd LoRaMac-node
- Créez le répertoire
build
et exécutez CMake.
mkdir build && cd build cmake -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain-arm-none-eabi.cmake" -DAPPLICATION="LoRaMac" -DCLASS="classA" -DACTIVEREGION="LORAMAC_REGION_EU868" ..
L'environnement est prêt, vous pouvez maintenant programmer votre application dont les sources se trouvent dans $LORAMAC_NODE/src/apps/LoRaMac/classA/LoRaMote/
.
Plus d'informations sur le support d'IDE (notamment KDevelop) et le debugging sont disponibles sur le tutoriel source.
Une fois votre application prête à déployer, lancer simplement make
depuis le répertoire build
. Les fichiers LoRaMac-classA.bin
et LoRaMac-classA.hex
seront générés dans le répertoire $BUILD/src/apps/LoRaMac/
.
Flashage de l'exécutable
- Assurez-vous tout d'abord que le flasher est opérationnel, pour cela tapez :
st-info --probe
- Connectez le flasher à la LoRaMote via le connecteur JTAG, puis allumez la LoRaMote.
- Flashez ensuite l'application en utilisant une des commandes suivantes :
# utiliser le fichier BIN st-flash write path/to/bin/file 0x8000000 # utiliser le fichier HEX st-flash --format ihex write path/to/hex/file
- Patientez (le transfert est assez long...)
(Des erreurs de vérification du binaire peuvent survenir, mais celles-ci peuvent être ignorées)
- Une fois le transfert terminé, éteignez puis rallumez la carte - les trois LEDs devraient s'allumer brièvement témoignant du bon fonctionnement de la carte.