Dantracker 試製篇,上集

 

dantracker_cover

 

前言

Dantracker 是一個數年前 APRS 界頗為出名的 open source tracker 方案,介面無異於商品級的設備;一些自製 dot martix LCD 方案,或簡陋的 TFT 彩屏介面即時相形見拙。

不太普及的原因除了安裝資訊不足外,相信作者不再更新也是一個因素。網上的東西,沒人講就自然下沉。

我以前不講,除了希望網上多些資訊供参考外,另一原因是這個方案較適合駕車上人仕使用。But anyway,與其讓好東西下沉,不如當一個 topic 講一下。

這是 2011 年的方案,距今快近六年了,可找到的資料也定了。就 base on 這些資料,試製一下吧。

儘管是幾年前的東西,但至今也沒找到類似的替代品。

測試發現,可玩的比預期多。同樣,遇到的問題也比預計多得很,所以分兩集講。

 

Why Dantracker

aprs.fi 地圖,沒有 ham moible 中是靜態的。

Dantracker 可顯示當前收到 station資訊,最近8 station的相對方位角和距離。自身 GPS 資訊,和最近一次收到的 aprsWX 資訊;內容較生動。

aprs_wx_dan

 

 

版本對決,KK7DS  vs N7NIX

Dantracker 原作者為 KK7DS,是一開源方案。

N7NIX 以原著為基礎,發展出新一代的版本,加進支援 aprs message 收發,關機等功能。

n7nix-dantracker-main

N7NIX screen, Courtesy of http://www.trinityos.com

 

我對比兩者的功能,介面後,還是喜歡原著的,原因:

  • 黑色介面,比 N7NIX 的彩色介面較舒服
  • 儘管後者支援 aprs message,但代價是需配備keyboard mouse。戶外使用有點不設實際。要功能完整,用 notebookAPRSISCE/32 吧。
  • N7NIX 的介面見方,有違一般屏幕的比例。
  • 我希望做到的是殘廢餐,開機 boot 起就用,按 off 制就熄機走人,簡簡單單,無需服待。

 

硬件準備

我用的是一台 Rpi rev2,由於這是 2011 年的方案。所以用舊款的也應沒問題。建議先將 reset pin (RUN) 銲上 pin header,否則需配備尖咀鉗。

rpi_reset

 

KISS mode TNC 我用回自製的 TNC-X 。整個方案 settle 後希望可利用軟件 TNCDirewolf,有利推廣。

一條 USB to RS232 cable,供接到 TNC

一個 USB GPS

 

軟件準備

實測發現,Rpi 最新的 OS Jessie 不能成功編繹,會出現錯誤,所以用回 wheezy。最後的為201555日版。請到官網下載。

 

参考資料準備

除數個 YouTube 影片可供簡單看一下較果外,網上只有三篇資料可用。皆由 PA0ESH 編寫。

第一篇,是本文參考重點。但放心,根著做是不成的。http://www.pa0esh.nl/wordpress/?wpfb_dl=6

第二篇,有 2013 ,15 兩版本。但太多 network 設定,其他和第一篇類似。
http://www.pa0esh.nl/wordpress/wp-content/uploads/2015/02/Dantracker-on-a-Raspberry-PI-from-scratch.pdf

第三篇,是最後的更新。
http://www.trinityos.com/HAM/CentosDigitalModes/RPi/n7nix-dantracker-install.txt

三篇皆混合了 KK7DSN7NIX 的版本來談。但個人覺得,作者較偏愛後者。這也增加了難度。

 

安裝步驟

首先,接上 USB to RS232 cord USB GPS

開機登入後,輸入以下指令應看到這兩東西。

lsbusb

isusb_gps

 

見不到也可以繼續,因上集無需 TNCGPS 也可玩到。

一反常態,無需更新以避免變為 Jessie。只更新軟件的目錄。

sudo apt-get update

 

之後,幹掉那個大而無用的 wolfram-engine

sudo apt-get purge wolfram-engine

 

安裝所需軟件,需一行完成:

sudo apt-get install screen git python-serial libgtk2.0-dev gtk+-2.0 build-essential gcc pkg-config imagemagick automake autoconf libtool cvs curl libncurses-dev libssl-dev libax25-dev

下載加安裝需約一小時。

完成後下載 KK7DS 的版本。

git clone https://github.com/kk7ds/dantracker

進入該 folder ,並下載 libfap 。雖最新版本為 1.5;但在測試 jessie 時發現不論 1.31.5,最後階段編繹時皆失敗。為省時所以這裡用回 1.3

cd dantracker
wget http://pakettiradio.net/downloads/libfap/1.3/libfap-1.3.tar.gz

解壓並安裝之
tar xvzf libfap-1.3.tar.gz
sudo cp libfap-1.3/src/fap.h /usr/local/include/
cd libfap-1.3
sudo cp src/fap.h /usr/local/include/
./configure
make
sudo make install
sudo ldconfig

完成後回到 dantracker folder

cd ..

跟著用類似步驟下載和安裝iniparser
sudo wget http://ndevilla.free.fr/iniparser/iniparser-3.1.tar.gz
tar xvzf iniparser-3.1.tar.gz
cd iniparser
sudo cp src/iniparser.h /usr/local/include
sudo cp src/dictionary.h /usr/local/include
make
sudo cp libiniparser.* /usr/local/lib
sudo ldconfig

完成後回到 dantracker folder

cd ..

 

戲肉來了,aprs-is.c main() 內含用家設定參數,需編輯之。

nano aprs-is.c

將作者的 callsign,所選 server,覆蓋範圍,靜態座標定為自身的資料。

aprs_c

 

然後 save 離開。

 

編譯前也需編輯 Makefile,加進參數。否則跟著的編繹會回報 warning

nano Makefile

在第一行最後加入 –lm

dan_tracker_compile

然後 save 離開。

編繹運行以下指令:

touch .revision
make

之後進入 images folder 執行 make 指令:

cd images
make

所有安裝完成。這時可備份一下張 SD Card

之後 reboot 一下,再進入 dantracker folder ,執行

sudo ./detect_gps.py

類似 lsusb,但回報的是 USB serial cord GPS 的所屬 port 位。

lsusb_gps

進入 sub-folder examples,將 aprstest.ini 抄到 dantracker folder 中並改名為 aprs.ini

cd examples
cp aprstest.ini /home/pi/dantracker/aprs.ini

 

aprstest.ini 是測試設定檔,主要從 network 收取覆蓋範圍內 iGatepacket,將之顯示出來。GPS 則是 hard codedummy data

換句話說,這就是一個無需 radioAPRS tracfficmonitor

dantracker folder 中編輯 aprs.ini;將 callsign,靜態座標改回自己的,save 離開。

執行以下兩指令就可啟動 dantracker 了。

screen -dmS aprs ./aprs -m /home/pi/dantracker/aprs.ini

screen -dmS ui xinit /home/pi/dantracker/ui

 

YouTube demo

 

 

Raspberry Pi 冷知識

首兩畫面大家會發現右上角有個彩色四方形 (Rainbow Square)。這是輸入電源電壓過低的提示。如為紅色四方形,則是 CPU 溫度過高提示。

對我來說,是因將系統移植到 portable 後,7吋顯示屏的背光耗電近 1A ,用的電話充電火牛電流不足而拖低了電壓。

Rpi firmware 更新到最近(9月)的版本,圖示則會是較易明白的雷電 icon 和溫度計 icon

 

關機程序

承上文提到,這個方案沒退出機制。所以關機只能 short reset pinreboot Rpi

小問題,可克服。我們將一個按制 (push button) 接到 Pin 39 (Gnd), Pin 40 (GPIO21)


aprs_shutdown

編寫一段 python 程式仔,當發現 GPIO21 落地,就執行關機指令。並將這程式加到每次開機執行。

詳情請參考這個網址,將 GPIO 編號改為 21 即成。
https://www.element14.com/community/docs/DOC-78055/l/adding-a-shutdown-button-to-the-raspberry-pi-b

 

將系統移植到流動平台後

dan_port

 

由於仍是測試階段,不建議設為開機即運行的狀態 (要還原需用另一 linux 系統編輯取消)。

 

小結

上集示範了安裝和利用 aprstest.ini 設定檔作為一個固定 aprs 站台 monitor。介面美觀資訊明確。

下集將為戶外測試,接上 radioGPS;和一個 Rpibug 導致陷入苦戰及最後的節衷方案。

 

待續…

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

6 Responses to Dantracker 試製篇,上集

  1. VR2xkp says:

    有同好電郵查詢遇到的問題:

    你好XKP!我按照你果個做法,也做佐,就系一運行就有錯誤。

    Fatal server error:
    (EE) Server is already active for display 0
    If this server is no longer running, remove /tmp/.X0-lock
    and start again.
    (EE)
    (EE)
    Please consult the The X.Org Foundation support
    at http://wiki.x.org
    for help.
    (EE)
    No protocol specified
    xinit: giving up
    xinit: unable to connect to X server: Resource temporarily unavailable
    xinit: server error

    唔知系唔系中有邊個冇裝。

    • administrator says:

      訊息是說第一句指令成功在背後執行。但第二句就失敗。

      是入唔到 X windows。

      一,你要做的是,跟建議刪掉這入tmp/.X0-lock 。

      一A,行 xinit ./ui 應會進入一運作畫面,差的是沒有進入訊息而己。

      二,試 startx,或 sudo startx。

      如 startx 入到GUI介面,而你又係用緊 hdmi 接電腦LCD的,開一個termial 文字視窗,到dantracker 執行那兩句指令,應可行到(7 吋mon 可能唔work)

      三,再唔得,bakcup 完重裝,留意安裝後,和 make 後的訊息有否版本問題,不成功的 warning。安裝軟件的長長指令,有否漏了 gtk+-2.0 那兩個library。之前也不要 upgrade。

      仍唔work,咁你要回覆一下你的硬件ver,OS ver。

  2. bh7njf says:

    我已經把dantracker同direwolf連接佐,就系用direwolf -p命令虛擬一個叫/tmp.kisstnc出來俾dantracker用,我冇gps就試唔到發射,甘就有待你進一步測試.

  3. bh7njf says:

    上面打錯佐/tmp/kisstnc,甘先系

  4. bh7njf says:

    還有一個問題就系樹莓派有屏幕保護,我上網查過資料,按住設置,都系唔得.

Leave a Reply

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