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

Канал с красивыми картинками @kbdAE
Download Telegram
/dev/AlphaSierra
Наброски 12: RGB индикатор статуса А что если сделать замену nice!view на компактных адресных светодиодах? Матрица 5х10 этого с головой хватает для индикации, рисования букв и цифр. Плюсы: * Такого никто не делал. * Яркий пиксельный дисплей. * Можно…
Наброски 29: RGB индикатор статуса увеличенной плотности

Появились более компактные адресные светодиоды — XL-1010RGBC-2812B. Они всего 1х1 мм. Их можно установить как минимум в 2 раза больше и получить разрешение 10х20 точек. К тому же они довольно дешевые. В любом случае это все еще дороже чем OLED. И драйвер придется делать с нуля. Если у сообщества будет заинтересованность можно развести такие экранчики.

#Наброски
👾3
DMK #2

На текущий момент реализована поддержка МК от Миландра, rp2040, rp2350, nrf52840. Собираются как *.hex, так *.uf2 файлы. Уже сейчас можно делать конфиги для популярных клавиатур. Надеюсь в ближайшее время реализую базовые функции раскладок вроде мод-тапа и можно будет полноценно использовать DMK в повседневной жизни. Если кто-то хочет принять участие в разработке или тестирование, напишите в ЛС канала.

#DMK
👾2
/dev/AlphaSierra
DMK #2 На текущий момент реализована поддержка МК от Миландра, rp2040, rp2350, nrf52840. Собираются как *.hex, так *.uf2 файлы. Уже сейчас можно делать конфиги для популярных клавиатур. Надеюсь в ближайшее время реализую базовые функции раскладок вроде мод…
DMK #3

Выложил на GitHub несколько примеров по работе с USB на микроконтроллере Миландр. К сожалению, за все те годы, что этот МК на рынке, а до этого его предшественник, ни производитель, ни сообщество не сделали ничего подобного. TinyUSB под него тоже никто не портировал. Так что, по сути, пришлось все реализовывать с нуля. Так как у МК всего 3 эндпоинта, быть одновременно клавиатурой и виртуальным ком-портом он не может. Поэтому я сделал пример combo. В нем, если при загрузке зажата кнопка, то МК загружается в режиме ком-порта и принимает в консоли букву a-z и записывает ее в ПЗУ. Если при загрузке кнопка не нажата, тогда он загружает режим клавиатуры и при нажатии кнопки отправляет букву, которая записана в памяти. И вот на основе этого примера можно сделать как просто запись новой раскладки без перепрошивки, так и нечто куда более интересное — полноценный бутлоадер с прошивкой по ком-порту. И в таком виде оно, вероятно, куда более понятное для сообщества, чем заливка прошивки исключительно через программатор.

К сожалению, поддержка у Миландра оставляет желать лучшего. Начиная с SDK и примеров, которые сделаны только под Keil и IAR, о которых я ничего не знаю, да и выглядят они так, как будто они 20 лет не обновлялись. А для GCC предлагается написать реализацию самостоятельно. Да и примеров для К1986ВЕ92FI в папке нет, поэтому предполагается использовать примеры из папки MDR32F9Q2I. Как об этом узнать? Это надо быть очень глубоко погруженным в лор Миландра и знать, что «обозначение MDR32F9Q2I – это маркировка микроконтроллера К1986ВЕ92QI, а К1986ВЕ92FI выпущен как ближайшая замена К1986ВЕ92QI, поэтому примеры для них совместимы», потому что на сайте и в документации об этом не написано. Касательно ошибочных номиналов резисторов компания признала проблему и предложила перепаять их самостоятельно со словами, что в новых партиях они это дело постараются исправить. Мне кажется, что если бы такая проблема была с каким-нибудь китайским МК, мне бы вернули хотя бы часть денег, либо мне бы уже ехала новая отладочная плата с правильными резисторами.

Данный пост написан на Кабарге (nRF52840) с DMK. На текущий момент моя стандартная раскладка полностью работает на DMK. Также проверена работа на RP2040 и Миландре.

#DMK
👾6
/dev/AlphaSierra
PNCATEHO #28: PRA32 Портировал синтезатор pra32-u на низкотено. Изначально проект расчитан на ардуину и не в основном расчитан на управление по миди. Я переписал на pico SDK, добавил индикацию с помощью RGB светодиодов, добавил обработку клавиатуры, добавил…
PNCATEHO #29: документация и MIDI

