Meshtastic® 一個開放原始碼的組織,提供程式用 LoRa 無線裝置來建立傳輸文字訊息的低功率長距離 mesh 網路,存取界面可以是藍牙/Wi-Fi/Ethernet/Serial,不依賴其它通訊平台。
原理:rebroadcast
- 未達 hop limit
- 過濾重複的訊息 (保留最新 30 則嗎?)
- 逾時沒回應重送,最多 3 次。
終點未連上用戶會存大約 30 則最新的訊息。
封包格式:Preamble (16) + LoRa Physical Header (2) + Packet Header (16) + Packet Data (max. 237)
- Preamble:同步訊號頻率好開始傳資料。
- LoRa Physical Header:Packet Length (1) + Sync Word (1)。Sync Word 0x2B 表示是 Meshtastic。
- Packet Header:Destination NodeID (4) + Sender NodeID (4) + Packet ID (4) + Flags (1) + Channel Hash (1) + Padding (2)
- 不加密,便於路由。
- NodeID 是藍牙 MAC 位址後 4-byte,Destination NodeID 都 1 表示廣播。
- Packet ID:和加密有關
- Flags:3-bit Hop Limit,1-bit WantACK,1-bit ViaMQTT。WantACK 決定 reliable 傳送,等候終點回應。廣播行為不同,有收到 rebroadcast 就視為 ACK。
- Channel Hash
- Packet Data:最長 237,不含 protobuf overhead。超過 truncated。237 是因為 + 16 + 2 = 255?
CSMA/CD:傳送前進行 Channel Acitivity Detection (CAD),等候取自 contention window (CW) 的 random slot time。Channel 使用率越高 CW 越大,接收 SNR 越小,CW 越小。
限制 group member, 100 裝置以上。
- 頻率
- 機器位置靠近手機基地台,且有 B8 頻段,可以嘗試 RX Boosted Gain 選項關閉。
沒有留言:
張貼留言