這些年,我所用過的開源免費 tracker – AVR tracker

clip_image002

 

先來個著作聲明:

WhereAVR 為 N4TXI 所設計的開源免費 Tracker

AVR tracker 為 DH3WR 以WhereAVR為藍本,改良後發佈的開源免費 Tracker 

下一版本,由你接力…

 

前言

就這個blog的編輯方向,免費 Tracker 還是要弄一個出來。

igate 可以用二,三百蚊買件硬件回來,電腦所需的software,是freeware。但如tracker要用起碼$3100 (Yaesu VX-8GR)先可購到, 咁就真係死得。至於買kit,反正都係要焊接,調試;咁點解唔先試一下freesolution。而所費的銀兩,隨時平過買kit的運費。

再者,掌握了這個solution,要用既時就砌個出來,不假外求。更甚者,改code加上合用的功能,適隨尊便。

當然,唔駛錢就需附出汗水,時間。

本篇也不是Atmel AVR 系列MCU 的tutorial,有關這方面的資料,可參考 eXtreme網站。

有關 C 程式用於MCU的教程,可到公共圖書館借到,或google一下 embedded C

所有有關連結,皆在右欄可找到。

 

AVR Tracker 本尊 – WhereAVR

WhereAVR 在本 Blog 開檔的article也介紹過,現簡述之。作者將之用於外國流行的高空Balloon活動。也由於這點,WhereAVR內附有用IO Port 控制servo的編碼。

我和AVR Tracker的緣份始於APRS4r 的advance設定鑽研,由於APRS4r是德國人設計的,搜尋相關資料無可避免forward 到一些德文ham網站,亂打亂撞發現這個solution。作者附上詳細資料,但全是德文,這也是這個project最困難之處。

AVR Tracker用的MCU為表面銲接32 腳的,WhereAVR用的是DIP一般28IC封裝。需留意兩封裝的腳位編號不一樣,應以腳位訊號名為準。

和阿媽WhereAVR 相比,阿仔AVR Tracker 加入以下元素:

  1. GPS訊號有效LED(PD2腳)。當收到有效的GPS訊就著LED
  2. 啟動了ADC,用來檢測電源輸入電壓(ADC1腳)
  3. 啟動了i2c,用來接到i2c 的溫度sensorTMP275
  4. 加入了一個4位DIP switch,增加了多樣軟件設定

clip_image004

 

電路簡述和接駁需知

由於我們是用AVR Tracker,所有零件數值跟AVR Tracker。自行焊接當然用DIP28腳封裝;所以MCU腳位編號跟WhereAVR,或自行參考data sheet

整個線路以Atmel ATMega8A 為核心,關鍵部份為接到ssmosimisosck 四腳電阻所組成 R-2R DA converter。以4 bit R-2R DA converter 輸出APRS 所需的音頻訊號packet, 我在約10年前的日本CQ magazine 見過,今終可會一會佢。

clip_image005

維基圖片

 

R11R13C10 組成為APRS訊號輸入,WhereAVR 用於處理地面站發出的指令。對我們來說,這部分是備用的。簡單來說,它是利用輸入訊號對MCU產生的中斷的周期,去估出其頻率而再化成有效 AX.25 / APRS訊息。 

i2c 的溫度sensorTMP275 在最後更新的線路已被移除。

就我的prototype,以下零件需注意:

  • 線路圖左下角R18R21Q3不需要
  • GPS RS232 – TTL部份的R12不需要
  • R7 2k2 為 Yaesu系專用,Kenwood系不需要
  • 以上提到的R-2R電阻 ladderR1R2R3R4R51%
  • NPN 用一般的黑豆仔就可以,我用CS9018
  • GPS訊息LED用黃色
  • PTT LED 用紅色
  • 接收 LED用綠色

個線路簡潔,兩三晚功夫應可完成。

 

程式下載,工具

下載software為 eXtreme Burner 免費軟件。

工具為淘寶網有售,只值十多元人仔的USBASP。請參考本blog"基本器材篇"一文

clip_image007

 

將現成已編譯好的 hex code 下載至MCU,共有二個hex file需下載。還需設定MCU 的fuse setting

hex file請從DH3WR網頁下載zip file

二個hex file 為:

主程式: APRS_AVR_Tracker.hex ,下載至MCU即成,無需修改。

eeprom設定檔: APRS_AVR_Tracker_EEPROM_DH3WR.hex,這個需按個人callsign,喜好修改有關項目,另存檔名備用。

這個設定檔,和相關設定程式太重要。也是我取AVR Tracker,捨 WhereAVR 的原因。Tracker 所需設定,皆放在 MCU 的 eeprom 中。但 WhereAVR 沒有附帶設定程式。如我用WhereAVR 為藍本,然後叫人自行將callsign,等英文字譯做hex碼,再填到相對的eeprom 地址上。我諗無人會跟住做。唔係唔想,而係太煩。

設定程式由DL1NOS編寫,解決了這個問題,而所謂的設定程式,是一個圖象化 ascii to hex碼的反譯器。將設定檔template的數值更改就是了。

介面是德文,不過時間關係,google translate己幫你譯做中文。雖然部份中文譯完都唔多明佢意思。設定程式(AVR_Tracker_CFG_V1.0b)無雖安裝,將file解壓在同一folder即可。

 

clip_image008

clip_image009

 

AVRTracker 可設定項目

  • Callsign
  • Path(s)
  • 靜態文字

可因應移動速度改變以下項目(DIP SW1-2)

  • SSID
  • ICON
  • ICON 表

四款預設 APRS Message,由DIP SW3-4 選擇

六種option

測量電壓補嘗值,預設為50,經實驗証明,無需更改