Добавил MIDI прошивку для ULP версии. В ней можно менять цвета RGB и MIDI ноты/команды.

Существенно обновлена и расширена документация. Добавлены инструкции по сборке. Добавлены ссылки на все имеющиеся варианты РИСАТЕНО и прошивки для них

github

#PNCATEHO
👾2
/dev/AlphaSierra
DMK #3 Выложил на GitHub несколько примеров по работе с USB на микроконтроллере Миландр. К сожалению, за все те годы, что этот МК на рынке, а до этого его предшественник, ни производитель, ни сообщество не сделали ничего подобного. TinyUSB под него тоже никто…
DMK #4 Editor

Начаты работы по созданию визуального редактора раскладок для DMK. Пока что задача сделать просто генератор раскладок (текстового конфига). В будущем можно будет сделать запрос текущей раскладки и отправку новой по COM-порту.

#DMK
👾9
/dev/AlphaSierra
DMK #4 Editor Начаты работы по созданию визуального редактора раскладок для DMK. Пока что задача сделать просто генератор раскладок (текстового конфига). В будущем можно будет сделать запрос текущей раскладки и отправку новой по COM-порту. #DMK
DMK #5 VIAL?!

Не то чтобы мне сильно нравился VIAL, но у него много поклонников и он использует USB HID для передачи данных. А значит, что у Миландра должно хватить эндпоинтов чтобы менять расклдаку можно менять без перезагрузки.

Из минусов придется адаптироваться к системе кейкодов VIAL и придется добавлять *.json в проект. Безусловно можно добавить какой-нить yaml2json конвертер, но это потребует существенного расширения документации. Очень хотелось бы чтобы документация также оставалась крайне минималистичной.

#DMK
👾2
/dev/AlphaSierra
Делаем опыт использования терминала на windows менее отвратным К сожалению самый приличный эмулятор терминала который доступен на windows это Alacritty, а самая приличная оболочка это powershell. Ставим Alacritty: winget install -e --id Alacritty.Alacritty…
Делаем опыт использования терминала на windows еще немного лучше

Coreutils — стандартные юниксовые утилиты наконец для windows

walk — небольшой терминальный файловый менеджер

far — большой терминальный файловый менеджер

Chris Titus Tech's Windows Utility — набор скриптов на все случаи жизни
👾5
/dev/AlphaSierra
DMK #5 VIAL?! Не то чтобы мне сильно нравился VIAL, но у него много поклонников и он использует USB HID для передачи данных. А значит, что у Миландра должно хватить эндпоинтов чтобы менять расклдаку можно менять без перезагрузки. Из минусов придется адаптироваться…
DMK #6 VIAL & RGB

Завел RGB на rp2040/rp2350. Минимально завел VIAL. Работает смена раскладки, управление RGB (без анимаций) и тестер матрицы.

Я решил проблему с JSON. Нам более чем хватает данных в config.h чтобы автоматически генерировать *.json во время сборки. Поэтому если при компиляции в папке нет *.json он гененрируется автоматически, да может в нем не будут очень красиво раставлены кнопки, но все остально там будет прописано автоматически.

#DMK
👾10
/dev/AlphaSierra
DMK #6 VIAL & RGB Завел RGB на rp2040/rp2350. Минимально завел VIAL. Работает смена раскладки, управление RGB (без анимаций) и тестер матрицы. Я решил проблему с JSON. Нам более чем хватает данных в config.h чтобы автоматически генерировать *.json во время…
DMK #7 DFU для Миландра

Я уже много написал про Миландр, на нем, кстати, тоже протестирован VIAL, но как-то особо не акцентировал внимание на том, зачем оно вообще надо, а это ведь самое интересное. В отличие от любого другого МК, Миландр дает уникальные возможности. Вот берешь ты какой-нибудь STM32 или RP2040 — у тебя есть полноценное SDK, куча примеров проектов, а если что-то не сделано производителем, это давно реализовано комьюнити. Купить платы и чипы — не проблема в любом количестве.

Но у Миландра совершенно все не так. SDK очень своеобразное. Без глубокого знания лора компании, а также различных особенностей чипов, о которых никто не пишет в документах и они по старинке передаются из уст в уста, лезть в это дело не стоит. Чтобы хоть что-то работало, тут очень важно тонко чувствовать тонкие вибрации кремния в сердце МК. Примеров нет — то есть они есть, но в будущем времени, когда ты сам их себе напишешь. Бутлоадера тоже, конечно же, нет, что позволяет не ограничиваться рамками стандартов и сделать себе любой бутлоадер: хочешь — с CDC, хочешь — HID, хочешь — DFU, хочешь — UF2. Чипы достать — проблема, поэтому любые работы с Миландром похожи на игру в сапера. Одна ошибка — и ты окирпичишь чип, а новый достать дорого и сложно, что придает разработке нотки пикантности.

Я, кстати, решил реализовать именно DFU-бутлоадер. К сожалению, он занимает 8 КБ, и, вероятно, можно было сделать лучше. Но именно в этом прелесть Миландра: ты можешь все всегда сделать лучше... ну, или хоть как-нибудь.

#DMK
👾7
/dev/AlphaSierra
DMK #7 DFU для Миландра Я уже много написал про Миландр, на нем, кстати, тоже протестирован VIAL, но как-то особо не акцентировал внимание на том, зачем оно вообще надо, а это ведь самое интересное. В отличие от любого другого МК, Миландр дает уникальные…
DMK #8

Выложил загрузчик для Миландра на github. Там есть подробная инструкция, что с ним делать. Также там есть пример Blink, адаптированный под этот загрузчик. И конечно же этот загрузчик уже интегрирован в DMK.

Протестировал VIAL и RGB на nRF52840. Остается только реализовать RGB для Миландра.

Реализованы RGB анимации, макросы и аккорды через VIAL.

#DMK
👾3
/dev/AlphaSierra
Наброски 29: RGB индикатор статуса увеличенной плотности Появились более компактные адресные светодиоды — XL-1010RGBC-2812B. Они всего 1х1 мм. Их можно установить как минимум в 2 раза больше и получить разрешение 10х20 точек. К тому же они довольно дешевые.…
Наброски 30: компактная плата на 6502

Думаю, все же стоит оговориться что 6502 это 8 битный микропроцессор из-70х годов, который испозьзовался в Apple II, NES, Commodore 64.

Я с удивлением обнаружил что сейчас выпускается современный 6502 еще и в QFP корпусе. В отличие от многих 16 битных процессоров, которым требовалось по 3-4 разных питания, ему нужно только 5в, а соврменные версии готовы работать и от более низких напряжений. С использованием всего 5 чипов можно получить полноценный 8 битный компьюттер который с бейсиком который общается с внешними устройствами через компорт. Плата размером с кредитную карту которая по одному type С порту и питает компьютер и выводит виртуальный COM порт и все это с настоящим microsoft basic.

#Наброски
👾3
/dev/AlphaSierra
4row ortholinear keyboard v8 Обновил раскладку на github, чтобы она была больше похоже на ту что я использую на titan pocket. Изменения небольшие, просто перенес Ю на двойное нажатие Ы и добавил иконки для COPY/PASTE. #4rowOrthoKBD
4row ortholinear keyboard теперь на базе AOSP

С момента выхода последнего поста по по проекту я попробовал огромное множество клавиатур, но мне ничего не подошло. Либо софтовые клавиатуры пытаются копировать положение клавиш с десктопной раскладки добавляя стаггер и делая крохотные кнопки, либо клавиатура имеет ну уж очень вертикальную кривую обучения, как thumb-key.

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

Основная идея все та же, 4х10 с цифрорядом, без всяких слоев с символами. Недостающие символы через тапденс.

#4rowOrthoKBD
👾7
Уведомление об автоматизации kbdAE

В целях обеспечения прозрачности деятельности настоящим извещаю вас о том, что в течение определенного времени некоторые публикации в сообществе kbdAE осуществляются с использованием специализированного программного обеспечения (бота). Подбор графических материалов (картинок) по-прежнему производится исключительно в ручном режиме силами редакции, однако форматирование гиперссылок и публикация материалов в установленное время в настоящее время автоматизированы. Данные изменения никоим образом не отразятся на качестве и содержании публикуемого контента.

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

Пользуясь случаем, выражаю официальную благодарность ft256.ru за предоставление технических мощностей, а также за обеспечение хостинга и деплоя вышеуказанного программного обеспечения.
👾12
Подключаем мультиметры к компьютеру (полное руководство)

Не так давно возникла необходимость подключить несколько мультиметров к компьютеру. Рассказывать про приборы, у которых есть подробное руководство с описанием всех команд, абсолютно неинтересно. А вот устройства, для которых нет ни софта, ни документации, но присутствует 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