27 июня 2026

Измерение параметров кварцевого резонатора

Чтобы построить супергетеродинный приёмник мне нужен кварцевый фильтр. Можно купить готовый фильтр на 455 кГц или 10,7 МГц, но хочется попробовать собрать его самостоятельно. Для его постройки нужны кварцевые резонаторы с максимально близкой частотой (разброс не более 10% от полосы пропускания). Для голосовой связи нужен фильтр с полосой 2,4 - 3 кГц это не более 240 - 300 Гц разброса частоты кварцев, а для телеграфной связи нужен фильтр на 400 Гц что даёт всего 40 Гц разброса. У обычных кварцевых резонаторов точность частоты ±100 ppm что для резонатора на 8 МГц означает ±800 Гц, т.е. просто купить нужное количество резонаторов не получится. Но можно взять заведомо больше недорогих кварцев, измерить их параметры и выбрать нужное количество с близкими характеристиками.

Для подбора были куплены 52 кварца на частоту 6,144 МГц в корпусе HC-49U (маркированы как "MBС 6.144") - одни из самых дешёвых в БелЧипе и их частота лежит в диапазоне 6 - 12 МГц (не слишком близко к 7 МГц и на низкую частоту проще подобрать одинаковые кварцы). Для отбора кварцев нужно изменить их частоту последовательного резонанса FS. Кварцевый резонатор можно изобразить в виде эквивалентной схемы.

C0 - ёмкость образованная корпусом и выводами кварцевого резонатора. В англоязычной литературе её называют holder capacitance или ёмкость держателя - отсылка ко временам когда резонаторы делались вручную и зажимались в специальном держателе.

26 июня 2026

"The server responds but can't determine if things goes well" в aNag

На смартфоне смотрю статус Nagios через aNag (неофициальный клиент для Icinga, Thruk, Naemon и Nagios под Android). Недавно потребовалось подтвердить (acknowledge) оповещение чтобы оно не уведомляло при каждой проверке. В ответ на привычный свайп влево aNag ответил "The server responds but can't determine if things goes well". При этом никакого подтверждения в самом Nagios не произошло. Аналогично вела себя и принудительная проверка сервиса (reschedule check).

Проверил что установлена последняя версия aNag v6.4.0, нашёл на сайте разработчика ссылку в Discord и отправился просить помощи. В процессе обсуждения выяснилось что проблема на стороне aNag, который не переваривает недавнее исправление в Nagios, которое Debian выпустил в конце мая.

nagios4 (4.4.6-4.1+deb13u1) trixie-security; urgency=high

  * CSRF Security Fix backported from upstream 4.5.12 commit
    e5ed38e53a5d65721520c7c67be0746d63da28cb (cgi/cmd.c and
    html/index.php.in).  See
    https://www.nagios.com/security-disclosures/nagios-core/4-5-12/
    for the upstream disclosure.  No CVE assigned.
    Closes: #1136340.
  * This can break third party integrations that POST to cmd.cgi
    without first setting NagFormId (the CSRF check fails).  Upstream
    PR 1055 has been added as a workaround - see README.Debian.

 -- Russell Stuart <russell-debian@stuart.id.au>  Fri, 22 May 2026 20:45:00 +1000 

После нескольких итераций исправлений разработчик добился чтобы aNag правильно обрабатывал операции acknowledge и recheck. Эта версия ещё не опубликована в Play Market, но исправленный вариант можно скачать по ссылке app-release-0214-6.4.1.apk. SHA256 хеш этого файла: c7beca2623b3619fe6339580a8cda98cea9a870b2206204841fbff48c7c5f44a.


Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

21 июня 2026

Доработка Qidi Q1 Pro для печати TPU

Почти полтора года назад в моей мастерской появился 3D принтер Qidi Q1 Pro, но только сейчас попробовал печатать эластомером. Из коробки попытка печати TPU на этом принтере скорее всего закончится затором в экструдере и его чисткой, но если добавить несколько деталей, то принтер вполне будет печатать TPU 95A.

Один из известных недочётов этого принтера это царапины на верхней прозрачной крышке которые оставляет PTFE трубка, подающая филамент в экструдер. Я немного приподнимал крышку на резиновых вставках и таким образом избегал царапин. С printables.com можно скачать модель проставки (Qidi Q1 Pro Riser), которая приподнимает крышку над принтером и заодно является основанием для стоек держателя катушки (Qidi Q1 Pro TPU spool holder). В такой конфигурации TPU подаётся напрямую в экструдер минуя штатную трубку.

