За пару недель по вечерам и две недели отпуска:
- вспомнил детство, восьмибитные игрушки процессоры;
- дизассемблировал/декомпилировал прошивку своей клавиатуры;
- нашёл в ней недокументированную фичу (программируемые макросы) и баг в её реализации;
- поверхностно познакомился со спецификациями USB и HID;
- переделал обработку медиаклавиш, Num Lock’а и клавиши Fn на схему, более подходящую для кастомизации раскладок;
- написал веб-приложение для кастомизации;
- собрал, прошил и протестировал;
- выложил всё на GitHub.
По мере прогресса описывал свои находки на форуме GeekHack (
тут и далее в теме), в результате чего мне (в личку) написали разработчики Truly Ergonomic и предложили для них портировать
прошивку ErgoDox (с Teensy на китайскую проприетарщину Megawin). (Я не взялся, под предлогом того, что прошивка ErgoDox по своей природе предполагает, что пользователь будет её дорабатывать, перекомпилировать и прошивать, а у них прошивающая программа только для Windows, что дискриминирует пользователей остальных систем. Но, кажется, они удовлетворятся уже сделанным.)
HTML+CSS+Javascript отлично подошли для написания конфигуратора.
JSFiddle - отличная штука. Прошивать USB-устройства оказалось вполне возможно из Windows, работающей внутри VirtualBox’а - полной версии из оракловских репозиториев, с поддержкой USB.
This entry was originally posted at
http://yurikhan.dreamwidth.org/56273.html.