Baofeng UV-5R Mini 무전기

UV-5R Mini 모델 타입·공장 영역 분석

바오펑 UV-5R Mini의 송신 대역(모델 타입)이 어디에 어떻게 저장되는지, 제조사 FreqRangeTool을 분석한 결과와 RadioCloud의 처리 방식을 정리했습니다.

마지막 갱신 2026-10-09지원

요약

  • UV-5R Mini는 상·하한 숫자 대신 ‘모델 타입’(Factory, FCC, CE, EuropeCEGT 등 9종)으로 송신 대역을 정합니다. 무전기 펌웨어가 모델 번호를 보고 송신을 제한합니다.
  • 대만 ROWA가 배포한 제조사 도구 BF-5RMini_FreqRangeTool v1.0.0을 실행하지 않고 분석해, 저장 위치(공장 영역 0xF250)와 값, 9종의 송신·수신 범위표를 확인했습니다.
  • RadioCloud는 이 도구와 같은 위치·값·순서로 모델 타입만 바꿔 쓰고, 공장 보정값은 읽은 그대로 둡니다. 실기기에서 EuropeCEGT로 송신이 묶이는 것을 확인했습니다.

모델 타입별 범위 (제조사 도구 원본 값)

송신 범위만 144–146 / 430–440 MHz로 묶고 수신은 그대로 두려면 EuropeCEGT, 수신까지 같은 범위로 좁히려면 CE를 고르면 됩니다. 실제 사용 후기에서도 ‘CE 또는 EuropeCEGT’를 권합니다.

번호모델 타입송신 허용수신
0Factory136–174, 220–260, 400–480136–174, 220–260, 350–390, 400–520
1FCC144–148, 220–260, 420–450136–174, 220–260, 350–390, 400–520
2IC144–148, 430–450136–174, 220–260, 350–390, 400–480
3CE144–146, 430–440144–146, 430–440 (수신도 좁아짐)
4IAMAmateur136–174, 400–480136–174, 400–480
5SRRC144–148, 430–440136–174, 220–260, 350–390, 400–520
6IAMCert136–174, 400–438136–174, 400–438
7EuropeCEGT144–146, 430–440136–174, 220–260, 350–390, 400–520 (수신은 넓게)
8Philippines136–174, 400–480136–174, 400–520

어떻게 저장되나

  • 무전기 주소 0xF000–0xF280은 일반 클론(CHIRP)이 읽지 않는 공장 영역입니다. 제조사 도구는 같은 R/W 명령으로 이 영역을 암호화 없이 읽고 씁니다.
  • 0xF200 블록 0x30–0x3E: VHF·UHF·220MHz의 송신 허용 플래그와 수신 범위. 범위는 ‘백 단위 1바이트 + 나머지 두 자리 BCD’(예: 01 36 = 136 MHz).
  • 0xF240 블록 0x00–0x04: 350MHz 대역, 0x10–0x15: 모델 타입 번호를 16진수 6자리 문자열로 저장(EuropeCEGT = “000007”). 비어 있으면(0xFF) Factory로 취급.
  • 도구의 쓰기 순서: 핸드셰이크 → 0xF000–0xF240 10블록 읽기 → 모델 번호만 변경 → 0xF000부터 10블록 순서대로 쓰기 → 종료 명령(0x45)으로 재시작. 수신 범위 등 나머지는 읽은 값 그대로입니다.
  • 연결할 때 0x46 명령(제조사 코드 이름 CMD_GETBANDRANGE)의 응답이 바로 0xF231부터의 수신 범위입니다. 그래서 무전기가 보고하는 대역과 공장 영역 값을 비교해, 위치·형식 해석이 맞는지 쓰기 전에 확인할 수 있습니다.

RadioCloud의 처리

  • 읽기: 일반 채널 영역과 함께 공장 영역 0xF000–0xF280을 읽고, 수신 범위가 0x46 응답과 일치할 때만 쓰기를 허용합니다.
  • 쓰기: 제조사 도구와 같은 순서로, 같은 세션에서 10블록을 새로 읽어 백업·보고 대역과 일치하는지 확인한 뒤 모델 번호만 바꿔 0xF000부터 전부 쓰고 종료 명령을 보냅니다.
  • 처음에는 0xF200·0xF240 두 블록만 썼는데, 무전기가 응답(ACK)만 하고 저장하지 않았습니다(2026-10-09 실기기). 플래시 영역이라 처음 블록부터 순서대로 받아야 저장되는 것으로 보여 도구와 같은 방식으로 바꿨습니다.
  • 검증: 재시작 후 다시 읽어 모델 번호가 쓴 값과 같은지, 다른 바이트가 바뀌었는지, 보고 대역이 어떻게 바뀌었는지 보여줍니다. 송신이 실제로 막히는지는 직접 확인해야 합니다.
  • 실기기 공장 영역에는 0xF140–0xF1C0이 0xF100과 같고 0xF240 뒷부분이 0xF200과 같은 흔적이 있습니다. 도구가 블록 버퍼를 재사용해 생기는 패턴으로, 이 기기가 이미 도구로 한 번 쓰였다는 뜻입니다.
  • 백업 파일에는 일반 이미지와 함께 0xD000 블록과 공장 영역 전체가 메타데이터로 저장됩니다.

공장 보정값 (보기만 함)

제조사 도구는 모델 타입 외에도 공장 보정값을 다룹니다. RadioCloud는 이 값들을 해석해 보여주기만 하고 쓰지 않습니다. 잘못 바꾸면 출력·변조가 기준을 벗어날 수 있고, 기기마다 값이 달라 되돌릴 기준도 없기 때문입니다.

위치내용
0xF000 / F040 / F080송신 출력 보정표 High·Middle·Low — VHF 130–175 MHz(3 MHz 간격 16칸), 220 200–260 MHz(5 MHz 간격), UHF 400–520 MHz(10 MHz 간격)
0xF0C0 / F100스켈치 보정표 (행·열 대응 일부 미확인)
0xF200 00–05배터리 전압(ADC) 보정 6단계
0xF200 10–14변조 한계, CTCSS 편차, DCS 편차, 음량(광대역·협대역)
0xF200 16수정 발진(XTAL) 번호
0xF200 1B–1E오디오 필터 RX 300·3K, TX 300·3K

0xD000 실험 (틀린 추정, 기록용)

  • 처음에는 같은 계열 BF-K6의 CHIRP 구조를 근거로 0xD000을 지역 모드로 추정했습니다.
  • 실기기에서 0xD000 첫 바이트를 CE(3)로 써서 저장까지 확인했지만, 보고 대역과 송신 범위는 바뀌지 않았습니다. 이 블록은 모델 타입과 무관합니다.
  • 이전 실험으로 값이 바뀐 기기는 화면에서 0으로 되돌릴 수 있습니다.

분석 방법과 자료

  • ROWA 제품 페이지의 FT-5Rmini-2.rar 안 BF-5RMini_EnFreqRangeTool_Setup_v1.0.0.exe에서 innoextract로 BF-5RMini_FreqRangeTool.exe(.NET)를 꺼내, 실행하지 않고 IL 코드를 디스어셈블했습니다.
  • 같은 사이트의 FT-5Rmini.rar(일반 CPS v1.0.9)도 분석해, 핸드셰이크와 0x46 응답 해석 방식이 같음을 확인했습니다.
  • 제조사 실행 파일은 RadioCloud에 포함하거나 재배포하지 않습니다.

기술 정보

  • 통신: 115,200 baud(무응답 시 38,400), 식별 ‘PROGRAMCOLORPROU’ → 0x06, 0x46(대역) → 16바이트, 0x4D(모델) → 모델 표기, ‘SEND’ 암호 협상.
  • 블록: 읽기 52 주소(2) 40 → 응답 52 주소 40 + 0x40바이트, 쓰기 57 주소(2) 40 + 0x40바이트 → 06. 일반 영역은 ‘CO 7’ XOR, 공장 영역은 암호화 없음.
  • 제조사 명령 상수: 01 핸드셰이크, 02 모델 타입 조회, 03 비밀번호 확인, 46 대역 조회, 52 읽기, 57 쓰기, 45 종료, 55 부트 모드, 10–13 플래시(펌웨어) 관련 — 플래시 명령은 쓰지 않습니다.

참고한 자료