понедельник, 29 сентября 2025 г.

Невезение с OCXO генератором на 10 МГц

Пришёл заказанный с AliExpress модуль OCXO (Oven-Controlled Crystal Oscillator) генератора на 10 МГц. Планировал использовать его для повышения точности генератора сигналов. Потом возможно прикручу к нему GPS чтобы получить GPSDO (GPS Disciplined Oscillator).

В комплекте шёл переходник с батарейки 6F22 который оказался нерабочим - ни один из контактов не подключен. В целом не ясно зачем он нужен если при старте модуль потребляет около 0,5 А и после нескольких минут прогрева падает до 0,25 А.

Флюс китайцы отмыть забыли, но это поправимо небольшим количеством изопропилового спирта.

воскресенье, 28 сентября 2025 г.

Команды SCPI для измерителя LCR Zoyi ZT-DQ02

 Обновил прошивку измерителя LCR Zoyi ZT-DQ02 до версии 1.0.7 и немного покопался в прошивке на предмет поддерживаемых SCPI команд (в документации упомянуто управление через SCPI, но не приводятся сами команды).

На форуме EEVblog есть упоминания отдельных команд, но я использовал strings для поиска текстовых строк в файле прошивки.

Чтобы включить связь с компьютером нужно нажать и подержать кнопку "HOLD/REC", после этого в системе появится новый последовательный порт вида ttyACM0. Настройки для терминала 9600 8N1, окончание строк CRLF.

Список команд который удалось извлечь (следить за развитием можно на GitHub)

суббота, 27 сентября 2025 г.

Установка OpenWrt на TP-Link RE365 v1

Решил улучшить покрытие в домашней беспроводной сети и поставить ещё одну точку доступа чтобы интернет надёжно работал на балконе. Для этой цели на барахолке был куплен TP-Link RE365 v1 для которого доступна прошивка OpenWrt.

Важно учитывать ревизию устройства, т.к. в более свежей ревизии v3 поддержки нет и похоже никогда не будет.

Установка OpenWrt максимально простая:

  • скачать файл прошивки openwrt-24.10.2-ramips-mt76x8-tplink_re365-v1-squashfs-factory.bin
  • на всякий случай проверить его контрольную сумму
  • сделать сброс на заводские настройки (зажать Reset на 10 секунд)
  • зайти на http://192.168.0.254/ и через штатное обновление установить OpenWrt (важно чтобы файл прошивки был с суффиксом factory, а не sysupgrade)

среда, 24 сентября 2025 г.

Изготовление печатных плат

До недавнего времени для изготовления печатных плат в домашних условиях пользовался методом лазерного утюга (ЛУТ), но решил попробовать метод "холодного" ЛУТ. Это когда перенос тонера на стеклотекстолит происходит без нагрева утюгом.

С ЛУТ у меня было две проблемы:

  • неравномерный прогрев платы и, как следствие, перенос только части дорожек (это можно решить либо опытом, либо приобретением ламинатора).
  • принтер стал плохо заливать сплошные полигоны и они становятся "прозрачными" после травления. 

Набросал в Kicad печатную плату для источника опорного напряжения 10 В

Делитель напряжения для операционного усилителя собрал из цепочки точных сопротивлений 1 кОм ±0.1% ±25ppm/℃ 125mW, которые остались после сборки набора сопротивлений для проверки мультиметров (см. 1, 2, 3).

Обновление системы до Debian 13

Уже вышло первое исправление для Debian 13 и для меня это сигнал что можно начинать обновлять свои системы. Перед обновлением стоит почитать что нужно знать о trixie чтобы представлять что может пойти не так.

На домашнем ноутбуке обновление вышло более масштабным, т.к. заодно заменил штатный SATA SSD на NVME SSD который по размеру немного меньше прежнего, но зато в разы быстрее. Заодно перешёл на разметку диска GPT и загрузку через UEFI.

Само обновление прошло довольно гладко, но перед манипуляциями я делал полный бэкап диска через Clonezilla так что независимо от результата мне есть куда вернуться. 

Сообщение systemd "Tainted: unmerged-bin"

