Esta página detalha os parâmetros adotados pela rede MeshCore no Brasil. Adotar esse padrão é um gesto de colaboração que fortalece a malha para todos dispositivos.
Configuração Geral
| Parâmetro | Valor |
|---|---|
| Predefinição Selecionada | Australia: SA, WA, Brazil |
| Frequência (MHz) | 923.125 |
| Largura de Banda | 62.5 kHz |
| Fator de Espalhamento | 8 |
| Taxa de Codificação | 8 |
| Potência de transmissão (dBm) | 22 |
| Tamanho do Hash do Caminho | 2 bytes |
Explicação
Largura de banda: 62.5 kHz
A largura de banda de 62.5 kHz é mais estreita do que a convenção australiana, sendo a largura que melhor se saiu em nossos testes preliminares durante o estabelecimento da rede MeshCore no Brasil.
Fator de espalhamento: 8
O fator de espalhamento (spreading factor ou SF) define a duração da transmissão. Transmissões mais longas resultam em enlaces mais fortes e distâncias maiores, porém acaba congestionando mais a rede. O valor de SF 8 foi escolhido de modo que fosse longo o suficiente sem prejudicar a malha.
Potência de transmissão: 22 dBm
Este valor equivale a 0,3 W para dispositivos sem amplificadores (Heltec V3, RAK4631, Seeed Xiao) e 1 W para dispositivos como o Heltec V4. Esta é a potência máxima liberada pela ANATEL para a banda de radiação restrita.
Tamanho do hash: 2 bytes
Identificar-se com um hash de 2 bytes (primeiros 4 caracteres da chave pública do dispositivo) previne a colisão de pacotes na nossa rede, que cresceu ao ponto de já observar algumas colisões com 1 byte (onde apenas 255 identificações de dispositivos são possíveis). Em repetidores, você pode acessar e configurar o hash de 2 bytes através da aba Gerenciamento Remoto com esses comandos get path.hash.mode e set path.hash.mode 1
Repetidores
| Parâmetro | Valor |
|---|---|
| Intervalo de anúncio (zero hop) em minutos | 0 (set advert.interval 0) |
| Intervalo de anúncio por inundação | 23 (flood.advert.interval 23) |
| Fator de atraso de TX | 0.5 – Telhados, postes, nível do solo. Poucos vizinhos, alcance local 1.0 – Prédios, torres baixas, morros 2.0 – Montanhas, picos, torres altas com visada de 360° ( set txdelay valor) |
| Fator de atraso de RX | 3 (set rxdelay 3) |
| Nível de detecção de loop | moderate (set loop.detect moderate) |
| Múltiplos avisos de recebimento | ligado (set multi.acks 1) |
| Intervalo de reset do AGC | 300 segundos (set agc.reset.interval 300) |
| Modo do hash de caminho | 2 bytes (set path.hash.mode 1) |
| Regiões | Três regiões seguindo o padrão br, br-estado e br-estado-dddregion def br br-sp br-sp-15 |
Explicação
Intervalo de anúncio (zero hop): 0 minutos
O anúncio zero hop é transmitido apenas para os vizinhos diretos do repetidor, sem ser repetido pelo restante da malha. Porém, o anúncio por inundação (ver próximo item) já é um anúncio de toda forma. Caso você esteja fazendo algum experimento, um valor de 240 minutos é tolerável. O valor é configurado em minutos com o comando set advert.interval 0
Intervalo de anúncio por inundação: 23 horas
O anúncio por inundação (flood advert) é transmitido e então repetido por todos os repetidores que o escutam, propagando a existência do nó por toda a rede. Numa malha em crescimento como a do Brasil, o intervalo de anúncios por inundação deve ser de no mínimo 23 horas, mas idealmente 47 horas. Por não ser múltiplo de 24, evita que o anúncio caia sempre no mesmo horário do dia. Configure com set flood.advert.interval 23.
Fator de atraso de TX: 0.5 / 1.0 / 2.0
O fator de atraso de TX controla quanto tempo o repetidor espera antes de retransmitir um pacote recebido. O atraso é sorteado dentro de uma janela proporcional ao tempo de transmissão do pacote multiplicado pelo fator: valores maiores criam uma janela mais ampla, fazendo o repetidor “ceder a vez” para outros nós que possam retransmitir primeiro. Por isso, a recomendação escala com a posição do repetidor: quanto mais vizinhos ele escuta, mais ele deve esperar, deixando os repetidores locais atenderem suas áreas primeiro e reduzindo colisões e aliviando o trabalho dos repetidores que unem grandes regiões (como Taipas e Japi). Use 0.5 para instalações em telhados, postes e nível do solo (poucos vizinhos, alcance local); 1.0 para prédios, torres baixas e morros; e 2.0 para montanhas, picos e torres altas com visada de 360°. Configure com set txdelay valor.
Fator de atraso de RX: 3
O atraso de RX é um recurso experimental que aplica um pequeno atraso ao processamento de pacotes recebidos com base na força do sinal. Sinais fracos esperam mais, favorecendo naturalmente os caminhos mais limpos da malha. Útil para aumentar a probabilidade de que caminhos com enlaces mais robustos sejam formados, já que nós com maior SNR tenderão a responder primeiro. Configure com set rxdelay 3.
Nível de detecção de loop: moderate
Em malhas densas, um pacote pode acabar em loop, principalmente se houver mais de um dispositivo com o mesmo ID. Com a detecção de loop habilitada, os repetidores rejeitam pacotes de inundação que aparentam estar em loop. O firmware oferece os níveis off, minimal, moderate e strict; o nível moderate equilibra a filtragem de loops sem descartar retransmissões legítimas. Configure com set loop.detect moderate.
Múltiplos avisos de recebimento: 1
Este parâmetro habilita o recurso de “ACKs duplos”: o repetidor envia mais de uma confirmação de recebimento para o mesmo pacote, aumentando a chance de que ao menos uma chegue ao remetente em enlaces com perdas — o que melhora bastante a experiência de administração remota dos repetidores. O valor 1 habilita o recurso (set multi.acks 1).
Intervalo de reset do AGC: 300
Os rádios SX1262 sofrem de um problema conhecido em que o controle automático de ganho (AGC) pode travar ao ouvir um sinal demasiadamente forte, deixando o repetidor “surdo” até ser reiniciado. O reset periódico do AGC cura essa surdez. O valor é em segundos arredondado para baixo em múltiplos de 4; com 300, o rádio zera seu AGC a cada 5 minutos. Configure com set agc.reset.interval 300.
Modo do hash de caminho: 1 (2 bytes)
Como detalhado na seção de rádio, o hash de caminho de 2 bytes expande o espaço de identificação dos repetidores de 255 para 65.535 valores possíveis, prevenindo as colisões de identificação que começamos a observar com o crescimento da rede. O valor 1 ativa o modo de 2 bytes (set path.hash.mode 1).
Regiões definidas: br, br-estado e br-estado-ddd
Definir regiões nos repetidores é o que permite conter o tráfego de flood dentro de fronteiras geográficas coerentes: sem elas, todo advert, mensagem de canal e pacotes de wardriving se propagam indefinidamente por toda a malha interconectada, saturando o tempo de ar até tornar a rede inutilizável. Como o repetidor é o único elemento que decide encaminhar ou descartar um pacote (comparando o transport code do cabeçalho com as regiões que tem configuradas), é nele que a filtragem acontece de fato; o usuário pode escolher o escopo no aplicativo, mas essa escolha só produz efeito se os repetidores do caminho reconhecerem aquele código. Por isso, é importante ter as regiões definidas no seu repetidor, mesmo que você não utilize âmbitos regionais; outros usuários podem utilizá-los. Leia mais sobre âmbitos regionais no artigo Como funcionam as regiões no MeshCore.