06 июня 2026

Генератор плавного диапазона на MS5351

После сборки усилителя низкой частоты попробовал собрать приёмник прямого преобразования используя вместо генератора плавного диапазона (ГПД) генератор сигналов UTG932E. Проверив работоспособность приёмника решил собрать отдельный ГПД на базе модуля SI5351 чтобы попробовать приёмник на улице. В домашних условиях слишком много помех даже на магнитную рамочную антенну.

У меня в запасах должен был быть один модуль SI5351 из которого я когда-то хотел собрать ВЧ генератор, но был куплен NanoVNA который закрыл эту потребность. Перерыв все закрома я так и не смог его найти хотя уверен что нигде его не использовал.

В итоге в ближайшем магазине электроники были куплены микросхема MS5351M от Hangzhou Ruimeng Tech (аналог SI5351) и кварцевый резонатор на 25 МГц (NX3225GA-25MHZ-STD-CRG-2). Подозреваю что в большинстве китайских модулей маркированных как SI5351 на самом деле стоит именно MS5351 вместо оригинальной SI5351 от Silicon Labs т.к. она значительно дешевле.

Чтобы не возиться с разводкой печатной платы для корпуса MSOP-10 взял переходник SOP-10 на DIP-10 и припаял микросхему и кварц на переходник. На выходах 2, 3 (кварцевый резонатор) и 6, 9, 10 (выходы CLK0 - CLK2) нет пинов чтобы не добавлять лишнюю ёмкость от беспаечной макетной платы.

На выход CLK1 припаял разъём SMA т.к. этот вывод соседствует с GND и почти совпадает с размерами SMA разъёма, заодно в дело пошёл разъём SMA у которого был отломан один из земляных выводов.

02 июня 2026

Исправление nagios-nrpe-server в Debian 13

Дошли руки поправить старую проблему с nagios-nrpe-server, которая появилась после обновления серверов на Debian 13 и воспроизводилась после каждой перезагрузки сервера. Последнее время обновления ядра выходят довольно часто и надоело перезагружать этот сервис руками.

DISK CRITICAL - /run/credentials/getty@tty1.service is not accessible: No such file or directory

В Debian 13 используется версия systemd в которой добавили ImportCredentials из systemd-creds для getty. В сочетании с опцией privateTmp=true для nagios-nrpe-server.service это приводит к такой ошибке.

В самом сервисе есть указание запускаться перед getty@tty1.service, но в моём случае это не даёт нужного эффекта. Чтобы ошибка не возникала при каждой перезагрузке достаточно выключить privateTmp для nagios-nrpe-server.service.

$ sudo systemctl edit nagios-nrpe-server.service

И переопределить значение privateTmp с true на false. Нужно добавить нужные строки до строки "### Edits below this comment will be discarded", примерно так:

29 мая 2026

Усилитель низкой частоты на LM386

Собрал несколько вариантов усилителя низкой частоты (УНЧ) на популярной микросхеме LM386. На макетной плате использована микросхема LM386N-1 в DIP корпусе от Texas Instruments. К выходу усилителя подключен динамик 6 Ом на 1,5 Вт. В тестах напряжение питания усилителя 8 В, а рекомендованный диапазон питающего напряжения от 4 В до 12 В.

Сначала собрал схему из документации с максимально возможным усилением в 200 раз, добавив электролитический конденсатор 220 мкФ по питанию.

26 мая 2026

Усилитель высокой частоты на BGA2869

Экспериментирую с приёмником прямого преобразования и в качестве усилителя высокой частоты поставил готовый модуль. На шелкографии печатной платы заявлены следующие характеристики:

  • усиление 30 дБ
  • частоты от 100 кГц до 2 ГГц
  • питание от 9 В до 12 В

В описании товара не было информации о применяемой микросхеме, но на чипе видна маркировка "MDt" что соответствует BGA2869 от NXP произведённому в Малайзии.

На модуле указано питание от 9 В до 12 В, но в документации указано иное: от 4,5 В до 5,5 В при абсолютном максимуме 7 В. Ошибки нет, т.к. в цепи питания стоит гасящий резистор на 220 Ом на котором и падает "лишнее" напряжение. При питании от 11 В на микросхема потребляет ток около 26 мА и на неё приходит 5,2 В что вполне соответствует рекомендуемому диапазону питающего напряжения.

20 мая 2026

Отладка HTTP заголовков

В рамках активности по замене bitnami чартов дошли руки обновить oauth2-proxy. В процессе столкнулся с тем что перестала работать авторизация в одном из приложений для которого был использован alpha config.

Чтобы проверить какие HTTP заголовки oauth2-proxy передаёт на бэкенд после прохождения авторизации можно запустить "echo" сервис, который будет отображать всю информацию о запросе который к нему поступил.

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: echo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: echo
  template:
    metadata:
      labels:
        app: echo
    spec:
      containers:
        - name: echo
          image: docker.io/mendhak/http-https-echo:31
          ports:
            - containerPort: 8080
          env:
            - name: HTTP_PORT
              value: "8080"
---
apiVersion: v1
kind: Service
metadata:
  name: echo
spec:
  selector:
    app: echo
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

После применения манифеста остаётся заменить бэкенд на http://echo и посмотреть какие заголовки были переданы со стороны oauth2-proxy.

17 мая 2026

Сравнение смесителя ADE-1 с самодельным

Собрал кольцевой диодный смеситель на ADE-1 (от 0,5 до 500 МГц, +7 дБм LO) и сравнил его с самодельным в котором использованы ферритовые кольца М400НН 10х6х3 и диоды шоттки 1N5711.

В качестве источника полезного сигнала (RF) и гетеродина (LO) использовал генератор сигналов Uni-T UTG932E, который был доработан до 60 МГц.

Первый выход генератора выдаёт синусоидальный сигнал частотой 14 МГц и уровнем -73 дБм (-53 дБм установлено на генераторе и на его выход подключён внешний аттенюатор на 20 дБ), который подключается к порту RF смесителей.

14 мая 2026

Использование rclone для копирования файлов в GCS бакет

Попробовал использовать rclone для переноса файлов из on-prem хостинга в облако Google. В отличии от утилит gcloud или gsutil, rclone есть в репозитарии Debian/Ubuntu и его легко поставить через APT.

Для переноса я не стал создавать user-managed ключ для IAM сервис аккаунта, вместо этого взял токен от виртуальной машины которая запущена с нужными правами в GCP.

$ curl -H 'Metadata-Flavor:Google' 169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token
{"access_token":"ya29.c.[redacted]_af","expires_in":3599,"token_type":"Bearer"}

Тут важно взять весь вывод целиком если задаётся параметр "token", либо только значение "access_token" для соответствующего параметра в rclone. В противном случае будет ошибка вида:

Failed to create file system for "gcs:example-files/": failed to configure Google Cloud Storage: google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information

Далее создание конфигурации для GCS (можно отвечать на вопросы в rclone config, но на всякий случай оставлю готовую конфигурацию для приватных бакетов с uniform access) и собственно сама миграция.