Wi-Fi SCPI интерфейс для EZ DM-441B

— Мама, я хочу мультиметр с SCPI!
— У нас уже есть мультметр дома.
Мультиметр дома: 😐️

Года два назад, меня замучило что для того чтобы померять что-то, нужно встать, пойти поковыряться в шкафу, и достать мультметр, покрутить его ручку, потом убрать его обратно. Я хочу измерить немедленно! И мне нужен настольный мультиметр, всегда готовый к работе, без приколов «я тебе измеряю неверно, поскольку у меня сели батарейки». Обзор eBay немножко заставил приуныть, поскольку все прилично-брендовое типа HP, Kethely: а) обитает в США (+доставка), б) стоит денег.
Плюс у меня особый бзик на семисегментных индикаторах, и я хочу чтобы мой мультиметр имел семисегментные LED индикторы а не ЖК экран.
И тут внезапно в Англии мне попадается вот ЭТО.

Да, простоват, глуповат. Не имеет четырехпроводного измерения. Но выглядит стильненко, и имеет все что мне от мультиметра нужно. И цена! 70 фунтов. Это же почти даром!
Забавный факт. Эта модель так же выпускалсь под логотипом Goldstar и LG. Но цены на модели под этими брендами начинаются от 150 долларов. Хотя по железу это то же самое. Магия бренда, хе-хе. Хотя и моего на жопе написано «Made in Korea».

Но вернемся к основной теме — считывание показаний с него. Это заурядная модель мультиметра и у неё нет никакого интерфейса для считывания показаний на компьютер. Значит надо его сделать!

Изучаем инструкцию на мультиметр.

Ха! А он устроен довольно тривиально — сделан на чипе TC835 и всякая логика в качестве обвязки. А значит его хакинг будет простым.

Основная идея: счиывать состояния пинов при помощи микросхем 74HC166, и по SPI читать биты состояния при помощи Raspberry Pico W, которая организует сетевой интерфейс SCPI.

К бою! Вскрываем мультиметр, и определяем точки, куда надо подцепиться.

Точки для подпайки на основной плате мультиметра
Точки подпайки на плате индикации

Теперь надо спроектировать плату считывания показаний. Построю её на 4 микросхемах 74HC166 и двух микросхемах конвертера уровней TXS104. Две микросхемы 74HC166 будут соединяться последовательно, создавая 16-битное значение представляющее текущие активные пины. Первая цепь из 74HC166 будет подсоединена к SPI0 и будет читать индикатор, вторая цепь на SPI1 — считывать состояние светодиодов режимов. Поскольку в мультиметре вся логика — 5 вольт, 74HC166 так же будут питаться от 5 вольт, а преобразование в уровни 3.3В для Raspberry Pico будет возложено на 2 микросхемы-конвертера уровней TXS104. Почему не запитать все от 3.3? Я хочу использовать сигнал с DIG_5 как триггер начала считывания для Raspberry, и в любом случае потребуется конвертация уровней.

Рисуем схему:

Интергрируем в корпус!

Далее приступаем к самому легкому, с появлением ChatGPT — написанию софта для этого. Описываем нашу аппаратнную конфигурацию, и просим написать прошивку для Raspberry Pico W реализующую подключение к Wi-Fi и запуск SCPI сервера, отдающего в 64-битном числе значение на индикаторе, позицию десятичной точки, знак, и состояние светодиодов. Ну и отдельное значение для сырого 32-битного значения всех линий микросхем 74HC166. И конечно — Python скрипт, что считывает и показывает состояние мультиметра.

Хоба!

А теперь еще немного AI-магии, и мы получаем Python Tkinter GUI приложение.

Все остальные сочные технические подробности — в репозитории на GitHub

https://github.com/bsdmry/pico_projects/tree/master/dm441bscpi

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *