home.social

#деньрадио — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #деньрадио, aggregated by home.social.

  1. Сегодня день Радио, поздравляю всех причастных 😀

    Жутко хочу освободить время и вкатиться в эту тему, это интереснейшее занятие (как мне видится со стороны)

    Недавно решил поковырять RDS

    Немного справки (для тех кто знает - пропускайте)
    Если вы когда-нибудь видели на автомагнитоле название станции вроде ROCK FM, бегущую строку с текстом песни или автоматическую установку времени, значит вы уже пользовались RDS, просто не задумывались об этом

    Через RDS станция может передавать:

    • PS - короткое имя станции
    • RT - радиотекст
    • PI - код станции
    • CT - время станции

    Для исследовательского или радиолюбительского проекта это уже набор наблюдаемых цифровых признаков:

    • на какой частоте что реально вещает
    • как называется станция
    • какой у неё PI-код
    • передаёт ли она радиотекст
    • насколько корректно у неё выставлено RDS-время
    • как это всё меняется в разных местах

    Что значит я сделал

    1. rds.2big.cc - это веб-приложение для отображения таких наблюдений

    Идея простая:

    1. Устройство сканирует FM-диапазон
    2. Ловит станции и читает RDS
    3. Прикладывает к observation своё местоположение в виде QTH/Maidenhead
    4. Отправляет observation в backend
    5. Backend складывает всё в PostgreSQL
    6. Frontend показывает локаторы на карте и даёт посмотреть последние приёмы и историю

    Итог - получается живая карта наблюдений по локаторам, а не просто поток сырых логов

    Почему здесь именно QTH/Maidenhead


    Проект не использует точечные координаты как основной индекс отображения. Вместо этого observations группируются по Maidenhead-локаторам

    Это даёт несколько практических преимуществ:

    • визуализация на карте остаётся простой
    • можно легко сравнивать районы, а не отдельные GPS-точки
    • locator хорошо знаком радиолюбителям
    • анонимность++


    Как устроен сканер


    Железная часть проекта - это устройство на ESP8266 + SI4703, которое последовательно сканирует FM-частоты и читает RDS

    Что делает устройство:

    • проходит по диапазону FM
    • измеряет RSSI
    • ждёт стабилизации RDS-данных
    • собирает лучшие кандидаты для PI, PS, RT, CT
    • формирует observation
    • отправляет его в backend (mqtt/rest)

    Вообще изначально была идея увидеть какие станции передают время и насколько оно точно отдаётся

    Так же, была попытка запуститься на ESP32 + RDA5807M, но нет - похоже библиотека, которая работает с радио не очень хорошо обрабатывает RDS и часто получал пургу

    Почему ESP8266 не использует отдельный GPS-модуль


    Можно было бы поставить на сканер внешний GPS-модуль, но для такой задачи это часто избыточно:

    • лишняя плата
    • лишнее питание
    • лишняя антенна
    • лишняя сложность

    Вместо этого проект использует компаньон на Android

    Android-компаньон GPSCaster


    ndroid-приложение на Kotlin. Оно работает как локальный GPS-ретранслятор для устройств в той же Wi-Fi сети

    Что делает GPSCaster:

    • получает положение телефона через FusedLocationProviderClient
    • запускает foreground service
    • держит в памяти последний валидный fix
    • шлёт UDP broadcast в LAN
    • слушает UDP-запросы GET_GPS
    • шлёт GPS в BLE (тут кстати, отдельная идея - в принципе рассылать GPS через BLE advertisement)
    • отвечает пакетом:


    GPS,<unix_timestamp_seconds>,<lat>,<lon>,<accuracy_meters>

    Порт протокола: 45454

    То есть телефон фактически выступает как "сетевой GPS и источник времени" для ESP8266

    Это удобная идея:

    • телефон и так уже знает точные координаты
    • не нужно ставить отдельный GNSS-модуль на каждое устройство
    • можно быстро развернуть систему в машине или в полевых условиях


    Как связаны ESP8266 и GPSCaster


    Связка работает так:

    1. GPSCaster периодически рассылает в локальную сеть UDP-пакеты с координатами и временем
    2. ESP8266 слушает порт 45454
    3. Если свежих GPS-данных нет, ESP8266 может сам отправить GET_GPS,<device_id>
    4. GPSCaster отвечает текущим fix
    5. ESP8266 получает:
      • время
      • latitude
      • longitude
      • accuracy


    6. По координатам прошивка вычисляет qth
    7. По времени ставит ts

    Если GPS-время не удалось получить:

    • прошивка пробует NTP
    • если NTP тоже не дал времени, идёт локальный счётчик от последней успешной синхронизации

    Это не полноценный GPS-ресивер, но для задачи сбора подобной информации, более чем подходит

    Будет желание - заходите


    Если будет интересно - заходите, будем вместе собирать данные - выложу исходники прошивки и протокол передачи данных

    #проекты #деньрадио #esp8266 #rds

  2. Сегодня день Радио, поздравляю всех причастных 😀

    Жутко хочу освободить время и вкатиться в эту тему, это интереснейшее занятие (как мне видится со стороны)

    Недавно решил поковырять RDS

    Немного справки (для тех кто знает - пропускайте)
    Если вы когда-нибудь видели на автомагнитоле название станции вроде ROCK FM, бегущую строку с текстом песни или автоматическую установку времени, значит вы уже пользовались RDS, просто не задумывались об этом

    Через RDS станция может передавать:

    • PS - короткое имя станции
    • RT - радиотекст
    • PI - код станции
    • CT - время станции

    Для исследовательского или радиолюбительского проекта это уже набор наблюдаемых цифровых признаков:

    • на какой частоте что реально вещает
    • как называется станция
    • какой у неё PI-код
    • передаёт ли она радиотекст
    • насколько корректно у неё выставлено RDS-время
    • как это всё меняется в разных местах

    Что значит я сделал

    1. rds.2big.cc - это веб-приложение для отображения таких наблюдений

    Идея простая:

    1. Устройство сканирует FM-диапазон
    2. Ловит станции и читает RDS
    3. Прикладывает к observation своё местоположение в виде QTH/Maidenhead
    4. Отправляет observation в backend
    5. Backend складывает всё в PostgreSQL
    6. Frontend показывает локаторы на карте и даёт посмотреть последние приёмы и историю

    Итог - получается живая карта наблюдений по локаторам, а не просто поток сырых логов

    Почему здесь именно QTH/Maidenhead


    Проект не использует точечные координаты как основной индекс отображения. Вместо этого observations группируются по Maidenhead-локаторам

    Это даёт несколько практических преимуществ:

    • визуализация на карте остаётся простой
    • можно легко сравнивать районы, а не отдельные GPS-точки
    • locator хорошо знаком радиолюбителям
    • анонимность++


    Как устроен сканер


    Железная часть проекта - это устройство на ESP8266 + SI4703, которое последовательно сканирует FM-частоты и читает RDS

    Что делает устройство:

    • проходит по диапазону FM
    • измеряет RSSI
    • ждёт стабилизации RDS-данных
    • собирает лучшие кандидаты для PI, PS, RT, CT
    • формирует observation
    • отправляет его в backend (mqtt/rest)

    Вообще изначально была идея увидеть какие станции передают время и насколько оно точно отдаётся

    Так же, была попытка запуститься на ESP32 + RDA5807M, но нет - похоже библиотека, которая работает с радио не очень хорошо обрабатывает RDS и часто получал пургу

    Почему ESP8266 не использует отдельный GPS-модуль


    Можно было бы поставить на сканер внешний GPS-модуль, но для такой задачи это часто избыточно:

    • лишняя плата
    • лишнее питание
    • лишняя антенна
    • лишняя сложность

    Вместо этого проект использует компаньон на Android

    Android-компаньон GPSCaster


    ndroid-приложение на Kotlin. Оно работает как локальный GPS-ретранслятор для устройств в той же Wi-Fi сети

    Что делает GPSCaster:

    • получает положение телефона через FusedLocationProviderClient
    • запускает foreground service
    • держит в памяти последний валидный fix
    • шлёт UDP broadcast в LAN
    • слушает UDP-запросы GET_GPS
    • шлёт GPS в BLE (тут кстати, отдельная идея - в принципе рассылать GPS через BLE advertisement)
    • отвечает пакетом:


    GPS,<unix_timestamp_seconds>,<lat>,<lon>,<accuracy_meters>

    Порт протокола: 45454

    То есть телефон фактически выступает как "сетевой GPS и источник времени" для ESP8266

    Это удобная идея:

    • телефон и так уже знает точные координаты
    • не нужно ставить отдельный GNSS-модуль на каждое устройство
    • можно быстро развернуть систему в машине или в полевых условиях


    Как связаны ESP8266 и GPSCaster


    Связка работает так:

    1. GPSCaster периодически рассылает в локальную сеть UDP-пакеты с координатами и временем
    2. ESP8266 слушает порт 45454
    3. Если свежих GPS-данных нет, ESP8266 может сам отправить GET_GPS,<device_id>
    4. GPSCaster отвечает текущим fix
    5. ESP8266 получает:
      • время
      • latitude
      • longitude
      • accuracy


    6. По координатам прошивка вычисляет qth
    7. По времени ставит ts

    Если GPS-время не удалось получить:

    • прошивка пробует NTP
    • если NTP тоже не дал времени, идёт локальный счётчик от последней успешной синхронизации

    Это не полноценный GPS-ресивер, но для задачи сбора подобной информации, более чем подходит

    Будет желание - заходите


    Если будет интересно - заходите, будем вместе собирать данные - выложу исходники прошивки и протокол передачи данных

    #проекты #деньрадио #esp8266 #rds

  3. Сегодня день Радио, поздравляю всех причастных 😀

    Жутко хочу освободить время и вкатиться в эту тему, это интереснейшее занятие (как мне видится со стороны)

    Недавно решил поковырять RDS

    Немного справки (для тех кто знает - пропускайте)
    Если вы когда-нибудь видели на автомагнитоле название станции вроде ROCK FM, бегущую строку с текстом песни или автоматическую установку времени, значит вы уже пользовались RDS, просто не задумывались об этом

    Через RDS станция может передавать:

    • PS - короткое имя станции
    • RT - радиотекст
    • PI - код станции
    • CT - время станции

    Для исследовательского или радиолюбительского проекта это уже набор наблюдаемых цифровых признаков:

    • на какой частоте что реально вещает
    • как называется станция
    • какой у неё PI-код
    • передаёт ли она радиотекст
    • насколько корректно у неё выставлено RDS-время
    • как это всё меняется в разных местах

    Что значит я сделал

    1. rds.2big.cc - это веб-приложение для отображения таких наблюдений

    Идея простая:

    1. Устройство сканирует FM-диапазон
    2. Ловит станции и читает RDS
    3. Прикладывает к observation своё местоположение в виде QTH/Maidenhead
    4. Отправляет observation в backend
    5. Backend складывает всё в PostgreSQL
    6. Frontend показывает локаторы на карте и даёт посмотреть последние приёмы и историю

    Итог - получается живая карта наблюдений по локаторам, а не просто поток сырых логов

    Почему здесь именно QTH/Maidenhead


    Проект не использует точечные координаты как основной индекс отображения. Вместо этого observations группируются по Maidenhead-локаторам

    Это даёт несколько практических преимуществ:

    • визуализация на карте остаётся простой
    • можно легко сравнивать районы, а не отдельные GPS-точки
    • locator хорошо знаком радиолюбителям
    • анонимность++


    Как устроен сканер


    Железная часть проекта - это устройство на ESP8266 + SI4703, которое последовательно сканирует FM-частоты и читает RDS

    Что делает устройство:

    • проходит по диапазону FM
    • измеряет RSSI
    • ждёт стабилизации RDS-данных
    • собирает лучшие кандидаты для PI, PS, RT, CT
    • формирует observation
    • отправляет его в backend (mqtt/rest)

    Вообще изначально была идея увидеть какие станции передают время и насколько оно точно отдаётся

    Так же, была попытка запуститься на ESP32 + RDA5807M, но нет - похоже библиотека, которая работает с радио не очень хорошо обрабатывает RDS и часто получал пургу

    Почему ESP8266 не использует отдельный GPS-модуль


    Можно было бы поставить на сканер внешний GPS-модуль, но для такой задачи это часто избыточно:

    • лишняя плата
    • лишнее питание
    • лишняя антенна
    • лишняя сложность

    Вместо этого проект использует компаньон на Android

    Android-компаньон GPSCaster


    ndroid-приложение на Kotlin. Оно работает как локальный GPS-ретранслятор для устройств в той же Wi-Fi сети

    Что делает GPSCaster:

    • получает положение телефона через FusedLocationProviderClient
    • запускает foreground service
    • держит в памяти последний валидный fix
    • шлёт UDP broadcast в LAN
    • слушает UDP-запросы GET_GPS
    • шлёт GPS в BLE (тут кстати, отдельная идея - в принципе рассылать GPS через BLE advertisement)
    • отвечает пакетом:


    GPS,<unix_timestamp_seconds>,<lat>,<lon>,<accuracy_meters>

    Порт протокола: 45454

    То есть телефон фактически выступает как "сетевой GPS и источник времени" для ESP8266

    Это удобная идея:

    • телефон и так уже знает точные координаты
    • не нужно ставить отдельный GNSS-модуль на каждое устройство
    • можно быстро развернуть систему в машине или в полевых условиях


    Как связаны ESP8266 и GPSCaster


    Связка работает так:

    1. GPSCaster периодически рассылает в локальную сеть UDP-пакеты с координатами и временем
    2. ESP8266 слушает порт 45454
    3. Если свежих GPS-данных нет, ESP8266 может сам отправить GET_GPS,<device_id>
    4. GPSCaster отвечает текущим fix
    5. ESP8266 получает:
      • время
      • latitude
      • longitude
      • accuracy


    6. По координатам прошивка вычисляет qth
    7. По времени ставит ts

    Если GPS-время не удалось получить:

    • прошивка пробует NTP
    • если NTP тоже не дал времени, идёт локальный счётчик от последней успешной синхронизации

    Это не полноценный GPS-ресивер, но для задачи сбора подобной информации, более чем подходит

    Будет желание - заходите


    Если будет интересно - заходите, будем вместе собирать данные - выложу исходники прошивки и протокол передачи данных

    #проекты #деньрадио #esp8266 #rds

  4. Сегодня день Радио, поздравляю всех причастных 😀

    Жутко хочу освободить время и вкатиться в эту тему, это интереснейшее занятие (как мне видится со стороны)

    Недавно решил поковырять RDS

    Немного справки (для тех кто знает - пропускайте)
    Если вы когда-нибудь видели на автомагнитоле название станции вроде ROCK FM, бегущую строку с текстом песни или автоматическую установку времени, значит вы уже пользовались RDS, просто не задумывались об этом

    Через RDS станция может передавать:

    • PS - короткое имя станции
    • RT - радиотекст
    • PI - код станции
    • CT - время станции

    Для исследовательского или радиолюбительского проекта это уже набор наблюдаемых цифровых признаков:

    • на какой частоте что реально вещает
    • как называется станция
    • какой у неё PI-код
    • передаёт ли она радиотекст
    • насколько корректно у неё выставлено RDS-время
    • как это всё меняется в разных местах

    Что значит я сделал

    1. rds.2big.cc - это веб-приложение для отображения таких наблюдений

    Идея простая:

    1. Устройство сканирует FM-диапазон
    2. Ловит станции и читает RDS
    3. Прикладывает к observation своё местоположение в виде QTH/Maidenhead
    4. Отправляет observation в backend
    5. Backend складывает всё в PostgreSQL
    6. Frontend показывает локаторы на карте и даёт посмотреть последние приёмы и историю

    Итог - получается живая карта наблюдений по локаторам, а не просто поток сырых логов

    Почему здесь именно QTH/Maidenhead


    Проект не использует точечные координаты как основной индекс отображения. Вместо этого observations группируются по Maidenhead-локаторам

    Это даёт несколько практических преимуществ:

    • визуализация на карте остаётся простой
    • можно легко сравнивать районы, а не отдельные GPS-точки
    • locator хорошо знаком радиолюбителям
    • анонимность++


    Как устроен сканер


    Железная часть проекта - это устройство на ESP8266 + SI4703, которое последовательно сканирует FM-частоты и читает RDS

    Что делает устройство:

    • проходит по диапазону FM
    • измеряет RSSI
    • ждёт стабилизации RDS-данных
    • собирает лучшие кандидаты для PI, PS, RT, CT
    • формирует observation
    • отправляет его в backend (mqtt/rest)

    Вообще изначально была идея увидеть какие станции передают время и насколько оно точно отдаётся

    Так же, была попытка запуститься на ESP32 + RDA5807M, но нет - похоже библиотека, которая работает с радио не очень хорошо обрабатывает RDS и часто получал пургу

    Почему ESP8266 не использует отдельный GPS-модуль


    Можно было бы поставить на сканер внешний GPS-модуль, но для такой задачи это часто избыточно:

    • лишняя плата
    • лишнее питание
    • лишняя антенна
    • лишняя сложность

    Вместо этого проект использует компаньон на Android

    Android-компаньон GPSCaster


    ndroid-приложение на Kotlin. Оно работает как локальный GPS-ретранслятор для устройств в той же Wi-Fi сети

    Что делает GPSCaster:

    • получает положение телефона через FusedLocationProviderClient
    • запускает foreground service
    • держит в памяти последний валидный fix
    • шлёт UDP broadcast в LAN
    • слушает UDP-запросы GET_GPS
    • шлёт GPS в BLE (тут кстати, отдельная идея - в принципе рассылать GPS через BLE advertisement)
    • отвечает пакетом:


    GPS,<unix_timestamp_seconds>,<lat>,<lon>,<accuracy_meters>

    Порт протокола: 45454

    То есть телефон фактически выступает как "сетевой GPS и источник времени" для ESP8266

    Это удобная идея:

    • телефон и так уже знает точные координаты
    • не нужно ставить отдельный GNSS-модуль на каждое устройство
    • можно быстро развернуть систему в машине или в полевых условиях


    Как связаны ESP8266 и GPSCaster


    Связка работает так:

    1. GPSCaster периодически рассылает в локальную сеть UDP-пакеты с координатами и временем
    2. ESP8266 слушает порт 45454
    3. Если свежих GPS-данных нет, ESP8266 может сам отправить GET_GPS,<device_id>
    4. GPSCaster отвечает текущим fix
    5. ESP8266 получает:
      • время
      • latitude
      • longitude
      • accuracy


    6. По координатам прошивка вычисляет qth
    7. По времени ставит ts

    Если GPS-время не удалось получить:

    • прошивка пробует NTP
    • если NTP тоже не дал времени, идёт локальный счётчик от последней успешной синхронизации

    Это не полноценный GPS-ресивер, но для задачи сбора подобной информации, более чем подходит

    Будет желание - заходите


    Если будет интересно - заходите, будем вместе собирать данные - выложу исходники прошивки и протокол передачи данных

    #проекты #деньрадио #esp8266 #rds

  5. Сегодня день Радио, поздравляю всех причастных 😀

    Жутко хочу освободить время и вкатиться в эту тему, это интереснейшее занятие (как мне видится со стороны)

    Недавно решил поковырять RDS

    Немного справки (для тех кто знает - пропускайте)
    Если вы когда-нибудь видели на автомагнитоле название станции вроде ROCK FM, бегущую строку с текстом песни или автоматическую установку времени, значит вы уже пользовались RDS, просто не задумывались об этом

    Через RDS станция может передавать:

    • PS - короткое имя станции
    • RT - радиотекст
    • PI - код станции
    • CT - время станции

    Для исследовательского или радиолюбительского проекта это уже набор наблюдаемых цифровых признаков:

    • на какой частоте что реально вещает
    • как называется станция
    • какой у неё PI-код
    • передаёт ли она радиотекст
    • насколько корректно у неё выставлено RDS-время
    • как это всё меняется в разных местах

    Что значит я сделал

    1. rds.2big.cc - это веб-приложение для отображения таких наблюдений

    Идея простая:

    1. Устройство сканирует FM-диапазон
    2. Ловит станции и читает RDS
    3. Прикладывает к observation своё местоположение в виде QTH/Maidenhead
    4. Отправляет observation в backend
    5. Backend складывает всё в PostgreSQL
    6. Frontend показывает локаторы на карте и даёт посмотреть последние приёмы и историю

    Итог - получается живая карта наблюдений по локаторам, а не просто поток сырых логов

    Почему здесь именно QTH/Maidenhead


    Проект не использует точечные координаты как основной индекс отображения. Вместо этого observations группируются по Maidenhead-локаторам

    Это даёт несколько практических преимуществ:

    • визуализация на карте остаётся простой
    • можно легко сравнивать районы, а не отдельные GPS-точки
    • locator хорошо знаком радиолюбителям
    • анонимность++


    Как устроен сканер


    Железная часть проекта - это устройство на ESP8266 + SI4703, которое последовательно сканирует FM-частоты и читает RDS

    Что делает устройство:

    • проходит по диапазону FM
    • измеряет RSSI
    • ждёт стабилизации RDS-данных
    • собирает лучшие кандидаты для PI, PS, RT, CT
    • формирует observation
    • отправляет его в backend (mqtt/rest)

    Вообще изначально была идея увидеть какие станции передают время и насколько оно точно отдаётся

    Так же, была попытка запуститься на ESP32 + RDA5807M, но нет - похоже библиотека, которая работает с радио не очень хорошо обрабатывает RDS и часто получал пургу

    Почему ESP8266 не использует отдельный GPS-модуль


    Можно было бы поставить на сканер внешний GPS-модуль, но для такой задачи это часто избыточно:

    • лишняя плата
    • лишнее питание
    • лишняя антенна
    • лишняя сложность

    Вместо этого проект использует компаньон на Android

    Android-компаньон GPSCaster


    ndroid-приложение на Kotlin. Оно работает как локальный GPS-ретранслятор для устройств в той же Wi-Fi сети

    Что делает GPSCaster:

    • получает положение телефона через FusedLocationProviderClient
    • запускает foreground service
    • держит в памяти последний валидный fix
    • шлёт UDP broadcast в LAN
    • слушает UDP-запросы GET_GPS
    • шлёт GPS в BLE (тут кстати, отдельная идея - в принципе рассылать GPS через BLE advertisement)
    • отвечает пакетом:


    GPS,<unix_timestamp_seconds>,<lat>,<lon>,<accuracy_meters>

    Порт протокола: 45454

    То есть телефон фактически выступает как "сетевой GPS и источник времени" для ESP8266

    Это удобная идея:

    • телефон и так уже знает точные координаты
    • не нужно ставить отдельный GNSS-модуль на каждое устройство
    • можно быстро развернуть систему в машине или в полевых условиях


    Как связаны ESP8266 и GPSCaster


    Связка работает так:

    1. GPSCaster периодически рассылает в локальную сеть UDP-пакеты с координатами и временем
    2. ESP8266 слушает порт 45454
    3. Если свежих GPS-данных нет, ESP8266 может сам отправить GET_GPS,<device_id>
    4. GPSCaster отвечает текущим fix
    5. ESP8266 получает:
      • время
      • latitude
      • longitude
      • accuracy


    6. По координатам прошивка вычисляет qth
    7. По времени ставит ts

    Если GPS-время не удалось получить:

    • прошивка пробует NTP
    • если NTP тоже не дал времени, идёт локальный счётчик от последней успешной синхронизации

    Это не полноценный GPS-ресивер, но для задачи сбора подобной информации, более чем подходит

    Будет желание - заходите


    Если будет интересно - заходите, будем вместе собирать данные - выложу исходники прошивки и протокол передачи данных

    #проекты #деньрадио #esp8266 #rds