にゃん太郎とアマチュア無線

メインクーンのにゃん太郎と趣味のアマチュア無線と電子工作の記録です。 現役時代は大型汎用コンピューターの保守をやっていました。激務がたたり2型糖尿病になり治療中です。

カテゴリ: aprs

もう10年以上aprxのTCP-IPGATE WAYを立ち上げていますが、最初はxastir 次にYAACに変更して現在に至ってます。
raspberry-piも1~4に変わりました。今回zero2wに変更するにあたり、どうしてもx-windows配下でうごくのはやはり厳しいです。

さらにYAACはjavaベースなのでさらに厳しいです。地図を表示をするのに5分ぐらいかかってしまいます。もともとrapberry-piヘッドレス運用で、メンテナンスはVNCで行っています。あまり地図をみる必要もないので、GUIでないaprsをさがしたところ、aprxというのを見つけました。

結構昔に開発されているみたいで、bookwormでapt インストールでちゃんと入ります。
sudo apt install aprxで簡単に最終版の2.9.1がインストールされます。
起動は sudo /etc/init.d/aprx startで起動します。

設定は /etc/aprx.confで行いますが、TH-D72用の9600 KISS ON スクリプトもちゃんと設定できます。

# /etc/aprx.conf
mycall xxxxxx-10
myloc  lat xxxx.xxN lon xxxx.xxE
<aprsis>
   passcode xxxxxx
   server   ehime.aprs2.net   14579
</aprsis>
<logging>
   pidfile /var/run/aprx.pid
   #rflog   /var/log/aprx/aprx-rf.log
   aprxlog /var/log/aprx/aprx.log
   #dprslog /var/log/aprx/dprs.log
</logging>
<interface>
   serial-device /dev/ttyUSB0 9600 8n1 KISS
   initstring  "HBAUD 9600\x0dKISS ON\x0dRESTART\x0d"
   alias       RELAY,WIDE,TRACE
   callsign    $mycall # callsign defaults to $mycall
   tx-ok       true # transmitter enable defaults to false
   telem-to-is false # set to 'false' to disable
</interface>

<interface>
   serial-device /dev/pts2 1200 8n1 KISS
   #initstring  "HBAUD 9600\x0dKISS ON\x0dRESTART\x0d"
   #alias       RELAY,WIDE,TRACE
   callsign    N0CALL-1
   tx-ok       false # transmitter enable defaults to false
   telem-to-is false # set to 'false' to disable
</interface>


<beacon>
   beaconmode both
   cycle-size 30m
   beacon     symbol "I&" $myloc comment "Tx-iGate aprx 96k Takamatsu Kagawa"
</beacon>

<beacon>
   beaconmode aprsis
   cycle-size 15m
   beacon file /home/master/data/wxnow.txt
</beacon>

<digipeater>
   transmitter $mycall
   <source>
      source   $mycall
   </source>
</digipeater>

こんな感じです。構成は以前に書いたYAACの記事です。

なお144.96の受信専用の1200ですが、direwolfのUSB ドングルの音声を入れるためのscreenで起動するようにしています。
direwollに付属しているdw-start.shで起動します。
9600はD72の/dev/ttyUSB0です。

正常に起動すれば、direwolfのscreen-rで144.94の1200がモニターできます。

Amazonでraspberry-pi zeroをraspberry-pi3 pi4相当に変換するアダプタを購入してみました。これはインターフェイスがUSBx4 Ethnetアダプタに増設されます。

価格は2800円です。本体が3000円ちょいなんですこし高いですけど、、

別にzero2wでもwifi接続で安定しているんですが、2.4Gの無線しかサポートされていなくて、速度があまり出ないことと、USBが1個しかないので、ちょっと不便なので購入して試してみました。

IMG_20250208_074346

lsusbの結果です。

Bus 001 Device 003: ID 0bda:8152 Realtek Semiconductor Corp. RTL8152 Fast Ethernet Adapter
Bus 001 Device 004: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
Bus 001 Device 002: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

単にUSB接続のEther接続のアダプタとUSB HUBが内蔵されているものですが、接続するだけでドライバもなにも必要なく、すぐにeth0と認識され使えます。
EtherNETはRTL8152ですね。まあ速度はUSB2.0なんであまり期待はできないけど、2.4GのWIFIよりは有線のほうが安定してつながることを期待しています。


