0% acharam este documento útil (0 voto)
25 visualizações48 páginas

Manual

manual lora mesh

Enviado por

henriquemetin3
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
25 visualizações48 páginas

Manual

manual lora mesh

Enviado por

henriquemetin3
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 48

Módulo LoRaMESH

Manual de Utilização

Revisão - Março de 2024


Módulo LoRaMESH EndDevice

O módulo LoRaMESH EndDevice Radioenge é um


transceiver que alia a tecnologia de modulação LoRa®,
que proporciona baixo consumo e longo alcance, com
uma topologia MESH, que permite a criação de uma
ampla área de cobertura com uma rede altamente
escalável e de baixo custo. O dispositivo possui
duas interfaces seriais UART, sendo uma destinada a
configuração e outra para comunicação de dados de
forma transparente.

Recursos
I Tecnologia LoRaMESH Radioenge;
I Configurável como mestre ou escravo;
I 2 interfaces UART (comandos e transparente);
I Configuração via interface UART ou Rádio; Aplicações
I Fixação acastelada ou por barra de pinos;
I Internet of Things (IoT);
I Atualização de firmware via UART ou Rádio;
I Automação doméstica e comercial;
I 8 GPIOs, sendo 2 configuráveis como entradas
analógicas; I Sistemas de segurança e monitoramento;
I 3 LEDs para sinalização de operação; I Aquisição e envio de dados;
I Diagnóstico remoto do dispositivo. I Leitura remota de sensores.

Caracterı́sticas
I Alimentação de 4 a 12 Vcc (+3,3 Vcc sem regula-
dor);
I Dimensões: 33 mm x 22 mm x 3 mm;
I Temperatura de operação: -5°C a +55°C;
I Baixo consumo;
I µProcessador integrado: ARM Cortex-M0+ 32-bits;
I Taxa de dados máxima: 21,9 kbps (LoRa), 250 kbps
(FSK);
I Topologia Mesh.

Caracterı́sticas de RF
I Operação na Banda ISM de 915 MHz;
I Sensibilidade de recepção: -137 dBm (LoRa), -92
dBm (FSK);
I Potência de transmissão máxima: +20 dBm;
I Modulação LoRa ou FSK;
I Homologação ANATEL: 02021-18-07215.
Sumário

1 Tecnologia LoRaMESH 3

2 Pinagem 4

3 Especificações 5
3.1 Especificações de operação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Valores máximos absolutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3 Parâmetros de operação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4 Taxas de dados – LoRa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.5 Payload máximo – LoRa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.6 Payload máximo – FSK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Exemplo de Aplicação 9

5 Modos de Operação 10
5.1 Definição de Classe e Janela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6 Descrição das Interfaces 11


6.1 Interface dos comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.2 Interface transparente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

7 Descrição do Hardware 12
7.1 GIPOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.2 Saı́da de antena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.3 Bypass do regulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.4 LEDs de sinalização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

8 Descrição do Protocolo de Comunicação 14

9 Lista de comandos detalhada 16


9.1 Leitura e escrita dos parâmetros de rádio (0xD6) . . . . . . . . . . . . . . . . . . . . . . . 16
9.1.1 Leitura (subcomando 0x00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
9.1.2 Escrita (subcomando 0x01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
9.2 Leitura local (0xE2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.2.1 Comandos de leitura e configuração de parâmetros . . . . . . . . . . . . . . . . . 17
9.2.1.1 Leitura local (0xE2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.3 Leitura remota (0xD4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.3.0.1 Leitura remota (0xD4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.4 Comando de configuração de rádio (0xCA) . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.4.0.1 Comando de configuração de rádio (0xCA) . . . . . . . . . . . . . . . . . 17
9.5 Resposta aos comandos de Leitura local, Leitura remota e Comando de configuração de
rádio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.5.0.1 Resposta aos comandos de Leitura local, Leitura remota e Comando de
configuração de rádio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.6 Configuração de GPIO (0xC2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.6.1 Configuração (subcomando 0x02) . . . . . . . . . . . . . . . . . . . . . . . 20
9.6.2 Leitura (subcomando 0x00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.6.3 Escrita (subcomando 0x01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.7 Diagnóstico (0xE7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.8 Ruı́do (0xD8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.9 RSSI (0xD5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.10 Traça rota (0xD2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
9.11 Teste periódico (0x01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
9.12 Configuração de tempo periódico (0xCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
9.12.1 Leitura (subcomando 0x02) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
9.12.2 Escrita (subcomando 0x01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
9.13 Configuração de modo de Classe e interface transparente (0xC1) . . . . . . . . . . . . . 26

1
9.13.0.1 Modo de operação (subcomando 0x00) . . . . . . . . . . . . . . . . . . . 26
9.13.1 Comando para interface transparente (subcomando 0x01) . . . . . . . . . . . . . 26
9.14 Repasse de comando para outro rádio (0xEF) . . . . . . . . . . . . . . . . . . . . . . . . 27
9.15 Carrega FW (Loader) e Apaga banco (0xEB) . . . . . . . . . . . . . . . . . . . . . . . . . 28
9.15.1 Carrega FW (subcomando 0x00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
9.15.2 Apaga banco (subcomando 0x01) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
9.16 Ativa Banco (0xEA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9.17 Apaga Banco (0xE9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.18 Canal Serial (0xD9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9.19 Ruı́do (0xD8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9.20 Rota (0xD3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
9.21 Grava senha (0xCD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
9.22 ECO (0xA0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9.23 Variáveis dinâmicas (0x88) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
9.24 LEDs (0x83) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
9.25 Comando de aplicação (<0x80) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.25.1 Configuração de SENHA (0xCD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.25.2 Comando de aplicação (<0x80) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

10 Caracterı́sticas Fı́sicas 40
10.1 Dimensões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
10.2 Footprint recomendado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
10.2.1 SMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
10.2.2 PTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

11 CRC 16 43
11.1 Linguagem C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
11.2 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
11.3 Java / Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

12 Contato 46

2
1 TECNOLOGIA LORAMESH

1 Tecnologia LoRaMESH
O LoRaMESH é um sistema de comunicação MESH próprio da Radioenge que utiliza a tecnologia
LoRa® na camada fı́sica. Ele alia o longo alcance na comunicação e o baixo consumo caracterı́sticos
do LoRa®, com a versatilidade e robustez da rede MESH. Em uma rede MESH, cada dispositivo,
além de trabalhar como um usuário enviando ou recebendo informações, também funciona como um
roteador, encaminhando os pacotes de outros rádios. Este roteamento acontece de forma automática
(auto-rota) e, caso um dispositivo utilizado seja retirado, o próprio algoritmo MESH encontrará uma nova
rota (auto-cura) restabelecendo a comunicação.
Uma rede LoRaMESH Radioenge é formada por dois tipos distintos de dispositivos: o mestre (único
para toda a rede) e os escravos. Um mestre pode enviar comandos ou pacotes com informações para
qualquer escravo em uma rede, enquanto um escravo envia informações apenas para o mestre. A
única interação entre escravos é para fazer o roteamento dos pacotes. No mestre, normalmente, é feito
o escoamento dos dados da rede para uma aplicação. Existem duas identificações para um EndDevice
LoRaMESH Radioenge. Primeiramente, existe o Unique ID/Número de Série (4 bytes), que é único
para cada rádio produzido. Além desta, existe o ID (2 bytes) de um rádio, o qual é único em uma rede.
O ID configurado individualmente pelo próprio usuário.
Desta forma, a rede LoRaMESH Radioenge é uma solução perfeita para projetos de IoT, pois, uma
vez estabelecida a rede com o mestre, a auto-cura e a auto-rota da rede MESH possibilitam uma
solução robusta a falhas de comunicação e também altamente escalável, uma vez que novos dispositi-
vos são facilmente incorporados à rede.

Figura 1: Diagrama de uma rede Mesh

Uma rede é definida por sua SENHA (4 bytes) e pelos parâmetros LoRa, sendo estes: Spreading
Factor (SF), Bandwidth (BW) e Coding Rate (CR). Todos estes parâmetros devem ser configurados
em cada rádio individualmente, juntamente com o ID. Ao configurar uma SENHA, automaticamente o
rádio também definirá um canal de operação entre os 67 disponı́veis. No caso de duas ou mais redes
trabalhando no mesmo canal, não há problema de um rádio de uma rede receber um comando ou
pacote de outra, desde que as senhas sejam diferentes. A SENHA é utilizada para criptografar os
pacotes de rádio (AES128).

Módulo LoRaMESH Radioenge - Manual de utilização 3


2 PINAGEM

2 Pinagem

Figura 2: Numeração dos pinos

Tabela 1: Pinagem
Pino Nome Tipo Descrição
1 GND Alimentação Conectado ao ground
2 RX 1 Entrada RX da interface UART de comando
3 TX 1 Saı́da TX da interface UART de comando
4 VCC Alimentação Conectado à alimentação
5 VCC Alimentação Conectado à alimentação
6 TX 2 Saı́da TX da interface UART transparente
7 RX 2 Entrada RX da interface UART transparente
8 GND Alimentação Conectado ao ground
9 GPIO0 I/O Pino de uso geral
10 GPIO1 I/O Pino de uso geral
11 GPIO2 I/O Pino de uso geral
12 GPIO3 I/O Pino de uso geral
13 GPIO4 I/O Pino de uso geral
14 GPIO5 I/O ou Analógico Pino de uso geral ou entrada analógica
15 GPIO6 I/O ou Analógico Pino de uso geral ou entrada analógica
16 GPIO7 I/O Pino de uso geral
17 GND Saı́da RF Conectado ao ground
18 ANT Saı́da RF Saı́da de RF para antena externa
19 GND Saı́da RF Conectado ao ground

Módulo LoRaMESH Radioenge - Manual de utilização 4


3 ESPECIFICAÇÕES

3 Especificações
3.1 Especificações de operação

Tabela 2: Especificação de operação


Especificação Descrição
Modulação LoRa® ou FSK
Faixas de frequência 902,5 – 907 MHz e 915 – 928 MHz
Largura de banda 125 kHz / 250 kHz / 500 kHz (LoRa); 250 kHz (FSK)
Spreading Factor (LoRa) 7, 8, 9, 10, 11 e 12
Coding Rate (LoRa) 4/5, 4/6, 4/7 e 4/8
Estabilidade de frequência ±5,0 ppm
Protocolo LoRaMESH Radioenge
Sensibilidade -137 dBm (LoRa); -92 dBm (FSK)
Potência de transmissão Máx. +20 dBm / 100 mW
Conexão com antena Pad acastelado (pino 18) ou conector SMA-M
Interface de comunicação UART

3.2 Valores máximos absolutos

Tabela 3: Valores máximo absolutos


Parâmetro Mı́nimo Máximo Un.
Tensão entre VCC e GND (com regulador) -0,3 16,0 V
Tensão entre VCC e GND (sem regulador) -0,3 4,0 V
Tensão nos pinos de UART (classe A) -0,3 3,6 V
Tensão nos pinos de UART (classe C) -0,3 5,0 V
Tensão nos pinos GPIO e Analógicos -0,3 4,0 V
Corrente máxima drenada por uma GPIO - 16,0 mA
Corrente máxima fornecida por uma GPIO - 16,0 mA
Corrente máxima drenada por todas as GPIOs - 90 mA
Temperatura de armazenamento -10 +70 ºC
Temperatura de operação -5 +55 ºC
Potência máxima na entrada RF - 0 dBm

Módulo LoRaMESH Radioenge - Manual de utilização 5


3 ESPECIFICAÇÕES

3.3 Parâmetros de operação

Tabela 4: Parâmetros de operação


Parâmetro Mı́nimo Tı́pico Máximo Un.
Tensão de Alimentação (com regulador) 1,8 - 12 V
Tensão de Alimentação (sem regulador) 1,8 3,3 3,6 V
Consumo de corrente durante transmissão (Vcc = 3,3V) - 111 - mA
Consumo de corrente durante recepção (Vcc = 3,3V) - 20 - mA
Tensão de saı́da em nı́vel baixo (GPIO, Io = 8 mA) - - 0,4 V
Tensão de saı́da em nı́vel alto (GPIO, Io = 8 mA) 2,9 - - V
Limiar de tensão de entrada em nı́vel baixo (GPIO) - - 1,0 V
Limiar de tensão de entrada em nı́vel alto (GPIO) 2,3 - - V
Limiar de tensão de entrada em nı́vel baixo (USART) - - 1,0 V
Limiar de tensão de entrada em nı́vel alto (USART) 2,3 - - V
Corrente drenada/fornecida por uma entrada - - 50 nA
Faixa de leitura das entradas analógicas 0,0 - 3,3 V
Impedância da entrada analógica - - 50 kΩ
Resolução do ADC 8 - 12 bits
Baudrate das interfaces UART 9600 - 57600 bps
Taxa de dados – LoRa 180 - 21900 bps
Taxa de dados – FSK - 250 - kbps

Módulo LoRaMESH Radioenge - Manual de utilização 6


3 ESPECIFICAÇÕES

3.4 Taxas de dados – LoRa

Tabela 5: Taxa de dados LoRa - Coding Rate 4/8


Spreading Factor
Taxa de dados (bps)
7 8 9 10 11 12
125 3418 1953 1098 610 336 183
Largura de
250 6836 3906 2197 1220 671 366
Banda (kHz)
500 13672 7813 4395 2441 1343 732
Coding Rate 4/8

Tabela 6: Taxa de dados LoRa - Coding Rate 4/7


Spreading Factor
Taxa de dados (bps)
7 8 9 10 11 12
125 3906 2232 1256 698 384 209
Largura de
250 7813 4464 2511 1395 767 419
Banda (kHz)
500 15625 8929 5022 2790 1535 837
Coding Rate 4/7

Tabela 7: Taxa de dados LoRa - Coding Rate 4/6


Spreading Factor
Taxa de dados (bps)
7 8 9 10 11 12
125 4557 2604 1465 814 448 244
Largura de
250 9115 5208 2930 1628 895 488
Banda (kHz)
500 18229 10417 5859 3255 1790 977
Coding Rate 4/6

Tabela 8: Taxa de dados LoRa - Coding Rate 4/5


Spreading Factor
Taxa de dados (bps)
7 8 9 10 11 12
125 5469 3125 1758 977 537 293
Largura de
250 10938 6250 3516 1953 1074 586
Banda (kHz)
500 21875 12500 7031 3906 2148 1172
Coding Rate 4/5

Módulo LoRaMESH Radioenge - Manual de utilização 7


3 ESPECIFICAÇÕES

3.5 Payload máximo – LoRa

Tabela 9: Payload máximo LoRa - Coding Rate 4/8


Spreading Factor
Payload máximo (bytes)
7 8 9 10 11 12
125 237 237 174 81 18 11
Largura de
250 237 237 237 196 92 24
Banda (kHz)
500 237 237 237 237 218 102
Coding Rate 4/8

Tabela 10: Payload máximo LoRa - Coding Rate 4/7


Spreading Factor
Payload máximo (bytes)
7 8 9 10 11 12
125 237 237 201 96 24 11
Largura de
250 237 237 237 226 108 32
Banda (kHz)
500 237 237 237 237 237 120
Coding Rate 4/7

Tabela 11: Payload máximo LoRa - Coding Rate 4/6


Spreading Factor
Payload máximo (bytes)
7 8 9 10 11 12
125 237 237 237 116 31 11
Largura de
250 237 237 237 237 130 37
Banda (kHz)
500 237 237 237 237 237 144
Coding Rate 4/6

Tabela 12: Payload máximo LoRa - Coding Rate 4/5


Spreading Factor
Payload máximo (bytes)
7 8 9 10 11 12
125 237 237 237 141 45 11
Largura de
250 237 237 237 237 158 52
Banda (kHz)
500 237 237 237 237 237 174
Coding Rate 4/5

3.6 Payload máximo – FSK

Tabela 13: Payload máximo FSK


Payload máximo (bytes) 217

Módulo LoRaMESH Radioenge - Manual de utilização 8


4 Exemplo de Aplicação
Módulo LoRaMESH Radioenge - Manual de utilização

4
EXEMPLO DE APLICAÇÃO
Figura 3: Exemplo de aplicação do EndDevice Radioenge
9
5 MODOS DE OPERAÇÃO

5 Modos de Operação
O EndDevice LoRaMESH Radioenge possui dois tipos de configuração para operar relacionadas
com o consumo do rádio no modo de recepção: Classe A e Classe C. A configuração dos modos de
operação é feita através do comando 0xC1.

• Classe A
Configuração válida apenas para o rádio escravo. Quando configurado como Classe A, o dispositivo
não entra em modo de recepção; ao invés disso, ele permanece em modo de baixo consumo, não
fazendo mais roteamento de pacotes na rede MESH. Neste estado, o escravo apenas envia comandos
de aplicação para o mestre ou responde aos comandos localmente.

Sempre que recebe uma mensagem na sua serial, o rádio liga a recepção de acordo com a configuração
da JANELA de recepção. Neste momento, ele pode receber as respostas do rádio mestre. As configurações
possı́veis de janela de recepção são: 5, 10 ou 15s. Este modo é recomendado para aplicação com
restrição de consumo como, por exemplo, situações onde o rádio é alimentado por uma bateria.

Quando configurado em classe A, observar a tensão máxima do barramento serial. Não pode
ultrapassar 3,6V, conforme indicado na Tabela 3.

• Classe C
Neste modo, o rádio permanece sempre com a recepção da interface de rádio ligada. Quando
configurado desta forma, o rádio, além de poder enviar e receber pacotes de rádio a qualquer momento,
também faz o roteamento de pacotes de outros escravos. Este modo é recomendado para situações
onde não há restrição de consumo.

5.1 Definição de Classe e Janela


• CLASSE
A classe é o modo de economia de energia do módulo.
◦ Classe A: o módulo opera com baixo consumo de energia. Nesta configuração o módulo
não participa da MESH (não repete pacotes) porque se mantém em estado de baixo con-
sumo “deep sleep”. Para iniciar uma transmissão é necessário receber qualquer comando
em uma de suas seriais USART.

◦ Classe C: o módulo não economiza energia e participa da rede MESH ativamente.

• JANELA
Se módulo estiver configurado como Classe A, a Janela é o intervalo de tempo que o módulo per-
manecerá com o receptor ligado após uma transmissão. Se estiver configurado como Classe C este
parâmetro não terá função.

Módulo LoRaMESH Radioenge - Manual de utilização 10


6 DESCRIÇÃO DAS INTERFACES

6 Descrição das Interfaces


6.1 Interface dos comandos
O módulo LoRaMESH Radioenge possui uma interface serial para configuração dos parâmetros de
operação, envio de comandos de rádio e pacotes de informações. Através do comando de Configuração
de rádio (0xCA), é possı́vel configurar o baudrate como 9600, 38400, 57600 ou 115200 bps; sendo o
padrão de fábrica 9600 bps. A Tabela 14 apresenta as configurações da interface serial.
Esta interface implementa o protocolo serial Radioenge, baseado no padrão MODBUS. Este proto-
colo é descrito em detalhes na Seção 8.

Tabela 14: Parâmetros da interface serial


Parâmetro Valor
Baudrate 9600, 38400, 57600 e 115200 bps
Pacote 8 bit
Paridade Não
Stop bit 1 bit
Controle de fluxo Não

6.2 Interface transparente


Além da interface de configuração, o EndDevice LoRaMESH Radioenge possui uma interface se-
rial que pode ser usada para o envio e recebimento de pacotes de dados de forma transparente ao
dispositivo. O comando para uso da interface transparente é configurado através do comando 0xC1.
A operação desta interface difere entre o mestre e o escravo. Para o rádio mestre, é preciso indicar
para qual rádio a mensagem se destina. Da mesma forma, as mensagens que chegam ao rádio mestre
possuem a identificação do rádio de origem. Esta identificação é enviada/recebida juntamente com os
dados, conforme a tabela abaixo.

Byte 0 Byte 1 N Bytes


ID (LSB) ID (MSB) Payload

No caso de um escravo, apenas o campo payload é enviado ou recebido.


Os parâmetros desta interface são os mesmo da interface de comandos. Inclusive, caso seja alte-
rado o baudrate da interface de comandos, também será alterado na transparente.

Módulo LoRaMESH Radioenge - Manual de utilização 11


7 DESCRIÇÃO DO HARDWARE

7 Descrição do Hardware
O objetivo desta seção é detalhar algumas configurações possı́veis para a utilização do hardware
do EndDevice LoRaMESH da Radioenge.

7.1 GIPOs
Este dispositivo possui 8 pinos de uso geral, sendo possı́vel configurar dois (GPIO5 e GPIO6) como
entradas analógicas (12 bits). As funções de GPIO, tanto de entrada quanto de saı́da, podem ser
utilizadas pela interface serial de comandos ou por rádio através do mestre da rede.

7.2 Saı́da de antena


O dispositivo conta com duas possibilidades de conexão de antena (50 Ω):

I Conector SMA-M, para a conexão direta de uma antena ao módulo;


I Pad acastelado (Pino 18) para conexão com uma antena integrada de PCI.

Apenas uma das saı́das de antena deve ser utilizada por vez. Caso use o conector
SMA, deve-se deixar o pino 18 desconectado. Em caso de usar o pino 18, deve-se
remover o conector SMA.

7.3 Bypass do regulador


Em algumas soluções, principalmente com restrição de consumo, é necessário diminuir o consumo
do rádio. Além de configurar o rádio para desligar a recepção (Classe A), é possı́vel diminuir ainda mais
o consumo fazendo o bypass do regulador. Para tal, deve-se retirar o componente A e soldar um
resistor 0R 0402 na posição B, conforme indicado na Figura 4.
Para tais casos, é importante observar os limites da alimentação, conforme indicado na Tabela 4.

Figura 4: Realização do bypass do regulador

Módulo LoRaMESH Radioenge - Manual de utilização 12


7 DESCRIÇÃO DO HARDWARE

7.4 LEDs de sinalização


O módulo possui três LEDs para a sinalização de operação. Cada LED indica uma operação distinta:

I Vermelho: pisca quando ocorre alguma transmissão via rádio.


I Verde: pisca quando ocorre alguma recepção via rádio.

I Amarelo: pisca a cada 1 segundo para indicar que o rádio está com a recepção ativa.

Figura 5: LEDs de sinalização

Módulo LoRaMESH Radioenge - Manual de utilização 13


8 DESCRIÇÃO DO PROTOCOLO DE COMUNICAÇÃO

8 Descrição do Protocolo de Comunicação


Os comandos seriais reconhecidos pelo EndDevice LoRaMESH Radioenge seguem o padrão mos-
trado a seguir:

N Bytes
ID (LSB) ID (MSB) CMD Payload (n bytes) CRC (LSB) CRC (MSB)

• ID: indica o identificador único do dispositivo dentro da rede. Existem 4 situações sobre o uso do
ID no pacote de comando:

1) Utilizando a serial do rádio mestre:


1.1) Para interrogar o próprio mestre, deve-se colocar a identificação do próprio mestre, ou
seja, o ID como 0;
1.2) Para enviar um comando do mestre para o escravo, utilizar o ID do escravo;
2) Utilizando a serial do rádio escravo:
2.1) Para interrogar o próprio escravo, utilizar o ID do próprio escravo;
2.2) Para enviar uma mensagem a partir do escravo para o mestre, utilizar o ID do próprio
escravo. Esta mensagem, quando recebida na serial do mestre, conterá nos campos de
ID a identificação do rádio que enviou o pacote.

• CMD: especifica o comando enviado ao EndDevice, conforme a Tabela 15.

• Payload: representam os parâmetros a serem enviados ou dados de aplicação.


• CRC: é utilizado para a verificação da integridade do pacote. Caso a cálculo do CRC indique
alguma falha no pacote, o rádio apenas descartará a informação recebida.

O ID 2047 é um endereço especial utilizado apenas no rádio mestre da rede MESH e que
permite transmitir um determinado pacote para todos os rádios da rede (broadcast). Por exemplo,
pode-se enviar um comando para acionar uma GPIO de todos os módulos da rede endereçando o
comando para o ID 2047.

Módulo LoRaMESH Radioenge - Manual de utilização 14


8 DESCRIÇÃO DO PROTOCOLO DE COMUNICAÇÃO

Tabela 15: Lista de comandos seriais


Comando (HEX) Nome Descrição
Leitura e escrita de Leitura e escrita dos parâmetros de rádio
0xD6
parâmetros de rádio (LoRa)
Leitura dos parâmetros do módulo
0xE2 Leitura local
(apenas pela serial local)
Leitura dos parâmetros de um rádio escravo.
0xD4 Leitura remota
Realizado apenas através do mestre da rede
Escrita dos parâmetros de um rádio
0xCA Configuração de rádio
(ID e Máscara binária)
Comando de configuração, leitura e escrita
0xC2 Configuração de GPIO
de GPIO
Adquire informações de operação de um
0xE7 Diagnóstico
rádio (local ou remoto)
Leitura do nı́vel de ruı́do observado por um
0xD8 Leitura ruı́do
rádio (local ou remoto)
Retorna os nı́veis de potência de sinal
0xD5 Leitura RSSI observados (ida e volta) no enlace entre
dois rádios
Retorna a rota utilizada para se comunicar
0xD2 Traça rota
com um determinado rádio
Teste periódico enviado dos escravos para o
0x01 Teste periódico
mestre. Configurável pelo comando 0xCA
Configuração de tempo Configura ou lê o tempo periódico no rádio
0xCC
periódico mestre
Configuração de modo
Configura ou lê a classe do dispositivo e o
0xC1 de Classe e interface
comando da interface transparente
transparente
Repasse de comando Repassa um subcomando de um rádio para
0xEF
para outro rádio outro rádio no modo ponto a ponto
Carrega FW e Carrega FW (loader) e apaga a
0xEB
Apaga Banco memória do banco para atualização de FW
0xEA Ativa Banco Ativa o FW carregado
Seta canal de operação do rádio pela
0xD9 Canal Serial
interface serial
0xD8 Ruı́do Leitura do nı́vel de ruı́do no canal atual
Define a rota de comunicação estática com
0xD3 Rota
um determinado rádio
0xCD Grava senha Configura a senha do rádio selecionado
Envia pacotes de dados para realizar testes
0xA0 Comando de ECO
na rede
Configura variáveis dinâmicas de
0x88 Variáveis dinâmicas
funcionamento
0x83 LEDs Configura o acendimento dos leds
0xCD Configuração de senha Configura a SENHA (serial apenas)
Qualquer comando neste intervalo é enviado
Demais comandos Comandos de
integralmente à interface de comandos do
abaixo de 0x80 aplicação
destino

Para os comandos de 0x02 até 0x0A, é possı́vel configurar para que o mestre responda os
escravos de forma automática. Esta configuração é feita através do comandos 0xCA.

Também existe um comando reservado para a interface transparente. Este comando é configurado
individualmente por rádio. Assim, quando um determinado rádio recebe este comando, além de enviar
o pacote inteiro para a interface de comandos, também envia o payload para a outra interface. Da
mesma forma, quando é utilizada a interface transparente de de forma local, o dispositivo encapsula o
payload recebido utilizando o comando configurado antes de enviar para a rede.

Módulo LoRaMESH Radioenge - Manual de utilização 15


9 LISTA DE COMANDOS DETALHADA

9 Lista de comandos detalhada


A lista a seguir apresenta o formato dos pacotes para cada comando. Campos não explicitados são
dispostos na forma Little-Endian.

9.1 Leitura e escrita dos parâmetros de rádio (0xD6)


9.1.1 Leitura (subcomando 0x00)

Envio
Byte 0 1 2 3 4 5 6 7
Dado ID (LSB) ID (MSB) 0xD6 0x00 0x01 0x00 CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7 8 9
ID ID CRC CRC
Dado 0xD6 0x00 Potência BW SF CR
(LSB) (MSB) (LSB) (MSB)

• Potência: nı́vel da potência de saı́da em dBm, sendo 20 (0x14) o nı́vel máximo e também a
configuração padrão de fábrica;

• BW: Bandwidth da configuração LoRa, as configurações possı́veis são 0, 1 e 2 conforme:


◦ 0x00: 125 kHz;
◦ 0x01: 250 kHz;
◦ 0x02: 500 kHz.

• SF: Spreading Factor da configuração LoRa. Deve ter um valor entre 7 e 12 ou zero conforme
abaixo:
◦ 0x07 a 0x0C: indica operação com modulação LoRa;
◦ 0x00: indica operação em modo FSK.
• CR: Coding Rate da configuração LoRa. Deve ter um valor entre 1 e 4 conforme abaixo:
◦ 0x01: 4/5;
◦ 0x02: 4/6;
◦ 0x03: 4/7;
◦ 0x04: 4/8.

9.1.2 Escrita (subcomando 0x01)

Envio
Byte 0 1 2 3 4 5 6 7 8 9
ID ID CRC CRC
Dado 0xD6 0x01 Potência BW SF CR
(LSB) (MSB) (LSB) (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7 8 9
ID ID CRC CRC
Dado 0xD6 0x01 Potência BW SF CR
(LSB) (MSB) (LSB) (MSB)

Módulo LoRaMESH Radioenge - Manual de utilização 16


9 LISTA DE COMANDOS DETALHADA

9.2 Leitura local (0xE2)


9.2.1 Comandos de leitura e configuração de parâmetros
Os comandos de Leitura local (0xE2) e Leitura remota (0xD4) são utilizados para requisitar o ID (no
caso da serial local) e o Unique ID/Número de série de um dispositivo na rede. Este último parâmetro
é utilizado para a configuração do rádio através do comando 0xCA. As respostas estão descritas na
seção 9.5.0.1, juntamente com as definições dos campos.

9.2.1.1 Leitura local (0xE2)


Leitura dos parâmetros do rádio local (serial). Para requisitar as informações de um escravo através
do mestre, utilize o comando 0xD4. Como este comando é utilizado para descobrir o ID de um rádio
local, o dispositivo responderá independentemente do ID enviado.

Envio
Byte 0 1 2 3-5 6 7
Dado ID (LSB) ID (MSB) 0xE2 0x00 CRC (LSB) CRC (MSB)

9.3 Leitura remota (0xD4)


9.3.0.1 Leitura remota (0xD4)
Comandos para requisitar os parâmetros de um rádio escravo através do mestre.

Envio
Byte 0 1 2 3-5 6 7
Dado ID (LSB) ID (MSB) 0xD4 0x00 CRC (LSB) CRC (MSB)

9.4 Comando de configuração de rádio (0xCA)


9.4.0.1 Comando de configuração de rádio (0xCA)

Envio
Byte 0 1 2 3-4 5 6
Dado ID (LSB) ID (MSB) 0xCA 0x00 UID (MSB) UID

7 8 9 10-11 12 13 14
Máscara de BAUDRATE
UID 2 UID 2 (LSB) 0x00 CRC (LSB) CRC (MSB)
configuração serial

Módulo LoRaMESH Radioenge - Manual de utilização 17


9 LISTA DE COMANDOS DETALHADA

9.5 Resposta aos comandos de Leitura local, Leitura remota e Comando de


configuração de rádio
9.5.0.1 Resposta aos comandos de Leitura local, Leitura remota e Comando de
configuração de rádio
Os comandos de leitura local, leitura remota e configuração de rádio possuem o mesmo formato de
resposta, sendo diferenciados apenas pelo byte de comando (CMD), conforme a tabela abaixo.

Resposta

Byte 0 1 2 3 4 5 6
Dado ID (LSB) ID (MSB) CMD RSV RSV UID (MSB) UID

7 8 9 10 11 12 13 14
Revisão de
UID UID (LSB) RSV RSV Canal RSV RSV
FW

15 16 17 18 19 20 21 22
Teste Teste
BAUDRATE Versão de Banco de
RSV RSV Periódico Periódico RSV
Serial FW memória
(MSB) (LSB)

23 24 25 26 27 28 29 30
Máscara de CRC CRC
RSV RSV RSV RSV 0x01
configuração (LSB) (MSB)

• CMD: indica qual foi o comando que gerou esta resposta, podendo ser:
◦ 0xE2: Leitura local;
◦ 0xD4: Leitura remota;
◦ 0xCA: Comando de configuração de rádio.
• UID: é o Unique ID/Número de série do dispositivo, sendo único por rádio fabricado;
• Versão e Revisão de Firmware: mostra qual a versão de firmware está programada no disposi-
tivo. Por exemplo, caso a versão seja a 3.18, os bytes versão e revisão de firmware indicarão 3 e
18 respectivamente;
• Canal: indica em qual canal de RF o rádio está operando. Pode assumir um valor de 0 a 66;
• BAUDRATE Serial: Baud rate utilizado na comunicação serial. Pode assumir os valores entre 0
e 3, conforme abaixo:
◦ 0x00: 9600 bps;
◦ 0x01: 38400 bps;
◦ 0x02: 57600 bps;
◦ 0x03: 115200 bps.
• Banco de memória: indica em qual banco de memória o firmware do rádio está gravado, sendo
0 o banco A e 1, o banco B;
• BAUDRATE Serial: indica o baudrate da serial, podendo ser:
0: 9600 bps;
1: 38400 bps;
2: 57600 bps;
3: 115200 bps;
• Teste Periódico: tempo do teste que é realizado periodicamente dos escravos para o mestre, em
segundos;

Módulo LoRaMESH Radioenge - Manual de utilização 18


9 LISTA DE COMANDOS DETALHADA

• Máscara de configuração: máscara binária para configuração do rádio, válida unicamente no


mestre:
◦ bit 0: caso seja configurado como 1, todos os pacotes de teste periódico recebidos pelo
mestre serão enviados para a serial de comandos;
◦ bit 1: caso seja configurado como 1, o mestre responderá de forma automática os pacotes
com os comandos de 0x02 até 0x0A;
Demais bits são de uso reservado para versões futuras.

Módulo LoRaMESH Radioenge - Manual de utilização 19


9 LISTA DE COMANDOS DETALHADA

9.6 Configuração de GPIO (0xC2)


O comando 0xC2 permite configurar ou operar (leitura ou escrita) um pino especı́fico de GPIO
disponı́vel, dependendo do subcomando utilizado. Todos os GPIOs disponı́veis podem ser utilizados
como entrada ou saı́da digital. No caso da entrada analógica (ADC de 12 bits), apenas os pinos GPIO5
e GPIO6 podem ser configurados como tal.

• Pino: valor do GPIO (0,1,2...) que será configurado ou operado. Pode assumir valores entre 0 e
7, relativos aos GPIO0 (0x00) a GPIO7 (0x07).
• PULL: indica o estado do resistor interno. Pode assumir os valores 0, 1 ou 2 conforme abaixo:
◦ 0x00: desabilitado;
◦ 0x01: pull up;
◦ 0x02: pull down.
• INOUT: indica o tipo do GPIO. Pode assumir os valores 0, 1 ou 3, conforme abaixo:
◦ 0x00: entrada digital;
◦ 0x01: saı́da digital;
◦ 0x03: entrada analógica (GPIO5 ou GPIO6 apenas).
• NÍVEL: indica o nı́vel lógico de saı́da no comando de escrita. Pode assumir os valores 0 ou 1,
conforme abaixo:
◦ 0x00: nı́vel lógico baixo;
◦ 0x01: nı́vel lógico alto.
• Erro: o campo erro na resposta indica se a operação foi bem sucedida (0x00) ou não (0x01). Caso
não tenha sido, a resposta virá com as posições Pino, PULL e INOUT zeradas. Caso contrário,
virá com as configurações que foram salvas.

9.6.1 Configuração (subcomando 0x02)

Envio
Byte 0 1 2 3 4 5 6 7 8
ID ID CRC CRC
Dado 0xC2 0x02 Pino PULL INOUT
(LSB) (MSB) (LSB) (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7 8 9
ID ID CRC CRC
Dado 0xC2 0x02 Erro Pino PULL INOUT
(LSB) (MSB) (LSB) (MSB)

Módulo LoRaMESH Radioenge - Manual de utilização 20


9 LISTA DE COMANDOS DETALHADA

9.6.2 Leitura (subcomando 0x00)


Realiza a leitura de um pino configurado tanto como analógico quanto digital. A diferenciação é
indicada na resposta do comando.

Envio
Byte 0 1 2 3 4 5-6 7 8
Dado ID (LSB) ID (MSB) 0xC2 0x00 Pino 0x00 CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 4 5 6-7 8 9
CRC CRC
Dado ID (LSB) ID (MSB) 0xC2 0x00 Erro Pino Payload
(LSB) (MSB)

O campo Payload traz o resultado da leitura do pino especificado.

Payload

Bit 15 14-12 11-0


Dado An/Dig. RSV Leitura

• An/Dig: indica se a leitura é digital (0x01) ou analógica (0x00).

• Leitura: caso a leitura seja do tipo analógica, ela variará entre 0 e 4095, onde o primeiro valor
representa 0 V e o segundo, a tensão de alimentação do microcontrolador, a qual depende da
configuração do regulador (com ou sem bypass). Para o caso de leitura digital, o campo leitura
poderá assumir apenas dois valores: 0 para nı́vel lógico baixo ou 1 para nı́vel lógico alto.

9.6.3 Escrita (subcomando 0x01)


Envia o nı́vel lógico desejado para um pino configurado como saı́da

Envio
Byte 0 1 2 3 4 5 6 7 8
CRC CRC
Dado ID (LSB) ID (MSB) 0xC2 0x01 Pino NÍVEL 0x00
(LSB) (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7 8
Dado ID (LSB) ID (MSB) 0xC2 0x01 Erro 0x00 NÍVEL CRC (LSB) CRC (MSB)

Módulo LoRaMESH Radioenge - Manual de utilização 21


9 LISTA DE COMANDOS DETALHADA

9.7 Diagnóstico (0xE7)


Envia requisição de informações de diagnóstico, como temperatura do chip e tensão de alimentação.

Envio
Byte 0 1 2 3-5 6 7
Dado ID (LSB) ID (MSB) 0xE7 0x00 CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 4 5 6
Temp. Temp. Temp. Tensão
Dado ID (LSB) ID (MSB) 0xE7
mı́nima atual máxima mı́nima

7 8 9-14 15 16-26 27 28
Tensão Tensão
RSD 0x02 RSD CRC (LSB) CRC (MSB)
atual máxima

• As temperaturas são dadas em ºC com valores inteiros.


• As tensões são dadas em Vcc x 10. Por exemplo, 3,3 V é representado pelo valor inteiro 33.

9.8 Ruı́do (0xD8)


Retorna o valor do ruı́do mı́nimo, máximo e médio observado pelo rádio no canal atual.

Envio
Byte 0 1 2 3-5 6 7
Dado ID (LSB) ID (MSB) 0xD8 0x00 CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7
ID ID Ruı́do Ruı́do Ruı́do CRC CRC
Dado 0xD8
(LSB) (MSB) mı́nimo médio máximo (LSB) (MSB)

O ruı́do é medido em dBm, sendo indicado apenas o valor em módulo, pois é uma variável sempre
negativa. Assim, caso um dos campos de ruı́do retorne, por exemplo, 0x73, o valor do ruı́do será na
realidade -115 dBm.

Módulo LoRaMESH Radioenge - Manual de utilização 22


9 LISTA DE COMANDOS DETALHADA

9.9 RSSI (0xD5)


Este comando permite verificar a qualidade do enlace entre dois rádios. Obviamente, por ser uma
rede MESH, podem existir diversos saltos entre o mestre e o rádio destino. Este comando retorna os
nı́veis de sinal recebidos (ida e volta) apenas do último salto entre o destino e o rádio que se comunica
diretamente com ele, cujo ID está indicado no campo Gateway.
Novamente, o valor indicado para a potência de nı́vel é em dBm com o valor em módulo, pois a
medida real é sempre um valor negativo. Assim, caso um dos campos de RSSI seja 0x80, por exemplo,
o valor real medido no receptor será de -128 dBm.

Envio
Byte 0 1 2 3 4 5-7 8 9
Dado ID (LSB) ID (MSB) 0xD5 0x01 0x02 0x00 CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 4 5
Dado ID (LSB) ID (MSB) 0xD5 GW (LSB) GW (MSB) RSSI IDA

6 7 8 9 10 11 12
RSSI VOLTA SNR IDA SNR VOLTA RSV RSV CRC (LSB) CRC (MSB)

• GW: ID do rádio que está se comunicando com o destino (Gateway);

• RSSI IDA: valor em módulo e em dBm da potência de sinal recebida no rádio destino;
• RSSI VOLTA: valor em módulo e em dBm da potência de sinal recebida no Gateway;
• SNR IDA: relação sinal-ruı́do medida no receptor do rádio destino. É medido em dB;
• SNR VOLTA: relação sinal-ruı́do medida no receptor do Gateway. É medido em dB.

Módulo LoRaMESH Radioenge - Manual de utilização 23


9 LISTA DE COMANDOS DETALHADA

9.10 Traça rota (0xD2)


Indica os IDs dos rádios que são utilizados na rota de comunicação do mestre com o rádio destino.
O tamanho da resposta depende da quantidade de saltos necessários para alcançar o destino.

Envio
Byte 0 1 2 3-5 6 7
Dado ID (LSB) ID (MSB) 0xD2 0x00 CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 4 ... N+5 N+6


Dado ID (LSB) ID (MSB) 0xD2 ID1 (LSB) ID1 (MSB) ... CRC (LSB) CRC (MSB)

9.11 Teste periódico (0x01)

Pacote recebido no mestre


Byte 0 1 2 3 4 5 6 7
Dado ID (LSB) ID (MSB) 0x01 TIPO UID (MSB) UID UID UID (LSB)

8 9 10 11 12 13
Tensão Temp RSV SEQ CRC (LSB) CRC (MSB)

• TIPO: pode valer 0, 1 ou 2, conforme abaixo:


◦ 0x00: rádio resetou;
◦ 0x01: teste normal;
◦ 0x02: perdeu a comunicação.

• UID: Unique ID/NS do rádio escravo;


• Tensão: tensão de alimentação do rádio.

As informações recebidas são as do rádio escravo que enviou o pacote de teste periódico.

Módulo LoRaMESH Radioenge - Manual de utilização 24


9 LISTA DE COMANDOS DETALHADA

9.12 Configuração de tempo periódico (0xCC)


Comando de leitura ou gravação do tempo de teste periódico, sendo feito apenas no mestre. O tipo
da operação é controlada pelo subcomando. O tempo de teste periódico é indicado em segundos.

9.12.1 Leitura (subcomando 0x02)

Envio
Byte 0 1 2 3 4-5 6 7
Dado ID (LSB) ID (MSB) 0xCC 0x02 0x00 CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7
ID ID Teste Periódico Teste Periódico CRC CRC
Dado 0xCC 0x02
(LSB) (MSB) (LSB) (MSB) (LSB) (MSB)

9.12.2 Escrita (subcomando 0x01)

Envio
Byte 0 1 2 3 4 5 6 7
ID ID Teste Periódico Teste Periódico CRC CRC
Dado 0xCC 0x01
(LSB) (MSB) (LSB) (MSB) (LSB) (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7
ID ID Teste Periódico Teste Periódico CRC CRC
Dado 0xCC 0x01
(LSB) (MSB) (LSB) (MSB) (LSB) (MSB)

Módulo LoRaMESH Radioenge - Manual de utilização 25


9 LISTA DE COMANDOS DETALHADA

9.13 Configuração de modo de Classe e interface transparente (0xC1)


Comando para configuração ou leitura do modo de operação do rádio e também do comando para
uso da interface transparente. O tipo da operação é controlada pelo subcomando utilizado.

9.13.0.1 Modo de operação (subcomando 0x00)


Comando de configuração:

Envio
Byte 0 1 2 3 4 5 6 7
CRC CRC
Dado ID (LSB) ID (MSB) 0xC1 0x00 CLASSE JANELA
(LSB) (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7 8
ID ID CRC CRC
Dado 0xC1 0x00 ERRO CLASSE JANELA
(LSB) (MSB) (LSB) (MSB)

• ERRO: indica se a configuração foi bem sucedida (0x00) ou não (0x01);


• CLASSE: indica a Classe a ser configurada. Pode assumir os valores 0 ou 2, conforme abaixo:
◦ 0x00: Classe A;
◦ 0x02: Classe C.
• JANELA: Indica o tempo em que o receptor ficará ligado após acordar o rádio (válido apenas
para Classe A). Pode assumir os valores 0, 1 ou 2 conforme abaixo:
◦ 0x00: 5s;
◦ 0x01: 10s;
◦ 0x02: 15s.

A leitura pode ser feita colocando ambos, CLASSE e JANELA, como 0xFF.

9.13.1 Comando para interface transparente (subcomando 0x01)

Envio
Byte 0 1 2 3 4 5 6
Dado ID (LSB) ID (MSB) 0xC1 0x01 TRANSP CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7
Dado ID (LSB) ID (MSB) 0xC1 0x01 ERRO TRANSP CRC (LSB) CRC (MSB)

• ERRO: indica se a configuração foi bem sucedida (0x00) ou não (0x01);


• TRANSP: comando a ser interpretado como direcionado para a interface transparente. Deve
assumir um valor entre 0x02 e 0x31, com estes inclusos.

A leitura pode ser feita colocando TRANSP como 0xFF.

Módulo LoRaMESH Radioenge - Manual de utilização 26


9 LISTA DE COMANDOS DETALHADA

9.14 Repasse de comando para outro rádio (0xEF)


Este comando repassa um subcomando de um rádio para outro no modo ponto a ponto. É útil
quando queremos forçar a comunicação entre um escravo A e B.

Envio
Byte 0 1 2 3 4
ID (LSB) ID (MSB)
Dado ID (LSB) ID (MSB) 0xEF do rádio do rádio
intermediário intermediário
5 6 N+6 N+7 N+8 N+9
Comando CRC (LSB) CRC (MSB)
a ser PAYLOAD do comando do comando CRC (LSB) CRC (MSB)
repassado repassado repassado

Resposta

Byte 0 1 2 3 4 5
Endereço
ERRO
Dado ID (LSB) ID (MSB) 0xEF SUBCOMANDO sendo gravado
(gravação)
(LSB)
6 7 8 9 10 11 12
Endereço
Banco ERRO CRC CRC
sendo gravado 0x55 0x55
Desativado (CRC) (LSB) (MSB)
(MSB)

• PAYLOAD: N bytes do comando a ser repassado.

Módulo LoRaMESH Radioenge - Manual de utilização 27


9 LISTA DE COMANDOS DETALHADA

9.15 Carrega FW (Loader) e Apaga banco (0xEB)


9.15.1 Carrega FW (subcomando 0x00)

Envio
Byte 0 1 2 3 4 5 6
Dado ID (LSB) ID (MSB) 0xEB 0x00 TIPO TAMANHO END (LSB)
7 8 9-14 15 16 17 18
CRC (LSB) CRC (MSB)
END (MSB) DADO #1 ... CRC CRC
Firmware Firmware

Resposta

Byte 0 1 2 3 4 5 6
Endereço Endereço
ERRO
Dado ID (LSB) ID (MSB) 0xEB 0x00 sendo sendo
(Gravação)
gravado (LSB) gravado (MSB)
7 8 9 10 11 12
Banco ERRO CRC CRC
0x55 0x55
Desativado (CRC) (LSB) (MSB)

9.15.2 Apaga banco (subcomando 0x01)

Envio
Byte 0 1 2 3 4 5 6
Dado ID (LSB) ID (MSB) 0xEB 0x01 TIPO TAMANHO END (LSB)
7 8 9-14 15 16 17 18
CRC FW CRC FW
END (MSB) DADO #1 ... CRC CRC
(LSB) (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7 8
ERRO CRC CRC
Dado ID (LSB) ID (MSB) 0xEB 0x05 RSV RSV
(Gravação) (LSB) (MSB)

• TIPO:
◦ 0x00: normal;
◦ 0x01: segmento.
• ERRO (Gravação): indica se a gravação foi bem sucedida (0x00) ou não (>0x01);
• ERRO (CRC): indica se houve erro de CRC (0x02) ou não (0x00).

Módulo LoRaMESH Radioenge - Manual de utilização 28


9 LISTA DE COMANDOS DETALHADA

9.16 Ativa Banco (0xEA)


Função que ativa a atualização do firmware.

Envio
Byte 0 1 2 3 4 5 6 7
CRC FW CRC FW
Dado ID (LSB) ID (MSB) 0xEA 0x00 CRC (LSB) CRC (MSB)
(LSB) (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7 8 9
ID ID Banco Banco ERRO CRC CRC
Dado 0xEA 0x55 0x55
(LSB) (MSB) Ativado Desativado (CRC) (LSB) (LSB)

• ERRO (CRC): indica se houve erro de CRC (0x02) ou não (0x00).

Módulo LoRaMESH Radioenge - Manual de utilização 29


9 LISTA DE COMANDOS DETALHADA

9.17 Apaga Banco (0xE9)

Envio
Byte 0 1 2 8 9
Dado ID (LSB) ID (MSB) 0xE9 CRC(LSB) CRC(LSB)

Resposta

Byte 0 1 2 3 4 5 6 7 8
Dado ID (LSB) ID (MSB) 0xE9 0x05 ERRO 0x00 0x00 CRC (LSB) CRC (MSB)

• ERRO: indica se a configuração foi bem sucedida (0x00) ou não (>0x00);

Módulo LoRaMESH Radioenge - Manual de utilização 30


9 LISTA DE COMANDOS DETALHADA

9.18 Canal Serial (0xD9)


Seta canal de operação do rádio pela interface serial.

Envio
Byte 0 1 2 3 5 6
Dado ID (LSB) ID (MSB) 0xD9 CANAL CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 5 6
Dado ID (LSB) ID (MSB) 0xD9 CANAL CRC (LSB) CRC (MSB)

Módulo LoRaMESH Radioenge - Manual de utilização 31


9 LISTA DE COMANDOS DETALHADA

9.19 Ruı́do (0xD8)


Retorna o valor do ruı́do ouvido pelo rádio selecionado.

Envio
Byte 0 1 2 3 5
Dado ID (LSB) ID (MSB) 0xD8 CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 4 5 6 7
ID ID RSSI RSSI RSSI CRC CRC
Dado 0xD8
(LSB) (MSB) (Mı́n.) (Med.) (Máx.) (LSB) (MSB)

Módulo LoRaMESH Radioenge - Manual de utilização 32


9 LISTA DE COMANDOS DETALHADA

9.20 Rota (0xD3)


Define a rota de comunicação estática com um determinado rádio.

Envio
Byte 0 1 2 3 4 5 6
Dado ID (LSB) ID (MSB) 0xD3 SUBCOMANDO N ID1 (LSB) ID1 (MSB)
7 8 10 5+N*2 6+N*2
ID2 (LSB) ID2 (MSB) ... CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 4 5 6
Dado ID (LSB) ID (MSB) 0xD3 SUBCOMANDO N ID1 (LSB) ID1 (MSB)
7 8 10 5+N*2 6+N*2
ID2 (LSB) ID2 (MSB) ... CRC (LSB) CRC (MSB)

• ID (LSB) e ID (MSB): ID do rádio que está sendo roteado. Sempre manda par ao rádio mestre.
• SUBCOMANDO:
◦ 0x01: escreve rota;
◦ 0x02: consulta.
• N: número de saltos.
• ID1 (LSB): primeiro rádio (após o mestre).

• ID2 (LSB): N-ésimo rádio.

Módulo LoRaMESH Radioenge - Manual de utilização 33


9 LISTA DE COMANDOS DETALHADA

9.21 Grava senha (0xCD)


Configura a senha do rádio selecionado.

Envio
Byte 0 1 2 3 4-7 8-11 12 13
ID ID CRC CRC
Dado 0xCD SUBCOMANDO Senha nova Senha antiga
(LSB) (MSB) (LSB) (MSB)

• SUBCOMANDO:
◦ 0x01: sem trava senha;
◦ 0x02: com trava senha;
◦ 0x03: teste de senha;
◦ 0x04: grava via RF sem trava senha.

Resposta

Byte 0 1 2 3 4-6 7 8
Dado ID (LSB) ID (MSB) 0xCD SUBCOMANDO Trava senha CRC (LSB) CRC (MSB)

• SUBCOMANDO:
◦ 0x00: senha ok, sem trava.

Módulo LoRaMESH Radioenge - Manual de utilização 34


9 LISTA DE COMANDOS DETALHADA

9.22 ECO (0xA0)


A função deste comando é efetuar testes de rede com pacotes de dados grandes.
O escravo retorna o mesmo pacote recebido automaticamente.

Envio
Byte 0 1 2 3 N+4 N+5
Dado ID (LSB) ID (MSB) 0xA0 N-BYTES CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3 N+4 N+5


Dado ID (LSB) ID (MSB) 0xA0 N-BYTES CRC (LSB) CRC (MSB)

Módulo LoRaMESH Radioenge - Manual de utilização 35


9 LISTA DE COMANDOS DETALHADA

9.23 Variáveis dinâmicas (0x88)


Configura as variáveis dinâmicas de funcionamento.

Envio
Byte 0 1 2 3-5 6 7
Dado ID (LSB) ID (MSB) 0x88 SUBCOMANDO CRC (LSB) CRC (MSB)

Resposta

Byte 0 1 2 3-5 6 7
Dado ID (LSB) ID (MSB) 0x88 SUBCOMANDO CRC (LSB) CRC (MSB)

• SUBCOMANDO:
◦ 0x01: zera tabela de repetição;
◦ 0x02: desliga Spread Spectrum (só para o Mestre);
◦ 0x03: religa o Spread Spectrum (só para o Mestre);
◦ 0x04: reset do rádio;
◦ 0x05: vai para o canal de guarda e força readquirir sincronismo;
◦ 0x06: liga modo ponto a ponto (só para Mestre; desliga automaticamente no reset);
◦ 0x07: liga modo ponto a ponto (só para Mestre).

Módulo LoRaMESH Radioenge - Manual de utilização 36


9 LISTA DE COMANDOS DETALHADA

9.24 LEDs (0x83)


A função deste comando é acender os leds para teste em produção, porém, pode ser usado em
qualquer momento.
O estado dos leds é uma combinação binária, ou seja, é necessário configurar os bits para acender
os leds.

Envio
Byte 0 1 2 3 4 5
Dado ID (LSB) ID (MSB) 0x83 ESTADO LEDS CRC (LSB) CRC (MSB)

Envio
Byte 0 1 2 3 4 5
Dado ID (LSB) ID (MSB) 0x83 ESTADO LEDS CRC (LSB) CRC (MSB)

• ESTADO LEDS:
◦ 0x01: LED TX;
◦ 0x02: LED RX;
◦ 0x04: LED ST.

Módulo LoRaMESH Radioenge - Manual de utilização 37


9 LISTA DE COMANDOS DETALHADA

9.25 Comando de aplicação (<0x80)


9.25.1 Configuração de SENHA (0xCD)
Comando para configuração de SENHA de um rádio. Ele é aceito apenas localmente pela serial.

Envio
Byte 0 1 2 3 4 5 6
Dado ID (LSB) ID (MSB) 0xCD 0x04 SENHA (LSB) SENHA SENHA

7 8 9
SENHA (MSB) CRC (LSB) CRC(MSB)

Resposta

Byte 0 1 2 3 4 5 6
Dado ID (LSB) ID (MSB) 0xCD 0x04 RSV CRC (LSB) CRC (MSB)

SENHA é um valor inteiro de até 9 dı́gitos separado em 4 bytes. Por exemplo, se a SENHA a ser
configurada for 12345678 e o ID do rádio, 6, o comando a ser enviado pela serial será: 06 00 CD 04 4E
61 BC 00 4E A1.

Módulo LoRaMESH Radioenge - Manual de utilização 38


9 LISTA DE COMANDOS DETALHADA

9.25.2 Comando de aplicação (<0x80)


Comandos de aplicação são aqueles entre 0x02 e 0x7F (com estes inclusos). Uma vez recebidos
pelo rádio, eles são enviados diretamente para a serial. No caso do comando configurado como inter-
face transparente, o payload do pacote também é encaminhado para a interface transparente, conforme
especificado na Seção 6. O tamanho máximo do payload é de 232 bytes

Atenção
Comandos de aplicação, diferentemente dos comandos de operação (comandos descritos acima),
não possuem respostas automáticas. Assim, a aplicação ligada ao rádio deve necessariamente
enviar as respostas para todas os comandos recebidos (com excessão do comando 0x01 ou do
0x02 até 0x0A quando configurada a resposta automática).

Módulo LoRaMESH Radioenge - Manual de utilização 39


10 CARACTERÍSTICAS FÍSICAS

10 Caracterı́sticas Fı́sicas
10.1 Dimensões

Figura 6: Vistas e dimensões do módulo

Dimensões do Módulo

Cota Tamanho [mm] Cota Tamanho [mm]


A 32,9 I 6,10
B 21,6 J 3,24
C 13,0 K 1,98
D 17,8 L 1,62
E 1,15 M 9,80
F 1,78 N 6,00
G 2,54 O 6,58
H 7,37 P 20,0

Módulo LoRaMESH Radioenge - Manual de utilização 40


10 CARACTERÍSTICAS FÍSICAS

10.2 Footprint recomendado


10.2.1 SMD
O footprint apresentado abaixo pode ser obtido na página do EndDevice Radioenge no formato
compatı́vel com o Altium.

Figura 7: Footprint recomendado e dimensões

Dimensões do Módulo

Cota Tamanho [mm] Cota Tamanho [mm]


A 21,6 E 7,37
B 2,54 F 6,10
C 1,52 G 5,08
D 2,29 H 2,40

Módulo LoRaMESH Radioenge - Manual de utilização 41


10 CARACTERÍSTICAS FÍSICAS

10.2.2 PTH

Figura 8: Footprint para utilizar os pinos

Tabela 16: Dimensões do Módulo


Cota Tamanho [mm] Cota Tamanho [mm]
A 33,9 E 1,70
B 21,6 F 2,54
C 1,70 G 1,90
D 1,00 H 7,37

Módulo LoRaMESH Radioenge - Manual de utilização 42


11 CRC 16

11 CRC 16
11.1 Linguagem C
Os dois bytes de CRC são calculados sobre todos os demais bytes através do algoritmo em C apre-
sentado no quadro abaixo e são dispostos na forma Little-Endian (LSB:MSB).

/** * @brief Calcula CRC16.


* @param data in: Ponteiro para o buffer contendo os dados.
* @param length: Tamanho do buffer
* @retval Valor de 16 bits representando o CRC16 do buffer fornecido. */

#define CRC POLY (0xA001)


uint16 t CalculaCRC(uint8 t* data in, uint32 t length)
{
uint32 t i;
uint8 t bitbang, j;
uint16 t crc calc;

crc calc = 0xC181;


for(i=0; i<length; i++)
{
crc calc ˆ= ((uint16 t)data in[i]) & 0x00FF;

for(j=0; j<8; j++)


{
bitbang = crc calc;
crc calc >>= 1;

if(bitbang & 1)
{
crc calc ˆ= CRC POLY;
}
}
}
return crc calc;
}

Módulo LoRaMESH Radioenge - Manual de utilização 43


11 CRC 16

11.2 Python

def crc(buffer, tamanho):


bitbang = 0
crc calc = semente crc
for x in range(0, tamanho):
crc calcˆ= buffer[x] & 0x00FF
for j in range(0, 8):
bitbang=crc calc
crc calc>>=1
if(int(bitbang) & 1):
crc calcˆ=polinomio crc16
return crc calc

Uso da função de cálculo do CRC16.

#Calcula o verificador CRC16


ID = 254
id lsb=int(ID)%256
id msb=int(ID)/256
byte funcao = 256
envio=bytearray([int(id lsb), int(id msb), byte funcao, 0, 0, 0, 0, 0, 0, 0, 0])
crc calc = crc((envio), len(envio)-2)
crc lsb = crc calc%256 #separa o CRC calculado em byte LSB
#print(crc lsb)
crc msb = int(crc calc / 256) & 0xFF #separa o CRC calculado em byte MSB

Módulo LoRaMESH Radioenge - Manual de utilização 44


11 CRC 16

11.3 Java / Android

public class CRC {


private static final int CRC POLY = 0xA001; // polinômio utilizado para o cálculo
public static int CalculaCRC(byte [] b, int tam)
{
int bitbang,i,j;
int CRC calc;

CRC calc = 0xC181;

for(i=0;i<tam;i++)
{
CRC calc ˆ= ((int) (b[i])) & 0x00FF;
for(j=0;j<8;j++)
{
bitbang = CRC calc;
CRC calc >>= 1;
int c = bitbang & 0x01;
if((c& 0x00FF) ==1)
{
CRC calc ˆ= CRC POLY;
}
}
}
return CRC calc;
}

Uso da função de cálculo do CRC-16

arrayCmd = new byte[](byte) 0xFE, (byte) 0x00, (byte) 0x88, (byte) 0x04, (byte) 0x00,
(byte) 0x00, (byte) 0x15, (byte) 0xB8;
int id = Integer.parseInt(idRadioET.getText().toString()) %256;
arrayCmd[0]= (byte) id;
id = Integer.parseInt(idRadioET.getText().toString()) / 256;
arrayCmd[1]= (byte) id;
arrayCmd = CRC.Calcula Add(arrayCmd, arrayCmd.length - 2);

Módulo LoRaMESH Radioenge - Manual de utilização 45


12 CONTATO

12 Contato
• WhatsApp:

+55 (41) 3052-9444


• Site: https://www.radioenge.com.br/contato/

Módulo LoRaMESH Radioenge - Manual de utilização 46

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy