9600 baud Kiss mode TNC 試製

 

9600_cover

 

本文的先導文章 “保持冷靜,提升速度。from-aprs-1200-to-9600 ” 是數年前的,請先參考閱讀,這裡不重覆。

 

前言

本 Blog 以 aprs 為切入點介紹業餘無線電,雖 aprs 往往就是1200 baud 了。但也不斷尋找機會講高速 9600 baud (下文全稱 96)。

個人情感上,96 TNC 是本 Blog 在 aprs 仍缺的一塊 puzzle,極希望補上一可行,價格合理,同好可仿造的方案。齋講 1200,網上資料多的是,無需睇我。

這個 project 由年頭搞到年尾,除私務繁忙外,缺乏一個 96 on air 的平台也是一個難處。

為此我的最終方案是:

以 Direwolf 配 SDR 手指,作為一 9600 Rx-only i-Gate 和作兼容性測試。

將 FTM-350 設為 96,作為驗証,對 talk 機。
以 TH-F7 設為 96,配 aprsis-32 ,接本文介紹的 96 TNC。

最後以 96 速率,作簡單的短訊,email 通訊測試。

 

先講 96 tnc

首先,緊記兩件事:

Teensy 剛推出了 4.0 型號。我們用不著,選回 ver 3.6 就 ok 了。至於原作提到也可用 ver 3.2 (size 較細和便宜),本文提到的 PCB 是支援的。

但由於大部份參考文章,圖片也是用 ver 3.6,也無謂為省一點錢也購入最終不合用的東西,所以購入的是 3.6。

Arduino studio 最新版 1.8.10 暫不兼容 Teensy 的 plugin (裝不到),所以用回 1.8.9 就 ok 了。

 

Pi-Teensy / TNC-Pi9k6

硬件原是一開源方案,是 G8BPQ 設計,並開發出一種用在 HF 的 protocol,名為 ARDOP。

網上也有 PCB gerber 檔供下載。無需自行花時用萬用板接駁,成功率高。本文也已此為基礎。

Link: (內附線路圖)

https://www.seeedstudio.com/Teensy-TNC-for-Raspberry-Pi-V4T-g-1097792

W2FS 據此硬件為藍本,軟件修改以支援 1200bps / 9600bps kiss mode。是一商品化 open source 套件。名為 TNC-Pi9K6 。

這應是暫時唯一網上找到可供自製的 9600 速率 tnc 方案。

所以兩者線路基本上是一樣的,但 PCB,我們就是用 G8BPQ 設計的原裝貨。

原裝貨的是好處是,接到 Rpi 的 Rx/Tx pin 是用 jumper 分開的。我們只需將 Teensy 那邊接到一 TTL to USB  module,就可連到電腦了。

9600tnc

 

另也設一 jumper for 電源 5V 和 GND。接到 TTL to USB 的 module 就可 USB 取電。

 

 

線路對比

 

96_org_tnc

Pi Teensy TNC

 

96-tnc

TNC-Pi9k6

 

原線路 cap c7,c6 在 TNC-Pi9k6 砍掉了。不關鍵照跟即可。

c5 如用在已內置 DC blocking cap 的收發機接口上,無需接上電容,短路之即可。

 

 

組裝

開始前詳閱 TNC-Pi9k6 的說明書。
link:
http://www.tnc-x.com/TNCPi9K6.pdf

理論解說:
https://www.tapr.org/pdf/DCC2017-TNC-Pi9k-KD0QYN.pdf

零件很少,沒難度可言。唯一留意的是 PCB 電阻用了 1/8w size 的。一般 1/4w 電阻放不下,需斜傾。1/8w 電阻在麥氏有售。

留意五枚 LED 極性方向不一,右邊一枚是反向的。

LED 功能表示由右起分別是 PTT,Rx,IRS,ISS 和 最後的不知名。用得著的只是 PTT 和 RX。其他當 reboot 時的走馬燈吧。

與 Rpi 連接的 40pin header,其實需用到的是 Rx Tx Gnd 5V GPIO18 幾針而已。最終不是用在 Rpi 的用飛線接 Rpi 即可。

Teensy 和二款 IC 在 Digikey 購入。

留意電子 Volume IC MCP4261是有分不同內阻值的。我們用的是 50K ohm,即 part no. MCP4261-503E/P。

