суббота, 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 работает как и прежде. Скорее всего есть более правильный способ выключить такое поведение, но разбираться пока времени нет.

.