MMDVM MODEM基板到着
2018.06.10
ebayに注文していた中華製のMMDVM MODEMが到着しましたのでRaspberryPi2(Pi-Star)+MMDVM MODEM+FT7800の組合せで実験してみました。
ケーブルはPS2マウス/キーボード延長ケーブルを切断して片方にピンヘッダーメスを付けました。
(6ピンMiniDinオス<-->ピンヘッダーメス)
DATA端子のPTT -------------- MODEM基板のPTT(3)
DATA端子のDATA IN -------------- MODEM基板のTX(5)
DATA端子のDATA OUT(9600bps) -------- MODEM基板のRX(6)
DATA端子のGND -------------- MODEM基板のGND(9or10)
上記の通りFT-7800の6ピンMiniDin DATA端子(パケット端子)とMODEM基板を4本で接続
FT-7800の設定はパケット速度を9600bps、送信はWIDEモードに設定しておきます。
MODEM基板のRXレベル調整ボリュームは中央、TX調整ボリュームは最大(左回り一杯)で仮調整しました。
Pi-Starの設定でModemタイプは「ZUM Radio-MMDVM for Pi(GPIO)」を選択しましたが「STM32-DVM/MMDVM_HS_Raspberry Pi Hat(GPIO)」でも動くとの情報もあます。
(何でもOKなのかな???)
MODEM基板の動作確認が取れた後、ファームを1.34(20180327版)にアップ実施しました。
-----------------------ファームアップメモ---------------------------------
RaspberryPiを立上げ、TeraTerm等でssh接続
wget http://www.taozhengbo.com/mmdvm/RPT_134.hex
でファームダウンロード、完了後シャットダウンして電源を切る。
MODEM基板のJP1を接続してRaspberryPiを立上げ
TeraTerm等でssh接続、
sudo killall MMDVMHost でMMDVM関係のソフトを停止させた後、
sudo stm32flash -w RPT_134.hex /dev/ttyAMA0
を素早く実行する。
素早く実行しないと
Interface serial_posix: 57600 8E1
Failed to init device.
のエラーが出てアップ出来ない場合がある。
その場合はシャットダウン電源再投入で立上後、再度
sudo killall MMDVMHost
sudo stm32flash -w RPT_134.hex /dev/ttyAMA0
を実行する。
------------------------------------------------------------------------
------------------RX/TXレベル調整メモ(ファーム20180327)---------------------
ExpertのMMDVMHost設定Modem項の設定はFT-7800(430MHz帯)でD-Star/FusionC4FMでは確認OK。
TXInvert:1
RXInvert:0 <--144MHz帯は1
RXLevel:50 <--大きく変化させてもBitエラー変化無し、MODEM基板のRXレベル調整ボリュームでBitエラーが少なるなる様に調整。
TXLevel:50 <--大きく変化させても変調音(ザー音の大きさ)に変化無し、MODEM基板のTXレベル調整ボリュームで調整又は下のモード毎TXLevelを調整??。
D-StarTXLevel:50 <--変調音(ザー音の大きさ)をハンディ機と同じにした。
DMRTXLevel:30 <--未確認
YSFTXLevel:30 <--17~43の間でFT1Dにて復調OK 中間の30を設定
P25TXLevel:30 <--未確認
----------------------------------------------------------------------------------
DMRについては後日調整予定です。YAESU System Fusionと同じ4値FSKなので動くと思います。
DVMEGA GMSK MODEMで430MHz帯にてD-Star公開ノードの運用をしていますのでMMDVM MODEMでの公開ノード運用は当面しない予定です。
尚、気が変わって公開ノードとして運用する場合は144MHz帯になると思います。
ケーブルはPS2マウス/キーボード延長ケーブルを切断して片方にピンヘッダーメスを付けました。
(6ピンMiniDinオス<-->ピンヘッダーメス)
DATA端子のPTT -------------- MODEM基板のPTT(3)
DATA端子のDATA IN -------------- MODEM基板のTX(5)
DATA端子のDATA OUT(9600bps) -------- MODEM基板のRX(6)
DATA端子のGND -------------- MODEM基板のGND(9or10)
上記の通りFT-7800の6ピンMiniDin DATA端子(パケット端子)とMODEM基板を4本で接続
FT-7800の設定はパケット速度を9600bps、送信はWIDEモードに設定しておきます。
MODEM基板のRXレベル調整ボリュームは中央、TX調整ボリュームは最大(左回り一杯)で仮調整しました。
Pi-Starの設定でModemタイプは「ZUM Radio-MMDVM for Pi(GPIO)」を選択しましたが「STM32-DVM/MMDVM_HS_Raspberry Pi Hat(GPIO)」でも動くとの情報もあます。
(何でもOKなのかな???)
MODEM基板の動作確認が取れた後、ファームを1.34(20180327版)にアップ実施しました。
-----------------------ファームアップメモ---------------------------------
RaspberryPiを立上げ、TeraTerm等でssh接続
wget http://www.taozhengbo.com/mmdvm/RPT_134.hex
でファームダウンロード、完了後シャットダウンして電源を切る。
MODEM基板のJP1を接続してRaspberryPiを立上げ
TeraTerm等でssh接続、
sudo killall MMDVMHost でMMDVM関係のソフトを停止させた後、
sudo stm32flash -w RPT_134.hex /dev/ttyAMA0
を素早く実行する。
素早く実行しないと
Interface serial_posix: 57600 8E1
Failed to init device.
のエラーが出てアップ出来ない場合がある。
その場合はシャットダウン電源再投入で立上後、再度
sudo killall MMDVMHost
sudo stm32flash -w RPT_134.hex /dev/ttyAMA0
を実行する。
------------------------------------------------------------------------
------------------RX/TXレベル調整メモ(ファーム20180327)---------------------
ExpertのMMDVMHost設定Modem項の設定はFT-7800(430MHz帯)でD-Star/FusionC4FMでは確認OK。
TXInvert:1
RXInvert:0 <--144MHz帯は1
RXLevel:50 <--大きく変化させてもBitエラー変化無し、MODEM基板のRXレベル調整ボリュームでBitエラーが少なるなる様に調整。
TXLevel:50 <--大きく変化させても変調音(ザー音の大きさ)に変化無し、MODEM基板のTXレベル調整ボリュームで調整又は下のモード毎TXLevelを調整??。
D-StarTXLevel:50 <--変調音(ザー音の大きさ)をハンディ機と同じにした。
DMRTXLevel:30 <--未確認
YSFTXLevel:30 <--17~43の間でFT1Dにて復調OK 中間の30を設定
P25TXLevel:30 <--未確認
----------------------------------------------------------------------------------
DMRについては後日調整予定です。YAESU System Fusionと同じ4値FSKなので動くと思います。
DVMEGA GMSK MODEMで430MHz帯にてD-Star公開ノードの運用をしていますのでMMDVM MODEMでの公開ノード運用は当面しない予定です。
尚、気が変わって公開ノードとして運用する場合は144MHz帯になると思います。
CW Decoder完成
2018.06.07
液晶ディスプレイLCD2004が入手出来ましたのでケースに入れ、CW Decoderを完成させました。
LCD2004は予想以上に大きくスイッチ類を取付けると手持ちのケースはギリギリの状態でした。
LCD2004で表示出来る様にスケッチを変更しました。
1行目は速度、欧文/和文モード、Tone検出周波数、BandWidthを表示します。
2行目~4行目が受信データの表示です。
新しい受信データは4行目に表示して古い受信データは3->2行目に繰上る様にしています。
スイッチで欧文/和文モード強制切替、Tone検出周波数/BandWidthの変更が出来ます。
Tone検出周波数/BandWidthの変更は使用スイッチの関係上、各々3通りの設定となっています。(スケッチ上は各々4通り可能)
取り合えずは完成、まずまずの性能と言う事ですがあくまでも苦手な和文の練習用で実戦での使用は考えていません。