接對講機的有三接頭可選,minidin,db9,pin header。

Mini din 無可否認較美觀,但之後如要拆開超麻煩。

Pin header 簡單但易損壞,所以還是用 DB9。

 

96tnc_complete

 

惱人的 hex file

到 TNC-Pi9k6 下載完整的 zip file

http://www.tnc-x.com/TeensyProjects.zip

爆開後,在folder  “TeensyProjects\SM_Teensy” 內有一個 hex file  “SM_Teensy.ino.TEENSY36.hex” ,心諗今次發達,做少好多。在 Teensy PJRC 網站下載其編程軟件,將 Teensy 的 micro USB 接到電腦的 USB port,按序將 Hex file 下載到 Teensy 內。

Boot 機係無問題,LED 如走馬燈閃一遍。但就是不能和 Rpi 設定程式溝通。由於疑點是在 Rpi 那邊,所以浪費了相當長時間 trouble shoot。

最後,還是自行 compile 的才 work。方法簡介如下:

首先確認 Arduino studio 是 ver 1.8.9 或以下。然後到 Teensy PJC 下載 plugin 並安裝之。

將上述 zip file 爆開後的 TeensyProjects ,抄到 arduino的 default location。

留意內附的兩檔案,boards.txt 和 platform.txt 需抄到的地方與說明所述有異,跟內附的 readme 做。

打開 ino 檔, board 選 Teensy 3.6,sketch Verify/Compile 並上載到 Teensy 內。

怕麻煩的,我將我的 hex file 上載到此。

完成後,將 Teensy 插到 pcb 上備用。

 

Rpi準備

Rpi 只是用來 config TNC 的設定,我最終的用途不是在 Rpi 上,所以簡單為主。

連 update 也不做了。在 X windows 環境下,作基本設置將 serial  打開,就下載設置 zip file。

rpi_serial

解壓後,如放在 tmp folder,有可能 reboot 後不見了,所以抄回 download folder,按 open current folder in terminal。

rpi_terminal

 

由於是 Linux 環境,我們需先設置兩檔案的權限。俾盡佢 777

rpi_777

查看是否可和 tnc 通聯,並讀入預設值

sudo ./pitnc_getparams /dev/serial0 0

 

rpi_config

 

一切順利應見到這個畫面。否則你將陷入苦戰,留意 Rpi 3B的 serial port 給了 BT 使用,需轉回給系統使用。

四個 parameter 需更改。

將 on air speed 轉為 9600

sudo ./pitnc_setparams /dev/serial0 0 8 96

將 Tx delay 改為 100

sudo ./pitnc_setparams /dev/serial0 0 1 100

將 Tx 電平設為 96,即約 1V

sudo ./pitnc_setparams /dev/serial0 0 10 96

將 Rx 電平設為 0,即自動調較

sudo ./pitnc_setparams /dev/serial0 0 9 0

 

之後以 command reboot 一下,再讀入 parameter 確認讀數 ok。

sudo ./pitnc_setparams /dev/serial0 0 15 2

無問題可 shutdown Rpi。

拔掉兩接到 Rpi Rx Tx 的 jumper,接上一 TTL to USB module。module 需是可從 USB port 取電(5V) 供下位機那種。

一個 96 TNC 就完成了。

tnc usb

 

9600 iGate 的設立

承舊文,以 Direwolf + SDR 設立一個程序是相若的。

只是舊文是 ver1.3,現在的是 1.5。

首先跟 Raspberry Pi APRS 文件內容安裝。

然後需按 Raspberry Pi SDR iGate 安裝 rtl-sdr library 。如不安裝,下文提到的調校會出現 error 訊息。

調校

9600 要求較高,不調校的情況,盡管是用高精度的 SDR 手指,效果是相當不濟的。

調校需一個準確的訊號源,一般網上是介紹接收到電話基站的 GSM 訊號。

但以 SDR 手指自身震盪頻率去得出誤差值 ppm,這避免了接收和干擾問題。

留意所謂高精度手指,其誤差值 0.5ppm 是指線路使用基本頻率震盪器的誤差值。

乘大左後,誤差值也隨之增加。

以這個 command,每1分鐘取樣 ppm 值,等 10 鐘後再取平均值。

rtl_test -p60

以我的 SDR 手指為例,取 7ppm。

