За последние 30 лет на каких только устройствах не запускали культовый шутер Doom. В рамках одного из последних таких экспериментов игру запустили на миниатюрном компьютере, который поместился внутри клавиши Backspace механической клавиатуры, а на её верхней стороне был установлен крошечный дисплей.

Источник изображений: YouTube / TheKeebProject
Заставить Doom работать на таком крошечном устройства кажется невыполнимой задачей, однако автору YouTube-канала TheKeebProject это удалось. Для этого он разработал кастомную печатную плату, достаточно компактную, чтобы поместиться внутри колпачка клавиши Backspace, и оснастил её микропроцессором Raspberry Pi 2040. В его состав входят два ядра Arm Cortex-M0 с частотой 133 МГц, 256 Кбайт ОЗУ и флеш-память объёмом 2 Мбайт.

В схему платы также было внесено несколько изменений, чтобы включить поддержку интерфейсов дисплея SPI и I2C. Поверх платы энтузиаст установил миниатюрный экран с поддержкой разрешения 320 × 200 пикселей. Для защиты экрана использовался пластиковый прозрачный кожух, отлитый на 3D-принтере.

Задача проекта заключалась в создании миниатюрной системы с возможностью запуска специальной модифицированной версии Doom, но с максимально сохранённой функциональностью оригинальной игры. Компьютер может воспроизводить звук, поддерживает мультиплеер, функции сохранения и загрузки и даже читы. Он также оснащён разъёмом USB, к которому можно подключить клавиатуру для управления в игре, и разъёмом питания для работы.
Для всех желающих создать свой собственный компьютер внутри кейкапа клавиатуры для запуска Doom энтузиаст в репозитории GitHub опубликовал всю необходимую документацию, а также ссылки на необходимые компоненты.
Источники: