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 в месяц.


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

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

Результат


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