воскресенье, 13 июля 2025 г.

Ремонт Amazon Kindle 4

 Купил на барахолке Kindle 4 с разбитым экраном, который послужил донором материнской платы для моего Kindle, который перестал включаться (скорее всего из-за износа внутренней памяти, но это не точно).

Слева это донор с барахолки, а справа - уже разобранный реципиент у которого виднеется отладочный провод UART. Донор включался и у него работала неповреждённая часть экрана.

Для ремонта использовал инструкцию по замене материнской платы с сайта iFixit.com, дополнительно стоит посмотреть инструкцию по замене экрана.

суббота, 12 июля 2025 г.

Java программа не видит переменных окружения с точкой в имени

 Столкнулся с интересной проблемой когда внедрял сборку контейнеров под ARM64 процессоры. Есть программа на Java контейнер которой использовал образ "eclipse-temurin:17-jre-alpine" в качестве базового. Для этого базового образа отсутствует вариант для платформы linux/arm64 и стоял вопрос что безопаснее сделать:

  • перейти на "eclipse-temurin:17-jre-noble" который использует Ubuntu вместо Alpine
  • перейти на "eclipse-temurin:21-jre-alpine" который влечёт обновление Java с 17 на 21

Разработчик выбрал первый вариант (перейти на "eclipse-temurin:17-jre-noble"), т.к. обновление версии Java выглядит рискованным (может повлечь неожиданные эффекты в какой-либо из библиотек) и требует полного цикла тестирования которое провести сейчас нет возможности.

Я также считал что замена Alpine на Ubuntu при сохранении версии Java является менее рискованным, хотя и повлечёт увеличение размера образа контейнера и возможные риски из-за замены musl на libc (хотя я не особо верю в вероятность таких неприятностей). Забегая вперёд, мы потратили несколько часов разбираясь почему программа перестала запускаться.

четверг, 10 июля 2025 г.

Рассинхронизация звука и видео в LibreELEC 12

 Какое-то время назад обновил домашние HTPC с LibreELEC 9.x на 12.x ради возможности смотреть YouTube на большом экране (отправляю ссылку с телефона на нужный HTPC через Kore). Сейчас в строю два HTPC - один собран на базе Gigabyte BRIX, а второй был на базе Raspberry PI 3B. Вот на втором из них и начались проблемы с синхронизацией звука и видео - спустя 10 минут звук начинал спешить, а через пол-часа уже невозможно смотреть.

Я пробовал менять настройки вывода звука, но заметного эффекта это не дало. Нагрузка на процессор была около 40% это не выглядело как нехватка ресурсов. В логе Kodi никаких интересных записей не нашлось.

На прошедших выходных занялся этой проблемой и заменил Raspberry PI 3B, на Raspberry PI 4. Насколько я могу судить по нескольким дням использования, проблема с синхронизацией больше не проявлялась.

среда, 9 июля 2025 г.

Держатель аккумуляторов для Zoyi ZT-DQ02

Для измерения внутреннего сопротивления аккумуляторов или иных источников питания Zoyi ZT-DQ02 комплектуется зажимами в виде крокодилов. Их удобно использовать для измерения выводных источников питания (например аккумулятор 18650 с приваренными лепестками). Если стоит задача быстро проверить десяток обычных ячеек, то гораздо быстрее будет использовать специализированный держатель.

Разъём для измерения внутреннего сопротивления у ZT-DQ02 это авиационный XS10-4P. Назначение пинов XS10-4P взял от штатного провода с крокодилами:

  1. положительный вывод
  2. положительный вывод
  3. отрицательный вывод
  4. отрицательный вывод

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

воскресенье, 6 июля 2025 г.

Исправление ошибки QIDIStudio при отправке на печать

Если отправить модель на печать напрямую из QIDIStudio, то программа аварийно завершится.

Чтобы этого не случалось QIDI рекомендует добавить несколько переменных окружения

$ export WEBKIT_DISABLE_COMPOSITING_MODE=0
$ export WEBKIT_DISABLE_DMABUF_RENDERER=0
$ ./QIDIStudio_1.10.02.76_Linux_Ubuntu_20.AppImage

В описании этого способа указано что будет работать только в Ubuntu 24, но на самом деле отлично работает в Debian 12.

Альтернативный варианты:

  • добавить в адрес принтера порт 7125, но перестанет работать подключение к Fluidd из QIDIStudio.
  • Сохранять файл gcode на флешку и запускать печать с принтера.

суббота, 5 июля 2025 г.

Загрузка модуля ядра в LibreELEC

 Чтобы node_exporter мог считывать показания оборотов вентилятора в HTPC системе на базе Gigabyte Brix и дистрибутива LibreELEC нужно загрузить дополнительный модуль ядра it87.

# echo it87 >> /storage/.config/modules-load.d/sensors.conf

После перезагрузки станут доступны новые метрики

# wget -qO- localhost:9100/metrics | grep ^node_hwmon_fan_rpm
node_hwmon_fan_rpm{chip="platform_it87_2592",sensor="fan1"} 0
node_hwmon_fan_rpm{chip="platform_it87_2592",sensor="fan2"} 2848
node_hwmon_fan_rpm{chip="platform_it87_2592",sensor="fan3"} 0

пятница, 4 июля 2025 г.

Неожиданная цена за простую плату

 Заказывал сегодня мелкие платки у NextPCB и столкнулся с неожиданно высокой стоимостью изготовления. Раньше при заказе двухслойной платы размером до 100х100 мм они стоили 5$ за 10 шт, но в моём случае насчитало около 20$ за плату размером 35х20 мм.

На отдельной странице стал экспериментировать с параметрами заказа без загрузки гербера и выяснилось что если размер платы меньше 30х30 мм, то 5$ превращаются в 13$. А отдельные 7$ мне накинуло за шелкографию на нижней стороне.

В итоге растянул плату до 35х30 мм и перенёс шелкографию на верхний слой.

При оформлении заказа ещё накинуло 13% налога, которого не было при прошлом заказе, но это уже мелочи.