LCD2004は予想以上に大きくスイッチ類を取付けると手持ちのケースはギリギリの状態でした。
LCD2004で表示出来る様にスケッチを変更しました。
1行目は速度、欧文/和文モード、Tone検出周波数、BandWidthを表示します。
2行目~4行目が受信データの表示です。
新しい受信データは4行目に表示して古い受信データは3->2行目に繰上る様にしています。
スイッチで欧文/和文モード強制切替、Tone検出周波数/BandWidthの変更が出来ます。
Tone検出周波数/BandWidthの変更は使用スイッチの関係上、各々3通りの設定となっています。(スケッチ上は各々4通り可能)
取り合えずは完成、まずまずの性能と言う事ですがあくまでも苦手な和文の練習用で実戦での使用は考えていません。

Pi-Star バージョンUp実施
2018.05.30
Pi-StarのバージョンをVer 3.4.13 --> 3.4.15にアップデートしました。
今回は2段階のアップデートなのでsudo pistar-update/sudo pistar-upgradeを2回実行しないとダメなので少々時間がかかります。
現状、1段階毎のアップデートしか出来ないので「飛び級」で出来る様にしてほしいですね。
主な変更内容はDMR2YSF/DMR2NXDNの追加の様ですのであまり関係ないかも。
ZUMspotのファームもV1.3.3からV1.3.7にアップしました。
何が変わったのか不明です。
現時点JumboSPOTのメーサイトはV1.3.3のままでアップ情報はありません。
他を探せば有るかも?
------------------5/31 追記---------------------------------------
JumboSPOTのファームアップについて調査していたところ
JE4SMQ局のサイトに情報が有り、簡単にアップ出来ました。
sshで接続下記コマンド1行を実行
sudo pistar-mmdvmhshatflash hs_hat
途中で実行するかどうか聞かれますが実行する場合はそのままEnterを押し実行します。
Pi-Star ver 3.4.14以降でZUMspot用のファームアップコマンドも追加されています。
sudo pistar-zumspotflash rpi
------------------------------------------------------------------
以上
今回は2段階のアップデートなのでsudo pistar-update/sudo pistar-upgradeを2回実行しないとダメなので少々時間がかかります。
現状、1段階毎のアップデートしか出来ないので「飛び級」で出来る様にしてほしいですね。
主な変更内容はDMR2YSF/DMR2NXDNの追加の様ですのであまり関係ないかも。
ZUMspotのファームもV1.3.3からV1.3.7にアップしました。
何が変わったのか不明です。
現時点JumboSPOTのメーサイトはV1.3.3のままでアップ情報はありません。
他を探せば有るかも?
------------------5/31 追記---------------------------------------
JumboSPOTのファームアップについて調査していたところ
JE4SMQ局のサイトに情報が有り、簡単にアップ出来ました。
sshで接続下記コマンド1行を実行
sudo pistar-mmdvmhshatflash hs_hat
途中で実行するかどうか聞かれますが実行する場合はそのままEnterを押し実行します。
Pi-Star ver 3.4.14以降でZUMspot用のファームアップコマンドも追加されています。
sudo pistar-zumspotflash rpi
------------------------------------------------------------------
以上
MD380 Tools導入
2018.05.29
少々時間ができましたのでTYT MD380 Toolsを導入してDMR送信局をコールサインで表示出来る様にしてみました。
DMR ID表示だと誰が出ているのか直ぐにわかりませんでしたが導入後は一目でわかり便利になりました。
尚、Toolsを導入してもメモリーデータは消えませんでした。
-----------------------------手順メモ---------------------------------------
[MD380 Tools]
サイト http://www.db0rbb.de/plug/1.software/RT3_MD380/ 等より TyteraFlashToolv1_05.zip をダウンロードして適当なフォルダに解凍
解凍して出来た TyteraFlashTool.exe を起動
MD-380左サイドの一番上の画面消灯スイッチ及び二番目のPTTスイッチを押した状態で電源をON
(LEDが点滅してFW書込みモードになる)
PCとMD-380をUSBで接続する。
TyteraFlashTool.exe画面 FRMWARE項の Download NON-GPS をクリックしてファームをダウンロード
ダウンロード完了後、FIRMWARE項のFrash をクリック
(黄色バーが右に進むので完了まで待つ)
完了後MD-380再起動
[UserDBの書込み]
(MD-380は通常モード起動にてPCとUSB接続されている事)
TyteraFlashTool.exe画面 USERDB項の Download Update をクリックしてUserDBをダウンロード
ダウンロード完了後、USERDB項のFrashをクリック
(黄色バーが右に進むので完了まで気長に待つ)
完了したならばUSBケーブルを外す
MD-380の Menu -> Uutilities -> MD380Toolz ->Show Calls で User DB 又はTA & User DB を選択
以上
--------------------------------------------------------------------------
注)上記手順はメモであり実行して文鎮化しても責任は負えません。
DMR ID表示だと誰が出ているのか直ぐにわかりませんでしたが導入後は一目でわかり便利になりました。
尚、Toolsを導入してもメモリーデータは消えませんでした。
-----------------------------手順メモ---------------------------------------
[MD380 Tools]
サイト http://www.db0rbb.de/plug/1.software/RT3_MD380/ 等より TyteraFlashToolv1_05.zip をダウンロードして適当なフォルダに解凍
解凍して出来た TyteraFlashTool.exe を起動
MD-380左サイドの一番上の画面消灯スイッチ及び二番目のPTTスイッチを押した状態で電源をON
(LEDが点滅してFW書込みモードになる)
PCとMD-380をUSBで接続する。
TyteraFlashTool.exe画面 FRMWARE項の Download NON-GPS をクリックしてファームをダウンロード
ダウンロード完了後、FIRMWARE項のFrash をクリック
(黄色バーが右に進むので完了まで待つ)
完了後MD-380再起動
[UserDBの書込み]
(MD-380は通常モード起動にてPCとUSB接続されている事)
TyteraFlashTool.exe画面 USERDB項の Download Update をクリックしてUserDBをダウンロード
ダウンロード完了後、USERDB項のFrashをクリック
(黄色バーが右に進むので完了まで気長に待つ)
完了したならばUSBケーブルを外す
MD-380の Menu -> Uutilities -> MD380Toolz ->Show Calls で User DB 又はTA & User DB を選択
以上
--------------------------------------------------------------------------
注)上記手順はメモであり実行して文鎮化しても責任は負えません。
CW Decoder
2018.05.19
手持ちのATMEGA328P-PUと表示器LCD1602の組み合わせで欧文/和文対応CW Decoderを作ってみました。
当初はJH7UBC局のトーン検出に567Dを使用したもの及びスケッチを利用させて頂き作成しました。
トーン検出性能の問題なのか入力レベルの大小、周波数、ノイズ等の影響なのか解読率が今一つでした。
中華製でAliExpress等にて1K円程度で売られているPIC16F+567Dの組み合わせのCW Decoderも解読率が悪く実用に耐えないと聞いています。
(トーン検出の前段にフイルタアンプ等を組み込めば改善されるかも?)
そこで今回は解読率アップを狙いOZ1JHM局のアナログ入力FFT方式、和文対応スケッチを採用してみました。
OZ1JHM局サイト
http://skovholm.com/cwdecoder
欧文スケッチ
https://github.com/SkillfulHacking/arduino-cwdecoder
和文対応スケッチ
http://www.skovholm.com/decoder_kh.ino (JA9MAT局が和文対応)
回路は簡単で外付け部品も少なくArduino UNO (nanoも可)を利用すれば簡単に作成出来ます。
サイトの図面でArduinoのD13に接続している発光ダイオードの向きは逆になっていますので修正して下さい。
和文対応スケッチで強制的に和文/欧文切り換えを行う場合はArduinoのD2及びD3に押しボタンスイッチ追加が必要です。
D2/D3に電圧がかかってい無くプルアップしないとD2/D3をスイッチでアースに落としても切り換え出来ませんでした。(アースに落とすのではなく+5vをスイッチ経由で入力すればOK? )
又、D13はDigital信号ON/OFF表示で使用していますので欧文/和文切り換え表示はD4に変更しました。LCDにモードが表示されますのでD4に接続するLEDは必要ないですが当初作成Dcoderでモート表示に使用していましたのでそのまま流用しました。
----------------------スケッチ112行目付近の修正---------------------
void setup() {
pinMode(2,INPUT) ; //スイッチに接続ピンをデジタル入力に設定
pinMode(3,INPUT) ; //スイッチに接続ピンD4をデジタル入力に設定
digitalWrite(2,HIGH); //D2プルアップ
digitalWrite(3,HIGH); //D3プルアップ
// pinMode(13,OUTPUT) ; //LEDに接続ピンをデジタル出力に設定
pinMode(4,OUTPUT) ; //LEDに接続ピンD4をデジタル出力に設定
---------------------スケッチ160行目付近の修正-----------------------
if (digitalRead(2) == LOW) { //スイッチの状態を調べる ORG:HIGH
// digitalWrite(13,HIGH) ; //和文スイッチが押されているならLEDを点灯
digitalWrite(4,HIGH) ; //和文スイッチが押されたならLEDを点灯
sw = 1; //和文に強制的に切り替える
}
if (digitalRead(3) == LOW) { //スイッチの状態を調べる ORG:HIGH
// digitalWrite(13,HIGH) ; //欧文スイッチが押されているならLEDを点灯
digitalWrite(4,LOW) ; //欧文スイッチが押されたならLEDを消灯
sw = 0; //欧文に強制的に切り替える
}
--------------------------------------------------------------------------
スケッチはTone検出周波数:744Hz / BandWidth:140Hz設定にてコンパイルしました。
OZ1JHM局のFFT方式は解読率は良く入力レベル変動、ノイズ等の影響は少ないようです。
スピードも10~30wpmの範囲内で若干タイムラグがありますが自動追従で解読出来ました。
後日、20x4の表示器に取り換え及びスイッチ等でTone検出周波数/BandWidthを変更出来る様に改良、ケースに入れたいと考えています。

567Dトーン検出方式からアナログ入力FFT方式に変更、回路はそのまま残しています。
写真右側中央付近の8Pソケットが567D用です。567Dを取付け、スケッチを変更すればトーン検出方式でも動きます。

LCD1602を取付けた写真です。表示エリアが狭いためLCD2004を使用した方が良いです。
---------追記-------------------
サイトURL https://k2jji.org/2014/09/18/arduino-base-cw-decoder/ を参考にAroduino(Atmega328P)のA0~A3の入力でTone検出周波数/BandWidthを各々4通りに設定、及び設定値をLCDに表示出来る様にスケッチを変更しました。
LCD2004(送料込み300円)はAliExpressに注文しましたので到着後交換予定です。
当初はJH7UBC局のトーン検出に567Dを使用したもの及びスケッチを利用させて頂き作成しました。
トーン検出性能の問題なのか入力レベルの大小、周波数、ノイズ等の影響なのか解読率が今一つでした。
中華製でAliExpress等にて1K円程度で売られているPIC16F+567Dの組み合わせのCW Decoderも解読率が悪く実用に耐えないと聞いています。
(トーン検出の前段にフイルタアンプ等を組み込めば改善されるかも?)
そこで今回は解読率アップを狙いOZ1JHM局のアナログ入力FFT方式、和文対応スケッチを採用してみました。
OZ1JHM局サイト
http://skovholm.com/cwdecoder
欧文スケッチ
https://github.com/SkillfulHacking/arduino-cwdecoder
和文対応スケッチ
http://www.skovholm.com/decoder_kh.ino (JA9MAT局が和文対応)
回路は簡単で外付け部品も少なくArduino UNO (nanoも可)を利用すれば簡単に作成出来ます。
サイトの図面でArduinoのD13に接続している発光ダイオードの向きは逆になっていますので修正して下さい。
和文対応スケッチで強制的に和文/欧文切り換えを行う場合はArduinoのD2及びD3に押しボタンスイッチ追加が必要です。
D2/D3に電圧がかかってい無くプルアップしないとD2/D3をスイッチでアースに落としても切り換え出来ませんでした。(アースに落とすのではなく+5vをスイッチ経由で入力すればOK? )
又、D13はDigital信号ON/OFF表示で使用していますので欧文/和文切り換え表示はD4に変更しました。LCDにモードが表示されますのでD4に接続するLEDは必要ないですが当初作成Dcoderでモート表示に使用していましたのでそのまま流用しました。
----------------------スケッチ112行目付近の修正---------------------
void setup() {
pinMode(2,INPUT) ; //スイッチに接続ピンをデジタル入力に設定
pinMode(3,INPUT) ; //スイッチに接続ピンD4をデジタル入力に設定
digitalWrite(2,HIGH); //D2プルアップ
digitalWrite(3,HIGH); //D3プルアップ
// pinMode(13,OUTPUT) ; //LEDに接続ピンをデジタル出力に設定
pinMode(4,OUTPUT) ; //LEDに接続ピンD4をデジタル出力に設定
---------------------スケッチ160行目付近の修正-----------------------
if (digitalRead(2) == LOW) { //スイッチの状態を調べる ORG:HIGH
// digitalWrite(13,HIGH) ; //和文スイッチが押されているならLEDを点灯
digitalWrite(4,HIGH) ; //和文スイッチが押されたならLEDを点灯
sw = 1; //和文に強制的に切り替える
}
if (digitalRead(3) == LOW) { //スイッチの状態を調べる ORG:HIGH
// digitalWrite(13,HIGH) ; //欧文スイッチが押されているならLEDを点灯
digitalWrite(4,LOW) ; //欧文スイッチが押されたならLEDを消灯
sw = 0; //欧文に強制的に切り替える
}
--------------------------------------------------------------------------
スケッチはTone検出周波数:744Hz / BandWidth:140Hz設定にてコンパイルしました。
OZ1JHM局のFFT方式は解読率は良く入力レベル変動、ノイズ等の影響は少ないようです。
スピードも10~30wpmの範囲内で若干タイムラグがありますが自動追従で解読出来ました。
後日、20x4の表示器に取り換え及びスイッチ等でTone検出周波数/BandWidthを変更出来る様に改良、ケースに入れたいと考えています。

567Dトーン検出方式からアナログ入力FFT方式に変更、回路はそのまま残しています。
写真右側中央付近の8Pソケットが567D用です。567Dを取付け、スケッチを変更すればトーン検出方式でも動きます。

LCD1602を取付けた写真です。表示エリアが狭いためLCD2004を使用した方が良いです。
---------追記-------------------
サイトURL https://k2jji.org/2014/09/18/arduino-base-cw-decoder/ を参考にAroduino(Atmega328P)のA0~A3の入力でTone検出周波数/BandWidthを各々4通りに設定、及び設定値をLCDに表示出来る様にスケッチを変更しました。
LCD2004(送料込み300円)はAliExpressに注文しましたので到着後交換予定です。