用設定程式打開作者的範本檔,更改各資料,如callsignSSID等,然後save as到另一檔案名。以備日後使用。

 

下載步驟:

eXtreme載入主程式(Open Flash),先下載到MCU (Write => Flash)。

clip_image011

clip_image013

 

然後載入已設定好的設定檔 (Open EEPROM File),下載到MCU (Write => EEPROM)。那六種option,建議先跟預設的設定。熟能生巧後才嘗試其他組合。

clip_image015

 

Fuse Bits setting

正確value為: Lo:9f Hi:c9 。由於Fuse Bits 的設定錯誤會導致MCU不能工作,所以寫入時,必需將LowHigh fusewrite,再按write

clip_image017

 

測試過程秘辛

以上過程好似 easy job,順風順水。但其實折騰了差不多兩個月。主因為兩個:Fuse Bits setting 數值錯誤,沒有 Tx delay 設定。

clip_image018

不要盲目跟隨screen dump

 

Fuse setting 數值

Atmel MCU Fuse Bits setting數值 主要用作設定震盪元件種類,高低頻等自選設定組合。原作者的PDF文件內的一個screen dump顯示為 D9FF。我沒意識到需 countercheck 這個value。照搬如儀。個tracker無反應還好,知有唔妥。最慘係個GPS訊息LED1秒間隔閃下閃下,好似好正常咁。搞到我以為係work

花完一大輪功夫後,百思不得其解;用DSO量度一下crystal,點解震到好似未食飯咁。再檢查一下D9, FF這個value,才發現這個value不應用在這個project上。

用回自己對 mega8的認識,設為 ffc9。反應正常好多。最後,參考完DL2USR有關AVR TrackerPDF文件(德文)同網站資料;決定為 Lo:9f Hi:c9

 

實戰測試

GPS輸出有效訊息到tracker後,tracker GPS訊息LED會長著,我的設定是每30秒間隔就發射。

問題來了,發射後,igate接收LED不著;即收回的packet解不到碼。packet的組成,由R-2R負責。數值會影響準繩度,將之換為1%。再試,結果一樣。那唯有以大量 packet 收發測試。結果發現成功率少於10%。唯一較安心是packet的的波型應屬穩定無問題。那剩下兩問題,packet的波幅,和Tx delay

packet的波幅,我跟據發射機的說明書用DSO調好R7即成。

Tx delay,要測試是否這個問題,先將發射機人手按ptt,等tracker發射時,如igate百收百中,即是這個問題。最後亦証實是這個問題。

Tx delay在一般商品化的tracker是有得設定的。 AVR Tracker則沒有。但又想一下,我遇到的問題,其他ham也會遇到。但點解google一下,外國ham 測試AVR Tracker 沒有遇到同樣問題?

於是想起友台ZACigate時,提到開CTCSS會導致Tx/RX Delay,外國的aprs一般情況下係無用tone的。既然個tracker都試到最後一步,不是改code加進Tx delay部份,就是關掉tone試一下。我當然係prefer 後者。果然,即刻掂哂。成功率不少於八成。我亦順應潮流,之後關掉igate 的CTCSS了。

需注意,在收到有效GPS訊息後自動啟動PTT,就算之後收不到GPS訊號,發射部份仍會繼續按時發射最後收到的GPS位置。

 

設定,調較

如你沒有儀器觀察波形,可參考我的數值。VR R7 對地那邊的電阻值是約3-4k

DIP switch指撥開關的設定

sw1 =兩組SSIDicon設定選擇

  • on set2 (Secondary)
  • off set1 (Primary)

sw2 

  • on =速度小於每小時5公里的情況下視為準靜止狀態,PTT間隔增至7min。反之為機動狀態,PTT間隔降回30秒。
  • off = PTT間隔一律為30 秒

sw3-4 

  • 4 組預設的APRS訊息

 

新加設了 YouTube VR2XKP 頻道,今後會按需要加入多媒體資訊,去片:

 

AVR Tracker Demo byVR2XKP

 

 

What's Next-功能尚未用盡,同志仍雖努力

WhereAVR 為藍本,並以AVR Tracker為參考,更改程式,加進更多的功能,例:

  • ADCtemp sensorLM35
  • Tx delay
  • 甚至enable 接收指令功能

現行hex code size不大,佔用IO pin又不多,加進更多功能應是可應附。

 

總結

美國人發明APRS用在 Amateur Radio上。

日本人將之商品化,將tracker 內置於各車,手機中。大大提升APRS活動的普及性。

德國人開源程式風氣之普及,做就了本人使用IgateAPRS4rAVR Tracker兩個方案,好使好用之餘,且少了一點銅臭味。德國在 Amateur Radio 上的貢獻實也令人敬佩。

 

後記 – 一個階段之終結

行文至此,涉足APRS的三寶IgateTNCTracker;本blog皆已詳細介紹過。且著眼於以低廉價格成事。不論你是跟著本blog的文章去做;或以錢去解決眼前的問題,即買一些成品回來架設,也應有一點成績了。我經常強調:百論不如一試,就是如此。

我將本文定為APRS入門與初階之完結篇。今後有關APRS的課題,將向中階或以上進發,挑戰更大,失敗率更高。不論成事與否;均盡可能編撰成文,分享過中的苦與樂。

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

One Response to 這些年,我所用過的開源免費 tracker – AVR tracker

  1. VR2xkp says:

    有幸 AVR tracker 小組成員 DL1NOS 到訪本blog,交流後再測試eeprom 數值修改程式,証實於 windows 7  64 bit 執行是ok。上文內容已和英文版一併修正。

Leave a Reply

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