16 июня 2026

Приёмник прямого преобразования

В школе собирал детекторные приёмники на картонках, которые можно было слушать на высокоомные наушники ТОН-2. Добавив к такому приёмнику каскад усиления низкой частоты на одном или двух транзисторах получался приёмник прямого усиления. Дальше увлечение перешло на компьютеры и впоследствии стало профессией.

Спустя много лет вернулся к тематике радио и продолжил прогресс с "сохранённой позиции" - следующим после приёмника прямого усиления следует приёмник прямого преобразования.

У приёмника модульная конструкция, часть компонентов были взяты из проекта апконвертера, а остальные изготовил с нуля.

15 июня 2026

Ковыряние в shell скриптах

Досталась по работе задача прикрутить к CI поддержку нескольких веток разработки. Например ветка development это текущий код, который давно поддерживается, но уже есть планы перевести его в разряд наследия и начать с чистого листа в лучших AI практиках.

Разработчики заводят новую ветку development-X.Y в которую заливается код "не имеющий ничего общего" с кодом в ветке development. Проблема в том что CI не поддерживает такой сценарий и как только будет выпущена версия X.Y.0, то собьётся версионирование в ветке development чего нужно избежать.

За версионирование в CI отвечает shell портянка строк на 200. Благо к ней есть тесты, написанные для bats и это большое благо, иначе количество сюрпризов повысилось бы кратно.

Вот несколько интересных граблей, на которые наступил в процессе:

Добавил новый параметр для фильтрации версий local filter="$10" - тесты отвалились, т.к. в значении переменной filter было "имя_сценария0", а не "0.[0-9]+" как должно было быть. Дело в том что bash трактует "$10" как обращение к первому параметру к которому в строке добавили ноль. Чтобы этого не происходило нужно писать local filter="${10}". Забавно что shellcheck на такое не ругается.

Когда добрался до сравнения версий, которое было сделано в виде хака version() { echo "$@" | awk -F. '{ printf("%d%03d%03d\n", $1,$2,$3); }'; } нашёл "спящую" ошибку, которая проявится спустя какое-то время. При использовании такой функции версия 0.48.0 на выходе имела вид 0048000, но если в начале числа стоит 0, то bash воспринимает его как восьмеричное число и ловит ошибку -bash: [[: 0048000: value too great for base (error token is "0048000").

14 июня 2026

Активный ФНЧ на 3 кГц

Собрал активный фильтр нижних частот с частотой среза 3 кГц чтобы отсекать высокочастотный свист и улучшить избирательность приёмника прямого преобразования. Для расчёта номиналов использовал схему и калькулятор из статьи онлайн расчёт активных фильтров на ОУ и транзисторах.

Моделирование фильтра делал в Qucs-S и начал со схемы на операционном усилителе, но она не работала без двухполярного питания. Двухполярное питание можно получить с помощью таймера 555 или, если снизить напряжение питания аналоговой части до 10 В, микросхемой семейства 7660 (на "летающих конденсаторах"). Но оба варианта потребует делать фильтрацию импульсных помех, чего не хотелось бы из-за усложнения схемы.

10 июня 2026

Балун по току 1:1

Наступило лето и можно выбраться подальше от городских помех чтобы на свежем воздухе послушать эфир. Для начала планирую сделать антенну диполь на диапазон 20 метров, т.к. в этом диапазоне активность есть и днём и ночью.

Поскольку диполь это симметричная антенна, а коаксиальный кабель не симметричен, то собрал себе балун (balun) который является симметрирующим устройством и исключает протекание тока по оплётке коаксиального кабеля. Другими словами балун нужен чтобы приём или передача сигнала велась только самой антенной а не фидером впридачу.

Вообще антенна будет работать и без него, на канале Алексея Игонина есть видео про изготовление простой антенны из подручных материалов и она вполне работала и без симметрирования.

Для изготовления балуна взял ферритовое кольцо М2000НМ 32х16х8. У этого кольца острые грани и их стоит сгладить (напильником, бормашинкой и т.д.) чтобы избежать повреждения изоляции провода при намотке, затем дополнительно обмотать кольцо чем-то изолирующим поскольку феррит марки НМ проводит ток (я использовал ПВХ изоленту).