terça-feira, 29 de agosto de 2023

LSM110A - UTILIZANDO SDK OFICIAL STM - AT COMMANDS

  

Objetivo

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

Baseado no Software do oficial da STM, modificado para rodar no LSM110A, pois o SDK da WISOL hoje contém apenas projeto para gerar APP para comandos AT.

Será enviada um texto qualquer, através de comandos AT,  utilizando OTA, CLASS A, com CONFIRMAÇÃO de envio.

LSM110A Starter KIT
Módulo

O LSM110A é um módulo de última geração que integra o STMicroelectronics STM32WL. 

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/STMicroelectronics/STM32CubeWL.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
Compilando

Este aplicativo conectará o LSM110A com CHIRSTACK e enviará dados após a conexão com um gateway LoRaWAN®.

pir

  • Etapa 2. Extraia o arquivo ZIP e navegue atéC:\STM32CubeWL\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\LoRaWAN_AT_Slave>

  • Etapa 3. Clique duas vezes no arquivo .project


  • Etapa 4. Clique com o botão direito do mouse no projeto e clique em Properties

pir

  • Etapa 5. Navegue até C/C++ Build > Settings > MCU Post build outputs, marque Convert to Intel Hex (-O ihex) e clique em Apply and Close

pir

  • Etapa 6. Clique em Build 'Debug' e ele deve compilar sem erros

construir

pir

  • Etapa 7. 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

pir

  • Passo 8. Após as modificações acima, rebuild o exemplo e programe para o seu LSM110A. Abra STM32CubeProgrammer, conecte o ST-LINK ao seu PC, segure RESET Buttonseu dispositivo, clique Connecte solte RESET Button:
    Conectando S-TLINK V2 no LSM110A Starter KIT, via SWD, Reset antes de gravar

pir

  • Etapa 9. Certifique-se de que a proteção de leitura esteja AA, se for exibida como BB, selecione AAe clique em Apply:

pir

  • Etapa 10. Agora, vá para a Erasing & Programmingpágina, selecione o caminho do arquivo hexadecimal (por exemplo: C:\STM32CubeWL\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\LoRaWAN_End_Node\STM32CubeIDE\Debug\LoRaWAN_End_Node.hex), selecione as opções de programação conforme a imagem a seguir e clique em Start Programming!

pir

Você verá a mensagem Download verificado com sucesso , assim que a programação terminar.

  • Etapa 11. Se o seu LoRaWAN® Gateway e CHIRPSTACK estiverem configurados, o LSM110A será conectado com sucesso após a reinicialização!

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



// Initialize channels default mask /* ST_WORKAROUND_BEGIN: Hybrid mode */ .

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

stm32wlxx_nucleo_radio.h

#define RF_SW_CTRL1_PIN GPIO_PIN_12 #define RF_SW_CTRL1_GPIO_PORT GPIOB #define RF_SW_CTRL1_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() #define RF_SW_RX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE() #define RF_SW_CTRL2_PIN GPIO_PIN_13 #define RF_SW_CTRL2_GPIO_PORT GPIOC #define RF_SW_CTRL2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() #define RF_SW_CTRL2_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE()

stm32wlxx_nucleo_radio.c

/** * @brief Configure Radio Switch. * @param Config: Specifies the Radio RF switch path to be set. * This parameter can be one of following parameters: * @arg RADIO_SWITCH_OFF * @arg RADIO_SWITCH_RX * @arg RADIO_SWITCH_RFO_LP * @arg RADIO_SWITCH_RFO_HP * @retval BSP status */ int32_t BSP_RADIO_ConfigRFSwitch(BSP_RADIO_Switch_TypeDef Config) { switch (Config) { case RADIO_SWITCH_OFF: { /* Turn off switch */ HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_RESET); HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_RESET); HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_RESET); break; } case RADIO_SWITCH_RX: { /*Turns On in Rx Mode the RF Switch */ HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_RESET); break; } case RADIO_SWITCH_RFO_LP: { /*Turns On in Tx Low Power the RF Switch */ HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_SET); break; } case RADIO_SWITCH_RFO_HP: { /*Turns On in Tx High Power the RF Switch */ HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_SET); break; } default: break; } return BSP_ERROR_NONE; }




































ChirpStack -Revision Mac 1.0.2

Testando o APP endNode

    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.

Altere credenciais, faça JOIN e mande pacote

AT+NWKKEY=2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C
AT+APPKEY=2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C
ATZ
AT+JOIN=1
AT+SEND=1:1:BBBBBBBB

Com credenciais do CHIRPSTACK e faça o JOIN
    

Agora envie um pacote

PA2/PA3 no STARTER KIT


Gateway LoRaWAN



Dúvidas


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.
 

Referências


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

terça-feira, 15 de agosto de 2023

LSM110A - UTILIZANDO SDK OFICIAL STM - ENDDEVICE (OPENCPU)

 

Objetivo

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

Baseado no Software do oficial da STM, modificado para rodar no LSM110A, pois o SDK da WISOL hoje contém apenas projeto para gerar APP para comandos AT.

Será enviada uma temperatura (RANDOM) em pequenos intervalos, OTA, CLASS A, com CONFIRMAÇÃO de envio.

LSM110A Starter KIT
Módulo

O LSM110A é um módulo de última geração que integra o STMicroelectronics STM32WL. 

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/STMicroelectronics/STM32CubeWL.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
Compilando

Este aplicativo conectará o LSM110A com CHIRSTACK e enviará dados após a conexão com um gateway LoRaWAN®.

