Добро пожаловать в проект Open Steam Controller!
Это проект, в котором я работал над деконструкцией, документированием, перепрофилем и расширением прошивки и оборудования контроллера Steam.
Во -первых, важно немного рассказать о контроллере Steam (оборудование, на котором сосредоточен этот проект).

Контроллер Steam-это контроллер видеоигр, выпущенный Valve Corporation 10 ноября 2015 года. Это было частью инициативы Valve, чтобы дать ПК-геймерам возможность консольного опыта (то есть геймер Couch, который сидит перед телевизором и использует контроллер вместо клавиатуры и мыши).

Контроллер Steam старался соблюдать некоторые аспекты современных контроллеров видеоигр (то есть левая аналоговая палка, четыре кнопки для лица, две кнопки плеча и бампер), а также изменить некоторые нормы, которые мы ожидали (то есть заменив направленную накладку и правую аналоговую палочку на трекпады).

Дополнительную информацию о контроллере можно найти на официальной странице продукта
Вы можете задаться вопросом, почему этот проект существует и почему я вложил в него неоплачиваемое количество своего времени и энергии за последние пару лет.
Во -первых, я обнаружил, что дизайн этого контроллера является убедительным. Наличие двух трекпадов вместо D-Pad и правой аналоговой палки-интересная идея. Трекпады могут быть настроены, чтобы действовать различными способами, а не только имитируют то, что они заменили, но также обеспечивают новые парадигмы взаимодействия. Кроме того, идея использования хаптиков, чтобы сыграть немного джингла, когда контроллер запускается или отключается, является аккуратным прикосновением, которое выделяло контроллер. Возможность полностью настроить эти джинглы была почти немедленным желанием, когда я впервые начал использовать контроллер.
Во -вторых, контроллер остался довольно доступным. Возможность загружать обновления прошивки вручную сделала барьер для входа для запуска пользовательской прошивки намного ниже. По -прежнему была значительная задача, чтобы получить даже «Hello World» (то есть мигает светодиод кнопки Steam). Тем не менее, это было не так сложно, как я представляю, что я представлял что -то подобное на контроллере, которое предназначено, чтобы быть более устойчивым к температуру. Я действительно ценю тот факт, что Valve покинул это оборудование таким же доступным, как и они, и не препятствуют людям пытаться взломать его.
В -третьих, Ifixit сделал действительно хороший разрыв контроллера. Это дало мне представление о том, что контроллер продолжал внутренне, не нуждаясь в (изначально) разбирать мое оборудование. Это указывало на множество аккуратных периферийных устройств и процессоров, с которыми я считал аккуратным для работы, особенно в контексте продукта, который уже был разработан для определенной цели.
Теперь, когда контроллер и некоторые из его (по умолчанию) были объяснены, мы можем начать говорить об этом проекте. А именно я хочу осветить то, что было достигнуто, и что я надеюсь достичь движения вперед.
Обратите внимание, что следующее приведено немного многословного и повествования. В этом проекте много контента, и это попытка разбить детали таким образом, чтобы дать легко следить за землей для людей, новых для этих усилий. Если вы являетесь человеком TLDR, ознакомьтесь с разделом уведомления и предупреждением ниже, а затем не стесняйтесь прыгать в раздел подпроектов, чтобы добраться до мяса усилий. Вы также должны обязательно посмотреть демонстрационные видео, которые показывают некоторые из основных достижений в действии.
Как упоминалось ранее, основным намерением этого проекта является изучение, деконструкцию и расширение параметров конфигурации и использования для контроллера Steam. Однако это немного расплывчато. Итак, давайте начнем с некоторых примеров. Во -первых, основной целью этого проекта было возможность написать пользовательскую прошивку для основного процессора на контроллере. Это то, что открывает дверь для многих других возможностей, движущихся вперед.
Однако, прежде чем я смог начать писать прошивку, мне понадобилась дополнительная информация о контроллере. Valve был достаточно хорош, чтобы оставить дверь открытой для доступа к бинарной версии их прошивки и возможности легко обновить основной процессор. Тем не менее, они не предоставили схемы или список компонентов или таблиц данных, которые обычно имел встроенный инженер программного обеспечения, если бы ему было поручено процесс написания пользовательской прошивки. Поэтому мне нужно было обратиться к обратной инженерии. По сути, это сводится к деконструкции аппаратного и официального прошивки, чтобы я мог понять, как написать свою собственную прошивку. На этом этапе обратное инженерное усилие в основном проходило свой курс, так как многие были обнаружены, документированы и использованы для других усилий. Подробности о обратном инженерном усилиях можно найти в подпроекте обратной инженерии.
Теперь, когда были предприняты усилия по обратному проектированию, и я начал собирать информацию об оборудовании, я смог начать писать пользовательскую прошивку. Ознакомьтесь с подпроектом прошивки, чтобы увидеть текущее состояние программного обеспечения. В основном это программное обеспечение для утилиты, позволяющее пользователю запросить различные периферийные устройства или проводить измерения в разных состояниях (поскольку некоторые из этой информации должны были быть захвачены и вернуться обратно в процесс обратной инженерии, чтобы он продвигался вперед). Тем не менее, в конечном итоге стало ясно, что здесь было достаточно функциональности, что было бы не слишком много дополнительной работы, чтобы сделать этот аппаратный акт в качестве контроллера для других консолей (то есть переключатель Nintendo).
Затем мы пришли к тому, что первоначально было единственным намерением этого проекта. То есть цель - иметь полное контроль над песнями (джинглами), что контроллер Steam играет (через Haptics Trackpad) при включении и выключена. Из -за некоторых открытий с помощью обратных инженерных усилий, этот проект позволяет полностью настроить джинглы, и эти настройки сохраняются, при этом все еще работая с официальной прошивкой Valve. Для получения подробной информации о том, как настроить джинглы на вашем контроллере или для получения более подробной информации (то есть, как отформатируются данные Jingle и как мы можем настроить джинглы без изменения официальной прошивки), см. Подпроект Jingles.
Наконец, важно упомянуть, что другое намерение этого проекта состоит в том, чтобы он был образовательным и/или мотивационным ресурсом. Может быть, вы заинтересованы в контроллере Steam. Или, может быть, вы заинтересованы в написании встроенного программного обеспечения для коммерческого устройства. В любом случае, надежда на этот проект предоставит четкую и краткую информацию, чтобы вдохновить и позволить людям учиться и делать больше. Я знаю, что многому научился из этих усилий, и если что -то из этого можно поделиться и помогать другим, это было бы здорово.
Отправляемая точка для дополнительной информации и достижений и будущих намерений этого проекта, см. В разделе субпроектов ниже.
Пожалуйста, узнайте, что, используя любую часть этого проекта, вы делаете это на свой страх и риск. Это усилия по обратному проектированию, и я не претендую на то, чтобы иметь полное понимание оборудования, которое я предоставляю пользовательской или модифицированной прошивке. Надеемся, что тестирование, которое я выполняю перед публикацией моих выводов и модификаций, предотвратит повреждение вашего контроллера Steam или чего -либо, на что вы можете подключить свой контроллер Steam (то есть переключатель Nintendo). Однако я не могу это гарантировать.
Также обратите внимание, что это разделяется в основном в образовательных целях. Несмотря на то, что это может позволить пользователю делать такие вещи, как использовать контроллер Steam на Nintendo Switch, пожалуйста, признать, что это почти наверняка будет поступать с компромиссами по сравнению с официально поддерживаемым аппаратным и прошивным программным обеспечением. Если вам нужен дешевый контроллер коммутатора и в порядке, когда он подключен, проверьте, что делает Powera или Hori. Если вы хотите полностью изготовленный контроллер, подумайте о том, чтобы потратить дополнительные деньги и получить профессиональный контроллер (это действительно того стоит).
Наконец -то обратите внимание, что я говорю все это с надеждой никого не обескураживать. Пожалуйста, погрузитесь и испачкайте руки. Просто имейте в виду, что есть (надеюсь) очень маленькая, но ненулевая, вероятность, что ошибка может привести к кирпирному или сломанному оборудованию.
В этом разделе даются краткие схемы и демонстрации (если применимо) основных усилий этого проекта. Более подробную информацию о каждом подпроекте можно найти в их соответствующих каталогах.
Работа в этом каталоге направлена на создание совершенно пользовательской сборки прошивки для контроллера Steam. Этот проект может быть настроен, чтобы контроллер ACT был системой разработки, которая позволяет запросить периферийные устройства и исследовать или проверять поведение системы. Кроме того, проект может быть настроен для более практических целей, например, как ведение проводного контроллера коммутатора Nintendo.
Ниже приведены некоторые видео, демонстрирующие различные сборки прошивки:
Открыть контроллер Steam: Nintendo Switch
Открытый контроллер Steam: Совет по разработке
Работа в этом каталоге предназначена для создания удобного для пользователя способ настроить то, что играют джинглы, когда контроллер Steam запускается и отключается.
Ниже приведено видео, демонстрирующее, как настроить джинглы на контроллере Steam:
Открыть контроллер парового: jingle настройка
Работа в этом каталоге фокусируется на деконструкции прошивки и оборудования контроллера Steam. Понимание, полученное от этого, часто является
Значительная часть других подпроектов.
Steam предлагает возможность изменить определенные параметры конфигурации для контроллера Steam (то есть изменение яркости светодиодной яркости, изменение, в котором Jingle будет воспроизведен из системной памяти). Этот каталог содержит работу для понимания, воспроизведения и, возможно, расширения этой функциональности.
Это проект с открытым исходным кодом, поэтому, пожалуйста, воспользуйтесь этим, как вам нужно (до тех пор, пока он не нарушает никаких лицензий, указанных внутри).
Если вы хотите предложить вклад в этот репо, это было бы здорово. Это может быть в форме вопросов/дискуссий о том, как это может быть более удобным для пользователя или путем добавления функций или поддержки, которых еще нет.
Обратите внимание, что есть документы TODO для каждого подпроекта. Идея состоит в том, чтобы наметить цели, которые я хотел бы достичь. Если вы хотите помочь с любым из них, это было бы потрясающе. Было бы еще более удивительно, если бы вы начали разговор о своих намерениях, чтобы ограничить шансы на дублированные усилия или несоответствующие дизайны.
Я сделаю все возможное, чтобы обеспечить проще в использовании и надежное программное обеспечение. Однако, скорее всего, будут ошибки. Если вы найдете ошибку, сообщите об этом.
Лучший способ сообщить об ошибке - использовать вкладку «Проблемы» на GitHub.
При сообщении об ошибке/проблеме, пожалуйста, не забудьте предоставить достаточные детали. Ключевые детали, чтобы включить::
В этом разделе перечислены некоторые проекты, которые повлияли на этот проект, а также ссылки на некоторые ресурсы, которые могут по -прежнему полезны для того, чтобы оставаться в курсе.
Хотя в этом проекте многое было достигнуто в этом проекте, все еще так много, что можно сделать с контроллером Steam (особенно учитывая основу, которая была заложена до этого момента). Чтобы запечатлеть и отслеживать эти идеи, для каждого подпроекта были созданы документы TODO. Хорошее место для начала-это документ TODO высшего уровня. Это охватывает цели высочайшего уровня для проекта, одновременно предоставляя ссылки на специфические TODOS подпроекта.