Meshcom
O Meshcom é de fato um projeto emocionante do Instituto de Cidadãos Cidadãos para Comunicação Espacial e Sem fio (www.icsw.org), com o objetivo de criar uma ferramenta de comunicação resiliente e baseada em texto para operadores de rádio amadores. Ele utiliza a tecnologia de modulação Lora ™ e o protocolo APRS para estabelecer uma rede de malha na banda de 70 cm. Os principais objetivos da Meshcom são realizar um sistema de mensagens fora da rede conectado com baixo consumo de energia e hardware econômico. A implementação técnica é baseada nos módulos de rádio Lora ™, que podem transmitir mensagens, posições, medições e mais longas distâncias com baixa potência de transmissão. Os módulos Meshcom podem ser conectados para formar uma rede de malha ou estabelecer uma rede de mensagens via gateways Meshcom, idealmente conectada através do Hamnet.
Funções básicas:
- Cada nó é identificado por um Rádio Amador Calling (com SSID opcional)
- As mensagens de teste curtas podem ser enviadas para todos (todos), com ACK do servidor/gateway
- As mensagens de texto curtas podem ser enviadas diretamente para outro design de calls, com o ADOKLEGEMENTE DE ENDERENDO
- Alguns nós podem ser configurados para atuar como gateway para hamnet ou internet (wifi)
- Cada nó deve atuar como um repetidor para todas as outras mensagens de Meshcom no ar
- Servidores e gateways podem ter algumas funcionalidades para evitar a transmissão de trafica redundante
- Os nós enviarão automaticamente as mensagens de status e posicionarão
- Nós com sensores opcionais enviarão dados WX-Data ou Telemetria periodicamente
- As mensagens serão diployed em tela OLED pequena ou via smartphone ou tablet conectado BT ou via USB Connected Serial Console
O principal objetivo é ter uma rede de malha auto-rígida e auto-ração, que pode ser aprimorada por outros componentes do serviço de rádio amador, como Hamnet (rede de IP), servidores centralizados ou distribuídos. Isso aumentará a cobertura para todos os continentes e permitirá a interconexão para outros modos e serviços (APRS, WinLink, DMR, Tetra-SDS, SOTA-WATCH, POCSAG, VARA-AC,…) construindo uma comunicação unificada PLATTform. Particular útil é Meshcom for Emergency Communication (EMCOM) em caso de desastre ou blecaute. Em todos os termos e regras de USecases de uso do serviço de rádio amador (estritamente não comercial, experimental), deve ser respeitado. Este é um projeto de ciência cidadã aberta que deve ajudar a promover o serviço de rádio amador dentro da acadêmica e da sociedade.
Frequência na região:
UE: 433.175 Reino Unido: TBD Nordic: TBD EUA: 433.175 Afrika: 433.175 Ásia/Pacífico: TBD
Parâmetro Lora:
SF: 11 Bandwith: 250kHz CR: 4/6
APRS-protokoll:
Documento: http://www.aprs.org/doc/aprs101.pdf Endereço: call-ssid, fonte, alvo, digi1-5 Telemetria: dados, fórmula, unidades,… clima: temp, pressão, chuva,… O objetivo deve ser totalmente compatível com aprs.fi
Hardware:
Esp32/Lora-Modul, Rak-Wisblock, ESP32-DEV4/E22-LORA, ...
Firmware Meshcom 4.0
Meshcom é um projeto para trocar mensagens de texto por meio de módulos de rádio Lora. O objetivo principal é realizar mensagens fora da rede em rede com baixa potência e hardware de baixo custo.
A abordagem técnica é baseada no uso de módulos de rádio Lora que transmitem mensagens, posições, valores medidos, telecontrole e muito mais com baixa potência de transmissão em longas distâncias. Os módulos Meshcom podem ser combinados para formar uma rede de malha, mas também podem ser conectados a uma rede de mensagens via gateways MESHCOM, que são idealmente conectados via Hamnet. Isso permite que as redes de rádio Meshcom, que não estão conectadas entre si via rádio, para se comunicar.
Protocolo Meshcom
O Meshcom 4.0 usa a referência do protocolo APRS para dados de origem, destino, digipeater e carga útil, conforme definido para APRs. (APRS101.PDF APRS Referência de protocolo Versão 1.0 2000, página 12) Meshcom 4.0 Verwendet für Die Payload-Daten Das Ax.25 Protokoll, Wie es für APRS definitivamente (APRS101.PDF APRS Referência de protocolo versão 1.0 2000, Seite 12)
Termos:
- Identificador - Identificador de tipo de dados APRS
- ID da mensagem-LSB- 32 bits-> MSB Valor exclusivo
- Max-hop-máx. 7 (máscara 0x07) é usado o padrão 5, o que permite outras 4 transferências.
- 0x80 - Id sobre se essa mensagem já foi enviada através do servidor MQTT
- 0x40 - Identificação de que esta mensagem deve ser suplementada para cada malha com o sinal de chamada da estação de transmissão. Para fins de medição e controle.
- Endereço de origem - Este campo contém o Calling e o SSID da estação de transmissão
- Endereço de destino - Este campo pode conter um indicativo de chamada de destino da APRS ou
- "*" Para transmissões para todos.
- DigiPeater - pode haver 0 a 8 digipeater CallinSigns neste campo. NOTA: Esses endereços de digipeatro podem ser substituídos por um caminho genérico de digipeatro APRS (especificado pelo SSID do endereço de destino).
- Carga útil - este campo contém dados de transporte. O primeiro caractere deste campo é o identificador de tipo de dados do APRS, que indica que tipo de dados de carga útil segue.
- ID de hardware - veja a tabela abaixo
- Índice de Lora -Modulação - Veja a Tabela abaixo
- Sequência de verificação de quadros - o FCS é uma sequência de 16 bits usados para verificar a integridade de um quadro recebido.
Mensagens:
- Mensagens de texto:
- : |! Mmmmmmmm |! Hh | oe0xxx-99 |>*|: | mensagem de texto |! 00 |! Hw |! Mod | fcs#
- Mensagens de texto com caminho da malha:
- : |! Mmmmmmmm |! Hh | oe0xxx-99, oe3xxx-12, oe3yyy-12 |>*|: | mensagem de texto |! 00 |! Hw |! Mod | fcs#
- Relatórios de posição:
- ! |! Mmmmmmmm |! Hh | oe0xxx-99 |>*|! | 4800.00 | n |/| 01600.00 | e |#| Bbb /a = hhhh |! 00 |! Hw |! Mod | fcs#
- Lenda:
- | ... Somente serve para mostrar as separações aqui no texto
Elementos da mensagem
- MedLution ID :! @ ... texto, posição, mensagem meteorológica
- Mmmmmmmm ID da mensagem de 32 bits LSB-> msb
- HH Max-Hop Máscara de bits de 8 bits 0x07
- Mensagem via máscara de bit do servidor MQTT 0x80
- Insira o caminho na malha (com vírgula como separação) máscara de bit 0x40
- 4800,00 graus de latitude/decimal x 100
- 01600.00 Longidude graus/decimal x 100
- N North / South Char
- / APRS Symbol Group (/ ou) char
- EE AST / WEST CHAR
- # Símbolo aprs char
- Status da bateria BBB em % Int 0 - 100
- /A = HHHH GPS Nível do mar (M) Int 0 - 9999
- A conclusão da mensagem fecha o intervalo de mensagens do APRS de 0x00
- HW ... ID do tipo de hardware
- Mod ... ID de modulação lora
- Soma de verificação do FCS#, incluindo identificador e 0x00 da conclusão de mensagens não assinada int 16 bits
- Informações extras para formar mheard
- GGGGGGGG Gateway ID (apenas para compatibilidade Meshcom 2.0) LSB- MSB-> MSB
- ID de hardware HW de 8 bits (consulte a tabela)
ID de hardware Meshcom
- ID de hardware HW tipo mCU tipo Lora tipo hw nome curto hw versão
- 1 TTGO ESP32 PAXCONTER ESP32 SX1278 TLORA V2
- 2 TTGO ESP32 PAXCONTER ESP32 SX1278 TLORA V1
- 3 TTGO ESP32 PAXCONTER ESP32 SX1278 TLORA V2 1.6
- 4 TTGO T-feixe esp32 sx1278 b-feixe 1.1
- 5 TTGO T-feixe ESP32 SX1268 T-BEAM-1268 1.1 1268
- 6 TTGO T-feixe esp32 SX1262 T-feixe-0,7 0,7
- 7 T-ECHO LORA SX1262 NRF SX1262 T-ECHO
- 8 T-decks EsP32-S3 SX1262 T-DOCK
- 9 WisBlock RAK4631 NRF WISBLOCK NRF RAK4631
- 10 wifi lora 32 v2 esp32 sx1262 heltec-v2-1 v2
- 11 WiFi Lora 32 V1 ESP32 SX1276 HELTEC-V1 V1
- 12 TTGO T-feixe ESP32 SX1278 TBEAM-AXP2101
- 39 ebyte lora e22 esp32 sx1278 ebyte-e22
- 43 WiFi Lora 32 V3 ESP32-S3 SX1262 HELTEC-V3 V3
Índice de Modulações de Meshcom Lora
- 0 Faixa estendida 10-20 FAST
- 1 faixa estendida 10-20 lenta (robusta) 0,275 kbps
- 2 faixa estendida adicional 20-40 lenta (robusta) 0,183 kbps
- 3 faixa normal 5-10 lenta (robusta)
- 4 intervalo normal 5-10 Fast 5.469 kbps
- 5 faixa local 0-5 lenta (robusta)
- 6 faixa local 0-5 Fast 21.875 Kbps
Preparativos para Platform.io VSCODE Plugin
- Instale as estruturas necessárias em plataformas:
- Espressif 32
- Nórdico nrf52 versão 9.6.0 (por enquanto)
- Para adicionar as definições corretas da placa para RAK sem fio RAK4631 Siga estas instruções: https://github.com/rakwireless/wisblock/blob/master/platformio/readme.md
Firmware piscando
Geralmente é feito através do botão Upload no VSCode diretamente.
Esp32 via linha de comando:
- Para esta tarefa, é necessário o esptool. Você pode usar o do Platform.io, localizado no
.platformio/tool-esptoolpy/esptool.py além do Python Venv, que está em: .platformio/penv/bin/python . O diretório .platformio oculto está localizado no seu diretor de usuário.
Caso contrário, se ainda não estiver instalado, instale uma versão Python recente. Então você precisa obter o ESPTOOL via Pip: pip install esptool
- O arquivo firmware.bin, bootloader.bin e partition.bin é escrito após a compilação no diretório
.pio/build oculto do diretório de repositório Meshcom-Firmware.
Se você atualizar apenas o firmware, deseja apenas o arquivo correspondente.
Abrem onde piscar cada um dos arquivos:
| Endereço | Arquivo |
|---|
| 0x1000 | bootloader.bin |
| 0x8000 | partitions.bin |
| 0x10000 | firmware.bin |
Mac: python esptool.py -p /dev/tty.usbserial-<NUMBER> write_flash 0x10000 <PATH-TO-BIN-FILE>/firmware.bin
Linux: o mesmo dispositivo serial em /dev pode ser ttyUSB0 ou similar.
Windows: dispositivo serial geralmente é um com
O firmware pronto para construção também pode ser exibido através da ferramenta online (Chrome, Edge, Opera):
https://oe1kfr.com/esptool/
Apagando o NVS:
Se você deseja limpar as configurações armazenadas no nó:
python esptool.py --port <SERIAL-PORT> erase_region 0x009000 0x005000
RAK4631 via CLI:
Para fazer isso, você precisa do Adafruit nrfutil. Instalação e uso:
https://github.com/adafruit/adafruit_nrf52_nrfutil
RAK4631 via arquivo UF2:
Ao clicar duas vezes no botão no módulo, ele monta um dispositivo USB, onde você pode copiar um arquivo .uf2 no módulo. Para gerar o arquivo, você precisa do seguinte script Python:
https://github.com/microsoft/uf2/blob/master/utils/uf2conv.py
./uf2conv.py <PATH_TO-HEX-FILE> -c -o firmware.uf2 -f 0xADA52840