|
모처럼 일요일에 시간을 내어, 만들어 두었던 MMDVM 시스템에 무전기를 연결하고 간이 조정을 해 보았습니다.
https://bm.pd0zry.nl/index.php/Homebrew/MMDVM 에 보면 MMDVM 보드에서 작동된다고 보고된 무전기 목록이 있습니다.
이중에 제가 가지고 있는 장비가 FTM-100DR 뿐이라 이 리그를 가지고 테스트를 했습니다.
테스트 모습입니다. 안테나 대신 더미로드. 전자공작 카페의 30A 전원부. 세워져 있는 것은 공유기에 물려 카페 이미지 자료실로 쓰고 있는 HDD. 예전에 DVAP 등에 사용하던 라즈베리파이 B 및 B+가 놀고 있는 모습. 왼쪽 끝에 자작 6V6 인티앰프도 조금 보이네요.
DV 신호 수신시 Low 출력으로 송신하고 있는 FTM-100DR
(1) MMDVM 보드와 FTM-100DR 결선
MMDVM 보드중 ZUM 1.0 보드는 무전기 연결 컨넥터의 핀 배치가 NTH 보드와는 조금 다르게 되어 있습니다.
다음은 제가 사용한 DS5TUK MMDVM 보드 (SP8NTH Ver. 6.0 보드) 와 Yaesu FTM-100DR의 결선도입니다.
------------------------ ------------- ----------------------------------------------
MMDVM 보드 FTM-100DR 신호 종류
------------------------ ------------- ----------------------------------------------
6핀 MiniDIN 5Pin Molex 10핀 MiniDIN
----------- ----------- ------------- ----------------------------------------------
6 5 6 # Squelch Control
4 4 4 # 9600 bps data from FTM-100DR to MMDVM (RX)
3 3 3 # PTT
2 2 2 # GND
1 1 1 # data from MMDVM to FTM-100DR (TX)
------------------------ ------------- ----------------------------------------------
위 사진은 FTM-100DR 사용설명서 일부
FTM-100DR 은 Digital 트랜시버이기 때문에 Data 단자가 10핀 Mini-DIN 으로 되어 있습니다. 아나로그 트랜시버는 통상 6핀 Mini-DIN 컨넥터를 사용하죠.
위의 결선도에서 보듯이 MMDVM 보드쪽의 6핀 Mini-DIN 단자를 사용하는 경우 핀 1~6까지 1 대 1 결선입니다. 7~10 번 핀은 디지털 장비끼리 10핀 <=> 10핀으로 결선할 때 쓰는 핀이므로 여기서는 사용치 않습니다.
저는 별도로 케이블을 만들지 않고 HRI-200 Wires-X 인터페이스 유니트 구입시 따라온 인터페이스 케이블 2개중 하나인 10핀 <=> 6핀 Mini-DIN 케이블을 사용했습니다. 이 케이블을 테스터로 찍어보니 1~6번 핀까지 1 대 1 결선이고 나머지 핀은 연결되어 있지 않았습니다.
(2) FTM-100DR 의 Data Jack 설정
FTM-100DR은 디지털 무전기이므로 Data Jack이 여러가지 용도로 사용됩니다. (Packet 통신, GPS Data 출력, Waypoint 출력, Firmware Update 등). 따라서 올바로 설정하지 않으면 제대로 동작하지 않습니다.
Setup 메뉴로 들어가서
1) 메뉴 9번 "Data" 로 들어가면, 몇개의 서브 메뉴가 있는데, 그 중
COMport Setting > COM OUT > PACKET 으로 설정합니다.
2) 메뉴 9번 "Data" 의 서브 메뉴 "DATA SPEED" 중
"DATA" 를 9600 bps 로 설정합니다. (GMSK 9600 bps 설정입니다) <== FTM-100DR이 안된다고 하는 경우, 이곳 설정을
빠뜨린 것이 아닌가 추측합니다.
(3) MMDVM 송수신 레벨 조정
일단 MMDVM.ini 의 레벨 값을 다음과 같이 초기 설정하고 시작했습니다. MMDVM 보드상의 TX 및 RX 볼륨은 중앙 정도의 위치에 대략 맞춰 놓았습니다.
TXInvert=1
RXInvert=0
PTTInvert=0
RXLevel=100
TXLevel=100
부팅하자마자 XRF070C의 D-Star 신호가 수신되기 시작했습니다만, DMR 은 신호가 들어와도 음성이 들리지 않았습니다.
PTT는 정상작동하는 상태였구요. 신호가 들어오면 PTT가 ON되어 FTM-100DR이 송신하고, 신호가 끝나면 OFF되어 송신 종료.
이 상태로 보아, 위의 설정중 TXInvert 및 PTTInvert 값은 올바르게 설정되었다는 것을 알 수 있습니다.
먼저, 수신 레벨 (MMDVM 보드에서는 TX 부분) 조정입니다.
MMDVM 보드의 TX 볼륨을 올려서 DMR 음성이 들리는 점으로 맞추었습니다. 약 80~85% 정도의 위치까지 올라갔습니다.
들리는 점에서 다시 약간 낮추어도 여전히 들리지만, 조금 더 낮추면 소리가 조금 찌그러졌다가, 더 내리면 아예 들리지 않게되고, 그래서 이전 위치로 다시 높여서 조금 낮추는 정도로 맞추었습니다. MMDVM.ini 파일에서 TXLevel을 100으로 놓았으니 이 지점이 DMR이 들리는 최저점이 되겠지요.
D-Star 는 조정폭이 굉장히 넓어서 이렇게 해도 일단 듣는데 전혀 지장은 없었습니다.
이 상태에서 D-Star 및 DMR 송신을 해 보았으나 신호 전달이 되지 않았습니다.
RXInvert를 0에서 1로 바꾸니 송신이 가능해졌습니다.
이미 D-Star는 수신이 되고 있지만, MMDVMCal 교정 프로그램을 사용해 확인해 보기로 했습니다.
Timer 데몬을 죽이고
$ sudo systemctl stop mmdvmhost.timer
MMDVMHost 데몬을 죽인후
$ sudo systemctl stop mmdvmhost.service
MMDVMCal을 기동
$ cd /opt/MMDVMCal
$ sudo ./MMDVMCal /dev/ttyACM0
기동되면, 다음과 같은 Help 화면이 표시되고
The commands are:
H/h Display help
I Toggle transmit inversion
i Toggle receive inversion
P/p Toggle PTT inversion
Q/q Quit
R Increase receive level
r Decrease receive level
T Increase transmit level
t Decrease transmit level
D DMR Deviation Mode (Adjust for 2.75Khz Deviation)
d Return to Dstar Mode
V/v Display version of MMDVMCal
<space> Toggle transmit
스페이스바를 누르면 D-Star 모드로 짧은 텍스트 메세지가 송신됩니다. 다시 한 번 더 누르면 송신 중지.
T 와 t 를 눌러 송신 레벨을 올리거나 낮추어가면서 D-Star 무전기에 "MMDVM /TEST" 라는 메세지가 디코딩되어 표시되는 범위의, 화면에 표시되는 송신 레벨값을 기록해 둡니다.
저의 경우 62%에서 100% 까지 여서 이값의 평균치 81% 를 MMDVM.ini의 D-Star TXLevel 에 기입했습니다.
그러나 screen 기능을 사용해 MMDVM 작동 상태를 모니터링 해 보면 수신중 계속 Buffer Overflow 메세지가 떠서 여러번 값을 낮추었습니다.
NB2O 오엠님께서 측정기로 여러번 테스트한 결과에 의한 추천에 따라 55% 정도에 맞추었고, 저도 이 정도 값이 적정하다고 생각되었습니다.
MMDVM 보드에서 무전기로 들어가는 이 오디오 레벨이 과도하게 설정되면 FM 전파가 과변조되어 스퓨리어스가 발생되고 주위 다른 장비에 오동작을 유발할 수 있습니다. 각 모드별로 적정 수준으로의 설정이 필요합니다.
다음은 송신 레벨 (MMDVM 보드에서는 RX 부분) 조정입니다.
일단 MMDVM.ini 의 RXLevel을 50으로 맞춘 상태에서 MMDVMCal을 띄우고
D-Star 무전기 ID-51A Plus 한정판에서 송신을 하면서 화면상에 표시되는 diff 값을 약 400~600 사이가 되게 MMDVM 보드 상의 RX 볼륨을 조정합니다. 제 경우에는 diff 값이 약 500 정도가 되게 맞추었습니다. DMR 핸디 MD-380G 로도 교정을 하려고 했으나 스퓨리어스 때문인지 값이 요동을 쳐서 일단 포기하고...
이어서 MMDVMCal을 종료하고 MMDVMHost 를 다시 띄워
$ sudo systemctl start mmdvmhost.service
D-Star 및 DMR 모드에서 송신을 하면서 PTT를 잡을 때 제대로 신호가 전달되는지, ADC로의 과도 입력 에러메세지가 나오지 않는지 확인하면서 미세 조정을 합니다.
screen 기능을 사용해 신호를 모니터링하면서 과도 입력 메세지가 나오지않도록 조정하면 됩니다. 적절하게 조정이 되면 모니터링되는 신호의 BER (Bit Error Rate)이 0.0% 로 깔끔하게 들어옵니다.
또한 DMR 무전기로 송신을 해보면 아까 포기했던 DMR 송신 레벨값이 화면에 표시되므로 참조가 가능합니다.
참고로, Screen 기능으로 모니터링을 해보면, DVMEGA+BlueStack 조합에서는 D-Star 모드에서 수신되는 신호의 BER 이 자주 0.1~0.5 정도를 보이며, DMR에서는 BER이 조금 더 높게 들어올 때도 있고, 심지어 패킷 Loss가 생길때도 있습니다. 그러나 DVMEGA 나 BlueStack 에는 조정할 볼륨같은 것이 전혀 없지요. 아마도 약간 조정이 틀어진 상태가 아닌가 의심해 봅니다.
위 사진은 MMDVMCal 구동 모습입니다.
FTM-100DR 외에는 가지고 있는 C4FM 장비가 없어서 C4FM 쪽은 테스트를 하지 못했습니다.
(4) 결론
MMDVM 송수신 레벨의 교정은 Spectrum Analyzer 및 Osciloscope 등의 측정기를 사용해 정확히 해야 할 필요가 있습니다.
측정기가 없는 상태에서는 눈대중으로 대충 작동만 되게 맞추는 식이 될 수 밖에 없습니다.
테스트후 DMR 및 D-Star 테스트 교신을 하였고, NB2O 오엠님과 잠시 교신을 했습니다만, 조정점에 대한 대략 비슷한 패턴이 나오는 것 같습니다. 조정해보신 분들이 자료를 많이 제시해 주시면, 측정기 없이도 쓸만한 수준의 대략 조정이 가능할 것으로 기대합니다.
제 MMDVM.ini 파일의 레벨 부분 설정값입니다.(FTM-100DR의 경우)
TXInvert=1
RXInvert=1
PTTInvert=0
RXLevel=50 <== 요걸 100%로 놓고 보드상의 RX 볼륨을 조정해도 되겠지요
TXLevel=100
# CWIdTXLevel=50
D-StarTXLevel=55
# DMRTXLevel=81
# YSFTXLevel=100
# P25TXLevel=50
아래 사진은 TX 및 RX 볼륨 위치입니다.
청색 화살표는 볼륨의 중앙 위치, 빨간 선이 설정 방향입니다.
(4) 소감
DVMEGA+BlueStack 에 사용하던 때와 비교할 수 없이 산뜻하게 작동합니다. 대기후 PTT를 잡아도 바로 바로 응답하고 아주 쾌적하고 부드럽게 작동합니다.
Screen 기능으로 MMDVMHost 작동 상태를 모니터링하면 표시되는 형식이 DVMEGA 사용할 때와 약간 다르게 표시되는군요.
이 방식은 무전기를 사용하므로 핫스팟으로 연속 대기하기엔 전기 소모가 좀 많겠지요?
교정용 프로그램 MMDVMCal 에 관해서 인터넷상에 있는 몇 개의 글을 번역하여 참조용으로 제 블로그에 올려 두었으니 이것도 참조하시기 바랍니다. http://blog.naver.com/hl5bpl/220858677208
이 글은 측정기 없이 대략 조정한 과정을 적은 것이므로 단지 참조만 해 주시기 바랍니다.
여기까지 하면, Simplex 방식의 MMDVM 핫스팟 시스템이 완성되는군요.
Full Duplex 리피터로 운용하려면 무전기를 한 대 더 붙이고, Duplexer 와 외부 안테나를 추가하면 되겠지요.
MMDVM 보드를 가지고 시도하시는 분들 모두 성공하시길 빕니다.
제가 그동안 올렸던 MMDVM 관련 글 제목에 번호를 매겨두었으니 순서대로 읽어보시면 참조가 될 것입니다.
첫댓글 글 잘 읽었읍니다.
사진과 함께 설명되어 이해하기 쉬웠읍니다..^^
축하드립니다. 제 같은 경우 DStar와 C4FM의 수신은 잘 되고 있습니다. 근데, 송신이 안되고 있어서. PTT를 잡으면, MMDVM Rx 전압이 변동하고 있는 것을 볼 때, FTM-100DR에서 MMDVM으로 신호를 전송한다는 것을 알 수 있는데 Screen에서는 나타나지 않고 있습니다.
Q1. MMDVMCal이 내보내는 MMDVM/TEST문자를 ID-51A에서 수신않되는데, 저는 잡음처럼 소리가 들릴 때는 DV-F가 깜박이다가 소리가 사라지면서 멈추게 되는데 이때 이 값을 가지고 TXlevel를 정정하게 되면 수신을 확인할 수 있습니다.
Q2. FT-9100로 MMDVCal을 테스터해보면, TXinvert등 여러 정보와 differ등 어떤 값을 보여주는데 그 의미를 잘 모르겠는데 아시는 것 있습니까
여러번 검색을 해봤으나 아쉽게도 MMDVMCal 관련 설명 문서를 찾지 못했습니다. 정 안되면 원작자 G4KLX에게 문의를 해보는 수 밖에 없을 것 같습니다.
내용상으로 봤을 때 무전기의 수신부 디스크리미네이터에서 나오는 아나로그 신호를 아두이노의 ADC로 넣어 디지털 신호로 변경하려고 할 때 신호 deviation (진폭)을 어느 정도 값 이하로 제한해야 하므로 그 최저값과 최대값, 그리고 최대값과 최저값의 차이 (difference) 및 중앙값 등를 나타내는 것으로 이해됩니다.
@HL5BPL 신호 Invert (반전)는 간단히 이야기 해서 디지털 신호 0 또는 1 이 Low 전압에서 작동하는지, High 전압에서 작동하는지를 말하는 것으로 이 두가지 상태를 바꾸어주는 설정을 말합니다.
예를 들어, PTT회로가 12V 회로로 되어 있다면 +12V 를 인가할 떄 PTT가 동작할 것인지, 0V를 인가할 때 동작할지를 선택하는 것이라고 생각하시면 이해가 되실 것입니다. 설계된 상태와 다르게 설정하면 당연히 동작이 안되겠지요?
점점 제 작업테이블과 비슷해 지고있습니다. ㅎㅎㅎ
이것저것 꺼내서 책상위에 올려놓고 테스트하고보면 참~ 정신없습니다.
고생하셨습니다.
저도 따라하고 싶은데 엄두가 안나네요.
암튼 소상하게 올려주신 글 감사합니다.
쉽습니다. 케이블만 제대로 된 것만 선택하면 됩니다. 그렇게 않되었던 송신이 케이블만 바꾸었는데 아무문제 없이 dstar와 c4fm 송수신이 다 되네요.
6핀 -> 10핀 데이타 케이블 사용하니 dstar c4fm 송수신 다 되네요. 역시 결선이 문제인가본데 나중 확인해 보아야 할 것같습니다.