aprsはcui用にaprxを使ってみました。VNCとjavaをインストールしてYAACも試してみたんですが、さすがに厳しいです。メニューを開くのに1~2分ぐらいかかってしまいます。

aprxは初めて使ってみたんですが、cuiなんで軽いです。設定は/etc/aprx.confですが、TH-D72用で/dev/ttyUSBで認識されすぐに設定できます。
ただ私の環境で、送受信は9600で144.64で設定して、direwolfで受信専用で144.66を設定したいんですが、interfaceの設定で同じコールサインが設定できません。
この部分でつまずいて、やむなくdirewolfの起動はあきらめました。

sudo /etc/init.d/aprx
Usage: /etc/init.d/aprx {start|stop|status|restart|force-reload}
このオプションで状態を確認できます。

まあraspberry-pi3と比較して、消費電力はたいして違いはないんですが、やはり3000円ちょいでここまでdockerとaprsががちゃんと動くってのはすごいと思います。時代の進歩を感じます。
せっかくですからrfkillコマンドでwifiとbluetoothを無効にしておきました。

でも欲をいえば、価格は同じでメモリーを1Gでwifiを5GにしてUSBをTYPE-Cにした、Zero3が出ることを期待したいです。







今は自宅サーバとしてraspberry-pi4ででアマチュア無線用のaprsサーバとNightscouサーバを、立ち上げているんですが、試しにraspberry-pi3とほぼ同じ性能で、価格は1/3のRaspberry-pi Zero 2WでNightscoutサーバを上げてみました。

Nightscoutは、糖尿病のCGM管理用のサーバでかなり高機能です。以前は無料のクラウドで使えていたみたいですが、今はサブスクで料金が発生します。

それでお金のない私は、自宅でRaspberry-piで立ち上げています。それをRaspberry-pi Zero 2Wで専用で上げてみました。24時間電源を入れるので消費電力も少ないし最適です。

CGM機器としてはリブレ2を使っています。これは500円玉大のパッチを腕に張り付けて、常時血糖値を取得してスマホアプリでその値を表示するというものです。その値をNightscoutサーバにupしてwebサーバ上で管理できます。

Nighscoutは、dockerで動作しますが、果たしてメモリーが512kbしかないZero 2Wでdockerがどの程度動くのか、、、

結論からいうとまったく問題なく動きました。NigscoutサーバとしてもレスポンスもPI4で上げているのとまったく差がありません。
とはいえさすがにメモリー容量が512kbではきびしく、ヘッドレス運用でもawap領域を1G以上取ったほうがいいです。 

DOCKERを使うので、OSはPI OS Lite (64Bit)を選択してSDカードにインストールしました。
ヘッドレス運用なんでguiは必要ないです。512KBのメモリーでは、さすがにデスクトップ環境で使うのはきびしいと思います。
またデフォルトのswap容量だと、500Mしかないんで、ssh接続でapt updateなんかすると、接続が不安定になり切断されることがあります。私は

sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE=2048 

で2Gに拡張しました。

あとwifiで接続してるんですが、dhcpではなく固定ipに変更します。
64bitのBOOKWORMでは、固定IPに設定は面倒ですが、

sudo nmtui

で簡単に設定できます。

まず前回お世話になったドイツ語のサイトでインストールします。

dockerのインストールは

curl https://get.docker.com/ | sh

このコマンドだけです。少し時間はかかりますが、ものすごく簡単にインストールできます。

dockerにユーザを追加します。

sudo usermod -aG docker $USER &&
sudo reboot

再起動後 dockerのディレクトリとmongodbの入れ物を作ります。

cd /home/$USER/ &&
mkdir nightscout &&
cd nightscout &&
mkdir db
docker-compose.yamlを作成します。


cd /home/$USER/nightscout &&
nano docker-compose.yaml

私のdocker-compose.yamlです。

services:
    nightscout:
      image: markxoe/nightscout-cgm-remote-monitor-raspberrypi:latest
      environment:
        TZ: Japan/Tokyo
        MONGO_CONNECTION: mongodb://mongo:27017/nightscout
        API_SECRET: xxxxxxxxxxxx
        BG_HIGH: 250
       BG_LOW: 70
       BG_TARGET_TOP: 180
       BG_TARGET_BOTTOM: 80
       INSECURE_USE_HTTP: true
       #AUTH_DEFAULT_ROLES: denied
       ENABLE: delta direction rawbg iob dbsize careportal
     ports:
       - 1337:1337
     links:
       - mongo
     restart: always
   mongo:
     image: mongo:bionic
     restart: always
     volumes:
       - ./db:/data/db

