sexta-feira, 23 de setembro de 2022

LSM110A - LoRaWAN - Compilando APP (comandos AT) - bare metal

 

Objetivo

Este documento é um guia básico (resumo) sobre instalação do SDK da WISOL para a módulo LoRa/SigFox LSM110A LoRa/Sigfox da Seongji e geração da APP como comandos AT, bem como os primeiros acessos à rede LoRaWAN e envio de pacotes com os comandos AT. Também é mostrado como configurar para trabalhar em uma faixa de frequências e região.

LSM110A Starter KIT
Módulo

O LSM110A é um módulo de última geração que integra o STMicroelectronics STM32WL. É muito menos consumo atual para o dispositivo IoT para estender a vida útil da bateria. E, também suporta ambas as tecnologias – Sigfox e LoRa – com o próprio módulo LSM110A.

Você pode trocar Sigfox ou LoRa com ele para que você também possa reduzir o custo. É altamente otimizado para solução de IoT (Alto Consumo de Energia, Baixo Custo)

A LSM110A completou a certificação verificada Sigfox Rc2, certificação Rc4 e certificação LoRaWAN versão 1.0.4 classe A, C.

Conteúdo do SDK



Baixando o SDK

No caso, foi realizado via Prompt de Comando, com o GIT já instalado no Windows, mas você pode baixar em ZIP do repositório e descompactar.


C:\>git clone https://github.com/Support-SJI/LSM110A.git




Compilação do Firmware 

Para gerar o firmware para o LSM1x0A, será necessário que você instale o STM32CubeIDE em sua máquina.


SDK Build

Ferramentas de desenvolvimento de software ST STM32CubeIDE
Após executar o STM32CubeIDE 

Escolhe seu WorkSpace preferido


Uma tela com Documentação do STM32Cube aparecerá, mas você pode fechá-la.


  • Import o SDK no menu File

  • Selecione "Projects from Folders or Archive" e então Click em Next

  •     Selecione o Folder do Projeto
C:\LSM1x0A_SDK_LoRaWAN104\Projects\NUCLEO-WL55JC\Applications\LoRaWAN_SigFox\LSM1x0A\STM32CubeIDE


  •     Click em Finish


  •     Após o projeto ser importado, ele é criado e mostrado no Project Explorer (Tab) no canto superior esquerdo



Compilando o SDK

Altere para Release o projeto


Execute Build All no menu Project




    Após fazer o Build All,um HEX é criado no folder Released



BootLoader (Importante)

A partir da versão de atualização de 2 de junho de 2022, o IAP (Bootloader) foi aplicado.

Em primeiro lugar, você precisa baixar IAP (Bootloader). 

Consulte o arquivo ReadMe.md de Utilities/1_SJITools/1_FW_Merge_Tool para gerar e baixar FW, incluindo IAP para FW gerado pelo Building do SDK.



Copie o arquivo LSM1x0A_SDK_LoRaWAN_Sigfox.hex gerado pelo STM32 CUBE IDE na pasta

C:\LSM1x0A_SDK_LoRaWAN104\Projects\NUCLEO-WL55JC\Applications\LoRaWAN_SigFox\LSM1x0A\STM32CubeIDE\Release


para a pasta

C:\LSM1x0A_SDK_LoRaWAN104\Utilities\1_SJITools\1_FW_Merge_Tool

    
    Estes são os arquivos prontos para o Merge


    Execute o seguinte comando BAT

FW_Merge_SDK.bat


    Um novo HEX será gerado

    LSM1x0A_V100_SDK_FW.hex


   
    Fazendo o UPLOAD do Firmware HEX Gerado

    Será necessário que você instale em sua máquina o STM32 CUBE Programmer
    
    Conectando S-TLINK V2 no LSM110A Starter KIT, via SWD
    

    Conecte o ST-LINK V2 na USB e execute o STM32 CUBE Programmer



    Enquanto segurando o botão Reset do LSM110A Starter KIT, pressione Connect no STM32 CUBE Programmer e libere o botão de Reset.
    

    
    Carregue agora o arquivo BOOTLOADER clicando em Open File

   C:\LSM1x0A_SDK_LoRaWAN104\Utilities\1_SJITools\1_FW_Merge_Tool\LSM_IAP_V100_220516.hex

