Как использовать любимую USB-клавиатуру или мышь для ретро-гейминга?
Я уже много статей про всякие ретро-компьютеры написал, и тему ввода данных поднимал не один раз, но в основном речь шла про использование аутентичных клавиатур. Я даже подключал к ZX Evolution внешнюю механическую клавиатуру Дельта-С:
К сожалению, полноценно пользоваться ей в ZX Evolution не получится: во-первых, часть сервисных клавиш есть только в PS/2 клавиатуре, а, во-вторых, в альтернативных ОС (не побоюсь этого слова) типа NedoOS или TS-Config она просто не работает. То есть полностью перейти на оригинальную клаву от ZX Spectrum не удастся, и любом случае нужно использовать внешнюю PS/2 клавиатуру и мышь. ZXDOS+ в этом смысле ещё более ущербный - там подключение клавиатуры и мыши возможно только к PS/2 портам. И даже внешние контроллеры для подключения кливиатур или мышей к настоящему железу заточены в основном под PS/2 разъем, либо позволяют подключить USB-клавиатуру или мышь только с поддержкой PS/2 протокола. Вот, например, Z-Controller, который я приобрёл для Пентагона, тоже имеет порты PS/2:
И не то чтобы сейчас прям невозможно было бы найти что клавиатуры, что мыши с PS/2 штекером, они есть, но выбор поистине невелик (и сами устройства весьма убогие!). А современные USB-клавиатуры и мыши давно уже избавлены от поддержки устаревшего PS/2 протокола, поэтому только очень древние модели позволяют подключить себя через пассивный переходник с USB на PS/2. В итоге, когда я искал небольшую (не полноформатную) и низкопрофильную клавиатуру для ZXDOS+ мне пришлось помучится с поисками, да ещё и прилично переплатить за вот такую вот сервисную клавиатуру для терминала (заодно и монитор для кассира купил с рук). Ну и можно также добавить, что беспроводных PS/2-устройств сейчас так просто не купить (ну или очень задорого). И да, кстати, такие мыши существовали (как минимум у Logitech и Microsoft я такие модели видел), но вот беспроводных PS/2-клавиатур я не видел: даже в комбо-наборах приемник шёл с разными хвостами - один PS/2, второй - USB.
Так всё-таки что делать, если нам нужна приличная клавиатура и мышь, да ещё, желательно, беспроводные? Вот тут уже есть ответ на этот вопрос. Вариант с сервисными клавиатурами я уже проходил, поэтому хотелось чего-нибудь более интересного, чтобы можно было бы использовать любые свои устройства, а не жёстко ограниченный набор. Стало понятно, что нужно использовать что-то типа активных USB<->PS/2 конверторов. Я в итоге решил выбрать проект HIDman от rasteri. Но не оригинал, а форк от serisman: HIDman mini. Эта уменьшенная версия платы, которую можно упрятать в совсем небольшой корпус, в отличие от оригинала, которому нужна приличного размера коробочка.
В связи с санциями, которые Китай вполне себе официально поддерживает, заказать что-то напрямую у "крупных производителей мелких партий плат" нельзя. Приходится либо через переписку по почте и заказы названного количества лотов в Aliexpress, либо заказывать у российского посредника. Я выбрал второй вариант и производство плат заказывал в PCBCHINA, что с доставкой СДЭК фактически удвоило стоимость, какую мы бы имели раньше. Ну а через Aliexpress заказывал чип CH559L от WCH и всякую обвязку. Ну и ждал почти два месяца.
![]() |
![]() |
![]() |
Спаять плату получилось без особых проблем, самое сложное - это припаять сам чип, всё остальное делается элементарно при наличии паяльника с тонким жалом. Прошить оказалось ещё проще - программа прошивки разве что требует более-менее свежей Windows (в 7-ке не заработала) и кабель USB-A к USB-A (это не самая распространённая штука, но обычно китайцы такое суют к коробочкам для жёстких дисков 3,5").
Но вот незадача - вообще не заработало. Ни клавиатура, ни мышь, даже светодиод никак не реагировал. Девайс не хотел никак взаимодействовать и это было обидно - столько денег и времени под хвост. Но я всё-таки больше грешил на прошивку, потому что в самой сборке ошибиться было невозможно, а все контакты я прозвонил. Пришлось связываться с автором оригинальной прошивки и с автором мини-платы: их всё-таки там двое, пусть поговорят :) Ну и всё получилось как надо: автор оригинальной платы признался, что прошивка уже поменялась с того времени, но совместно с автором мини-платы они перекомпилировали и протестировали новый вариант - и вот он-то у меня и заработал, после чего на Github'е в обоих репозиториях появились обновленные версии прошивок, что не может не радовать всех причастных.
Если говорить про использование, то можно сказать так: в основном - воткнул и играй. Должен засветиться светодиод на плате и мигать во время передачи данных (т.е. нажатий на клавиатуру, перемещении мыши). Обычно ничего настраивать и выбирать не надо, но при необходимости можно выбрать разные варианты клавиатур, а также более тонко настроить параметры клавиатуры и мыши. При одиночном нажатии на кнопку на устройстве выбирается нужный режим для клавы (и меняется цвет светодиода):
- AT / PS/2
- OG IBM PC / XT and clones
- Amstrad PC (PC1512, PC1640, PC2xxx, PC3xxx, PC4xxx)
По умолчанию выставлен обычный AT, чего достаточно для большинства. При длительном же удержании кнопки устройство начинает выдавать в порт PS/2 клавиатуры текст меню. Достаточно открыть какой-нибудь редактор текста (тот же Блокнот в Windows), чтобы туда выдавался текст. Нажатиями на подключенную клавиатуру к USB-порту этого устройства можно выбирать нужные пункты. Вот так это примерно выглядит:
HIDman v1.1.3
1. Key
2. Mouse
3. Game
4. Adv.
ESC to exit menu
Keyboard
1. Advanced USB - No
2. 81 Key Mode - No
ESC. Main Menu
Mouse
1. Advanced USB - No
2. Intellimouse - Yes
ESC. Main Menu
Game Controllers
1. Use as Mouse - No
ESC main menu
Advanced
1. Hard Factory Reset
2. Soft Factory Reset
3. Log HID Data
4. Dump PS2 mouse status
Также возможно подключение к USB-портам беспроводных донглов и даже универсальных, типа логитековских, с одновременной работой через него и мыши и клавиатуры.
Это я всё проверил с имеющимися у меня устройствами, т.е. клавиатурами, мышами и компьютерами. В принципе, авторы пишут, что не всё многообразие девайсов может заработать и это действительно так: я смог найти у себя мышь Rapoo из комбо-набора 9003M, с которой курсор по горизонтали вообще не перемещался, хотя всё остальное успешно работало. Хотя, например, SUN'овская фирменная мышь от сервера SunBlade прекрасно заработала (хоть и без средней кнопки). И через Z-Controller мышь у меня через HIDman вообще не опознавалась, но я подозреваю, что это именно из-за реализации самого протокола мыши в этом контроллере, потому что даже современные PS/2-мышки тоже там не определялись (например, A4TECH OP-720), а работали только мыши 10-летней давности. Возможно, это из-за разрешения датчика. Теоретически, на этом контроллере можно замедлить или ускорить мышь, но мне это так и не помогло (а может нажимать надо много-много раз?). А вот с ZX Evolution и ZXDOS+ у меня таких проблем не возникло, мышь (ну и клавиатура тоже) работали нормально, причём даже через KVM-свитч. Теперь я могу взять монитор с прицепленной взади него ZXDOS+ и отнести в любую комнату и не придётся возится с лишними проводами, достаточно провода питания монитора (сам ZXDOS+ можно запитать от любой зарядки или повербанка). Это действительно удобно, так что не зря я столько времени потратил на сборку этого устройства.
Сама мини-плата, оказалась вполне себе приличной, но у неё есть ровно два минуса с точки зрения сборки. Первый минус - это то, что не предусмотрено какого-либо крепления проводов для штекеров PS/2, всё держится исключительно на пайке. Не хватает места, чтобы прихватить провода стяжками или пластиковыми креплениями. Автор предлагает решать эту проблему заливкой каким-либо герметиком или клеем. Второй минус - очень странная разводка для USB-портов. Видимо, автору этого форка нужно было втыкать только один донгл от комбо-набора, поэтому и был выбран вариант, когда один разъём крепится ровно посередине платы, а вот чтобы приделать второй - надо уже его громоздить сверху вторым этажом. Для двух USB-гнёзд гораздо более удобным был бы вариант с размещением их с обоих сторон платы, чтобы плата оказывалась бы посередине этого бутеброда (я изначально так и предполагал, но оказалось, что распиновка там сделана наоборот). Но можно спаять два устройства и получить примерно тоже самое, только по отдельности для каждого порта PS/2.
P.S. Сейчас я на Авито продаю лишние собранные устройства, так что если кому надо и кто не может собрать такое самостоятельно - можете заказывать (доставка есть).
- dukeyusupov
- 0
- 1 596