これを保存後 dockerのイメージをダウンロードします。

docker compose pull

5分ぐらいかかります。

Nigscoutサーバを起動します。

 docker compose up -d

正常に起動したら、http://ローカルip/:1337で接続できるはずです。

あと mongodb-database-toolsをいれておけばdbのバックアップやリストアが簡単にできるようになるので入れておいてください。

Ubuntu 24.04 ARM 64です。このdebパッケージを

sudo dpkg -i ファイル名
 
でインストールします。

mongodbのバックアップは

docker ps -a でidを調べます。

バックアップは
docker exec CONTAINER_NAME mongodump --archive > db.dump

圧縮バックアップは
docker exec CONTAINER_NAME mongodump --archive --gzip > db.dump.gz

リストアは
docker exec -i CONTAINER_NAME mongorestore --archive < db.dump

docker exec -i CONTAINER_NAME mongorestore --archive --gzip < db.dump.gz

下記のスクリプトを用意して

#!/bin/sh

docker exec CONTAINER_NAME mongodump --archive > 'date +%y%m%d'.dump

これをcrontabで一週間に一度ぐらい実行すると、yymmdd.dumpが作成されます。


IMG_20250114_082434


家のwifiに接続したスマホ(xdrip)からNightscoutに、uploadした血糖値のCGMの値をリルタイムで表示しています。
流れとしては リブレ2--->リブレview--->スマホ(xdrip)--->  Nightscou---->esp32のcherp yerrow displayです。
スマホを除く費用は、zero2wを含めて全部で5000円以内でできます。

aprsはguiが使えなのでaprxを使いました。また別記事で書きます。

ちょっとジャンク箱を探してみるとBME280のセンサーを発見
これはAMAZONで1000円ちょいで買える温度 湿度 大気圧のセンサーですが、昔そういえばESP8266で昔 温度や湿度を測って遊んだことを思い出しました。
するとYAACでaprsの気象用でもサポートされていたのを発見 そこでraspbery-piでつないで簡易気象ステーションを作ってみました。aprsのサポートされている気象ステーションはいろいろあるけど昔の情報ばかりでしかも機器が高くて手が出ません。
BME280では大気圧 温度 湿度が取得できます。それにさらに安いBMP280というのがありますがこれは湿度が取得できません。ほかの雨量 風速 風向などは高価なほかの機器にお任せすることにして安価なこれだけで作ってみました。
接続もraspberry-piのI2Cに接続とお手軽です。問題はBME280自体を外に設置すればいいんだけど、とりあえずお手軽にraspberry-piに接続して室内でやってみます。ちゃんとやるのであれば外にBME280を室外に設置してください。
YAACにはWXNOW.TXTがサポートされているのでこれを取り込んでAPRSにアップロードしてみます。
とりあえずデータ取得にはIT女子のサイトを参考にさせてもらいました。ここのbme280_custom.pyをそのまま利用してデータを取得して、WXNOW.TXTに変換すればいけそうです。
bme280_custom.pyから取得できるreadData()は"1016.92,11.57,61.12"みたいな感じで取得できます。順序は 気圧 温度 湿度 みたいです。

WXNOW.TXTのデータフォーマットは下記です。

Feb 01 2009 12:34
272/010g006t069r010p030P020h61b10150

でもって取得できないデータは(風速 風向 雨量)0を返すようにしました。python初心者で初めて作ったんですが、わりと簡単にできました。

#coding: utf-8

 import bme280_custom
 import datetime
 import os
 dir_path = '/home/master'
 now = datetime.datetime.now()
 now1 = now.strftime('%a %d %Y %H:%M')

 wxnow = bme280_custom.readData()
 wxnow2 = (wxnow.replace('.','').replace(',',''))

