# BX4ACV 的 APRS over LoRa 系統介紹: ## 簡介 傳統的封包無線電中,我們在 FM 上使用 AFSK (Bell 202) 調變傳輸 AX.25 訊框;不過到了 2020 年配合物聯網使用的低成本無線通訊模組變得常見,其中 LoRa 協定特別適合使用於業餘無線電中(有現成的,能運作在 UHF 業餘頻段的模組),於是我們構想透過 LoRa 來進行 APRS 封包的傳輸。 LoRa是一個低功率遠距離的傳輸協定,它可以透過展頻來增強在弱信號狀況下的解碼能力,且對 CW (Continuous Wave) 干擾有一定的免疫能力。 # **目前由於我們發現使用 UART 介面的 LoRa 版相容性不佳所以以下內容要砍掉重練。** ## 專案特色 * 相容性高:我們只有把實體層的傳輸協定改成 LoRa 其他層協定皆與傳統 APRS 無異,因此可以相容現有 APRS 的軟體。 * 成本低廉:追蹤器成本大約台幣一千一有找,而數據機大約台幣五百元有找;如果您在淘寶購買相關零件,成本可以更低(追蹤器成本含運只需約 639 元、數據機含運只需約 501 元)。 * 開源免費:我們的電路圖以及程式碼皆以 GPL 開源條款授權,您可以自由地使用這個專案。 ## 實際運作 我們撰寫了 Arduino 程式,用以模擬 KISS 協定 TNC (Terminal Node Controller) 的運作,並將資料轉送給 LoRa 無線傳輸模組。 Tracker 部份,則是內建了一套固定的 APRS 封包範本,然後將 GPS 定位資訊,方向,速度發射出來。 電腦端的部份可以相容原有的 APRS 軟體。 ## 待完成的坑(硬體方面) - [ ] 設計電路板,以縮小追蹤器體積。 - [ ] 研究數據機穩定性問題,以改善數據機穩定性。 - [ ] 評估 iGate 端接收設備用哪款。 ## 待完成的坑(軟體方面) - [X] 空中速率調整成 9600 bps,以降低碰撞機率。 - [ ] 評估 9600 bps 是否會嚴重犧牲通訊距離。 - [ ] 解決在 ESP32 呼叫GPS Lib 會當機的問題。 - [ ] 加入隨機發射時間,以降低碰撞機率。 - [ ] 改寫追蹤器的程式碼讓程式可讀性增加。 ### 空中 AX.25 訊框格式 與標準 AX.25 大致相同,但省略了 CRC16-CCITT 驗校和(因為 LoRa 模組本身就有資料驗校)。 ## 材料/零件 ### 追蹤器 目前追蹤器為了解決體積過大的問題,我們打算改用 ESP32 來進行開發。 * ESP32 一塊 * GPS 模組 一塊 * 億百特 LoRa 模組(E22-400T30D) 一個 * USB 轉 UART模組一塊(進行模組設定使用,記住!通訊電壓要用 3.3V) * UHF 天線一隻 追蹤器電路圖: ### KISS 數據機 (電腦站台 / iGate / Digipeater 端) * 任何 Arduino 板子 一塊 * 5V / 3.3V 雙向 4 路電平轉換器 一個 * 億百特 LoRa 模組 (E22-400T30D) 一個 * USB 轉 UART模組一塊(進行模組設定使用,記住!通訊電壓要用 3.3V) * UHF 天線一隻 KISS 數據機電路圖: ## 通訊距離 由於我們使用 1W 發射功率並且運作在 438.125Mhz ,以我的基地台(iGate)使用 106cm 的車天線,移動端的部分採用 40cm 的手機天線在車內發射(因為暫時無法在車外裝設天線),目前極限距離最遠來到 60km (北屯到風櫃斗附近),在市區的話大概平均 4-5km 左右,當然也要看實際的傳輸環境而定。 目前站台「理論」涵蓋圖。 ![](https://i.imgur.com/47wfd9H.png) ![](https://i.imgur.com/zOnktuE.jpg) ## 專案連結 https://github.com/NeoChen1024/APRS_over_LoRa ## 使用步驟 1. 先準備好上文需要的電子元件。 2. 下載億百特模組的設定軟體。 3. 把 USB 轉 UART 模組跟 LoRa 模組接好(模組腳位 M0 高電位、M1 腳位低電位)。 4. 打開軟體,選擇好與模組通訊的序列埠,然後點選「打開串口」,並且按「讀取參數」,進接著「波特率」設 9600 bps、「空中速率」設 9.6kbps、「分包包長」設 240Bytes 、「模塊功率」設 30dbm、「傳輸方式」設透傳、「模組地址」設 65535、「頻率信道」設28、「網路ID」設72、「密鑰」設 7272,以上參數設定完畢後點選「寫入參數」,並且點擊「關閉串口」關閉設定軟體。 5. 照著上圖的電路圖給接好(**注意:億百特無線模組的 I/O 電壓是 3.3V,所以請務必使用電平轉換器否則你的模組有機率燒壞!**) 6. 點選網頁上的連結,進入專案內程式碼的頁面,燒錄追蹤器請點「Simple_LoRa_APRS_Tracker」、燒錄 KISS 數據機 (電腦站台 / iGate / Digipeater 端) 請點「KISS_TNC_LoRa」。 ### 追蹤器安裝步驟 1. 到下圖畫線的地方,修改成您的呼號以及您要使用的SSID ![程式碼應修改處](https://i.imgur.com/HHynCIz.png) 2. 安裝 TinyGPSPlus 函式庫。 3. 存檔後把該檔案燒錄到您的 Arduino 板子內 4. 燒錄完成後,將板子拿到戶外通電,等待 GPS 模組確定座標後,便會開始發送訊號。 ### KISS 數據機 (電腦站台 / iGate / Digipeater 端) 1. 下載要用的程式檔(.ino檔),並且燒入進去。 2. 電腦端這邊推薦使用 YAAC 這款 APRS 軟體,所以去下載它(您也可以使用其他APRS軟體),只是我們推薦使用這款軟體。 ## 討論社群 如果您遇到問題想要詢問您可以: 1. 加入我們的 Telegram 社群 https://t.me/NeoNetworkHamRadio 。 2. 加入我們的 Line 社群。 3. 在 GitHub 開啟 issue。 ## 關於以及程式碼授權 此專案所有文檔以及程式碼均以 GNU GPLv3 或更新版本釋出 程式作者:BX4ACV(交流電) 專案贊助推廣:BX4ACP(蜜蜂)