라즈베리파이5에서 LTE CATM1 모뎀 사용하기
LTE CATM1 모뎀 커뮤니티를 통해 라즈베리파이 5에서 LTE CATM1 모뎀사용에 대해 아래와 같은 문의를 받았습니다.
https://cafe.naver.com/mechawiki/7403
라즈베리파이 5에서 LTE CATM1 모뎀을 PPP모뎀으로 연결하는 작업을 진행했습니다.
먼저 라즈베리파이5에 연결되는 LTE CATM1 HAT 액세서리 회로부터 확인해 보겠습니다.
라즈베리파이에 연결해서 동작시키려면 I/O를 위한 3.3V전압과 모뎀 전원을 위한 5V전압이 연결되어 있어야 하고 모뎀 RX, TX에 라즈베리파이 TXD0, RXD0가 각각 연결되어 있어야 합니다.
그리고 빠른 데이터 송수신에 따른 하드웨어 흐름제어(flow control)를 위해 CTS, RTS가 연결되어 있어야 하고 모뎀 재시작을 위한 리셋(RESET)용도의 핀과 모뎀 외부 안테나(ANT) 제어를 위한 핀도 연결되어 있어야 합니다.
3.3V, 5V전압을 제외한 나머지 핀들은 GPIO라고 하는데, 각각의 용도에 맞게 설정되어 있어야 LTE CATM1 모뎀과 정상적으로 통신이 가능합니다.
라즈베리파이 5의 경우 기존 하드웨어와 다른 GPIO 구조로 인해 GPIO설정을 위해 사용했던 rpirtscts 프로그램을 사용할 수 없었습니다. zero, zero w, zero2 w, rpi3, rpi4에서 공통으로 사용했던 프로그램을 쓸 수 없어서 다른 설정 방법들을 시도해 보았습니다. 그중에서 선택한 방법으로 라즈베리파이 5와 LTE CATM1 모뎀을 연결하겠습니다.
1. 라즈베리파이5용 Raspberry Pi OS를 설치합니다.
https://www.raspberrypi.com/software/
Raspberry Pi Imager v1.8.5 설치 후 라즈베리파이 5용 64비트 Raspberry Pi OS를 설치 했습니다.
2. 설정을 마치고 Wi-Fi도 연결해 놓은 상태에서 Raspberry Pi Configuration을 실행합니다.
3. Interfaces 탭으로 이동해서 Serial Port는 Enable(오른쪽)하고 Serial Console은 Disable(왼쪽) 합니다.
OK를 누르고 시스템을 재시작합니다.
4. 터미널에서 ls /dev/tty* 하면 /dev/ttyAMA0 노드가 만들어진 것을 확인할 수 있습니다.
이 노드를 이용해서 라즈베리파이 5와 LTE CATM1 모뎀을 연결합니다.
5. 작업에 필요한 프로그램을 설치합니다.
\>sudo apt install vim ppp
6. 이제 GPIO설정을 위해 config.txt 파일을 아래와 같이 수정하겠습니다.
(주의 깊게 읽고 따라 하시기 바랍니다. 가장 중요한 내용입니다.)
\>sudo vi /boot/firmware/config.txt
dtparam=uart0=on 아래 3줄을 추가했습니다.
#uart0 CTSRTS 기능 사용, 부팅 후 16번 핀이 CTS0, 17번 핀이 RTS0로 각각 설정됩니다.
dtoverlay=uart0-pi5,ctsrts
#26번 핀을 부팅 후 GPIO OUT으로 설정하고 기본값으로 High를 출력합니다. RESET ON
gpio=26=op,dh
#5번 핀을 부팅 후 GPIO OUT으로 설정하고 기본값으로 High를 출력합니다. External ANT ON
!!!) #외장안테나를 연결해서 사용하실 경우에는 아래와 같이 입력합니다(!!!)
gpio=5=op,dh
!!!) #내장안테나를 연결해서 사용하실 경우에는 아래와 같이 입력합니다(!!!) Internal ANT ON
gpio=5=op,dl
7. 설정을 저장하고 재부팅합니다.
\>sudo reboot
8. 부팅 후 터미널을 열어서 GPIO핀들이 제대로 설정되어 있는지 확인합니다.
\>pinctrl 16-17
\>pinctrl 26
\>pinctrl 5
설정이 제대로 적용되었다면 아래와 같이 나옵니다.
9. GtkTerm 설치 후 LTE CATM1 모뎀을 AT커맨드로 설정합니다.
Configuration → Port를 /dev/ttyAMA0 로 설정합니다. ( /dev/ttyS0로 설정되지 않습니다!!! )
GtkTerm에서 아래 명령을 실행한다. 명령을 입력하고 엔터키를 눌러서 OK를 확인한다 (// 문장은 실행하지 않습니다.)
// 망접속 해제
AT+CFUN=0
// 자동접속 모드 설정
at%setacfg=modem_apps.Mode.AutoConnectMode,true
// APN 설정 심카드에서 제공하는 APN 주소 입력
AT%APNN="simplio.apn"
// H/W CTS/RTS 기능 켜기
AT&K3
// Baudrate 921600으로 설정하기
AT+IPR=921600
GtkTerm을 종료하고 라즈베리파이 시스템 재부팅합니다.
재부팅 후 GtkTerm을 실행해서 정상적으로 설정되어 있는지 확인해 봅니다.
Configuration → Port를 실행하고 Baud Rate: 921600, Flow contrl: RTS/CTS로 설정합니다.
아래 명령들을 실행해서 결과값이 잘 출력되는지 확인합니다.
// APN 설정 확인, 설정한 APN 값이 출력되는지 확인
AT%APNN?
%APNN: simplio.apn
// H/W CTS/RTS 활성화 여부 확인 0 이면 비활성화 , 3 이면 활성화
AT&K?
&K:3
// Baudrate 921600 확인
AT+IPR?
+IPR: 921600
// 망자동접속여부 확인
at%getacfg=modem_apps.Mode.AutoConnectMode
true
// 망에 등록되었는지 체크 로밍일 경우 0,5 | 국내망인 경우 0,1)
AT+CEREG?
+CEREG: 0,5
// 현재 오퍼레이터 확인 오퍼레이터에 따라 값이 바뀜
AT+COPS?
+COPS: 0,0,"DATA ONLY",7
// 무선감도 체크 감도는 장소에 따라 수시로 바뀝니다
AT%MEAS="8"
%MEAS: Signal Quality: RSRP = -76, RSRQ = -6, SINR = 20, RSSI = -56
10. PPP설정 스크립트를 다운로드하여서 수정 후 설치 합니다.
\>git clone https://github.com/codezoo-ltd/Type1SC_Linux.git
\>cd Type1SC_Linux
\>vi vodafone-Type1SC
첫 번째 줄을 아래와 같이 /dev/ttyAMA0로 수정 후 ESC 누르고 wq로 저장합니다.
ppp스크립트를 복사합니다.
\>sudo cp -rf vodafone-Type1SC* /etc/ppp/peers/
마지막으로 와이파이 장치를 turn off 하고 시스템을 재시작 합니다.
11. ppp모뎀을 동작시킵니다.
\>sudo pon vodafone-Type1SC
ppp0 디바이스가 올라왔는지 확인합니다.
\>ifconfig
12. 네임서버 및 dnsmasq를 설정합니다.
(주의!! 와이파이 매니저를 재실행하면 네임서버 설정 정보가 삭제됩니다. 다시 실행해야 함)
\>sudo sh -c 'echo "nameserver 8.8.8.8">>/etc/resolv.conf'
\>sudo sh -c 'echo "server=8.8.8.8">>/etc/dnsmasq.conf'
13. 핑테스트를 통해 정상적으로 통신이 가능한지 확인합니다.
\>ping www.google.com -c 10
14. 모든 동작이 확인되었으면 이후에는 부팅 후 아래 한 줄만 실행하면 됩니다.
\>sudo pon vodafone-Type1SC
Murata Type1SC 모듈 구매, 자료 관련 문의
(주)아성코리아
전지만 이사 010-5418-8812 mlcc@asung.com
박상인 수석 010-6556-5405 sipark@asung.com
LTE-CATM1 내장형 모뎀 구매 상담, 외주 개발, 협업 문의
(주)코드주
장병남 대표 010-8965-1323 rooney.jang@codezoo.co.kr