вторник, 24 декабря 2024 г.

Корневые сертификаты и Python

 Открыл для себя что не только Java, но и Python имеет отдельное хранилище корневых сертификатов, которое не привязано к системному. Наткнулся на это в процессе настройки приложения, которое подключается к серверу у которого сертификат подписан внутренним удостоверяющим центром (Certification Authority).

Корневой сертификат удостоверяющего центра добавлен в список доверенных (/etc/ssl/certs/ca-certificates.crt в дистрибутиве Debian) и отправка запросов на сервер через curl работает. Но приложение ругается

urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.example.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)')))

Чтобы этого не происходило нужно задать переменную окружения REQUESTS_CA_BUNDLE и указать в её значении путь к системному хранилищу доверенных сертификатов.

суббота, 21 декабря 2024 г.

Держатель для печатных плат

 В качестве проекта выходного дня собрал держатель для печатных плат.

При пайке порой не хватает ещё одной или двух дополнительных рук чтобы подержать провод или компонент. Привлекать каждый раз кого-то из домочадцев можно, но не всегда это удобно в моменте.

суббота, 14 декабря 2024 г.

Доработки блока питания на 5 выходов

 В середине марта я описывал блок питания на 5 фиксированных напряжений, который я довольно активно использую и уже несколько раз дорабатывал.

Первой доработкой стала замена однополупериодного выпрямителя на двухполупериодный с использованием диодного моста. Для этого потребовалось перемотать вторичную обмотку трансформатора чтобы получить две с отводом от середины и заодно снизить напряжение вторичных обмоток с 18В до 13В.

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

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

среда, 11 декабря 2024 г.

Управление выходом лабораторного блока питания

В моём регулируемом лабораторном блоке питания изначально выход был всегда включен. Для отключения питания схемы я отсоединял провода либо от клеммы ЛБП, либо от платы устройства. В блоке питания на 5 выходов есть выключатель, который отключает все выходы одновременно и это оказалось очень удобным.

За время использования этого выключателя я нашёл два недостатка:

  • Износ выключателя выхода от постоянного включения/выключения. Производитель выключателя заявляет 10000 циклов, но нечёткая работа началась сильно раньше. Думаю это связано с тем что он расчитан на 3А 250В переменного напряжения, а у меня используется постоянное.
  • Нужно проверять что выход выключен перед включением сетевого выключателя. Вроде мелочь, но я предпочитаю отключённый выход, который нужно включить принудительно.

Поначалу было лень делать отдельную схему, но низкое качество выключателей обязывает. Взял за основу схему электронного выключателя и заменил полевой транзистор на реле (ресурс электрических контактов реле заявлен 100000).

суббота, 7 декабря 2024 г.

SEPIC преобразователь ZK-4KX

После просмотра обзора преобразователя ZK-5KX решил взять на AliExpress его младшего брата ZK-4KX для проекта автономного ЛБП, который сможет работать как от встроенной литиевой батареи, так и от сети через импульсный блок питания.

вид спереди

вид сзади

Рекомендуемое входное напряжение модуля от 5В до 30В и его можно питать от 2S литиевой сборки, но у меня под него была припасена батарея 4S2P на 14.4В (16.8В при полном заряде). Выходное напряжение модуля регулируется от 0.5В до 30В при токе до 4А (без дополнительного охлаждения модуль не стоит нагружать более 35Вт). Заявляется наличие режима ограничения тока, включение/отключение выхода, калибровка напряжений и тока, настраиваемые защиты:

четверг, 5 декабря 2024 г.

Инструменты для пайки SMD

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


У стола металлические ножки и, чтобы не попортить покрытие стола, под силиконовым ковриком лежит лист МДФ.

В описании товара была указана мощность 500Вт, но при включении он потребляет более 1кВт, а когда нагреется - только 170Вт. Мультиметр с термопарой показывает температуру поверхности стола около 215°C. Размеры стола 200х100мм, высота ножек - 29мм.

Первым испытанием стала перепайка светодиодов на отладочных платках. Они пришли с общим анодом, а мне нужны с общим катодом. За пол-часа развернул 40 светодиодов формата 0603 - думаю неплохо.

