前言
本文是介紹新世代iGate – Dixprs,現用在測試 iGate VR2XKP-7的方案,安裝於 RPi 的步驟。
APRS4R vs Dixprs
Why Dixprs
有關Dixprs的測試運作由上年11月開始,至今約九個月時間,其間最長運作時間達四個月的 24×7。穩定性是滿意的。
APRS4r 雖好,但安裝,設定期間,避不了惱人的德文。而家你叫我唔睇翻個blog的文章再裝多次都有排搞。
一表勝千文,先看一下兩者的比較:
iGate 方案 | APRS4R | Dixprs |
---|---|---|
權限 | Pi | Root |
平台 | Debian/WRT | Win/Mac/linux/WRT |
Log | Plain Text | Sqlite |
編程語言 | Ruby | Python |
更新速度 | 應己暫停 | 作者仍更新中 |
支援 | 德文forum | Google Forum,作者積極回應 |
Config File | 德文介面/yaml file | Config.txt |
安裝難度 | 較簡單 | 自行安裝各有關module |
運行模式 | Daemon | 文字模式運作 |
traffic shapeing | nil | Yes |
multi-RF Device | ??? | Yes |
Blacklist | nil | Yes |
Wx support | Yes | No |
Web | No, unless login | Port 9999 |
Report Plugin support | No | Munin |
就我理解,APRS4R 是德國學界postgraduate的project。這些project 在學生畢業後就往往無以為繼。
Dixprs 由 Ha5di 編寫。Python 語言為近年外國大為流行程式語言,尤以多平台和影像處理的應用。請留意,Python發展至今已到版本3.x了。
但 version 3 不能向下和 2.x 兼容。Dixprs是以2.x 版本編寫的,所以安裝 python 和相關library不要以為用版本號最新的就最好,必需留意兼容問題。
而我推介Dixprs的原因,主要是以下的幾點:
- Log,她應用了精簡版的資料庫程式 sqlite 處理,好處是配合 linux 下的 report 插件程式 munin,可 online 作出各項資料的圖表報告。
- blacklist,這個黑名單功能對操作較實際。當然我的意思不是話你唔妥邊位,就將佢 blacklist 咗啦。香港地小人多,APRS 活動日趨活躍,各 iGate 覆蓋範圍會部份重疊是必然並已發生的。如唔想浪費大家寶貴的 ham 界資源,iGate重疊各方的站長可考慮以此功能做出類似 filter 分工去處理各組訊息流。
- Web 形式顯示各項資訊,簡單清楚。這也是aprs4r欠奉的。
- Config file是英文,fill in blank 形式,香港人應相當容易處理。她並附有不同的config 檔 template 供使用。
安裝步驟
先來一次系統更新
sudo apt-get update && sudo apt-get upgrade
step 1: 安裝 python-dev
sudo apt-get install python-dev
step 2: 安裝 資料庫sqlite
sudo apt-get install sqlite
step 3: 安裝 python 串列埠library
wget https://pypi.python.org/packages/source/p/pyserial/pyserial-2.6.tar.gz
解壓該壓縮檔。
tar –zxvf pyserial-2.6.tar.gz
進入該folder內執行
sudo python setup.py install
step 4: 導入sqlite3 和 serial程序庫, 執行
Python
>>> import sqlite3
>>> import serial
請按 ctl+D 離開
step 5: 安裝 linux ax.25 library
sudo apt-get install libax25
sudo apt-get install libax25-dev
step 6: 下載python ax25 library, 執行
返回上目錄
cd..
下載 python ax25
wget https://sites.google.com/site/dixprs/downloads/pyax25.tar.gz
將之解壓至一 temp folder,進行編繹
tar –zxvf pyax25.tar.gz
./compile_ax25.py build
sudo ./compile_ax25.py install
step 7: 於 python 導入 ax25 程序庫
Python
>>> import _ax25
請按 ctl+D 離開
相關元件庫已備妥,可下載和安裝Dixprs
wget https://sites.google.com/site/dixprs/downloads/dixprs-2.2.2.tar.gz
建立安裝 folder
sudo mkdir /usr/local/Dixprs
解壓至該folder,請留意中間的-C 是大階的
sudo tar –xvzf dixprs-2.2.2.tar.gz –C /usr/local/dixprs
所有檔案應解壓到 /usr/local/dixprs folder。最後一件是編輯config.txt
config file 有幾款不同的template。
- config-agwpe.txt
- config-kiss.txt
- config-ax25.txt
顧名思義,agwpe 是和software tnc 軟件 agwpe一併使用時所用。kiss是用於 kiss mode tnc。ax25是用於解調完整 ax25 訊息時所用。
APRS只是用ax25 UI frame而已的。
由於我是用TNC-X kiss mode modem,暫又沒有其他AX.25 玩意可試。所以將 config-kiss.txt copy 為 config.txt。不要overwrite 那三個template。
cp config-kiss.txt config.txt
先執行關機
sudo shutdown -h now
接上 KISS mode TNC,收發機等。然後再啟動 RPi,直接以root身份登入。進入 Dixprs 的 folder。
編輯該 config.txt 檔,指令:
sudo nano config.txt
內容是英文,簡單易明,這裡不一一詳述。不外也是callsign,ssid,serial port,經緯度等資料。留意經緯度格式。
完成後save。所有安裝設定完成。
測試
如上表所述,運行Dixprs需root權限。和其他 Linux 系統一樣,root 是預設 disable 的。請參考下 link 設定 root 的 password。
http://www.instructables.com/id/Web-Control-of-Raspberry-Pi-GPIO/step2/Enable-Root-Account/
重啟RPi 並以root登入。
進入 Dixprs 安裝的folder,執行以下指令運行dxiprs
./dixprs.py
Dixprs用文字模式運行,各登入情況,收發訊息皆詳細列出。細看各訊息列,如沒有error訊息,基本上你的Dixprs就已運作。
這時你也可登入aprs.fi 地圖確認一下你的iGate是否出現。
我們可用另一台同network的電腦,輸入RPi的IP,port 9999。格式:
http://ipaddress:9999
你應可見到dixps iGate 的訊息資料介面。成功了。
what’s more
telemetry
登入 aprs.fi ,到你的Dixprs iGate,你可看到traffic的統計資料。這也是aprs4R沒有的。
munin plugin
由於資料庫用了 sqlite ,支援 munin 去將資料以圖表形式顯示出來。HG2EBH 編寫了一堆plugin,將詳細的packet收發情況實時顯示出來。
這個功能如用在作樞紐的iGate上很好。唯 HG2EBH 不提供支援,需自行更改code以配合本地情況。
http://aprs.ham.hu/munin/ham.hu/hg1pny.ham.hu/index.html#Dixprs
官網圖片
You Tube Demo
總結
iGate 的方案很多,有以MCU形式的,有以電腦程式進行。但環顧眾方案,以RPi 安裝 Linux 的iGate 方案,彈性夠,operation cost 低,伸廷性強。
Dixprs 是本 blog 第二個介紹的iGate方案。為英文介面,相對較易管理。除RPi 外,其他如 Windows 系統上也可運行。其telemetry ,Web 介面也較 aprs4r 完善。
另如上文提到,python 近年在國外很流行, 你只google一下,不難發現上至NASA 和Google,下至amateur radio 和RPi 的project,皆有她的踪影。
我一向認為,有電腦而不懂編程實是一憾事。只能靠他人提供的東西,合用還好,不合用又要$就真是一肚氣。
python 為一免費,開源的編程語言,簡簡單單在其官網下載,安裝後,就可以在附送的shell 內編程。加上Dixprs也提供了源碼,對我輩等更深入了解 aprs技術,運作更為便利。
與其跟風學寫電話App,倒不如坐定定認真研究一種編程語言應用於一門技術如aprs 上。
專注不等於會成功,但不專注就一定不會有收成。
早排買左一套rasp. pi收埋係junk box無乜點用到. 昨晚我決定搵返出泥玩下
我跟住步驟做花左半日做終於得左, 感謝師兄分享!
依家下一步就係點將佢做細d再整好d可以出街玩
組件: rasp. pi + avrt4 kiss mode + vr160接收
VY TNX & 73 de VR2VXS
为什么config.txt里面不需要填passcode ?
passcode 可以通過你的 Callsign 計算求得