Address: 0x08000000

Depois carregue

LSM1x0A_V100_SDK_FW.hex

    
    Click então em Start Programming



    Testando o Bootloader com o APP com comandos AT

    Conecte o LSM110A Starter KIT na USB do computador e abra um emulador de terminal na COMM que foi criada (9600,N,8,1) e veja o que deve aparecer.
    

     Aplicativo para testes com comandos AT para LoRaWAN

Fazendo o primeiro Join e publicando um HELLO! 

  • Primeiro selecione LoRaWAN (default após RESET)
  • Pegue o DevEUI de seu módulo LSM1x0A


  • Entre na TTN e cadastre o DevEUI e obtenha  AppKey (OTAA)



  • Configure agora o módulo LSM1x0A
Region Band (AU915)
Get EUI
Set CLASS A
Adaptive DataRate (ON)
App Key
App EUI
NetWork Key
RF Configure
DR2 (DATARATE) 

         If using the over-the-air activation procedure, the end-device SHALL broadcast the JoinReq message alternatively on a random 125 kHz channel amongst the 64 channels defined usingDR2 and a random 500 kHz channel amongst the 8 channels defined using DR6. The end-device SHOULD change channel for every transmission 


TESTES



JOIN EM OTAA
JOINED
SEND BINARY DATA

DOWNLINK


Testes em um segundo KIT

AT+BAND=?

1:AU915

OK

AT+NWKID=?

0

OK

AT+DEUI=?

00:80:E1:15:05:1F:XX:XX

OK

AT+CLASS=A

OK

AT+VL=3

OK

AT+ADR=1

OK

AT+APPEUI=?

00:00:00:00:00:00:00:00

OK

AT+SEND=1:1:BBBBBBBBBB

3786s169:TX on freq 918200000 Hz at DR 2

AT_NO_NETWORK_JOINED

3786s688:MAC txDone
3791s525:RX_1 on freq 927500000 Hz at DR 10
3791s804:MAC rxDone

+EVT:JOINED

>> MCRootKey:   7A:68:49:FB:63:29:BC:63:14:71:1A:7F:59:1D:4B:FF
>> MCKEKey:     B6:54:0A:C5:86:0B:84:E8:9A:7B:20:D1:60:B2:A9:13
>> NwkSKey:     29:C2:BE:0C:6B:35:A8:1B:4F:BF:26:CF:B0:4B:7E:3B

>> AppSKey:     DE:C5:93:EF:60:6F:EE:0C:E2:B4:A0:40:C5:20:5C:02

+EVT:RX_1, PORT 0, DR 10, RSSI -38, SNR 9

Mais testes, com credenciais...

ATZ
AT+BAND=1
AT+CLASS=A
AT+VL=3
AT+ADR=1
AT+APPEUI=00:00:00:00:00:00:00:00
AT+APPKEY=09:ED:14:80:B2:AF:1D:2C:44:B4:29:A6:A6:DF:87:7B
AT+NWKKEY=09:ED:14:80:B2:AF:1D:2C:44:B4:29:A6:A6:DF:87:7B
AT+JOIN=1
AT+SEND=1:1:BBBBBBBBBB

Gateway LoRaWAN


Alterando BAND MASK
  • Em RegionAU915.c, a máscara utilizada para compatibilizar com configuração utilizada no Gateway LoRaWAN



A região LoRaWAN® padrão é EU868, você pode modificá-la, definindo a definição de macro ACTIVE_REGIONemLoRaWAN/App/lora_app.h
// LoRaWAN/App/lora_app.h
/* LoraWAN application configuration (Mw is configured by lorawan_conf.h) */
/* Available: LORAMAC_REGION_AS923, LORAMAC_REGION_AU915, LORAMAC_REGION_EU868, LORAMAC_REGION_KR920, LORAMAC_REGION_IN865, LORAMAC_REGION_US915, LORAMAC_REGION_RU864 */
#define ACTIVE_REGION LORAMAC_REGION_AU915 //<=====================
//lorawan_conf.h#define LORAMAC_SPECIFICATION_VERSION 0x01000300 //<=====1.0.3 #define REGION_AU915


