USB-C хаб за 40 евро стал доком Switch 2 после 540 байт кода
Обычный USB-C хаб заряжал Switch 2, но не выводил картинку на телевизор. Около 540 байт добавленного кода заставили его вести себя как док Nintendo.

Switch 2 спокойно заряжается от обычного USB-C хаба и даже входит в DisplayPort Alt Mode, но на телевизоре картинки нет. Автор проекта устал возить с собой громоздкий и хрупкий на вид официальный док, поэтому подключил к консоли сниффер и выяснил, чего именно она ждёт. В итоге он залатал прошивку хаба за 40 евро.
Почему Switch 2 не работает с обычным USB-C хабом?
Со стоковой прошивкой консоль заходит удивительно далеко: договаривается о питании, входит в DisplayPort Alt Mode, настраивает pin assignment D. Дальше тишина. Сниффер USB-PD WITRN K2, который включается в разрыв кабеля, показал причину. Официальный док представляется устройством Nintendo (VID 057E, продукт 2062), объявляет собственный SVID 057E, а после настройки DP обменивается с консолью vendor-сообщениями, то есть форматом, который определяет сам производитель. Запрос выглядит как 057E0001 плюс номер команды, ответ начинается с 057E0041.
Хаб у автора Cable Matters 7-in-1: контроллер PD VL103 (ядро 8051, 32 КиБ прошивки) и RTD2142, который работает конвертером DP→HDMI. В стёртую область прошивки он дописал около 540 байт кода 8051. Код отвечает на сообщения Nintendo, всё остальное остаётся за родным стеком. Менял по одной вещи: предложил 15 В / 2,8 А, как у дока (у хаба было 2,53 А), отдал полную идентификацию официального дока. Одного vendor ID оказалось мало, Switch проверяет идентификацию шире. Паузу примерно в 3 секунды убрала версия v7.
Версии в ответах скопированы с официального дока и ничего реального в хабе не описывают. На незнакомые команды по-прежнему уходит стоковое «Not supported». Для разбора автор использовал Ghidra, SDCC и симулятор uCsim, а ещё активно пользовался Claude и GPT.
Почему в HDR цвета были блёклыми?
Режим телевизора заработал, но с HDR цвета заметно бледнели, хотя официальный док на том же мониторе в той же игре давал нормальную картинку. Автор исключил дисплей, диапазон RGB, сам хаб (ПК с Linux выводит через него HDR правильно) и контроллер PD. Остался RTD2142: поля колориметрии в AVI InfoFrame на выходе HDMI говорили BT.709. Прошивка чипа не подписана, её читают и пишут через flashrom. Судя по заголовку оригинала, на HDR ушло ещё 108 байт.
Приложения, на которые стоит взглянуть
Выбирайте нужные клетки, складывайте, достигайте цели. Легко понять, сложно освоить. Бесплатно, для любого возраста.
Общайтесь с ИИ-собеседником: каждая фраза возвращается исправленной и объяснённой на вашем языке. 9 языков, от A1 до C2.
Открывайте сообщения EDIFACT и X12, каждый сегмент объяснён, конвертация в JSON/XML, экспорт в PDF и Excel. Работает локально, без загрузки.
Выберите, кому, по какому поводу и с каким характером. Поисковик читает описания товаров местных магазинов и выводит то, что подходит. Бесплатно, без регистрации.
Ещё за этот день
Показать все →
AMD Adrenalin 26.11.1 устраняет лишние записи на SSD у Radeon

Apple Support Community закроется через 28 лет: 20 ноября

Nāpōwawāʻenakaulua: два гигантских квазара, возникших слишком рано

Счётчик Linky: суд ЕС ответил, можно ли отказаться
Ещё в рубрике: Железо
Показать все →
Claude взломал Wi-Fi камеру за 800 рублей, и она работает без облака

Camp Snap CS-8 Micro: видеокамера в 3 дюйма, которую цепляют на ключи

Ring Drone Cam: летающая камера Amazon за $250 жутко шумит