#華氏 摂氏変換
 ondo =(wxnow[8:-9])
 celsius = int(ondo)
 ondo1 = (celsius * 1.8) + 32
 ondo2 = (str(ondo1))
 ondo3 = (ondo2[:2])

 press = (wxnow[0:6])
 press1 = (press.replace('.',""))

 hum = str(wxnow2[-4:-2])
 wxnow1 = ("000/"+"000" + "g000"+"t0"+(ondo3)+"r000"+"p000"+"P000" + "h"+(hum>
print (wxnow1)
if not os.path.exists('/home/master/data'):
     os.makedirs('/home/master/data')
 f = open('/home/master/data/wxnow.txt','w')

 f.write (str(now1+'\n'))
 f.write (str(wxnow1+'\n'))
 f.close()

これを実行すると、home/master/data配下に下記のwxnow.txtが作成されます。
Tue 09 2024 09:15
 000/000g000t051r000p000P000h61b10169

これをcrontabで10分に一回実行すれば、10分に1回取得できます。

 YAACの方はfile->config->expartmode->portsでwxnow.txtを新しいポートとして追加します。wxnow.txtファイルを指定します。あとはBEACON設定の方でReport Weatherをチェックするとサーバの方に温度 湿度 大気圧がuploadされます。


7年近くraspberry-piでxastirを使っているんですが、ちょっと思いたってYACCというjavaベースのソフトに変えてみました。javaなのでYAAC.zipを解凍して、java -jar YAAC.jarですぐに起動できます。
最初は設定がwizardが走るので楽に設定できると思います。
xastirと同じでguiですべて設定できるので楽ですが、地図がすごく軽いです。またTH-D72でKISSモードと9600のコマンドを送ってくれるので、前にかいたようなxastir で面倒なスクリプトを走らせる必要がないです。結構D72は電源の関係やなんかで、RESETされて内蔵TNCが1200になったりします。
ポートの設定で HB 9600 \rKISS ON\r\wRESTART\r と書くと起動時にKISS on 9600bpsに変えてくれます。また結構メンテナンスもされているみたいで、お勧めかも。
ただ設定を変更した場合、xでwindowsを閉じたり、ターミナルから強制停止させると、変更が反映されません。fileからexit programで、終了させてください。まあxastirでもconfigをsaveしてないと同じですけど、、
それから、TNC やサーバからのパケットのフィルタがxastirより高機能になっているので、少し面倒ですね。

ついでにこないだのRA-35をTH-D72についないでみました。D72は2波同時受信ができるので、144.640は内蔵のTNC-KISSモードで9600 144.66はdirewolf+RA35です。これで両方とも送受信可能になりました。
RA-35のdirewolf.confのdirewolf.confのPTT設定は前に書いたように私の環境では
PTT CM108 3 /dev/hidraw0でうごきました。
D72側はtncモードにして、144.64(9600 /dev/ttyUSB0)を選択する必要があります。前は144.66は受信専用だったんですが、送信もできます。これでリグ1台で9600/1200  2波同時、送受信I-GATE局が完成しました。やっぱりTH-D72はAPRS用では最強機種ですね。
なおYAACでのTNCはKISSポートしかサポートされていないので、1200側のポートはdirewolfを t 0だけのデフォルト起動ではagwpeポートとして設定します。単にkiss mode TNCと設定したいなら xastirのポート設定と同じで/tmp/kisstncとデバイス名を設定します。この場合direwowlfは -p -t 0 でkissモードで起動します。-t 0 はコンソールの文字色がうざいため指定してるだけです。

いずれにしてもxastirに比べて軽いですし、使い勝手もいいみたいなのでしばらくこれでいこうと思っています。

RA-35が到着しました。たぶんdirewolfのPTT対応で、オーディオインターフェース内臓としては最安($35)でしょう。2月16日に注文して到着したのが3月8日 さすがに送料が3000近くかかっているので早いです。ちゃんとした段ボールに入れてあり、中華のキットとは大違いです。 USBケーブルも付属していました。

IMG_20200309_155351


IMG_20200311_142948

でもって3時間ほどで完成 チップ部品を使ってないので作りやすいです。基盤のパターンとピン穴もしっかりしていて非常にきれいです。前に書いたようにCM119はちゃんと最初から半田つけされていて安心でした。
とりあえずwindows10のUSBにさすとUSB PnPオーディオのマイクとスピーカとして認識します。
raspberry-piにさすと、そのままでなにもしないでちゃんと認識しました。中央にある可変抵抗はマイク入力のレベル調整用です

とりあえずdirewolfでは最新版の1.5を入れます。
$ apt-get install git build-essential libasound2-dev libudev-dev alsa-utils rsyslog logrotate gpsd libgps-dev
もういれてたら sudo apt-get remove direwolfで削除します。
$ git clone http://github.com/wb2osz/direwolf
$ cd direwolf
$ make
$ sudo make install
で簡単に入ります。

てdirewolf.confのPTT設定は

PTT CM108 3 /dev/hidraw0

で動作しました。GPIOはCM119Aのピン13の出力なので、3になります。ls-l  /dev/hidraw*でデバイス番号を確認したほうがいいです。最初PTT CM108だけのデフォルト設定では、/dev/hidraw1になっていたのでPTTが動作せず少しはまりました。なお最新版の1.5にしないとPTT CM108はサポートしていないかも、、

RA-35ですが、さらに安価なRA-25 RA-30というのがでてるみたいです。オーディオ関連のオペアンプが省略されているようですが、RA-25では$25という値段です。送料より安い。アメリカのアマチュアのキットは再現性が高くいすれもいいものが多いです。Kevin Custer - W3KKCに感謝です。
デコード性能ですが、RTL-SDRとは1200でも9600でも段違いです。もっともSDRとFT-717ND+RA-35と比較すること自体間違っているような気がしますが、、、
これからFT-817NDでFT8あたりで試してみます。さーてダイレクトの音声入力と出力に対してどれくらい差があるか??
 
2020 12/22 追記
direwolfが1.7Aになってからbuild方法が変わったようです。
cd ~
git clone https://www.github.com/wb2osz/direwolf
cd direwolf
git checkout dev
mkdir build && cd build
cmake ..
make -j4
sudo make install
make install-conf

なおcmakeが必要ですのでない場合は sudo apt-get install cmakeで入れてください。

前にRTL-SDRを使ってFTDX3000のIF入力でcwskkimer運用をしていたのですが,その時にいろいろ購入したRTL-SDRが余っていたのでdirewolfでAPRSの受信専用で構築してみました。
前にかいたUSBsoundcardを使った送受信対応のdirewolfを使ったaprsのことを書きましたが、今回はそのsound cardではなくRTL-SDRを使って使って構築しようということです。

今は
$ sudo apt-get install rtl-sdr
で簡単に入ります。少し前まではmekeとかいろいろ面倒だったのですが、これですぐに使えます。

下記の内容をdirewolf用にsdr.confとして保存
#
# Sample configuration for SDR read-only IGate.
#
# We might not have an audio output device so set to null.
# We will override the input half on the command line.
ADEVICE null null
CHANNEL 0
# Put your callsign in place of xxx below.
MYCALL xxx
# Pick appropriate servers for your geographical region.
#
# noam.aprs2.net - for North America
# soam.aprs2.net - for South America
# euro.aprs2.net - for Europe and Africa
# asia.aprs2.net - for Asia
# aunz.aprs2.net - for Oceania
#
# Change the following line if you are not in North America.
IGSERVER noam.aprs2.net
# You also need to specify your login name and passcode.
# This is the same passcode you would use with any other IGate
# application. Contact the author if you can't figure out
# how to generate the passcode.
IGLOGIN xxx 123456
# That's all you need for a receive only IGate which relays
# messages from the local radio channel to the global servers.

IGSERVERは私の場合はxastirで指定してますので設定していません。受信のみの場合は設定しておいてください。なおpasscodeはコールサインを入れると下記からすぐに取得できます。
https://apps.magicbug.co.uk/passcode/

direwolfの起動は1200bpsの場合は

$ rtl_fm -f 144.66M - | direwolf -c sdr.conf -r 24000 -D 1 -

9600bosの場合は
$ rtl_fm –p 62 -f 144.64M -o 4 -s 48000 | direwolf -c sdr.conf -r 48000 -B 9600 –

ですぐに起動できます。いずれもRTLで音声をストリーミング再生して、それをパイプでdirewolfに渡しているだけです。正常に起動したターミナル上でモニターしたaprsのパケットが受信できるはずです。

direwolfはconfigを別にすることで複数起動可能ですので、TXできる別のdirewolfを構成すると、xastirでinterfaceを指定することで144.64は送受信可能 144.66は受信専用 serverportでIGATEする。こんな運用が可能です。

しかし残念ながらRTL-SDRはあまり感度がよくないです。手持ちのTCO安定型と普通のものを使ってみたのですが、やはり無線機(ハンディ機)の直接入力には結構負けているようです。今V3の新しいのをEBAYで注文したのでまた比較してみます。

いま現状のバージョンはi
@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.97-v7+ #1294 SMP Thu Jan 30 13:15:58 GMT 2020 armv7l GNU/Linux
になってします。
sudo apt-get install xastirで入るバージョンは2.1.0です。昔は最新バージョンにするのにarm環境ではなかなかコンパイルが大変で苦労した思い出があります。それでしばらくは楽な2.101を使っていたのですが、この際いろいろいじったこともあってバージョンアップすることにしました。

今はRaspbian Jessieでは、簡単にインストールできるスクリプトを作って公開されているようでえらく簡単にできるようになりました。

まずは現状の2.1.0をアンインストール
$ sudo apt-get remove xastir
スクリプトを入れる
$ wget http://www.175moonlight.com/xastir/raspbian-xastir-git-build.sh
$ chmod +x raspbian-xastir-git-build.sh
実行
$ ./raspbian-xastir-git-build.sh

これはmakeに必要なパッケージも全部入れてくれ、makeが完了したらインストールまで全自動でしてくれるすぐれものです。インストールされるパッケージはかなり多いです。
なお地図をバックアップするように書いてありますが、そのままokでした。設定は
/home/pi/.xastir/conf/xastir.cnf
にありそのまま残っているので、なにもせずに大丈夫です。
これでxastirは最新の2.1.5になりました。見た目は地図が同じなのであまり変わらないですけど、raspberry-pi4では地図の表示がえらく早いです。sdカードの性能にもよりますが、おそらくpi3の1.5倍くらいにはなっている感じです。xastirでは地図の拡大や縮小にストレスがあったのですが、このくらい早いとあまりストレスを感じません。


久しぶりにaprsネタです。rasberry-pi3とTH-D72上でもう4年も稼働しているAPRSですが、今度raspberry-pi4に交換したので、ついでにメモリーも4Gもあるので、direwolfも入れて実験してみました。もともとdirewolf自体が仮想tncの役目をしているので簡単に構築できます。
インストールも簡単でsudo apt-get install direwolfでできます。Raspbianでは1.4が入ります。
最新版は1.5 ですが、これも簡単で

$ git clone http://github.com/wb2osz/direwolf
$ cd direwolf
$ make
$ sudo make install
これだけでRaspbianではエラーもなく最新の1.5が入ります。

必要なもの
USB接続サウンドカード これはジャンク箱の転がっていたsound braster playを使いました。たしか昔amazonで1000円ぐらいで買った? 実はこれが後述するCM119のサウンドチップを使っていました。raspberry-piのUSBポートに差すだけで簡単に認識してくれました。
お勧めはCM108のチップを使っているもので、しかもPTT信号が出せるためGPIO端子が引き出せそうなものみたいです。しかしなかなか日本では入手困難なようで、工作も結構大変だったりします。下記の海外のアマチュアが制作されているキットを購入するのがいいかもしれません。

$aplay -l

**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: U0x41e0x30d3 [USB Device 0x41e:0x30d3], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 0/1
  サブデバイス #0: subdevice #0
カード 1: ALSA [bcm2835 ALSA], デバイス 0: bcm2835 ALSA [bcm2835 ALSA]
  サブデバイス: 7/7
  サブデバイス #0: subdevice #0
  サブデバイス #1: subdevice #1
  サブデバイス #2: subdevice #2
  サブデバイス #3: subdevice #3
  サブデバイス #4: subdevice #4
  サブデバイス #5: subdevice #5
  サブデバイス #6: subdevice #6
カード 1: ALSA [bcm2835 ALSA], デバイス 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 1: ALSA [bcm2835 ALSA], デバイス 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 0: U0x41e0x30d3 [USB Device 0x41e:0x30d3], デバイス 0: USB Audio [USB Audio]

なお上記は標準のサウンドbcm2835の優先順位を変えています。

PTT制御用 RTS信号がでるUSBシリアル変換ケーブル またはDTR信号がでるUSBシリアル変換アダプタであればなんでもいいと思います。
direwolfで一番むずかしいのがこれでリグのPTT制御をどうするのかという問題があります。本来はちゃんと2SC1815あたりでちゃんとスイッチする必要があるんだけど、お手がるで実験用ということで、そのまま上記変換のRTSかDTRをPTT信号として、入力したらどちらでもちゃんと動作しました。

IMG_20200228_091105


上記を一気に解決するのが、下記の製品です。いずれもC-Media CM108/CM119 GPIOを利用してサウンドを内蔵してPTT制御も可能です。
DMK URI     
RB-USB RIM   
RA-35       
一番安い$35のRA-35を注文してみました。送料とか入れてpaypalで6900円くらいになりました。しかし日本で使ったレポートが皆無で少し心配です。人柱覚悟でやってみます。
キットですが、
U1 - CM119A (presoldered)
U2 - LM386 JRC386
U3 - LM386 JRC386
U4 - NE555
U5 - EEPROM (REV2 and later) (presoldered)
となっているので、
presolderedとなっているので、ちょっと心配なんでメールで問い合わせたらすぐにキットの基盤の写真を送ってくれました。さすがにCM119Aの半田つけはもうきついです。

ra35-top-board-only

到着して完成したらまたレポートします。送料が高いのが難点ですね。

今回はお試しで手元にあったもので構築してみました。
まずdirewolf.confの内容ですが、PTT制御は
PTT /dev/ttyUSB0 RTS    RTS信号を使う場合
PTT /dev/ttyUSB0 DTR DTR信号を使う場合
 
接続
SOUND   MIC------------RIG音声出力
SOUND   OUT------------RIG音声入力
USB変換  RTS---2.2k --RIG PTT(2.2Kの抵抗はハンディ機を使う場合はつけたほうがいいみたいです。)

起動はそのまま引数なしで起動したらxastir上でAGWPEとしてインターフェイスに追加します。direwolf.confのデフォルト設定ならばそのまま追加で設定すれば簡単に動きます。
direwolf -p で起動するとkissTNCとして動作します。kissTNCとしたらインターフェイスの設定はSerial KISS TNCとして追加して、tnc-portの部分は/tmp/kisstncとして記述します。当然ながら上記2つともdirewolfを起動してないとupになりません。
direwolfはそのまま起動するとターミナルでtxt colorが設定され環境によっては見にくいです。-t 0のオプションで起動するとcoloerが設定されず見やすくなります。
1200では、tnc-piよりもデコード率はいいみたいです。
今はTH-D72で運用中の9600ですが、リグをFT-817NDにして比較するとあまり変わらないみたいです。まあアンテナも違うのであまり比較にはならないですが、、、ARATEは48000にしています。96000にしてもあまり変わらないみたいです。9600に関しては9600専用のIN-OUTが必要で、ハンディ機は使えないのが難点ですね。

これのいいところは入手困難なTNCを使わなくていいことです。特に1200であれば、ハンディ機で簡単に構築できます。MIC端子をそのまま入力で使えるし、しかもデコード率も結構いいです。余っているハンディ機と、raspberry-piとシリアル変換モジュールがあればすぐに使えます。
あとUSBサウンドモジュールは、安価でAMAZONで入手できるSYBA SD-CM-UAUDがCM108のチップを使っているいたいです。なお私自身が検証してないのであくまで自己責任でお願いします。

さらにAPRS最強のTH-D72ですが、2波同時受信機能があるので、D72のスピーカ出力(2.5ミニジャック)をUSBサウンドカードの入力に利用すれば144.64での9600送受信運用と144.66の1200のdirewolfの受信専用ノードとして1台で利用できます。xastirのインターフェイスはサーバ接続と/dev/ttyUSBのD72用9600接続 さらにdirewolf用に/tmp/kisstncとして3つ設定します。

久しぶりにAprsです。
もうだいぶ前にRaspberry-PiでTNC-PIを使ってXastirを動かす記事を書いたのですが、今はこれにTH-D72をつないで9600運用にしています。ところがTH-D72のTNCは設定のパラメータの保存ができず、電源を切ったりすると、TNCの設定をやり直す必要があります。つまり9600の設定とKISSモードの設定をいちいちやり直さなければいけないのです。
これ結構面倒なので、TNCをUPするときに使用するパラメータを利用して下記の内容のファイルを作成し、Intaerfaceに追加して最初に起動した時にUPするようにししました。
TNCの起動時のパラメータの設定は/usr/share/xastir/configの配下にあります。

##META <no-ctrl-c>
TC 1

##Pause for one second

##META <delay>

##META <delay>

##META <delay>

#Put the TNC in internal mode since this is where we want to end up

# Change the 1 to 0 to go to normal radio mode

#META <no-ctrl-c>
TN 2,0

# Pause for two seconds

##META <delay>

##META <delay>

##META <delay>

##META <delay>

#Turn off Terminal Control

##META <no-ctrl-c>

HID off

#AWlen 8

BBSMsgs ON

B E 0

LOC E 0

Echo off

FLow off

AUTOLF off

MCOM off

MON ON

MRPt on

PACLen 128

PASSALL off

#HBAUD 1200

TXDELAY 25

HEADERLN off

HB 9600

KISS ON

RESTART

このパラメータで問題なく動きました。
下記のようにInterfaceにTNCのパラメータセット用を準備してこれのUPした後に、
普通のKISS-TNCのInterfcaceをUPしします。

aprs



昨年5月にTNC-Xというサイトからtnc-piというのを購入してaprsのGatewayを動かしています。(これが無線の再開局のきっかけだったりして) このTNC-Xというサイトは、今はTNCを手に入れる方法は中古品かこのサイトあたりからキットを購入するしかないです。上記のサイトは結構良心的な値段で送料も安くて気にいっています。

Raspberry-PiでのAprs運用ですが、さすがにLinux ものすごく安定していて、一回もとまったことがないです。

tnc-piはRespberry-Pi上で動くTNCでPiの上でI2C接続になり、XastirからはkissmodeのTNCに見えます。Xastir以外ではGPBPQのノードとかデジピータを構成することができるようです。
これのすばらしいところは5V単一電源 スマホの充電器(最低1A以上)で動くので、上記の構成ならば電気代が格段に安く済みます。
Raspberry-PiとXastirの構築についてはJR6PUEさんのサイトが詳しいです。ひじょうにきれいにまとめられていてものすごく参考になります。

今度Raspberry-Pi2が出たというこどでそれでに変えてみました。OSもバージョンアップされたみたいで、再インストールしたんでその忘備録です。

まずはTnc-Piのマニュアルを見て

/boot/cmdline.txtのconsole=ttyAMA0, 115200を削除。
/etc/inittabの最後の行にある T0:23:respawn:/sbi2c-devin/getty –L ttyAMA0 115200 vt100をコメントアウト

sudo apt-get install ax25-tools
sudo apt-get stall ax25-apps

でax25関係のツールを入れる
あとマニュアルには/etc/ax25/axportsの中の設定を書いてあるけど、これはKiss-Tncとしてスタンドアロンでのアクセスのようですが、とりあえず自分のコールを設定。

etc/modulesの中にi2c-devを追記
sudo apt-get install xastirでご本体を入れる。
あとはVNCサーバを入れてVNCクライアントからxastirを起動します。
あとはxastirの中のinterfaceでSirial-KISS-TNCを追加してデバイス名に/dev/ttyAMA0を入れます。
速度は19200にします。

前にはまったのが/dev/ttyAMA0がどうしてもUPにならず悩みましたが、ls -l  /dev/ ttyAMA0を見るとdialoutのグループになっています。
sudo adduser ユーザ名 dialaout
それでもダメで
sudo chmod a+rw /dev/ttyAMA0
これでなんとかUPになりました。なんだかこれはちょっと釈然としないけど、、ほんとはちゃんとmodprobeにかけばいいなけど、面倒だから、、ま 動いたからいいや

Pi2とTnc-Piの接続ですが、Pi2の方は拡張GPIOのピンが増えています。piと同じように基盤の端のピンに合わせて取り付ければ大丈夫です。すこし残念なのはPiと同じくケースが使えないことです。もうすこしピンが長ければいいのですが、、、

なおPIとの比較して速度はSDカードにもよるんですが、MAPの拡大 縮小なんかでは、約倍の速度にはなっているようです。 あとxastirの最新版2.06をコンパイルして入れてみたんですが、動かしたらOSMの地図が入ってない。いまそれで挫折中です。


R0010309

このページのトップヘ