pir

  • Etapa 2. Extraia o arquivo ZIP e navegue atéC:\STM32CubeWL-main\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\LoRaWAN_End_Node\STM32CubeIDE

  • Etapa 3. Clique duas vezes no arquivo .project


  • Etapa 4. Clique com o botão direito do mouse no projeto e clique em Properties

pir

  • Etapa 5. Navegue até C/C++ Build > Settings > MCU Post build outputs, marque Convert to Intel Hex (-O ihex) e clique em Apply and Close

pir

  • Etapa 6. Clique em Build 'Debug' e ele deve compilar sem erros

construir

pir

Agora modifique Device EUIApplication EUIApplication KEY e LoRawan Region

  • Etapa 7. Pegue as credenciais no CHIRPSTACK, obtenha seu Application EUI e copie-o para a definição de macro LORAWAN_JOIN_EUIem LoRaWAN/App/se-identity.h, por exemplo, o aplicativo EUI aqui é 80 00 00 00 00 00 00 0x07:
// LoRaWAN/App/se-identity.h
/*!
* App/Join server IEEE EUI (big endian)
*/
#define LORAWAN_JOIN_EUI { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07 }
  • Etapa 8. Além disso, você pode modificar o Device EUI e Application Key, definindo a definição de macro LORAWAN_DEVICE_EUILORAWAN_NWK_KEYem LoRaWAN/App/se-identity.hCertifique -se de que LORAWAN_DEVICE_EUILORAWAN_NWK_KEYsão iguais a Device EUIApp Keyno console CHIRPSTACK.
// LoRaWAN/App/se-identity.h
/*!
* end-device IEEE EUI (big endian)
*/
#define LORAWAN_DEVICE_EUI { 0x2C, 0xF7, 0xF1, 0x20, 0x24, 0x90, 0x03, 0x63 }
/*!
* Network root key
*/
#define LORAWAN_NWK_KEY 2B,7E,15,16,28,AE,D2,A6,AB,F7,15,88,09,CF,4F,3C

pir

  • Etapa 9. 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//lorawan_conf.h#define LORAMAC_SPECIFICATION_VERSION 0x01000300 //<=====1.0.3 #define REGION_AU915

pir

  • Passo 10. Após as modificações acima, rebuild o exemplo e programe para o seu LSM110A. Abra STM32CubeProgrammer, conecte o ST-LINK ao seu PC, segure RESET Buttonseu dispositivo, clique Connecte solte RESET Button:
    Conectando S-TLINK V2 no LSM110A Starter KIT, via SWD, Reset antes de gravar

pir

  • Etapa 11. Certifique-se de que a proteção de leitura esteja AA, se for exibida como BB, selecione AAe clique em Apply:

pir

  • Etapa 12. Agora, vá para a Erasing & Programmingpágina, selecione o caminho do arquivo hexadecimal (por exemplo: C:\STM32CubeWL\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\LoRaWAN_End_Node\STM32CubeIDE\Debug\LoRaWAN_End_Node.hex), selecione as opções de programação conforme a imagem a seguir e clique em Start Programming!

pir

Você verá a mensagem Download verificado com sucesso , assim que a programação terminar.

  • Etapa 13. Se o seu LoRaWAN® Gateway e CHIRPSTACK estiverem configurados, o LSM110A será conectado com sucesso após a reinicialização! Um pacote LoRaWAN® confirmado será enviado para CHIRPSTACK em pequenos intervalos.
  • Felicidades! Agora você conectou o LSM110A à rede LoRaWAN®! Agora você pode prosseguir para desenvolver aplicativos LoRaWAN® End Node mais empolgantes!
Alterando BAND MASK
  • Em RegionAU915.c, a máscara utilizada para compatibilizar com configuração utilizada no Gateway LoRaWAN



// Initialize channels default mask /* ST_WORKAROUND_BEGIN: Hybrid mode */ .

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

stm32wlxx_nucleo_radio.h

#define RF_SW_CTRL1_PIN GPIO_PIN_12 #define RF_SW_CTRL1_GPIO_PORT GPIOB #define RF_SW_CTRL1_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() #define RF_SW_RX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE() #define RF_SW_CTRL2_PIN GPIO_PIN_13 #define RF_SW_CTRL2_GPIO_PORT GPIOC #define RF_SW_CTRL2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() #define RF_SW_CTRL2_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE()

stm32wlxx_nucleo_radio.c

/** * @brief Configure Radio Switch. * @param Config: Specifies the Radio RF switch path to be set. * This parameter can be one of following parameters: * @arg RADIO_SWITCH_OFF * @arg RADIO_SWITCH_RX * @arg RADIO_SWITCH_RFO_LP * @arg RADIO_SWITCH_RFO_HP * @retval BSP status */ int32_t BSP_RADIO_ConfigRFSwitch(BSP_RADIO_Switch_TypeDef Config) { switch (Config) { case RADIO_SWITCH_OFF: { /* Turn off switch */ HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_RESET); HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_RESET); HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_RESET); break; } case RADIO_SWITCH_RX: { /*Turns On in Rx Mode the RF Switch */ HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_RESET); break; } case RADIO_SWITCH_RFO_LP: { /*Turns On in Tx Low Power the RF Switch */ HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_SET); break; } case RADIO_SWITCH_RFO_HP: { /*Turns On in Tx High Power the RF Switch */ HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_SET); break; } default: break; } return BSP_ERROR_NONE; }




































ChirpStack -Revision Mac 1.0.2

Testando o APP endNode

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


Gateway LoRaWAN



Dúvidas


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.
 

Referências


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