вторник, 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 лет...