В своем блоге Josef Gajdysek поделился опытом использования RTL-SDR для обратной разработки радиопротокола, применяемого его домашней метеостанцией. Метеостанция Джозефа является устройством в диапазоне ISM и передает на частоте 433 МГц. Сначала он открыл GQRX и настроил на частоту передачи своей метеостанции 433,6 МГц, а затем записал некоторый аудиофайл в режиме AM. Изначально Джозеф предполагал, что устройство будет использовать ключирование включением-выключением (OOK) для кодирования данных. Однако, когда он открыл звуковой файл в Audacity и посмотрел на его волновую форму, он обнаружил, что метеостанция использовала дифференциальную модуляцию положения импульса. В этой схеме модуляции расстояние между импульсами определяет, является ли бит 1 или 0.

Чтобы расшифровать это, Джозеф затем написал скрипт на Python, чтобы измерять расстояние между импульсами и таким образом преобразовывать импульсы в двоичную строку. Затем, декодируя и анализируя захваченные пакеты, он смог выделить контрольную сумму, температуру, канал и флаги состояния. Зная всю эту информацию, он наконец смог создать декодер в реальном времени, который использует rtl_fm. Python-скрипт можно скачать из его поста.

Источник:
