![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
За пару недель по вечерам и две недели отпуска:
- вспомнил детство, восьмибитные
игрушкипроцессоры; - дизассемблировал/декомпилировал прошивку своей клавиатуры;
- нашёл в ней недокументированную фичу (программируемые макросы) и баг в её реализации;
- поверхностно познакомился со спецификациями USB и HID;
- переделал обработку медиаклавиш, Num Lock’а и клавиши Fn на схему, более подходящую для кастомизации раскладок;
- написал веб-приложение для кастомизации;
- собрал, прошил и протестировал;
- выложил всё на GitHub.
По мере прогресса описывал свои находки на форуме GeekHack (тут и далее в теме), в результате чего мне (в личку) написали разработчики Truly Ergonomic и предложили для них портировать прошивку ErgoDox (с Teensy на китайскую проприетарщину Megawin). (Я не взялся, под предлогом того, что прошивка ErgoDox по своей природе предполагает, что пользователь будет её дорабатывать, перекомпилировать и прошивать, а у них прошивающая программа только для Windows, что дискриминирует пользователей остальных систем. Но, кажется, они удовлетворятся уже сделанным.)
HTML+CSS+Javascript отлично подошли для написания конфигуратора. JSFiddle — отличная штука. Прошивать USB-устройства оказалось вполне возможно из Windows, работающей внутри VirtualBox’а — полной версии из оракловских репозиториев, с поддержкой USB.
no subject
Date: 2013-07-07 22:45 (UTC)no subject
Date: 2013-07-08 04:00 (UTC)Прошивка закрытая (ну, то есть теперь чуточку приоткрытая). Основа прошивающего софта — виндовая DLL, поставляемая производителем контроллера (Megawin) без исходников, протокол прошивания не документирован. Truly Ergonomic говорят, что уже пытали Megawin на этот счёт, но что последние не заинтересованы в портировании на Linux.
Ну то есть можно взять и расковырять Megawin’овский бутлоадер и/или DLL’ку и таки реализовать линуксовую прошивалку, но в случае неудачных испытаний придётся разбирать клавиатуру, чтоб добраться до контактов, замыкание которых даёт принудительную перезагрузку в бутлоадер.
no subject
Date: 2013-07-08 07:36 (UTC)no subject
Date: 2013-07-08 14:47 (UTC)no subject
Date: 2013-07-08 11:12 (UTC)no subject
Date: 2013-07-08 11:16 (UTC)И ещё, посмотрел на Web-приложение: yurivkhan.github.io/teck/
На Firefox 22 ряд клавиш над шифтами, залазит под ряд клавиш с шифтами, это так и задумано?
no subject
Date: 2013-07-08 14:42 (UTC)Не, всё было проще. Обновления прошивки распространяются в виде HEX-файлов, их жуёт любой порядочный дизассемблер для Intel 8051. Остальное дело техники.
Покажи скриншот? Ряд над шифтами — это на верхней клавиатуре Caps…Enter или на нижней \|…]}? Клавиши сами по себе пересекаться не должны. И да, у меня тоже Firefox 22.
no subject
Date: 2013-07-08 16:53 (UTC)no subject
Date: 2013-07-09 04:08 (UTC)