Очень пригодился изогнутый пинцет с острыми губками из нержавеющей стали. Им легко захватить мелкий компонент и не выронить пока переворачиваешь.

Паяльная паста и поршень для дозировки пока ждут своего часа.

Из флюсов у меня пока только безродный RMA223, но он хорош только для выпаивания. Для пайки скорее всего возьму такой же безродный NC559.

воскресенье, 1 декабря 2024 г.

Счётчик до 0xFFFFFFFFFF

 Как нескучно проверить работу 5 светодиодных линеек - добавляем ардуинку, 5 микросхем 74hc595 и пишем скетч для счётчика до 2^40 (0xFFFFFFFFFF).


int latchPin =  8;   // HC595 pin 11
int clockPin = 12;   // HC595 pin 12
int dataPin  = 11;   // HC595 pin 14

void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

void loop() {
  for (uint64_t i = 0; i < 0xFFFFFFFFFF; i++) {
    digitalWrite(latchPin, LOW);
    shiftOut(dataPin, clockPin, MSBFIRST, i);
    shiftOut(dataPin, clockPin, MSBFIRST, i >> 8);
    shiftOut(dataPin, clockPin, MSBFIRST, i >> 16);
    shiftOut(dataPin, clockPin, MSBFIRST, i >> 24);
    shiftOut(dataPin, clockPin, MSBFIRST, i >> 32);
    digitalWrite(latchPin, HIGH);
    delay(100);
  }
}

ожидаемое время счёта около 3486 лет...

суббота, 30 ноября 2024 г.

Обновление домашнего сервера

 Дошли руки обновить сервер домашней сети. Прежде хранилище состояло из двух жёстких дисков на 3TB каждый, из которых собран массив RAID1. Зеркало уже спасало несколько лет назад, когда один из дисков "посыпался". Производительности массива хватает, но при активной случайной записи на диск скорость работы "тяжёлых" сервисов заметно снижается.

Для улучшения производительности дисковой подсистемы были приобретены два NVME накопителя KINGSTON SNV2S1000G на 1TB и два переходника с шины PCI Express X1 на M.2. Собрал из новых дисков ещё один массив RAID1 и добавил в группу томов LVM2. Далее через команду pvmove переместил все логические тома кроме документов, фотографий и резервных копий на массив из NVME накопителей.

четверг, 14 ноября 2024 г.

Обновление Nextcloud до 30.x

 Долгое время держал свою инсталляцию Nextcloud на версии 27.x из-за приложения News, которое ещё не вышло для более новых версий. Поскольку RSS это наиболее частный функционал, которым я пользуюсь в Nextcloud, то его работоспособность была для меня критичной.

Вчера решил попробовать обновить Nextcloud до последней стабильной версии и поставить альфа версию News руками. В issues есть несколько обсуждений по поводу запуска News 24.x на свежих версиях Nextcloud, и объяснение почему до сих пор нет свежего релиза.

После обновления Nextcloud приложение News будет в отключённом состоянии. Удаляю его исходники и скачиваю из GitHub

$ cd /var/www/nextcloud/
$ rm -fr app/news/
$ wget -P /tmp https://github.com/nextcloud/news/releases/download/25.0.0-alpha14/news.tar.gz
$ tar -xzf /tmp/news.tar.gz -C app/
$ php occ app:enable news
$ php occ db:add-missing-indices

News появилось в меню и работает как в Web UI, так и через приложение News для Android.

Добавлено 2024-11-21

Пару дней назад выпустили News 25.0.0, которое поддерживает Nextcloud 29 и Nextcloud 30 и ставится штатными средствами самого Nextcloud.

суббота, 9 ноября 2024 г.

Недокументированное поведение вентилятора

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

В моём домашнем сервере всё ещё трудится старенький и довольно горячий процессор AMD Phenom II X4 955, который при максимальной загрузке вполне может подрабатывать отопителем. За время его существования я несколько раз менял кулеры и последнее время на радиаторе процессора был установлен вентилятор Xilence XPF80.R PX0802512CL.