// Initialize channels default mask /* ST_WORKAROUND_BEGIN: Hybrid mode */ #if ( HYBRID_ENABLED == 1 ) RegionNvmGroup2->ChannelsDefaultMask[0] = 0x00FF; RegionNvmGroup2->ChannelsDefaultMask[1] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[2] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[3] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[4] = 0x0001; RegionNvmGroup2->ChannelsDefaultMask[5] = 0x0000; #else RegionNvmGroup2->ChannelsDefaultMask[0] = 0xFF00; //<=== RegionNvmGroup2->ChannelsDefaultMask[1] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[2] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[3] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[4] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[5] = 0x0000;













Carta de Apresentação

Comandos

AT+BAND=1 <===
AT+CLASS=A <====
AT+VL=3 
AT+ADR=1 
AT+APPEUI=00:00:00:00:00:00:00:00 <===
AT+APPKEY=09:ED:14:80:B2:AF:1D:2C:44:B4:29:A6:A6:DF:87:7B <===
AT+NWKKEY=09:ED:14:80:B2:AF:1D:2C:44:B4:29:A6:A6:DF:87:7B <==
AT+JOIN=1 <===
AT+SEND=1:1:BBBBBBBBBB <====

Dúvidas

Favor ler documentos em

Kit de avaliação para módulo LoRa e Sigfox Wisol Seong JI SJI LSM110A

Operação em rede pública e privada LoRaWAN  e também ponto a ponto (P2P)

Opera também em Sigfox

Alterne entre LoRa e Sigfox por comando AT, não precisa trocar o Firmware!

Permite embarcar sua aplicação


Módulo LoRa e Sigfox Wisol Seong JI SJI LSM110A

Módulo LoRa e Sigfox compacto

Escolha entre operação LoRa e Sigfox por comando "on the fly", sem precisar trocar firmware !

LoRa: para operação redes públicas e privadas LoRaWAN bem como ponto a ponto (P2P)
Sigfox: zonas RCZ2 e RCZ4 (inclui Brasil)

Caracteristicas:

- Permite embarcar a aplicação
- Dimensão: 14x15x2,8mm
- Frequência: RCZ2 Tx 902,2MHz  Rx 905,2MHz
- Potência de saida: configurável até +22dBm
- Sensibilidade:  -129dBm@LoRa(BW=500KHz, SF=12)
                  -124dBm@Sigfox(0.6Kbps)
- Tensão de operação: 1,8 - 3,6Vdc
- Interface UART 9600 8N1
- Baixo consumo
- Na operação P2P não necessita de gateway LoRaWAN

Aplicações:
- Medição individualizada de água, energia, gás
- Automação comercial, industrial residencial;
- Rede de sensores;
- Sistemas de alarme e segurança;
- Estações meteorológicas;
- Automação agrícola.
 

NÃO TESTADO - OPENCPU (API MODE) - NÃO TESTADO

Caso queira utilizar como OpenCPU e embarcar sua aplicação:
  • utilize o SDK do STM32 
  • veja como é estruturado a troca de mensagens em (Message Sequence Chart) numa conexão com LoraWAN

Lembrando que não há nenhum exemplo no momento por parte da Smartcore ou Wisol quando utilizado como OPENCPU. Requer conhecimento em programação C baseado no STM32.


Mas estes vídeos mostram como utilizar o STM32WL com SDK da STM



Gerando HEX


Referências

  • DevNonce is too small error in the device events: If the device is using LoRaWAN MAC version 1.1 or 1.0.4, this error occurs when DevNonce is not being incremented, so the Join Server ignores Join Requests with the same or lower DevNonce value comparing to the previous one. Contact your device’s manufacturer to find out the correct LoRaWAN MAC and PHY versions, and configure the device in The Things Stack accordingly

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.

Mais detalhes em www.smartcore.com.br

Nenhum comentário:

Postar um comentário