Истории с запуском Doom на различных бытовых приборах продолжаются. На сей раз энтузиасту Aaron Christophel удалось заставить культовый шутер работать на умной скороварке Krups Cook4Me путем перепрошивки ее сенсорного экрана. Манипуляции с электроникой касались только локального запуска Doom на дисплее без вмешательства в систему нагрева и безопасности.
Поводом для исследования стал просмотр меню настроек Wi-Fi, где первые три байта указывали на использование в скороварке микроконтроллера ESP от Espressif. После разборки энтузиаст обнаружил в нижней части устройства плату с микроконтроллером STM, которая отвечает за нагрев, температуру и аварийное отключение.
Данная плата соединена четырехпроводным кабелем с верхним сенсорным блоком, где размещено гораздо более производительное оборудование. Как и ожидалось, модуль Wi-Fi основан на ESP32, а что касается основного процессора, то им оказался Renesas R7S721031VZ. Aaron назвал его довольно хорошим и мощным CPU с ядром ARM и указал на наличие у него множества разъемов GPIO.
Кроме прочего были обнаружены 128 МБ ОЗУ, 128 МБ флеш-памяти, контроллер емкостного экрана, драйвер дисплея, пищалка, EEPROM и нераспаянный слот для SD-карт. Флеш-память ESP32 была зашифрована, а логи указывали на подключение к облачным серверам AWS с помощью протокола MQTT.
Ткак как доступ к Renesas R7S721031VZ осуществлялся через интерфейс SWD, то энтузиаст подключил SWD-прошивальщик и успешно сдампил содержимое флеш-памяти. Изучение журналов загрузчика позволило провести реверс-инжиниринг процесса инициализации LCD и залить кастомную прошивку обратно на чип.
После написания достаточного количества программных оберток Doom был интегрирован в прошивку и запущен на Cook4Me. В качестве элементов управления были задействованы края сенсорного экрана, а благодаря небольшому размеру области отрисовки удалось обеспечить сравнительно высокий FPS.