igate_ppm

 

再輸入以下 command 踢著 9600 Rx iGate。

rtl_fm -p 7 -f 144.64M -o 4 -s 48000 | direwolf -c sdr.conf -r 48000 -B 9600 –

 

igate96

有了這個 ppm 補償值後,短期測試接收成功率是 100%。

 

實戰

首先將 96 tnc 接到 TH-F7。留意收發機必需支援 9600 baud 才可用在 9600 baud 方案上。

將 TH-F7 設為 9600 bps,連接方式設為 TNC。TNC 模式支援 squelch,但這個 TNC 沒 squelch 輸入。雖用回普通的 MIC/SP  也可,但就受機上的 volume 影響輸出值。用回 TNC 較易成事。

將 TNC 接到電腦一 USB Port,成功連接後到裝置管理員查看 com port 編號。

在 aprsis32 (vr2xkp-8) ,設一新 port。選該 com port 號,參數 19200,8n1。

用已設好 9600 的 FTM-350 (vr2xkp-6) 發射一個 beacon (dummy location),iGate 和 aprsis32 均可解碼。

96_aprsis_rx

 

aprsis32 發射給 FTM-350 的 SMS 訊息,也可成功解碼。

350_96_decode

 

 

從 aprsis-32 發出中文 SMS 訊息到 Android phone (VR2XKP-3),訊息支援中文。

aprs_sms_ch

 

aprs_sms2

 

 

 
APRS to Email,sure no problem

有 Ham 友想為在地設立一 radio email system,作為 disaster 備用方案。這就是 Pi Gate 方案的目的。

到其官網,下載 Rpi 的 image,跟著 user guide 就可設立一個 gateway 或 client 了。

Pi Gate 方案的好處是可於 email 內嵌入圖片。

覺得複雜限制多 (不是人人都喜用 Rpi )。其實唔介意純文字 email 的,更簡單用 aprsis32  也可。

在 aprsis-32 選 email,就可發出簡單的純文字電郵訊息了。

 

aprs_email

 

aprs_email_ch

 

aprs_email_ch2

 

從 aprsis-32 發出電郵,約有幾分鐘時滯才收到。

最後提醒一下,不論任何形式的 on air to email /sms,總有一個接上 Internet 的 Gateway 去處理。可以是 aprs.fi 的network,也可以是自行設立的 Pi gate 等方案。

 

總結

網上甚少介紹支援 9600 速率的 TNC,希望這文能帶給大家一些新點子。

這個開源的方案伸延性高:例

原方案是在 HF 下運作的 300 baud 系統,有設立 HF 電台的同好一試無妨。

將 Rx Tx 接到一 BT module 如 HC-05 等,設定好速率是 19200 和 Teensy 溝通即成為一個支援 9600 on air 的 BluetoothTNC 了。

這是一美國同好的設計,起用在地的 Teensy 模塊,是有點貴之餘,也用不盡其功能。將其開源程式移植到其他 arduino 平台如上一文的 STM32L432 上,既省錢又較易入手。

Teensy 本就內置 micro USB port 了,但就需另置 TTL-to RS232 模塊去和電腦 talk,是有點無奈的。更改程式將之用回 usb 也是一個好課題。

參數設定兩程序是在 RPi 運作的,唔用 Rpi 方案就會覺得搵搞。而這些 arduino 模塊剩餘的 GPIO 眾多,將之用來設定一些參數(如1200/9600) 也是可行的

線路上的電子 volume ic 是 MCP4261 是難尋的。但想通了也不外是兩個 vr 而已。 用兩個 50k VR 取代並以人手調校也是一個降低成本的辦法

open source 方案就是留有空間給想像。

 

 

剩餘物資免費贈有緣人

 

9600_pcb

pcb 做了十塊回來,用唔哂也不值錢。本地同好想進入 9600 的世界裡,可 FB 私訊或電郵給我,先到先得,郵寄送遞,送完即止。

沒有條件,但為免浪費,來函的同好需証明你已有關鍵的兩零件,即 Teensy 3.6 和電子 volume ic  MCP4261-50k。

証明可以是照片,或網上商店的訂單。總之証明到就 ok 了。所有通訊資料寄出後銷毀不留檔。

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

One Response to 9600 baud Kiss mode TNC 試製

Leave a Reply

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