|
MMDVM 보드를 준비해 놓고도 설치를 못하고 계시는 분들을 위해(?), Arduino Due 보드에 MMDVM 펌웨어를 로딩하는
방법을 인터넷 상의 글을 참조하여 Arduino Due 보드만 가지고 테스트해봤습니다.
현재 MMDVM 은 D-Satar, DMR, C4FM, P-25 모드를 지원하고 있으며, 하드웨어로는 기존의 Arduino Due 외에 조금 더 싼
UMP (Arduino Mega 2560) 보드가 최근에 추가된 것 같습니다.
이 글의 내용은 제가 MMDVM 보드 없이 "아두이노 두에" 보드만 가지고 따라하기 식으로 테스트는 해 본 내용입니다.
내용상 오류가 있을 수도 있사오니 테스트 가능하신 분은 해 보시고 내용상 오류 등을 댓글로 남겨주시면 문서를 정정하는데
많은 도움이 되겠습니다.
참조 : https://www.f5uii.net/en/tutorial-installation-platine-board-firmware-mmdvm-arduino-due/
한국 D-Star User Group 의 MMDVM 게시판 게시글들
<참조>
Arduino Due는 이태리에서 만든 보드로 이태리어로 Due (두에)는 숫자 2의 발음입니다. 우노는 숫자 1 등 등
영어식 발음은 "듀" 인데, 이태리식 발음으로 "두에"로 읽는 것이 맞을것 같네요.
예전에 이태리 엔지니어들이랑 몇 달 함께 일한적이 있어서 우노, 두에, 친꼬, 꽈뜨로...이정도는 기억하고 있습니다...Hi
Arduino Due 보드는 이태리산 정품은 품절이고, 국내에서는 7만원이 넘는 비싼가격에 수입해다 파는 것 같고, 중국산 호환
보드는 2012년 R3 보드라고 표시되어 있던데 국내에서 약 2만5천원 가량, AliExpress.com 등에서는 배송비 무료에 약 USD15
정도에 팔리는군요.
국내 LK Lab 이라는 곳에서 2013년 A11 버전이라는 보드를 약 3만 5천원 정도에 제작하여 팔고 있던데 기존 R3 버전과 어떻게
다르냐고 질문을 해도 답이 없어서 포기하고, 중국산 호환보드를 옥션에서 하나 구입했습니다.
중국산 보드도 동작은 잘 된다고 합니다만, 택배를 받아 열어보니 PCB 품질 상태가 너무 조잡해서 이게 과연 동작할까 싶었습니다. 오래 쓸거면 좀 좋은 걸로 구하는게 좋지 않을까 생각해 봤습니다.
특히, 사진에 있는, 함께 딸려오는 USB 케이블은 해외 사이트의 글들을 보니 접촉불량이 많은 것으로 유명합니다.
어지간 하면 국산 USB 케이블을 별도로 구입하여 사용하길 권장합니다.
사진을 클릭하여 확대해 보면 PCB 품질 상태를 느껴보실 수 있습니다.
<Arduino IDE 편집 프로그램 설치>
아두이노 펌웨어 소스코드를 읽어들여 컴파일 후 아두이노 보드에 로딩하는데 사용하는 종합개발환경 프로그램입니다.
모든 종류의 아두이노 보드에 공통으로 사용가능한 프로그램입니다.
아두이노 다운로드 사이트에 보니 금일 (2016.11.17) 현재 Arduino 1.6.12가 최신판이네요. 여러가지 버전이 있지만
MMDVM 펌웨어 소스파일 중 https://github.com/g4klx/MMDVM/blob/master/BUILD.txt 에
Arduino 1.6.3 with SAM 1.6.4
Arduino 1.6.7 with SAM 1.6.6
Arduino 1.6.9 with SAM 1.6.8
등에의 적용 방법이 설명되어 있으므로 1.6.9 버전으로 설치해 보기로 합니다.
https://www.arduino.cc/ > Download > previous version of current release > 1.6.9 윈도우용 설치프로그램을 다운로드합니다.
다운로드 화면에서 원하면 기부를 할 수도 있습니다.
원하지 않으면 "JUST DOWNLOAD" 버튼을 눌러 무료로 다운로드하면 됩니다.
설치시 모든 components를 다 설치토록 선택후 설치 (특히 USB Driver)
USB 드라이버를 설치할 것인지 묻는 화면에서는 모두 "설치"를 선택합니다.
설치완료후 아래 그림과 같이 Programming Port (외부 전원 컨넥터)에 USB Cable을 연결하면,
윈도우 장치관리자에 COM 포트가 하나 추가됩니다. 번호를 기억해 둡니다.
윈도우에서 아두이노 IDE 편집 프로그램을 구동하고,
메뉴바의 툴(Tools) > 포트(Ports) 에서 장치관리자에서 확인한 COM 포트를 지정합니다.
다음, 메뉴에서 툴(Tools) > 보드매니저(Boards Manager) 를 선택하면, manager가 인터넷을 통해 아두이노 정의(definition)를
다운로드 합니다.
검색 Type에 due를 입력합니다.
이어서, Arduino SAM Boards (32-bits ARM Cortex-M3) 을 선택하고 "설치"를 클릭합니다.
설치가 끝나면 툴(Tools) > 보드(Boards) : “Arduino Due (Programming Port)” 를 선택합니다.
<모든 것이 올바로 설정되었는지 체크하는 작은 테스트 프로그램 로딩>
이 테스트 프로그램은 Arduino Due 보드 위의 L LED 를 단지 깜박거리게 하는 것입니다.
메뉴에서 파일 > 예제 > 01.Basics > Blink 를 엽니다.
이 프로그램은 단순히 보드위의 L 램프에 연결된 13번 핀의 출력 상태를 바꿉니다.
화살표 아이콘 (업로드)을 클릭합니다.
그러면 프로그램이 컴파일되어 아두이노로 로딩됩니다.
프로그램은 그 때부터 LED를 깝박거리게 합니다.
이 프로그램은 아두이노 보드에서 독립적으로 동작되고,컴파일과 로딩에 사용했던 아두이노 PC 프로그램은 더 이상 필요가
없습니다.
아래 그림은 프로그램의 컴파일, 로딩, 초기화 진행 과정을 보여줍니다.
‘Verify successful‘ 라는 메세지는 컴파일이 성공적으로 완료되었음을 의미한다.
보드에 있는 RESET 스위치를 눌러주면 프로그램이 구동되기 시작하고 LED가 규칙적으로 깜박입니다.
<Arduino Due 보드에 MMDVM 소프트웨어 설치>
https://github.com/g4klx/MMDVM/blob/master/BUILD.txt 의 내용에 따라 Arduino GUI 프로그램에게 CMSIS DSP library 를 링크하도록 지정합니다. (아두이노 편집기 설정파일 정의를 변경)
각 버전별로 다른데... 1.6.9에서는
윈도우의
C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9 폴더를 열고
platform.txt 의 복사본을 하나 백업해 두고,
프로그래밍 에디터 (예, Notepad+ 또는 SublimeText) 또는 일반 텍스트 에디터를 사용해 platform.txt 파일을 다음과 같이 편집합니다.
주) 프로그래밍 에디터는 일반 텍스트 에디터와 달리 소스 프로그램을 작성하는데 유용한 기능들을 추가한 프로그래머용
편집기입니다.
주) 위 경로상의 "User" 는 현재 로그인한 윈도우 사용자명입니다.
다음 행을 (대략 80번째 행) 찾아서
## Combine gc-sections, archives, and objects
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" -mcpu={build.mcu}
-mthumb {compiler.c.elf.flags} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,
{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} -o "{build.path}
/{build.project_name}.elf" "-L{build.path}" -Wl,--cref -Wl,--check-sections -Wl,
--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,
--warn-common -Wl,--warn-section-align -Wl,--start-group {compiler.combine.flags}
{object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/
{archive_file}" -Wl,--end-group -lm -gcc
다음과 같이 변경합니다.
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" -mcpu={build.mcu}
-mthumb {compiler.c.elf.flags} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,
{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} -o "{build.path}
/{build.project_name}.elf" "-L{build.path}" -Wl,--cref -Wl,--check-sections -Wl,
--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,
--warn-common -Wl,--warn-section-align -Wl,--start-group {compiler.combine.flags}
{object_files} "{build.variant.path}/{build.variant_system_lib}"
"{build.system.path}/CMSIS/CMSIS/Lib/GCC/libarm_cortexM3l_math.a" "{build.path}/
{archive_file}" -Wl,--end-group -lm -gcc
실제로 이것은 행의 끝 부분에
1 | "{build.system.path}/CMSIS/CMSIS/Lib/GCC/libarm_cortexM3l_math.a" |
을 추가한 것과 같습니다.
이것을 해주지 않으면 컴파일 에러가 뜰 수 있습니다.
컴파일 완료 상태
업로드 완료 상태
이상과 같은 방법으로 Warning 한 줄 없이 컴파일 및 로딩을 완료할 수 있었습니다.
라즈베리파이와 USB Cable로 연결후 다음 그림과 같이 로그 파일이나 screen을 사용해 MMDVMHost 프로그램이 이 정상 기동함을
확인하면 모두 정상적으로 설치되었음을 알 수 있을 것입니다.
<다음은...>
다음 과정은 라즈베리파이에 MMDVMHost, ircDDBGateway, YSFGateway 등의 프로그램을 설치하는 과정입니다.
이 부분은 본 게시판에 HL2UVH 오엠께서 올리신 글도 있고, 제 블로그에도 글이 있습니다. 참조하시기 바랍니다.
두 글 중에 포함된 이미지 파일을 받아서 간단히 설치하는 방법도 있습니다.
이미지 파일은 모두 카페 "이미지 자료실"에 업로드 해 두었습니다.
<그 다음 과정은...>
동작이 확인된 트랜시버를 구해서 인터페이스 Cable을 만들어 결선하고,
송수신 신호 레벨 교정을 하고,
안테나와 Duplexer를 구해서 설치하고...
허가 관련 서류작업, 검사 등 등
MMDVM Multi-mode Repeater를 구축하는 길은 멀고도 험합니다.
행운을 빕니다!
첫댓글 상세한 설명 감사합니다!!!!!!!
좋은 정보 감사 ^^
Arduino software 를 다운 받으려 하니 돈을 내라고 나오네요 ...
돈을 지불하고 다운 받아야 하나요?
의향이 있으면 기부 (Donation) 하라는 뜻입니다.
기부할 의사가 없으면 왼쪽에 있는 "JUST DOWNLOAD" 버튼을 눌러 무료로 다운로드 받으면 됩니다.
@HL5BPL 아... 그렇군요
다운 받았습니다.
아두이노 설치는 끝났고...
mmdvm 설치에서 막히네요.ㅋㅋ
MMDVM/MMDVM.ino 파일을 엽니다 (윈도우 탐색기에서 파일을 더블클릭하면 아두이노 IDE 편집기가 바로 뜹니다)
“Config.h” 탭을 클릭합니다.
mmdvm.ino 는 없고 mmdvm 을 클릭하면 프로그램이 실행 되는데
요 부분에서 막히네요. config.h 를어떻게 열고 저장해야되는지요?