/dev/AlphaSierra
DMK #5 VIAL?! Не то чтобы мне сильно нравился VIAL, но у него много поклонников и он использует USB HID для передачи данных. А значит, что у Миландра должно хватить эндпоинтов чтобы менять расклдаку можно менять без перезагрузки. Из минусов придется адаптироваться…
DMK #6 VIAL & RGB
Завел RGB на rp2040/rp2350. Минимально завел VIAL. Работает смена раскладки, управление RGB (без анимаций) и тестер матрицы.
Я решил проблему с JSON. Нам более чем хватает данных в config.h чтобы автоматически генерировать *.json во время сборки. Поэтому если при компиляции в папке нет *.json он гененрируется автоматически, да может в нем не будут очень красиво раставлены кнопки, но все остально там будет прописано автоматически.
#DMK
Завел 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
Я уже много написал про Миландр, на нем, кстати, тоже протестирован 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
Выложил загрузчик для Миландра на 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.
#Наброски
Думаю, все же стоит оговориться что 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
С момента выхода последнего поста по по проекту я попробовал огромное множество клавиатур, но мне ничего не подошло. Либо софтовые клавиатуры пытаются копировать положение клавиш с десктопной раскладки добавляя стаггер и делая крохотные кнопки, либо клавиатура имеет ну уж очень вертикальную кривую обучения, как thumb-key.
Поэтому я вернулся к идеи своей собственной раскладки. К сожалению в силу ряда целого ряда причин использовать jbak2 не представляется возможным, других клавиатур с хорошим редактором расскладок я не нашел, поэтому начал делать свою на базе AOSP. И это на самом деле дало намного больше контроля над поведением клавиатуры. Пока что проект находится в глубокой альфе, то что вы видете на скриншотах уже третья ревизия и сейчас это стало уже похоже на что-то адекватное, что-то что не стыдно показывать и использовать.
Основная идея все та же, 4х10 с цифрорядом, без всяких слоев с символами. Недостающие символы через тапденс.
#4rowOrthoKBD
👾7
Уведомление об автоматизации kbdAE
В целях обеспечения прозрачности деятельности настоящим извещаю вас о том, что в течение определенного времени некоторые публикации в сообществе kbdAE осуществляются с использованием специализированного программного обеспечения (бота). Подбор графических материалов (картинок) по-прежнему производится исключительно в ручном режиме силами редакции, однако форматирование гиперссылок и публикация материалов в установленное время в настоящее время автоматизированы. Данные изменения никоим образом не отразятся на качестве и содержании публикуемого контента.
Необходимость автоматизации обусловлена тем, что, несмотря на периодическое содействие со стороны третьих лиц, подавляющее большинство публикаций подготавливается мной единолично. Процессы оформления ссылок и настройки отложенных публикаций требовали значительных временных затрат, что приводило к существенному снижению продуктивности. Информационный канал функционировал в прежнем формате на протяжении приблизительно трех лет, и в последнее время выполнение вышеуказанных задач приобрело характер обременительной рутины.
Пользуясь случаем, выражаю официальную благодарность ft256.ru за предоставление технических мощностей, а также за обеспечение хостинга и деплоя вышеуказанного программного обеспечения.
В целях обеспечения прозрачности деятельности настоящим извещаю вас о том, что в течение определенного времени некоторые публикации в сообществе 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
Не так давно возникла необходимость подключить несколько мультиметров к компьютеру. Рассказывать про приборы, у которых есть подробное руководство с описанием всех команд, абсолютно неинтересно. А вот устройства, для которых нет ни софта, ни документации, но присутствует 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
Закончил работу над 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
Я удалил поддержку всех языков, кроме английского и русского, и это снизило размер apk-файла с 60 МБ до 10. Если еще пооптимизировать ресурсы, убрать всё, что связано с голосовым вводом и прочими вещами, которые я не использую, думаю, можно выиграть еще пару мегабайт.
В этой клавиатуре никогда не будет интернета ни для каких целей. Она делалась исходя из вопросов приватности. При необходимости все настройки и словари можно экспортировать и перенести на другое устройство.
Из интересного, что я заметил во время работы над проектом: Gemini шлет флаг, что клавиатуре надо переключиться в режим инкогнито, но при этом Gboard игнорирует этот флаг конкретно для Gemini, в других приложениях она переключает в нужный режим, если есть флаг.
В AOSP-клавиатуре вроде как есть реализация swipe-ввода, но при этом библиотека, которая отвечает за распознавание, проприетарная и недоступна, хотя меня оно не интересует вообще.
#4rowOrthoKBD
👾2