進階のiGate – Dixprs in Raspberry Pi

 

dixprs

 

前言

本文是介紹新世代iGate – Dixprs,現用在測試 iGate VR2XKP-7的方案,安裝於 RPi 的步驟。

 

APRS4R vs Dixprs

 

Why Dixprs

有關Dixprs的測試運作由上年11月開始,至今約九個月時間,其間最長運作時間達四個月的 24×7。穩定性是滿意的。

APRS4r 雖好,但安裝,設定期間,避不了惱人的德文。而家你叫我唔睇翻個blog的文章再裝多次都有排搞。

一表勝千文,先看一下兩者的比較:

iGate 方案APRS4RDixprs
權限 PiRoot
平台Debian/WRTWin/Mac/linux/WRT
LogPlain TextSqlite
編程語言RubyPython
更新速度應己暫停作者仍更新中
支援德文forumGoogle Forum,作者積極回應
Config File德文介面/yaml fileConfig.txt
安裝難度較簡單自行安裝各有關module
運行模式Daemon文字模式運作
traffic shapeingnilYes
multi-RF Device ???Yes
BlacklistnilYes
Wx supportYesNo
Web No, unless loginPort 9999
Report Plugin supportNoMunin

就我理解,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沒有的。

traffic

 

munin plugin

由於資料庫用了 sqlite ,支援 munin 去將資料以圖表形式顯示出來。HG2EBH 編寫了一堆plugin,將詳細的packet收發情況實時顯示出來。

這個功能如用在作樞紐的iGate上很好。唯 HG2EBH 不提供支援,需自行更改code以配合本地情況。

http://aprs.ham.hu/munin/ham.hu/hg1pny.ham.hu/index.html#Dixprs

 

dixprs_hops-day

官網圖片

 

You Tube Demo

Dixprs @ Raspberry Pi, demo by VR2XKP

 

總結

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 上。

專注不等於會成功,但不專注就一定不會有收成。

This entry was posted in APRS, AVR / ARM and tagged , , , , . Bookmark the permalink.

3 Responses to 進階のiGate – Dixprs in Raspberry Pi

  1. vr2vxs says:

    早排買左一套rasp. pi收埋係junk box無乜點用到. 昨晚我決定搵返出泥玩下

    我跟住步驟做花左半日做終於得左, 感謝師兄分享!

    依家下一步就係點將佢做細d再整好d可以出街玩

    組件: rasp. pi + avrt4 kiss mode + vr160接收

    VY TNX & 73 de VR2VXS

  2. BG7IYN says:

    为什么config.txt里面不需要填passcode ?

Leave a Reply

Your email address will not be published. Required fields are marked *