Difference between revisions of "Semtech LoRaMote"

From air
Jump to navigation Jump to search
 
(7 intermediate revisions by 2 users not shown)
Line 2: Line 2:
   
 
=Matériel=
 
=Matériel=
  +
  +
https://www.mouser.com/catalog/additional/Semtech_User_Guide_LoRaMote_STD-952618.pdf ([[Media:Semtech_User_Guide_LoRaMote_STD-952618.pdf|en cache]]).
  +
   
 
MCU : STM32L151CB - 128K FLASH, 10K RAM, Timers, SPI, I2C, USART, USB 2.0 full-speed device/host/OTG controller, DAC, ADC, DMA
 
MCU : STM32L151CB - 128K FLASH, 10K RAM, Timers, SPI, I2C, USART, USB 2.0 full-speed device/host/OTG controller, DAC, ADC, DMA
Line 15: Line 18:
 
=Logiciel=
 
=Logiciel=
 
* https://github.com/Lora-net/LoRaMac-node
 
* https://github.com/Lora-net/LoRaMac-node
 
* https://github.com/Lora-net/LoRaMac-node/tree/master/src/apps/LoRaMac/classA/LoRaMote
 
  +
* https://github.com/Lora-net/LoRaMac-node/tree/master/src/apps/LoRaMac/classB/LoRaMote
  +
* https://github.com/Lora-net/LoRaMac-node/tree/master/src/apps/LoRaMac/classC/LoRaMote
   
 
=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'''.
   
 
==Prérequis==
 
==Prérequis==
Line 78: Line 83:
 
===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.
  +
<pre>
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
  +
git branch
  +
# develop branch is the default branch
  +
git checkout master
  +
# LoRaMote board has been removed since v4.4.2
  +
git checkout v4.4.1
  +
</pre>
  +
 
* Créez le répertoire <code>build</code> et exécutez CMake.
 
* Créez le répertoire <code>build</code> et exécutez CMake.
  +
<pre>
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" ..
 
  +
# Boards are : LoRaMote MoteII NAMote72 SensorNode SK-iM880A NucleoL073 NucleoL152 SAML21
  +
BOARD="LoRaMote"
  +
APPLICATION="LoRaMac"
  +
SUB_PROJECT="classA"
  +
ACTIVE_REGION="LORAMAC_REGION_EU868"
  +
 
cmake -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain-arm-none-eabi.cmake" -DAPPLICATION=$APPLICATION -DSUB_PROJECT=$DSUB_PROJECT -DBOARD=$BOARD -DACTIVE_REGION=$ACTIVE_REGION ..
  +
  +
make
  +
find . -name *.hex
  +
</pre>
   
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>
+
L'environnement est prêt, vous pouvez maintenant programmer votre application dont les sources se trouvent dans <code>$LORAMAC_NODE/src/apps/LoRaMac/classA/$BOARD/</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].
   

Latest revision as of 13:37, 30 October 2019

Semtech's LoRa Mote

Matériel

https://www.mouser.com/catalog/additional/Semtech_User_Guide_LoRaMote_STD-952618.pdf (en cache).


   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.

Prérequis

  • Compilateur C (gcc)
  • build-essential
  • libusb-1.0 et libusb-1.0.0-dev pour la compilation
sudo apt-get install libusb-1.0.0-dev
  • CMake version 3.6 minimum
sudo add-apt-repository ppa:adrozdoff/cmake
sudo apt-get update
sudo apt-get install cmake
  • GNU ARM-Toolchain
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install gcc-arm-embedded
sudo apt-get install openocd

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

Installation de stlink

Source

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 --version
  • 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 ajoutez-vous à ce groupe.
sudo groupadd stlink
sudo usermod -aG stlink $USER

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). N'oubliez pas de vous déconnecter puis reconnecter pour appliquer.

  • 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

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
git branch
# develop branch is the default branch
git checkout master
# LoRaMote board has been removed since v4.4.2
git checkout v4.4.1
  • Créez le répertoire build et exécutez CMake.
mkdir build && cd build
# Boards are : LoRaMote MoteII NAMote72 SensorNode SK-iM880A NucleoL073 NucleoL152 SAML21
BOARD="LoRaMote"
APPLICATION="LoRaMac"
SUB_PROJECT="classA"
ACTIVE_REGION="LORAMAC_REGION_EU868"

cmake -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain-arm-none-eabi.cmake" -DAPPLICATION=$APPLICATION -DSUB_PROJECT=$DSUB_PROJECT -DBOARD=$BOARD -DACTIVE_REGION=$ACTIVE_REGION ..

make
find . -name *.hex

L'environnement est prêt, vous pouvez maintenant programmer votre application dont les sources se trouvent dans $LORAMAC_NODE/src/apps/LoRaMac/classA/$BOARD/.
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 ensuite le flasher à la LoRaMote via le connecteur JTAG, puis allumez la LoRaMote.
  • Vous pouvez retaper st-info --probe pour avoir davantage d'informations sur le matériel.
  • Flashez 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 lent)

(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.