/dev/AlphaSierra
606 subscribers
554 photos
9 files
433 links
Заметки про клавиатуры и прочее.

Канал с красивыми картинками @kbdAE
Download Telegram
Подключаем мультиметры к компьютеру (полное руководство)

Не так давно возникла необходимость подключить несколько мультиметров к компьютеру. Рассказывать про приборы, у которых есть подробное руководство с описанием всех команд, абсолютно неинтересно. А вот устройства, для которых нет ни софта, ни документации, но присутствует USB-порт, вызывают куда более живой интерес.

Наши сегодняшние пациенты — это Victor / RuoShui 189A (он же АКИП-2206) и АКИП-6108.

Для Victor 189A существует родное программное обеспечение, однако найти его можно исключительно на компакт-диске из комплекта поставки — в сети его просто нет. Описание системы команд также полностью отсутствует. Подключив кабель с оптической развязкой к USB-порту компьютера, мы выясняем, что в устройстве используется распространенный чип USB-to-UART CP2102. Устанавливаем необходимые драйверы, инсталлируем фирменную утилиту и проверяем  ее работоспособность.

Затем пробуем найти информацию в открытых источниках: аналогичные приборы, документацию или хотя бы описание протокола обмена данными. Похожий мультиметр обнаружился, но и для него описание команд отсутствовало. Инструкцию к протоколу Victor найти все же удалось, но она предназначалась для более старых моделей и, забегая вперед, к протоколу 189A не имела вообще никакого отношения.

Поскольку цивилизованных методов не осталось, устанавливаем связку Wireshark и USBPcap. Подключаем прибор к компьютеру, запускаем захват трафика и начинаем нажимать кнопки в интерфейсе программы. Анализируем перехваченные пакеты. В первую очередь нас интересуют запросы SET_LINE_CODING и сами передаваемые команды, которые можно отследить по направлению Source: Host. Ищем их в строках со значением URB_BULK out в колонке Info. На основе собранных данных пишем собственную программу для работы с прибором.

Если вам вполне достаточно возможностей штатного софта, на этом этапе можно остановиться. Мне же казалось, что мне что-то недоговаривают, и наверняка существуют еще команды. Заметив, что все обнаруженные команды соответствуют шаблону #[A-Z]{2,3}\??, я решил запустить простой перебор всех комбинаций от #A до #ZZZ — как с вопросительным знаком на конце, так и без него. Этот процесс занял много часов, но в итоге удалось обнаружить две дополнительные команды. Одна из них активирует сервисное меню на мультиметра, а вторая запрашивает данные, связанные с внутренней памятью прибора, хотя точно расшифровать их назначение так и не удалось.

С прибором АКИП-6108 ситуация обстоит несколько иначе: для него тоже нет описания системы команд, но, в отличие от предыдущего случая, полностью отсутствует и родное ПО. Поэтому мы сразу переходим к поиску аналогов. Как выяснилось позже, нам подходят практически любые LCR-метры в похожем корпусе. Скорее всего, прародителем этой линейки был прибор от Keysight, а все остальные модели — лишь его многочисленные клоны под разными брендами. Изучив документацию к схожим устройствам, я обнаружил, что в руководстве к BK Precision 880 приведено подробное описание протокола и команд. Подключаем АКИП-6108 к компьютеру, определяем установленный чип USB-to-UART (им оказался популярный CH340G), пробуем отправлять команды — и они работают! Очевидно, благодаря авторитетному первоисточнику от Keysight, даже сторонние производители клонов решили использовать стандартный и распространенный протокол SCPI, а не изобретать собственный велосипед.


github lcr

github Victor 189A

#DMM
👾3
/dev/AlphaSierra
Photo
4row ortholinear keyboard теперь на базе AOSP #2

Закончил работу над rc1. Клавиатура уже умеет все, что мне надо. Из интересного: управление курсором свайпами по пробелу, удаление выбранного куска свайпом по бэкспейсу, словарь с аббревиатурами для вставок шаблонных сообщений, tap-dance. Например, 2 пробела — это точка, 3 — запятая, 4 — вопросительный знак, 5 — восклицательный знак. Добавлена светлая и тёмная gruvbox. Свайп вниз работает как enter, свайп вправо переключает на слой редактирования, свайп влево меняет язык, свайп вверх — шифт/капс лок.

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

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

#4rowOrthoKBD
👾7
/dev/AlphaSierra
Photo
4row ortholinear keyboard теперь на базе AOSP #3

Я удалил поддержку всех языков, кроме английского и русского, и это снизило размер apk-файла с 60 МБ до 10. Если еще пооптимизировать ресурсы, убрать всё, что связано с голосовым вводом и прочими вещами, которые я не использую, думаю, можно выиграть еще пару мегабайт.

В этой клавиатуре никогда не будет интернета ни для каких целей. Она делалась исходя из вопросов приватности. При необходимости все настройки и словари можно экспортировать и перенести на другое устройство.