Этот вентилятор предназначен для корпуса, а не для радиатора процессора, но мне нужно было по-быстрому заменить прошлый вентилятор, который начал невыносимо завывать при работе. На прошлых выходных выполнялось полное резервное копирование сервера и, если верить показаниям мониторинга материнской платы, процессор сервера нагрелся до неприличных 77°C.


Но важна не сама температура процессора, а то что вентилятор практически не поменял обороты - увеличение составило менее 200 оборотов (с 1035 до 1211 оборотов в минуту) при том что сам вентилятор может 1500.

вторник, 29 октября 2024 г.

Как проверить LM317 на оригинальность

 Сегодня три LM317T отправились в мусор в процессе проверки их возможностей. Не помню точно где они были куплены, но скорее всего на радиорынке Ждановичи.


Подозрения начались когда ни одна из этой троицы не смогла держать ток 10mA при колебании входного напряжения. У меня оставалась ещё одна LM317T, которая когда-то куплена в магазине БелЧип, и с ней не возникло никаких проблем.

Проблемные LM317 изображают из себя продукцию ST, поэтому проверять их буду согласно даташиту LM317T от ST.

понедельник, 21 октября 2024 г.

Окончание поддержки бинарных сборок Midnight Commander

Долго собирался с мыслями, но вчера объявил о прекращении поддержки бинарных сборок Midnight Commander для Debian и Ubuntu. Последняя доступная версия в моём репозитарии 4.8.31. В личке уже спрашивали когда появится 4.8.32, но у меня таких планов нет.

Возможно моё начинание будет подхвачено кем-то другим, т.к. проблема устаревания MC в LTS дистрибутивах никуда не делась.

пятница, 18 октября 2024 г.

Failed to establish a new connection: [Errno -2] Name does not resolve

Оптимизировал размер образа, который построен на базе Google Cloud SDK и столкнулся с ошибкой локальной сборки после переключения с google/cloud-sdk:497.0.0-slim на google/cloud-sdk:497.0.0-alpine:

Beginning update. This process may take several minutes.
ERROR: gcloud crashed (ConnectionError): HTTPSConnectionPool(host='dl.google.com', port=443): Max retries exceeded with url: /dl/cloudsdk/channels/rapid/components-2.json (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f2c42715950>: Failed to establish a new connection: [Errno -2] Name does not resolve'))

If you would like to report this issue, please run the following command:
  gcloud feedback

To check gcloud for common problems, please run the following command:
  gcloud info --run-diagnostics

Тестовый Dockerfile выглядит так:

FROM google/cloud-sdk:497.0.0-alpine

RUN gcloud components install gke-gcloud-auth-plugin && \
    gke-gcloud-auth-plugin --version

суббота, 24 августа 2024 г.

Обновление поддержки Agilent U3402A в libsigrok

 Продолжаю дорабатывать драйвер мультиметра Agilent U3402A в libsigrok. В прошлый раз я описывал как создать скелет такого драйвера с нуля и получить значение из мультиметра.

Изменения за прошедшую неделю:

  • Добавил определение режима измерения. Теперь при ручном переключении (нужно нажать кнопку "Local", настроить новый режим и снова запустить получение данных) правильно отображается режим и единицы измерения.
  • Добавил правильное отображение статуса Auto, Hold, Min, Max, Min/Max и Rel. В процессе реализации нашёл ошибки в переводе документации на RS232 и поправил их.
  • Улучшил стабильность работы. Получение данных в течении часа прошло без сбоя и все данные были получены без ошибок.

Дальнейшие планы:

  • Разобраться с переключением режимов измерений через Sigrok чтобы не приходилось делать это вручную.
  • Добавить работу со вторым индикатором.

суббота, 17 августа 2024 г.

Как добавить поддержку нового мультиметра в libsigrok

Я узнал о Sigrok когда у меня появился простенький логический анализатор. Sigrok предоставляет библиотеки libsigrok (отвечает за поддержку оборудования и форматов ввода/вывода) и libsigrokdecode (отвечает за декодирование протоколов), а также различные фронтенды (PulseView, SmuView, sigrok-meter и sigrok-cli).

Недавно я подключил мультиметр Agilent U3402A к компьютеру и смог получать результаты измерений через последовательный порт. Можно было написать несложный скрипт, который будет периодически запрашивать показания мультиметра и сохранять полученные значения в файл в CSV формате. Далее их можно обработать в табличном процессоре, что-то посчитать и построить графики.

Но есть и более тернистый путь, который потенциально может пригодиться другим владельцам подобного мультиметра - добавить поддержку Agilent U3402A в libsigrok и получить все "плюшки" которые предоставляют его фронтенды.

Важная ремарка, я не знаком с кодовой базой libsigrok и не уверен что всё проделанное является верным. Но тем не менее решил описать свой путь, т.к. наступил на несколько граблей и кому-то это может сэкономить пару часов времени.

среда, 14 августа 2024 г.

Подключение мультиметра Agilent U3402A через RS-232 к компьютеру

Нашёл на форуме что Agilent, который ныне Keysight, поддерживает подключение мультиметра U3402A к компьютеру через последовательный порт только для Китая и Кореи а для остальных это "технически невозможно". На корпусе прибора и в документации на русском и английском языках указано что RS-232 используется только для калибровки.

Я помню как в одном из видео Keysight рассказывали про полностью автоматическую процедуру поверки и калибровки мультиметров. Для этого в процессе поверки/калибровки как минимум должны переключаться режимы измерений и читаться показания. Так что скорее всего управление через RS-232 работает не только для китайских и корейских клиентов.

понедельник, 12 августа 2024 г.

Ссылки в Telegram открываются в Thunderbird а не в браузере

 В какой-то момент заметил что ссылки в клиенте Telegram (telegram-desktop) открываются в Thunderbird, а не в Firefox. Первым делом проверил альтернативы для gnome-www-browser, x-www-browser и www-browser

$ update-alternatives --display gnome-www-browser
$ update-alternatives --display x-www-browser
$ update-alternatives --display www-browser

все указывают на /usr/bin/firefox.

Далее проверил настройки "Приложения по умолчанию" в Xfce4. На вкладке "Интернет" для браузера выставлен "Debian sensible browser" который запускает x-www-browser, который в свою очередь должен запустить Firefox.

А на вкладке "Другие" нашлись неверные ассоциации, указывающие на Thunderbird. Поправил чтобы всё указывало на Firefox. Для Thunderbird осталась только почта, но по факту ничего не изменилось. Ссылки всё еще открываются в нём.

четверг, 8 августа 2024 г.

Прецизионные конденсаторы

Для измерения ёмкости у меня под рукой есть мультиметры ZT102 и ZT301 и транзистор-тестер, который показывает MTester при включении и внешне похож на LCR-T4. Производитель мультиметров заявляет точность ±(2%+5) для ёмкости до 999.9μF. Про точность самого транзистор-тестера мне ничего не известно.

Появилась идея раздобыть несколько "прецизионных" конденсаторов с допуском 0.5% или лучше и проверить насколько имеющие измерители привирают.

На DigiKey есть конденсаторы с точностью ±0.5%, но в местных магазинах нет фильтрации по допуску конденсаторов. Пришлось искать в Интернете, листать барахолки и читать даташиты.

суббота, 29 июня 2024 г.

Как измерить внутреннее сопротивление аккумулятора подручными средствами

Несколько лет назад я покупал аккумулятор для старенького Dell Inspiron N5050 и сперва аккумулятор пришёл бракованный. Продавец прислал замену, а ту батарею я разобрал на ячейки и периодически использовал их в своих поделках. С ёмкостью у ячеек был полный порядок, но последний год они просто лежали в режиме хранения (были разряжены до 3.6В).

В очередной раз наводя порядок в шкафу наткнулся на эти ячейки. Любопытства ради решил проверить их внутреннее сопротивление. У меня есть зарядное LiitoKala Lii-500 в котором заявлена функция измерения внутреннего сопротивления, но судя по отзывам, оно измеряет ненадёжно (разные показания сопротивления если ставить одну и ту же ячейку в разные слоты зарядного).

"Правильного" измерителя внутреннего сопротивления вроде YR1030, YR1035, RC3563 и им подобных у меня нет, и нет желания тратиться на покупку ради однократной проверки. Решил собрать что-то своими руками и заодно изучить как эти устройства работают.

вторник, 21 мая 2024 г.

Не работает VT-x в VirtualBox после обновления на Windows 11

После обновления до Windows 11 перестал работать VT-x в VirtualBox.

00:00:05.852762 HM: HMR3Init: Attempting fall back to NEM: VT-x is not available
00:00:05.966704 NEM:  info: Found optional import WinHvPlatform.dll!WHvQueryGpaRangeDirtyBitmap.
00:00:05.966717 NEM:  info: Found optional import vid.dll!VidGetHvPartitionId.
00:00:05.966722 NEM:  info: Found optional import vid.dll!VidGetPartitionProperty.
00:00:05.966788 NEM: WHvCapabilityCodeHypervisorPresent is TRUE, so this might work...
00:00:05.966793 NEM: WHvCapabilityCodeExtendedVmExits      = 0x0000000000007fff

[пропущено для краткости]

00:00:05.968227 NEM: Adjusting APIC configuration from X2APIC to APIC max mode.  X2APIC is not supported by the WinHvPlatform API!
00:00:05.968230 NEM: Disable Hyper-V if you need X2APIC for your guests!
00:00:05.968455 NEM:
00:00:05.968456 NEM: NEMR3Init: Snail execution mode is active!
00:00:05.968456 NEM: Note! VirtualBox is not able to run at its full potential in this execution mode.
00:00:05.968456 NEM:       To see VirtualBox run at max speed you need to disable all Windows features
00:00:05.968456 NEM:       making use of Hyper-V.  That is a moving target, so google how and carefully
00:00:05.968456 NEM:       consider the consequences of disabling these features.
00:00:05.968456 NEM:
00:00:05.968487 CPUM: No hardware-virtualization capability detected

В Windows 10 эта часть лога выглядела так:

00:00:08.088362 HM: HMR3Init: VT-x w/ nested paging and unrestricted guest execution hw support
00:00:08.088503 CPUM: fXStateHostMask=0x7; initial: 0x7; host XCR0=0x1f

"Грязное" исправление выглядит так: bcdedit /set hypervisorlaunchtype off. После этого перезагрузился и теперь VirtualBox работает как и прежде. Скорее всего есть более правильный способ выключить такое поведение, но разбираться пока времени нет.

.

понедельник, 1 апреля 2024 г.

Переделка трансформатора - часть 2

Это вторая часть по переделке трансформатора для блока питания на 5 выходов. В первой части я описывал расчёты для переделки трансформатора. В этой части будет описан результат и нюансы с которыми я столкнулся.

Изначально трансформатор содержал только одну вторичную обмотку на 16.8V (18V холостой ход) и нужно было уменьшить напряжение до 13V и намотать вторую обмотку на такое же напряжение. По моим расчётам с существующей обмотки нужно было отмотать 31 виток и затем намотать ещё одну обмотку, состоящую из 96 витков.

пятница, 29 марта 2024 г.

Не стоит доверять встроенной проверке обновлений GitLab

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

Пример: есть инсталляция GitLab CE 16.7.7 и недавняя рассылка GitLab Security Release: 16.10.1, 16.9.3, 16.8.5. Там упоминаются CVE-2023-6371 (High) и CVE-2024-2818 (Medium) которым подвержены все версии до 16.8.5.

При этом в дашборде показывает только "Update available", а не "Update ASAP"

Т.е. не стоит доверять этому виджету если вы не используете последнюю версию GitLab. Ещё не хватает сообщения о неподдерживаемой версии.

Переделка трансформатора - часть 1

При сборке блока питания на 5 выходов был использован тороидальный трансформатор на 40VA. Его номинальное напряжение вторичной обмотки 16.8V, а напряжение холостого хода 18V. Это давало около 25V после выпрямителя на холостом ходу или около 20V при токе 1A. В случае двухполярного питания +12V/-12V на стабилизаторах рассеивается около 16W тепла. Это не проблема для системы охлаждения, которая может рассеивать до 75W тепла, но вентилятор включается чаще чем хотелось бы.

Чтобы уменьшить выделение тепла буду дорабатывать трансформатор:

  • уменьшать напряжение существующей вторичной обмотки чтобы получить 14-15V с выпрямителя под нагрузкой 1A.
  • наматывать вторую вторичную обмотку чтобы получить одну с отводом от середины и заменять однополупериодный выпрямитель на диодный мост.

понедельник, 18 марта 2024 г.

Блок питания на 5 выходов

Мой регулируемый линейный блок питания на 30V 3A имеет только один выход. Для работы с операционными усилителями мне потребовалось двухполярное питание. Тогда я использовал два аккумулятора формата 6F22 "Крона", включённых последовательно со средней точкой (о вариантах получения двухполярного питания я писал тут). Аккумуляторы приходится периодически заряжать и их напряжение максимум 8.4, а в номинале 7.4V.

Больше сложностей возникает если совмещается аналоговая часть с цифровой и появляется еще одно или несколько напряжений питания (например -12V и +12V для операционных усилителей и +3.3V или +5V для цифровой части). Чтобы не возиться с аккумуляторами я собрал простенький линейный блок питания у которого 5 выходов: -12V, -5V, +3.3V, +5V и +12V. У блока нет регулировки ограничения тока (только токовая защита самого блока).

суббота, 24 февраля 2024 г.

Включение VoLTE в сети МТС Беларусь

МТС анонсировал поддержку технологии VoLTE в Беларуси в апреле 2022 года. Тогда я пробовал перезагружать телефон, отключать проверку поддержки VoLTE у оператора через набор *#*#86583#*#*, звонил в техподдержку - ничего из этого не помогло.

Сегодня это заняло всего 5 минут - достаточно позвонить в контакт-центр (номер 0890 в сети МТС) и попросить оператора подключить услугу "VoLTE (технологическая настройка)". После этого активировать VoLTE в настройках телефона согласно инструкции на сайте МТС и на всякий случай перезагрузить телефон.

Восстановление сервера через последовательный порт

 Вчера проигнорировал правило "ничего не делать в пятницу вечером" и заплатил за это ранним подъёмом в субботу. Началось всё с небольшой "уборки" на домашнем сервере в результате которой был удалён LVM том, который использовался для раздачи файловой системы для Raspberry PI. До перехода на SSD я использовал SD карты только для загрузчика, а корень файловой системы лежал на NFS. В этом случае SD карта не изнашивалась от постоянной записи, да и работало через NFS быстрее (особенно сборка пакетов для Debian/Ubuntu).

В общем отмонтировал файловую систему, удалил LVM том, а вот почистить /etc/fstab забыл. После установки обновлений ядра отправил сервер на перезагрузку из которой ему было не суждено было выйти. Казалось бы - подключи монитор и клавиатуру и поправь одну строчку в конфиге и всё заработает... но у этого сервера нет видеокарты. За давностью лет не помню почему так вышло, но как есть так есть. Полистал местную барахолку на предмет б/у PCI-Express видеокарт с пассивным охлаждением, добавил пару штук в закладки и пошёл спать.

Утром в свежую голову пришла идея как восстановить сервер без видеокарты.

четверг, 22 февраля 2024 г.

Midnight Commander 4.8.31

Собрал пакеты Midnight Commander 4.8.31 для Debian/Ubuntu с архитектурами i386, amd64, armel, armhf и arm64. Пакеты для i386 и armel есть только в тех дистрибутивах, где они поддерживаются официально (в Ubuntu есть не все):

  • Debian Buster (i386, amd64, armel, armhf, arm64)
  • Debian Bullseye (i386, amd64, armel, armhf, arm64)
  • Debian Bookworm (i386, amd64, armel, armhf, arm64)
  • Debian Sid (i386, amd64, armel, armhf, arm64)
  • Ubuntu Trusty (i386, amd64, armhf, arm64)
  • Ubuntu Xenial (i386, amd64, armhf, arm64)
  • Ubuntu Bionic (i386, amd64, armhf, arm64)
  • Ubuntu Focal (amd64, armhf, arm64)
  • Ubuntu Jammy (amd64, armhf, arm64)

Инструкция по подключению репозитария. Больше информации о бинарных сборках Midnight Commander можно найти на странице https://midnight-commander.org/wiki/Binaries.

Использование PCRE2 для поиска не включено, т.к. в этом случае пакет не собирается в Ubuntu Trusty. В апреле этого года будет EOL для Ubuntu Trusty и можно будет собрать пакет с поддержкой PCRE2.

среда, 21 февраля 2024 г.

Новая шкала для амперметра

Пару лет назад я купил амперметр со шкалой до 5A на базе стрелочного индикатора 91c16 и делал для него самодельный токовый шунт. Этот индикатор очень дешёвый, точность на уровне "показометра" и в добавок пластмассовый корпус электризуется от статики и он может совсем завраться. Пару раз использовал его для простенькой электронной нагрузки, но потом он надолго отправился в ящик с разным хламом.

Недавно мне понадобился амперметр чтобы "оценивать" ток до 1A. Время было позднее, а проверить работу нового ЛБП очень хотелось. Тут-то и пригодился этот индикатор

нужно лишь заменить шкалу с 5A на 1A.

воскресенье, 18 февраля 2024 г.

Превышение напряжения стабилизации при включении L79xx

Продолжаю свой проект простого линейного блока питания на несколько напряжений (+12V, +5V, +3.3V, -5V и -12V) и током до 1A. В текущем варианте схемы используются линейные стабилизаторы L7812/L7805 для +12V и +5V, L7912/L7905 для -12V и -5V и LM317 для получения +3.3V. Вместо LM317 первоначально была LF33, но у неё максимальный ток всего 500mA.

Напряжение после сглаживающих конденсаторов подаётся на линии +25V и -25V через сдвоенный выключатель, но для тестирования переходных процессов при включении я использую электронный выключатель. Такой выключатель, в отличии от механических, не подвержен дребезгу контактов.

При тестировании включения линий +12V, +5V и +3.3V никаких сюрпризов - напряжение нарастает от нуля до напряжения стабилизации не превышая его. Только LM317 требует больше времени для стабилизации в отличии от L7812 и L7805.

Когда дошёл до тестирования линий -12V и -5V начались проблемы. При включении на выходе -12V есть выброс напряжения до -26V. Длительность выброса около 150 микросекунд, но в теории этого может хватить чтобы сжечь какую-нибудь чувствительную микросхему.

-12В без нагрузки
Выход -12V без нагрузки

суббота, 10 февраля 2024 г.

Электронный выключатель

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

Функционально хочется следующее:

  • переключение состояния по кнопке на плате;
  • вход для подключения внешней кнопки;
  • TTL вход для внешнего управления (например для периодического включения и выключения);

После нескольких итераций на макетке получилась такая схема:

суббота, 6 января 2024 г.

Viber 21.0.0.1 не запускается в Debian 12

Viber перестал запускаться в Debian 12 после обновления до версии 21.0.0.1. При запуске в консоли выдаёт ошибку

$ /opt/viber/Viber 
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: minimal, minimalegl, vnc, wayland-egl, wayland, eglfs, offscreen, xcb, linuxfb.

zsh: IOT instruction  /opt/viber/Viber

Для отладки проблем с плагинами Qt нужно запустить приложение с переменной окружения QT_DEBUG_PLUGINS=1

$ QT_DEBUG_PLUGINS=1 /opt/viber/Viber

[output skipped]

qt.core.plugin.factoryloader: Got keys from plugin meta data QList("linuxfb")
qt.core.plugin.factoryloader: checking directory path "/opt/viber/platforms" ...
qt.core.library: "/opt/viber/plugins/platforms/libqxcb.so" cannot load: Cannot load library /opt/viber/plugins/platforms/libqxcb.so: (libxcb-cursor.so.0: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога)
qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "/opt/viber/plugins/platforms/libqxcb.so" : "Cannot load library /opt/viber/plugins/platforms/libqxcb.so: (libxcb-cursor.so.0: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога)"
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: minimal, minimalegl, vnc, wayland-egl, wayland, eglfs, offscreen, xcb, linuxfb.

zsh: IOT instruction  QT_DEBUG_PLUGINS=1 /opt/viber/Viber

Xcb плагин не может найти libxcb-cursor.so.0, нужно проверить зависимости у /opt/viber/plugins/platforms/libqxcb.so