RTL-SDR 간단 사용기.
2016.07.26 04:44
SDR (Software Defined Radio)는 최소한의 하드웨어만을 이용해 소프트웨어적으로 라디오를 송수신하는 기술입니다. 일반적인 무선통신 장비는 자료를 처리하기 위한 회로가 따로 들어가지만 SDR장비의 경우 하드웨어에는 신호를 받아오거나 쏴주기 위한 최소한의 기능들만 적용되어 있고 받아온 신호의 처리는 컴퓨터에 설치된 소프트웨어가 담당하게 됩니다.
이러한 방식을 쓸 경우 하드웨어의 변경 없이도 개발자가 소프트웨어적으로 통신 규격,주파수 등을 변경할 수 있다는 잇점이 있습니다. 그래서 연구 등에 많이 활용되고 있으며 앞으로는 일반인들이 사용하는 장비에도 이 기술이 적용되기 시작할 것으로 기대되고 있습니다. 하지만 아직까지는 쓸만한 장비는 가격이 비싸고 소프트웨어에 의존성이 높다 보니 전력소모의 효율이 떨어지며 좋은 CPU를 필요로 한다는 문제가 있어 일반 소비자용 기계에는 생각보다 적용이 더딘 상태입니다. 일부 특수한 경우를 빼면요.
RTL-SDR은 바로 그 일부 특수한 경우 중 하나입니다. RTL-SDR은 본디 유럽권의 휴대용 TV 신호를 수신하기 위한 USB 2.0장치로, 10-25불 내에 구할 수 있으며 송신 기능은 없으나 OSMOCOM단체에서 발견한 방법을 이용해 드라이버 조작을 통해 저가형 범용 SDR 수신기로 개조하는 것이 가능합니다. 성능이 썩 좋지는 않은 편이지만 용도에 따라서는 이 정도의 성능으로도 충분한 경우도 많고 싸게 SDR에 입문할 수 있는 길이기 떄문에 취미인들의 수요가 높으며 연구 등에도 어느정도 활용이 되고 있는 상황입니다. 현재는 심지어 고급 크리스탈과 고성능 안테나를 사용하거나 규격 주파수 이외에서도 동작할 수 있도록 개조된 제품도 나오고 있는 상황입니다.
제가 첫 구매했던 모델은 이베이 등지에서 구할 수 있는 10불짜리 버전이었습니다. 사용된 튜너는 820T라는 물건인데, 대략 25-1750Mhz대역의 주파수를 수신할 수 있습니다.
딱히 이름이 있지 않은 업체에서 나온 모델로, 내부 회로의 품질을 믿기 힘들다는 문제가 있습니다. 워낙 여러 중국 업체에서 나오다 보니 무명 제품은 회로 수준이 재멋대로이며 개중에는 수 개월을 못 견디고 고장나는 제품들도 있다고 합니다. 크리스탈의 클럭 오차도 심한 편이며 안테나 커넥터도 MCX커넥터라 SMA커넥터를 지원하는 일부 고급 제품들에 비해 안테나 호환성이 떨어진다는 단점도 있습니다.
하지만 처음 입문하는 입장에서는 잘 감이 안 왔으니 일단 가격이 싸다는 이유로 이걸 집게 되었었습니다.
일단 라디오 수신기인만큼, 기본으로 안테나도 따라오는데 이 안테나의 성능도 조잡하기 그지 없습니다. Gain을 많이 올려야 받아줄만한 수신률이 나고 조금만 장해물이 있어도 수신률이 심각하게 떨어집니다. 하지만 동작 자체는 하며 배치를 잘 하거나 야외에서 사용하면 그럭저럭 참아줄만한 결과가 나오기도 합니다. 밑은 자석으로 되어 있어 철판 바닥에 붙일 수 있습니다. 하지만 무게가 가볍다 보니 자석으로 붙일 수 있는 경우가 아니면 쉽게 넘어져버리는 문제도 있습니다.
그래서 불만이 쌓여서 결국 사게 된 게 25불짜리 버전입니다. 이 제품은 정확도가 높은 크리스탈이 들어가 있어 1ppm급으로 크리스탈 오류가 억제되고 있으며 껍데기도 금속에 분해가 쉬운 구조입니다. 20불과 25불 버전이 따로 있는데 25불 버전은 쓸만한 안테나가 두개나 따라옵니다. 이것도 튜너는 위의 모델과 같습니다. 다른 튜너를 사용한 제품 중 더 넓은 주파수를 수신할 수 있는 물건도 있는데 해당 튜너 제조사가 파산한 관계로 제품이 귀하며 넓은 주파수를 지원한다는 점을 빼면 신호 품질은 오히려 더 떨어지는 편입니다.
SMA커넥터가 사용자를 반겨줍니다. 이 덕에 아무 안테나나 주워다 끼기 쉽습니다. 정작 제가 가진 안테나는 대부분 RPSMA라 엄청나게 도움이 되지는 않았었습니다만.. 그래도 상대적으로는 구하기 유리합니다.
5불 추가시 껴주는 안테나는 확실히 돈값을 하는 구성입니다. 베이스 하나를 두고 그 위에 안테나 막대기를 교체하는 식인데 짧은 것은 20cm가량이고 긴 것은 연장하면 1.5m가량으로 키가 작은 사람 한명치 길이가 나옵니다. 20cm짜리만 써도 수신률이 훨씬 낫습니다.
둘 다 기능 자체는 크게 차이가 안 나지만 만져본 결과 수 개월 이상 쓰실 거라면 (=단기간 사용 후 업그레이드 하실 게 아니라면) 조금 제대로 된 물건을 사시는 것을 권하고 싶다는 생각이 들었습니다. 싸구려는 수명이 얼마나 갈지도 모르거니와 안테나와 크리스탈만 해도 가격 차이만큼의 가치는 한다는 게 개인적인 느낌입니다. 저 회사 모델 말고도 NooElectric등에서 나온 모델은 품질이 괜찮다고 합니다.
그럼 이걸로 뭘 할 수 있을까요?
할 수 있는 것은 많습니다. 대표적으로는 다음과 같은 용도로 사용할 수 있습니다:
-비행기 위치 추적
-위성 수신 (NOAA 등. 아쉽게도 NOAA 위성은 한국에서는 수신하기 조금 어려울 수 있습니다.)
-주파수 탐색 (spectrum analyzer)
-그 외의 25Mhz-1750Mhz내의 암호화되지 않은 통신 분석. (...분석해도 잡혀갈 위험이 그다지 없는 신호만 건드리시는 것을 추천합니다.)
등등...
그 외의 다양한 용도들은 다음 사이트들에서 보실 수 있습니다.
http://www.rtl-sdr.com/about-rtl-sdr/
https://www.reddit.com/r/RTLSDR/
다음은 제가 시도해 본 몇 가지 기능들입니다.
1.wide band scanner (여러 번 주파수를 바꿔가면서 psd를 측정한 후 합쳐서 하나의 이미지를 만드는 식입니다.) 다른 사람이 만들어 둔 파이썬 스크립트를 이용했습니다.
실제 존재하지 않는 신호도 표시되는 등 약간 오류가 있지만 이건 어떤 SDR이건 존재하는 문제이며 대부분의 라디오 스테이션의 위치는 정확히 잡아내고 있습니다.
2.조금 제약적인 bandwidth지만 waterfall plot. 대략 2.4-3.2MSPS까지 가능하고 I-Q데이타를 주기 때문에 대충 3.2MHz까지 한번에 측정할 수 있습니다.
이것은 GNU Radio라는 프로그램을 이용해 만들었습니다. GNU Radio는 SDR기반 프로그램을 개발할 때 사용하는 프로그램으로 일단 개발툴이라 다른 SDR계열 프로그램에 비해 난이도가 조금 더 있지만 그렇게 어렵지는 않고 자유도가 높으며 성능도 좋아 많은 분들이 사용하십니다.
3. SDR의 "HELLO WORLD" 격인 FM 수신기. 마찬가지로 GNU Radio로 만들었습니다. 대충 만들어서 그런가 노이즈가 조금 있는 편이지만 아무튼 수신은 잘 됩니다.
이 외에도 제가 만들어본 것은 아니지만 다양한 사용자들이 많든 코드들이 인터넷에 있습니다. NOAA 수신기, ACARS 수신기 등..
전부 고급 장비에 비해서는 미묘하게 떨어지는 품질이지만 동글의 가격을 생각하면 놀라운 품질의 결과물이 나옵니다.
이 동글이 꼭 필요한 사람은 많지 않겠으나 무선통신등에 취미를 가지신 분이라면 한번쯤 만져보시는 것을 추천하고 싶습니다.
송신기능이 필요하신 경우 가장 저렴한 것은 HackRF(300$, 8비트 반이중), 조금 쓸만한 것은 BladeRF(450$, 12비트 전이중) 등이 있습니다. 고급 제품인 USRP나 BladeRF같은 경우 GSM기지국 제작에 사용된 사례도 있습니다. 이러한 제품들은 가격이 열 배 이상 비싸서 부담이 꽤 가지만 대체로 송신 기능 외에도 수신 성능도 뛰어나고 샘플링 속도도 RTL-SDR에 비해 수 배 이상 빠릅니다. 단, 송신 기능을 사용할 시 법적인 문제를 피하기 위해서는 무선통신 자격 등이 필요할 수 있으며 법률에 맞춰 허가된 주파수에서 허가된 방식으로만 신호를 송신해야 할 필요가 있습니다. 미국은 비교적 규제가 적으나 한국은 신경 쓸 부분이 많으니 주의하셔야 합니다.
코멘트 11
-
개발 산출물 보안진단용으로 Wi-Fi, BT, IEEE 802.15.4 계열 통신 규격의 eavesdropping, forgery가 필요한데, 이런쪽으로 적합한 물건이 있을까요?
-
piloteer
07.28 19:55
BT는 Frequency Hopping때문에 일반 SDR중에는 사용가능한 장비가 별로 없습니다. 다만, Ubertooth등 100불대의 저렴한 블루투스 해킹 장비들이 있고 (*저가형 제품들은 대부분 기능에 제약이 조금 있습니다. 관련 페이지들 참고..) 이 Ubertooth 개발자분께서 개발하신 방법 중 하나로 일부러 알리아싱을 일으켜서 좁은 대역폭만으로도 블루투스 신호를 수신하는 기술이 있습니다. (참고 페이지: 링크). 단, 이 방법은 그만큼 신호 품질 저하가 심하기 때문에 2.4Ghz대에 다른 전파가 없는 랩환경에서 진행하셔야 할 수 있습니다.)
Wifi나 Zigbee는 대역폭이 좀 되는 SDR (USRP N200/B200이상, 혹은 BladeRF 등. 개인적으로는 이런 경우 BladeRF보다는 USRP계열을 추천합니다. 가격은 더 비싸지만 더 잘 검증된 제품이라서..) 이면 송수신가능할테고 아마 이걸 구현한 프로그램들도 있을 텐데 아직 좋은 SDR이란 건 연구단계에서나 쓰이는 수준이고 11n급의 통신속도를 감당하려면 최적화가 많이 들어가야 하는 관계로 접하기 쉬운 오픈소스 코드들은 기능에 약간 제약이 있을 수 있습니다. (구글링해보니 이런 게 나오네요. 링크 wifi는 11g까지밖에 못 찾았습니다. 그 이상도 있는데 제가 못 찾은 것일 가능성도 있습니다. 링크)
단, 이런 규격들은 아예 전용 테스트장비들도 있고 그런 걸로 기억하는데 혹시 가격이 괜찮은 테스트 장비가 있는지, 그리고 해당 장비들로 원하시는 테스트가 가능한지 확인해보시는 것도 좋을 것 같습니다. 특히 와이파이는 그냥 일반 카드로도 어느정도는 모니터링이 가능하고 말이지요. SDR이 전용 테스트 장비들에 비해 가성비에 장점이 있기는 하지만 SDR도 성능 높은 제품은 가격이 좀 나가고, 거기에 소프트웨어적으로는 오픈소스나 직접 짠 코드에 의존해야 할 가능성이 있고 하다보니 아직까지 테스팅목적으로 무조건적으로 좋은 것은 또 아닌것도 같습니다. (물론 확실히 수백불-천불짜리 SDR장비는 수만불짜리 애질런트제 아날라이저등에 비하면 가격대 성능비에 있어 만족스러운 대안이 될 수도 있을 것 같기는 합니다. 그저 아직 매뉴얼이나 지원이 부실한 소규모 오픈소스 프로젝트 등에 의존할 일이 좀 생긴다는 것일 뿐이고요.)
-
상세한 답글 감사드립니다.
얼마전에 판교에 있는 KISA IoT 보안 테스트베드에 가 보니, Wi-Fi, BT, ZigBee등 몇 가지 무선 인터페이스에 대해서 Fuzzing을 할 수 있는 Fuzzer들이 있던데, 가격이 무지막지하게 비싼가보더라구요.
비싼 것들이 다 이유는 있겠지만... 비교적 저렴하게 한정적으로나마 갖춰볼 수 있는게 있을까 싶어서 이래저래 짬나는대로 짱구를 굴리고 있습니다.
-
piloteer
07.28 23:20
가성비 문제라면 확실히 SDR + 오픈소스 소프트웨어들이 답일 수 있을 것 같습니다. DSP에 대한 이해가 있으시다면 직접 관련 프로그램을 작성하시거나 수정하시는 것도 가능할 수 있고요. 저도 전용 테스트장비들에 대해서 자세히는 모르나 (아직 무선쪽 가방끈이 짧아서요. SDR은 연구주제라서 그럭저럭 익숙합니다만..) 제대로 된 장비들이 대체로 비싸다는 것은 들었습니다.
보통 SDR용 프로그램은 GNURADIO나 SDR#(윈도용)을 기반으로 작성되는데, 사용하시고자 하는 프로그램들은 GNURADIO로 개발되는 경우가 더 많습니다. GNURADIO는 리눅스에서 많이 사용하며 구조 변경이 잦아서 관련 프로그램간에 버전 호환성 문제가 종종 발생한다는 문제가 있으나 비교적 프로그램 작성,변경이 쉬워서 연구/테스트용으로 많이 사용됩니다. (블록 프로그래밍을 지원하고 파이썬 코드를 뱉어냅니다. 연산속도가 중요한 블록은 C/C++로 짤 수 있습니다.) 그래서 아마 깃헙이나 구글등지에서 gnuradio 로 와이파이, 블투, 지그비등을 (부분 혹은 완전히) 구현한 소프트웨어들을 검색하시면 그럭저럭 공개된 것들을 찾으실 수 있을거라 생각합니다. 단, 블투는 상기한 문제에 의해 구현 수준이 많이 떨어집니다. 또한, 소규모 프로젝트들이기 때문에 원하시는 기능이 있나 미리 확인하시는 게 좋다고 생각합니다. (없어도 오픈소스인 만큼 구현가능할 수 있습니다만..) 그리고 소규모 프로젝트 + 빨리 변화하는 개발환경의 탓으로 프로그램들을 포팅해오는데에 호환성 조절 등 조금 귀찮은 삽질거리들이 있을 수도 있습니다. (..버전 차이가 심한 경우 아예 개발자쪽 환경과 버전을 맞춘 라이브러리들을 깔아둔 USB 부팅 이미지를 만드는 게 편할 수도 있습니다. 가상머신 대신 USB이미지를 쓰는 이유는 USB속도가 중요한데 가상머신을 쓰면 이게 느려서..) 단, 블투/와이파이/지그비 관련해서는 제가 아는 것은 없으나 어쩌면 GNURADIO기반이 아닌 관련 프로젝트들도 있을 수 있습니다. 일단 어떤 게 있나 한번 구글을 둘러보시고 생각해보시는 것도 좋을 것 같습니다.
gnuradio 메인 프로젝트 사이트: http://gnuradio.org/
USRP는 Ettus Research라는 비교적 역사가 긴 SDR제조사에서 나오는 제품입니다. USRP1는 너무 구식이라 이런 용도로 적합하지 않지만 후기 기종들은 대부분 이 정도 용도로 쓰기에 충분한 성능이 있습니다. (단, 20Mhz 대역폭이 아닌 더 넓은 대역폭을 쓰는 신형 와이파이는 더 비싼 장비가 필요할 수 있고 관련 공개 코드가 적어 프로그래밍도 필요할 수 있습니다.) 이 회사 제품들은 대체로 가격이 비싸지만 신뢰도가 좋은 편이며 B200같은 경우 가성비가 나쁘지 않습니다. 또한, 최상급 라인업은 좀 비싸지만 블루투스를 커버해낼만한 대역폭이 나오기도 합니다. 아직 사용자가 적어서 이것에 맞춘 소프트웨어가 적을 것 같다는 게 문제입니다만..
Ettus Research 메인 사이트 : https://www.ettus.com/
저렴한 대안으로는 Nuand의 BladeRF가 있는데 USRP에 비해서는 약간 역사나 커뮤니티 규모가 떨어져 신뢰도가 떨어지나 그래도 실 사용자분들에 의하면 만족스럽다고 합니다. 단, 일부 USRP 전용 라이브러리로 짜인 프로그램은 동작하지 않을 수 있습니다.
-
RuBisCO
08.02 11:27
들으면 잡혀가는(...) 것에 대한 걱정은 안하셔도 됩니다. 그런 부류의 위험한 내용을 담은건 대개 10Mhz 미만의 주파수대역인데 저건 그 대역은 못잡습니다. -
piloteer
08.02 16:33
그렇군요. 개인적으로 관심을 가지고 있는 몇몇 규격을 빼고는 어떤 주파수가 어떤 것에 쓰이는지 자세히 알고 있지는 않아 잘 모르겠네요.
-
HAM용 HF대역 sdr기반 무전기는 벌써 팔리고 있습니다 pc접속없이 자체 프로세서로 동작합니다 소개해주신 제품말고 비슷한걸로 사용해봤는데...제경험으로는 그냥 장난감 같았습니다 물론 처음 보는분들은 아주 신기한 물건이고요
-
piloteer
08.05 13:12
아무래도 임베디드 프로세서가 들어간 SDR은 HAM쪽이 더 수요가 높나 봅니다. 연구용으로도 있긴 한데 이쪽은 아무래도 컴퓨터에 직결하는 식을 선호합니다.
장난감이라.. 확실히 RTL-SDR계열 칩이 들어간 제품은 성능이 썩 좋지는 않지만 개인적으론 저래뵈도 꽤나 여러 목적으로 제대로 활용할 수 있다고 보고 있습니다. 저도 USRP를 빌릴 수 없을 때에는 연구용으로 종종 써먹고 있고, 항공 관련 취미인을 대상으로 커스터마이징된 제품도 나오고 있습니다. HAM목적으로는 어떨런지 잘 모르겠습니다만..
-
엘리야다
08.11 21:28
전 이거 보다 작은거샀는데 그냥 공중파 라디오 듣고있습니다. 그래도 좋네요 ㅋㅋ
-
piloteer
08.12 22:33
그러고 보니 그 작은 모델도 본 적이 있는데 써보지를 않아서 성능이 어떤지 잘 모르겠네요..
-
엘리야다
08.14 21:31
동일합니다. 조금더 안정적인것같네요 큰놈도 있는데 큰건 잘되다가 좀 건드리면 가끔 인식이 안되더군요.
번호 | 제목 | 작성자 | 작성일 | 조회 |
---|---|---|---|---|
1051 |
삼성 공기청정기 소음발생문제 고찰
[11]
![]() | matsal | 03.22 | 13529 |
1050 |
멀티배터리충전기 구입.. 사용기..
[6]
![]() | 몽배 | 01.11 | 2401 |
1049 |
여행용 공유기 gl-inet의 ar150 하루사용기
![]() | 스노우캣 | 01.10 | 2603 |
1048 |
샤오미의 Mi Max 간단한 느낌입니다.
[4]
![]() | 돈돈돈까스 | 01.07 | 2702 |
1047 | Philips ViVa Airfryer [2] | minkim | 01.03 | 2913 |
1046 |
Teclast X89 Kindow(D5N3) - 안드로이드에 모두 할당하기(몰빵)
[2]
![]() | 즐거운하루 | 01.03 | 4065 |
1045 | 아이폰 SE 기변 소감 [2] | matsal | 12.28 | 2022 |
1044 |
[SONY] MDR-1000X
[2]
![]() | Lock3rz | 12.28 | 4686 |
1043 |
[QCY] QY12
![]() | Lock3rz | 12.26 | 3846 |
1042 | 마지막 루미아 950 XL [3] | 영진 | 12.25 | 2782 |
1041 |
저소음 에어컴프레셔 KAC-10S
[3]
![]() | matsal | 12.16 | 2721 |
1040 |
절대 사지 말아야 할 에어 컴프레셔
[2]
![]() | matsal | 12.10 | 7642 |
1039 |
크롬 헤비유저의 네이버 웨일 브라우저 사용기
[6]
![]() | IRON | 12.02 | 2577 |
1038 |
저렴한 가성비 테블릿 - Teclast X89 Kindow(정발) 간단소감
[7]
![]() | 즐거운하루 | 10.25 | 4036 |
1037 |
SONY ICD-TX650
[5]
![]() | matsal | 10.05 | 3709 |
1036 | 고진샤(Kohjinsha) SA5 리눅스 설치기 [18] | 마몽드 | 09.24 | 2971 |
1035 |
근래 먹었던 냉장식품 중 맛있는 것들
[12]
![]() | matsal | 09.21 | 3308 |
1034 | 다이슨 무선청소기 DC62 간단한 사용기 [3] | Pooh | 08.19 | 4779 |
» |
RTL-SDR 간단 사용기.
[11]
![]() | piloteer | 07.26 | 11256 |
1032 | 대륙의 짝퉁이 진퉁된 세그웨이 샤오미 나인봇 미니 소감 [7] | 바보준용군 | 06.17 | 4301 |