Это известная проблема и с этим ничего не нужно делать (подробности в #1085370).

$ systemctl status | head -n 20
● vbox
    State: running
    Units: 396 loaded (incl. loaded aliases)
     Jobs: 0 queued
   Failed: 0 units
    Since: Tue 2025-09-09 15:02:26 +03; 30min ago
  systemd: 257.8-1~deb13u1
  Tainted: unmerged-bin
   CGroup: /
           ├─init.scope
           │ └─1 /sbin/init
           ├─system.slice
           │ ├─acpid.service
           │ │ └─794 /usr/sbin/acpid
           │ ├─atd.service
           │ │ └─830 /usr/sbin/atd -f
           │ ├─containerd.service
           │ │ └─840 /usr/bin/containerd
           │ ├─cron.service
           │ │ └─821 /usr/sbin/cron -f

Bacula

Несовместимость версий в Debian 12 и Debian 13. Bacula director старой версии может общаться с новым bacula-fd, но между bacula-fd и bacula-sd старой версии дружбы не сложилось. Пришлось отложить обновление пока не будут обновлены все системы.
$ sudo aptitude hold ~ibacula

вторник, 23 сентября 2025 г.

Диски в GCP заметно дороже

Давно не заглядывал в стоимость ресурсов Google Cloud Platform и сегодня удивился стоимости дисков в GCP. Для сравнения зональный диск на 100 GB в AWS и GCP:

Т.е. за большие деньги получаешь меньше производительности. Если пытаться подобрать аналогичную производительность диска, то это уже нужен pd-extreme где минимальный размер 500GB и стоимость больше 250 USD в месяц.

среда, 17 сентября 2025 г.

Снимок экрана генератора сигналов Uni-T UTG932E

 Разобрался как сохранять снимки экрана в генераторе сигналов Uni-T UTG932E. Я использую Linux и последовательность действий будет для этой системы. Для начала настроить правило UDEV для выдачи прав при подключении генератора к компьютеру.

В моём случае настройки UDEV находятся в файле /etc/udev/rules.d/99-utg932e.rules, но имя может быть и другим

ACTION!="add|change", GOTO="utg932e_rules_end"
SUBSYSTEM!="usb", GOTO="utg932e_rules_end"

# Uni-T UTG932E
ATTRS{idVendor}=="6656", ATTRS{idProduct}=="0834", MODE="660", GROUP="plugdev", TAG+="uaccess"

LABEL="utg932e_rules_end"

Далее перечитать настройки UDEV и переподключить устройство

$ sudo udevadm control --reload-rules

Для сохранения скриншотов я использовал https://github.com/renaatd/utg962/

$ git clone https://github.com/renaatd/utg962.git
$ cd utg962/
$ sudo apt-get install -y python3-pyvisa-py python3-pil
$ python3 utg962/save_display.py sine-wave.png

Результат

понедельник, 15 сентября 2025 г.

Фильтрация помех в сети

 Сейчас практически не осталось бытовой техники, которая не оснащена импульсным блоком питания. Я смог вспомнить только мойку воздуха внутри которой стоит обычный железный трансформатор, но это скорее по причине близкого соседства с водой.

Импульсные блоки питания при работе генерируют много помех при переключении силовых транзисторов. В качественных блоках питания на входе и выходе должны стоять фильтры. Выходной фильтр не даёт помехам идти в нагрузку, а входной защищает саму сеть от помех которые генерирует импульсный блок питания. Нередко в бюджетной технике экономят на фильтрации и в сети "гуляет" множество помех от импульсных блоков питания.

Попробую улучшить ситуацию хотя бы для измерительной техники в домашней мастерской поставив на вход удлинителя фильтр ЭМИ. С этой целью был куплен фильтр ZS-0004 в алюминиевом корпусе. Его продают как фильтр для аудиотехники, но с тем же успехом он подойдёт и для любой другой техники.

четверг, 11 сентября 2025 г.

Транзисторы BD139 и BD140 с AliExpress

Эксперимента ради покупал биполярные транзисторы BD139 (NPN 80 В 1,5 А 12,5 Вт) и BD140 (PNP 80 В 1,5 А 12,5 Вт) на AliExpress. В принципе не ожидал получить что-то оригинальное, но было любопытно насколько "левыми" они окажутся.

С доставкой вышло 1,09 USD за 20 транзисторов (10 BD139 + 10 BD140). Цены этих транзисторов от азиатских производителей в LCSC начинаются от 0,69 USD за десяток BD139 и 1,03 USB за десяток BD140. Т.е. гипотетически существует вероятность что кто-то распродаёт ненужные остатки, но здравый смысл подсказывает что будет либо перемаркировка, либо вовсе пустышки.

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

На тот момент у меня был только тестер компонентов MTester который определил что транзисторы рабочие и их проводимость соответствует маркировке. Но вот коэффициент усиления по току был заметно выше чем должно быть у BD139/BD140 по документации (у разных производителей видел только до 250). Так что это перемаркированные транзисторы и в даташит на BD139/BD140 можно не смотреть.

среда, 10 сентября 2025 г.

Кулер для Gigabyte GB-XM14-1037

 Больше 10 лет у меня трудится HTPC на базе платформы Gigabyte BRIX (аналог Intel NUC). В моём экземпляре стоит Intel Celeron 1037U который охлаждается кулером BSB05505HP от Delta Electronix.

HTPC включён 24х7 и за 10 лет в нём сменилось 3 кулера:

  1. Оригинальный проработал около 5 лет, но я его периодически смазывал. Заменить пришлось когда крыльчатка стала заметно люфтить.
  2. В 2020 году я его заменил на аналогичный кулер, который купил на AliExpress - этот кулер проработал до конца 2023.
  3. В декабре 2023 был куплен OEM кулер на Ozon и вот его хватило всего на полтора года.

Оригинальный кулер выглядит так

понедельник, 8 сентября 2025 г.

Хорошая статья о постройке частотометра

 Добавлю себе в коллекцию ссылку на отличную статью о постройке частотометра от Леонида Ивановича Ридико (leoniv). В статье подробно описаны принципы работы частотометров и этапы постройки этого проекта.

На странице проекта доступны схемы, разводка печатных плат и чертежи. Предыдущая версия этого проекта находится тут.

суббота, 6 сентября 2025 г.

ZT301 неверно измеряет скважность импульсов

Ради спортивного интереса измерил частоту и скважность импульсов с генератора сигналов обычными мультиметрами ZT102 и ZT301. Зная частоту и скважность можно вычислить длительность импульса.

На генераторе выбран режим генерации импульсов частотой 1 Гц, шириной 25 мс, амплитудой 5 В и сдвигом относительно нуля на 2,5 В (от 0 В до 5 В). Мультиметры установлены в режим измерения частоты и скважности для низкого напряжения.

Оба мультиметра верно измерили частоту сигнала.

Но ZT301 неверно определил скважность (duty cycle) - вместо ожидаемых 2,5% я вижу 100%, что в корне неверно.

четверг, 4 сентября 2025 г.

Генератор импульсов без Arduino

При измерении скорости работы прозвонки у различных мультиметров я использовал генератор сигналов Uni-T UTG932E. В нём удобно задавать частоту и продолжительность (ширину) импульсов, их амплитуду и смещение относительно нуля. Это здорово экономит время, но такой генератор есть не у каждого радиолюбителя.

Если под рукой нет подходящего генератора, то подобные импульсы можно сгенерировать с помощью микроконтроллера (например популярные платы Arduino). Отсутствие навыков программирования не должно быть помехой, т.к. есть ChatGPT, DeepSeek, и им подобные. Нейронки неплохо пишут простой код если им внятно объяснить что требуется. Умение писать запросы к нейронкам или "prompt engineering" уже стало рутиной и облегчает многие задачи как в своё время навык использования поисковых систем.

С использованием микроконтроллера сделан генератор импульсов в проекте DMM Continuity Tester. Но лично мне стало любопытно как решить эту задачу без микроконтроллера. Тем более у меня в голове кроме постановки задачи ничего не вырисовывалось.

Открываю ChatGPT и пишу запрос

опиши схему устройства которое генерирует импульсы длительностью 25 мс и частотой 1 Гц без использования микроконтроллера

среда, 3 сентября 2025 г.

Скорость прозвонки у различных мультиметров

В моей домашней мастерской несколько мультиметров: Zoyi ZT102, Zoyi ZT301 и Agilent U3402A. В каждом из этих мультиметров есть функция "прозвонки" цепей (мультиметр издаёт звуковой сигнал если сопротивление цепи ниже определённого значения).

Роль мультиметра на каждый день у меня играет ZT301 - у него неплохая точность и быстрая прозвонка. И хотя самый навороченный мультиметр в моей домашней мастерской это U3402A, я не пользуюсь его функцией прозвонки - она слишком медленно работает.

Если сравнивать ZT301 и U3402A "дедовским" методом частого кратковременного замыкания щупов в режиме прозвонки, то в большинстве случаев последний не издаёт ни звука. Даже в режиме быстрых измерений (Fast) и с выключенным автовыбором диапазона он всё равно заметно медленнее.