MINTBEAR LAB민트베어 랩
EXP-002

맥북으로 기상위성 사진 받기 — 첫 수신 성공, 그런데 사진이 새까맣다

메테오 수신 첫번째 시도.

맥북으로 기상위성 사진 받기 — 첫 수신 성공, 그런데 사진이 새까맣다

2026년 8월 9일 밤 9시, 창밖에 알루미늄 막대 두 개를 V자로 벌려 놓고 러시아 기상위성 METEOR-M2-3의 신호를 받았다. 결과부터 말하면 수신은 완벽했고, 사진은 완전히 새까맸다. 왜 그런지 알아내는 데까지가 오늘의 기록이다.

장비

리눅스를 올린 오래된 맥북 프로 13인치에 만원짜리 USB 동글을 꽂은 게 전부다.

장비역할
RTL-SDR Blog V4USB 동글. 원래는 DVB-T 수신용 칩을 SDR로 쓰는 물건
SAWbird+ NOAA137MHz 대역만 통과시키는 필터 + 저잡음 증폭기
망원 다이폴 안테나각 다리 53cm, 120도 V자
MacBook Pro (2015) + Ubuntu 24.04i5-5257U, RAM 8GB

소프트웨어는 SatDump 하나로 수신·복조·디코딩·영상 생성이 다 된다.

여기서 제일 신경 쓴 건 의외로 안테나 길이였다. 137MHz는 파장이 약 2.2m라 4분의 1 파장이 55cm쯤 된다. 며칠 전 같은 동글로 항공기 ADS-B(1090MHz)를 받을 때는 같은 안테나를 6.6cm로 짧게 줄여 썼는데, 이걸 그대로 두고 위성을 받으려 하면 아무것도 안 잡힌다. 대역이 바뀌면 안테나도 물리적으로 바뀌어야 한다.

그리고 LNA(저잡음 증폭기)는 안테나 바로 뒤에 달아야 한다. 동글 쪽 끝에 달면 케이블에서 이미 신호가 깎인 다음에 증폭하는 셈이라 효과가 반감된다. 전원은 동축 케이블로 DC를 흘려보내는 Bias-Tee 방식으로 공급한다.

패스 고르기

위성은 하늘을 스쳐 지나간다. 하루에 서너 번 지나가지만 아무 때나 되는 게 아니고, **얼마나 높이 뜨느냐(최대앙각)**가 성패를 가른다. 낮게 지나가면 건물과 산에 막히고 대기를 비스듬히 통과하느라 신호가 약해진다.

TLE(궤도 정보)를 받아 계산해보니 이날 밤 9시에 최대앙각 77도 패스가 있었다. 거의 머리 위다. 이보다 좋은 조건은 드물다.

08/09 21:00–21:15  METEOR-M2 3  77°  남→북  161°→89°→349°  15분  (최고 21:07)

수신

9시 정각, 아직 위성은 지평선 아래다. 화면에는 잡음만 흐른다.

SNR : 0.00 dB   Viterbi : NOSYNC   BER : 0.499

BER(비트 오류율) 0.5는 동전 던지기와 같다는 뜻이다. 완전한 잡음.

그러다 7분쯤 지나 위성이 천정에 다다르자 숫자가 살아났다.

SNR : 14.01 dB   Viterbi : SYNCED   BER : 0.0098   Deframer : SYNCED

BER 0.0098. 1%도 안 된다. 목표로 잡았던 0.2의 20분의 1이다. SNR도 14dB까지 올라갔다. 5분 30초 동안 동기가 유지됐고, 2.2MB의 데이터를 받았다.

디코딩 결과에 위성이 자기 이름을 밝혔다.

NORAD : 57166
Name  : METEOR-M2-3
MSU-MR Channel 1 Lines : 2752

820km 상공을 시속 2만 7천km로 지나가는 물체가 보낸 신호를, 창가에 걸어둔 막대기 두 개로 받아서 2752줄의 영상 데이터로 복원한 것이다. 여기까지는 대성공이었다.

그런데 새까맣다

영상을 열었더니 온통 검은 화면이었다. 희미한 가로줄 몇 개뿐.

처음엔 뭔가 잘못 디코딩된 줄 알았다. 그런데 로그를 다시 보니 답이 거기 있었다.

MSU-MR Channel 1 Lines : 2752
MSU-MR Channel 2 Lines : 2576
MSU-MR Channel 3 Lines : 2488
MSU-MR Channel 4 Lines : 0     ← 열적외선
MSU-MR Channel 5 Lines : 0
MSU-MR Channel 6 Lines : 0

METEOR의 MSU-MR 센서는 6개 채널을 갖고 있다. 13번은 가시광, 46번은 열적외선이다. 열적외선은 물체가 내뿜는 열을 보기 때문에 밤에도 구름이 선명하게 찍힌다. 그래서 야간 패스여도 적외선으로 그림이 나온다 — 고 알고 있었다.

문제는 이 위성이 지금 가시광 채널만 송출하고 있다는 것이었다. 적외선 채널은 0라인, 아예 안 보낸다.

정리하면 이렇다. 밤 9시, 한반도 상공은 깜깜하다. 그 깜깜한 것을 가시광 카메라로 아주 정확하게 찍어서, 아주 깨끗한 신호로 보내줬고, 나는 그걸 오류율 1% 미만으로 받아냈다. 데이터는 완벽하다. 그 내용이 “밤”일 뿐이다.

허탈하면서도 웃겼다. 기술적으로는 흠잡을 데 없는 성공이고, 결과물은 검은 사각형이다.

덤: 이상한 크래시

영상 합성 단계에서 프로그램이 죽었다.

Fatal error running pipeline :
[json.exception.type_error.305] cannot use operator[] with a string argument with string

설정 파일을 통째로 치워보니 정상 동작했다. 그래서 항목을 하나씩 넣어가며 좁혔더니 범인은 관측지 이름을 적어둔 한 줄이었다.

"default_qth_label": "Seoul"

SatDump는 이 값을 문자열이 아닌 다른 구조로 기대한다. 문자열을 넣으면 내부에서 ["value"]로 접근하다 터진다. 사실 며칠 전에도 다른 설정 키에서 똑같은 패턴으로 당한 적이 있었다.

고약한 건 이게 수신 중에는 멀쩡하다는 점이다. 이 값은 영상 합성·재투영 단계에서만 읽힌다. 그러니 실제로 사진을 만들어보기 전까지는 아무 문제 없어 보인다. 며칠 동안 여러 번 테스트를 돌렸는데도 오늘에서야 드러났다.

교훈은 간단하다. 이 프로그램 설정 파일에는 숫자만 넣자.

한 줄 지우고 다시 돌리니 12장의 이미지가 정상으로 나왔다. 원본 3채널, 컬러 합성본, 해안선 지도를 겹친 버전, 지도 투영 보정본까지. 여전히 까맣지만.

다음

만 원짜리 동글로 위성 사진을 받는 데 있어 마지막 관문은 전파도 소프트웨어도 아니고, 해가 떠 있느냐였다.


장비: RTL-SDR Blog V4 + Nooelec SAWbird+ NOAA / SatDump 1.2.2 / Ubuntu 24.04 수신: 2026-08-09 21:00 KST, 서울, METEOR-M2-3 (NORAD 57166), 137.9MHz LRPT 72k

← 목록으로 맨 위로 ↑