Из интересного, что я заметил во время работы над проектом: Gemini шлет флаг, что клавиатуре надо переключиться в режим инкогнито, но при этом Gboard игнорирует этот флаг конкретно для Gemini, в других приложениях она переключает в нужный режим, если есть флаг.

В AOSP-клавиатуре вроде как есть реализация swipe-ввода, но при этом библиотека, которая отвечает за распознавание, проприетарная и недоступна, хотя меня оно не интересует вообще.

#4rowOrthoKBD
👾2
/dev/AlphaSierra
Проект Omsk: гранулярный синтез Основной движок сейчас уже в целом функционирует и я начинаю планировать различные альтернативные движки. Если с аддитивным, FM и wavetable-синтезом всё относительно ясно и есть несколько open-source проектов для их реализации…
Проект Omsk: Собран первый экземпляр

Собрал первый экземпляр. Проверены midi джеки, энкодеры, кнопки, RGB. Пока что залита простенькая прошивка принимающая и отправляющая MIDI команды.

Думаю в скором времени портирую DMK под Омск.

#Omsk
👾10
/dev/AlphaSierra
Zed, Helix, Kakoune, Xi и Lapce В очередной раз решил попробовать новый редактор. Я что-то слышал и, возможно, даже пробовал несколько из этих редакторов раньше, но тогда они были довольно сырыми. Спойлер: несмотря на то, что некоторым из этих редакторов…
micro

Я очень люблю вим, я писал плагины для вима. Но я чертовски не люблю приложения, которыми невозможно пользоваться, пока ты их не допилишь плагинами и конфигами до какого-то адекватного состояния. И вим как раз из таких. Каждый раз запуск вима без конфигов — это борьба между тем, чтобы быстро поправить пару строчек на удаленной машине, и тем, чтобы ближайшие несколько часов потратить на настройку вима. Не так давно в неовим наконец добавили штатный менеджер плагинов, и я надеюсь, что через несколько лет мы сможем избавиться хотя бы от зоопарка менеджеров плагинов. Другая проблема вима — что как только ты поставил все, что тебе нужно, вим заметно начинает проседать по скорости и приходится настраивать ленивый запуск плагинов для каждого типа файла. И даже со всеми этими плагинами и конфигами вим все еще очень плохая ИДЕ, это хороший редактор, но делать из него ИДЕ — значит выкинуть все те плюсы, которые он несет как редактор, и получить очень перегруженный редактор со странными хоткеями и плашкой ИДЕ, прибитой где-то в углу на ржавом гвозде. И тут мы подходим к главной проблеме вима: без постоянной практики хоткеи вима просто забываются, а так называемые вим-моды в других приложениях, как правило, просто фикция, никто не заходит дальше банального назначения стрелочек на HJKL. А еще в неовиме очень много ЛУА, слишком много. Не то чтобы есть какое-то допустимое количество ЛУА, но в неовиме его кратно больше.

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

Емакс примерно как вим, надо пилить очень сильно, очень странные бинды, лисп, но при этом оно еще и слишком перегруженное, недаром говорят, что емакс — это не редактор, а операционная система.

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

И вот мы подходим к micro, ради которого писался этот пост. В нем, конечно, есть и луа, и джосон, но при этом он из коробки пытается дать привычный опыт, в нем ctrl-c — это копирование, а ctrl-v — это вставка. Из коробки подсветка синтаксиса. Из минусов можно отметить, что не очень много плагинов и в целом функционал очень минималистичный, но все, что требуется от простого консольного редактора, он умеет. Этот пост по традиции написан в герое этого поста.
👾6
/dev/AlphaSierra
DMK #8 Выложил загрузчик для Миландра на github. Там есть подробная инструкция, что с ним делать. Также там есть пример Blink, адаптированный под этот загрузчик. И конечно же этот загрузчик уже интегрирован в DMK. Протестировал VIAL и RGB на nRF52840. Остается…
DMK #9 MIDI

В QMK/VIAL есть поддержка MIDI, проблема в том, что она довольно ограниченная: можно слать MIDI-ноты, можно слать десяток MIDI-команд, на этом всё. Даже назначить MIDI CC на энкодер адекватно нельзя. Честно говоря, не уверен, зачем вообще MIDI нужно в таком виде. В DMK же реализовано всё куда более полноценно. Есть MIDI TOGGLE, можно слать абсолютные или относительные значения с помощью энкодера, можно назначить на нажатие посыл MIDI CC с определенным значением, при отпускании будет послан 0. Проблема в том, что всё это настроить с помощью VIAL не получится. Я, конечно, добавил обходной путь в виде кастомных кейкодов, проблема в том, что в VIAL есть ограничение на количество таких кейкодов. Если вам не нужно MIDI, то спешу вас успокоить: MIDI-функционал включается отдельным флагом, вся его документация находится в отдельных файлах, так что, если оно вам не надо, вы его даже не заметите. Также в DMK добавлена поддержка энкодеров. Все 4 энкодера Омска прекрасно работают. Пока что MIDI и энкодеры протестированы на RP2040/RP2350.

#DMK
👾2