Manual
Manual
Manual de Utilização
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
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
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.
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).
2 Pinagem
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
3 Especificações
3.1 Especificações de operaçã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.
• 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.
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.
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.
I Amarelo: pisca a cada 1 segundo para indicar que o rádio está com a recepção ativa.
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:
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.
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.
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;
• 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.
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)
Envio
Byte 0 1 2 3-5 6 7
Dado ID (LSB) ID (MSB) 0xE2 0x00 CRC (LSB) CRC (MSB)
Envio
Byte 0 1 2 3-5 6 7
Dado ID (LSB) ID (MSB) 0xD4 0x00 CRC (LSB) CRC (MSB)
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
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;
• 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.
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)
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)
Payload
• 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.
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)
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
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.
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)
• 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.
Envio
Byte 0 1 2 3-5 6 7
Dado ID (LSB) ID (MSB) 0xD2 0x00 CRC (LSB) CRC (MSB)
Resposta
8 9 10 11 12 13
Tensão Temp RSV SEQ CRC (LSB) CRC (MSB)
As informações recebidas são as do rádio escravo que enviou o pacote de teste periódico.
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)
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)
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)
A leitura pode ser feita colocando ambos, CLASSE e JANELA, como 0xFF.
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)
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)
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)
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).
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)
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)
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)
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)
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).
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.
Envio
Byte 0 1 2 3 N+4 N+5
Dado ID (LSB) ID (MSB) 0xA0 N-BYTES CRC (LSB) CRC (MSB)
Resposta
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).
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.
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.
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).
10 Caracterı́sticas Fı́sicas
10.1 Dimensões
Dimensões do Módulo
Dimensões do Módulo
10.2.2 PTH
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).
if(bitbang & 1)
{
crc calc ˆ= CRC POLY;
}
}
}
return crc calc;
}
11.2 Python
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;
}
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);
12 Contato
• WhatsApp: