Selamat datang di proyek pengontrol uap terbuka!
Ini adalah proyek di mana saya telah bekerja untuk mendekonstruksi, mendokumentasikan, menggunakan kembali, dan memperluas firmware dan perangkat keras Steam Controller.
Pertama, penting untuk berbicara sedikit tentang pengontrol uap (perangkat keras yang difokuskan pada proyek ini).

Steam Controller adalah pengontrol video game yang dirilis oleh Valve Corporation pada 10 November 2015. Ini adalah bagian dari inisiatif Valve untuk memberi gamer PC opsi pengalaman seperti konsol (yaitu gamer sofa yang duduk di depan TV dan menggunakan pengontrol alih-alih keyboard dan mouse).

Steam Controller mencoba untuk menjaga beberapa aspek yang akrab dengan pengontrol video game modern (yaitu tongkat analog kiri, empat tombol wajah, dua tombol bahu dan bemper) sementara juga mengganti beberapa norma yang kami harapkan (yaitu mengganti bantalan arah dan tongkat analog kanan dengan trackpad).

Rincian tambahan tentang pengontrol dapat ditemukan di halaman produk resmi
Anda mungkin bertanya-tanya mengapa proyek ini ada dan mengapa saya telah menginvestasikan jumlah waktu dan energi saya yang tidak dapat diabaikan ke dalamnya selama beberapa tahun terakhir.
Pertama, saya menemukan desain pengontrol ini menarik. Memiliki dua trackpad di tempat D-pad dan tongkat analog kanan adalah ide yang menarik. Trackpads dapat dikonfigurasi untuk bertindak dalam berbagai cara dan tidak hanya meniru apa yang mereka ganti, tetapi juga memberikan paradigma interaksi baru. Juga, gagasan menggunakan haptics untuk bermain sedikit jingle ketika controller mulai atau dimatikan adalah sentuhan yang rapi yang membuat controller lebih menonjol. Mampu sepenuhnya menyesuaikan jingle ini adalah keinginan yang hampir dekat ketika saya pertama kali mulai menggunakan controller.
Kedua, pengontrol dibiarkan cukup mudah diakses. Mampu mengunggah pembaruan firmware secara manual membuat penghalang untuk masuk untuk menjalankan firmware khusus jauh lebih rendah. Masih ada tantangan yang cukup besar untuk mendapatkan bahkan "Hello World" (yaitu Blink the Steam Button LED) berfungsi. Namun, ini tidak sekuat yang saya bayangkan melakukan sesuatu yang serupa pada pengontrol yang dirancang untuk lebih tahan terhadap temperamen. Saya sangat menghargai fakta bahwa Valve meninggalkan perangkat keras ini yang dapat diakses seperti yang mereka lakukan dan tidak mencegah orang untuk mencoba meretasnya.
Ketiga, ifixit melakukan robek pengontrol yang sangat bagus. Ini memberi saya gambaran tentang apa yang dilakukan pengontrol secara internal, tanpa perlu (awalnya) memisahkan perangkat keras saya. Ini menunjukkan banyak periferal dan prosesor yang saya pikir akan rapi untuk dikerjakan, terutama dalam konteks produk yang sudah dirancang untuk tujuan tertentu.
Sekarang pengontrol dan beberapa kemampuan (default) telah dijelaskan, kita dapat mulai membicarakan proyek ini. Yaitu saya ingin membahas apa yang telah dicapai, dan apa yang ingin saya capai untuk bergerak maju.
Catatan, berikut ini sedikit bertele -tele dan narasi. Ada banyak konten dalam proyek ini dan ini adalah upaya untuk memecah detail dengan cara yang akan memberikan tata letak tanah bagi orang -orang yang baru dalam upaya ini. Jika Anda adalah tipe orang TLDR, lihat bagian Pemberitahuan dan Peringatan di bawah ini dan kemudian jangan ragu untuk melompat ke bagian Subproyasi untuk sampai ke Daging Upaya. Anda juga harus memastikan untuk memeriksa video demo yang menunjukkan beberapa prestasi besar yang sedang beraksi.
Seperti disebutkan sebelumnya, niat utama dari proyek ini adalah untuk mengeksplorasi, mendekonstruksi, dan memperluas opsi konfigurasi dan penggunaan untuk pengontrol uap. Namun, itu agak kabur. Jadi mari kita mulai dengan beberapa contoh. Pertama, tujuan utama dari proyek ini adalah untuk dapat menulis firmware khusus untuk prosesor utama pada pengontrol. Inilah yang membuka pintu bagi banyak kemungkinan lain yang bergerak maju.
Namun, sebelum saya bisa mulai menulis firmware, saya membutuhkan info lebih lanjut tentang pengontrol. Valve cukup bagus untuk membiarkan pintu terbuka untuk mengakses versi biner dari firmware mereka dan kemampuan untuk memperbarui prosesor utama dengan mudah. Namun, mereka tidak memberikan skema atau daftar komponen atau lembar data yang biasanya dimiliki oleh insinyur perangkat lunak tertanam jika ditugaskan untuk menulis firmware khusus. Karena itu, saya perlu beralih ke rekayasa terbalik. Ini pada dasarnya bermuara pada mendekonstruksi perangkat keras dan firmware resmi sehingga saya bisa memahami cara menulis firmware saya sendiri. Pada titik ini upaya rekayasa terbalik sebagian besar telah berjalan, karena banyak yang telah ditemukan, didokumentasikan, dan digunakan untuk upaya lain. Rincian tentang upaya rekayasa terbalik dapat ditemukan di subproyek Reverse Engineering.
Sekarang setelah upaya rekayasa terbalik telah ditetapkan dan saya sudah mulai mengumpulkan informasi tentang perangkat keras, saya dapat mulai menulis firmware khusus. Lihatlah subproyject firmware untuk melihat keadaan perangkat lunak saat ini. Sebagian besar ini adalah perangkat lunak utilitas untuk memungkinkan pengguna untuk menanyakan periferal yang berbeda atau melakukan pengukuran di berbagai negara (karena beberapa informasi yang perlu ditangkap dan dimasukkan kembali ke proses rekayasa terbalik untuk membuatnya bergerak maju). Namun, akhirnya menjadi jelas bahwa ada cukup fungsionalitas yang ditangkap di sini bahwa itu tidak akan terlalu banyak pekerjaan tambahan untuk menjadikan perangkat keras ini bertindak sebagai pengontrol untuk konsol lain (yaitu Nintendo Switch).
Selanjutnya kita sampai pada apa yang semula adalah niat tunggal dari proyek ini. Artinya, tujuan untuk dapat memiliki kendali penuh atas lagu -lagu (jingles) yang dimainkan oleh pengontrol uap (melalui trackpad haptics) pada power up dan ditutup. Karena beberapa penemuan melalui upaya rekayasa terbalik, proyek ini memungkinkan jingle untuk sepenuhnya disesuaikan dan untuk kustomisasi ini bertahan sambil tetap menjalankan firmware resmi Valve. Untuk detail tentang cara menyesuaikan jingle pada pengontrol Anda, atau untuk detail lebih lanjut (yaitu bagaimana data jingle diformat dan bagaimana kami dapat menyesuaikan jingle tanpa memodifikasi firmware resmi) melihat subproyject jingles.
Akhirnya, penting untuk menyebutkan bahwa niat lain dari proyek ini adalah untuk menjadi sumber daya pendidikan dan/atau motivasi. Mungkin Anda tertarik pada pengontrol uap. Atau mungkin Anda tertarik untuk menulis perangkat lunak tertanam untuk perangkat komersial. Bagaimanapun harapan adalah agar proyek ini memberikan informasi yang jelas dan ringkas untuk menginspirasi dan memungkinkan orang untuk belajar dan berbuat lebih banyak. Saya tahu saya belajar banyak dari upaya ini, dan jika semua itu dapat dibagikan dan membantu orang lain itu akan menjadi hebat.
Untuk titik awal pada detail tambahan dan pencapaian dan niat di masa depan dari proyek ini, silakan lihat bagian Subproyasi di bawah ini.
Harap kenali bahwa dengan memanfaatkan bagian mana pun dari proyek ini yang Anda lakukan dengan risiko Anda sendiri. Ini adalah upaya rekayasa terbalik dan saya tidak mengklaim memiliki pemahaman lengkap tentang perangkat keras yang saya sediakan untuk firmware khusus atau dimodifikasi. Semoga pengujian yang saya lakukan sebelum menerbitkan temuan dan modifikasi saya akan mencegah kerusakan pada pengontrol uap Anda atau apa pun yang Anda dapat menghubungkan pengontrol uap Anda ke (yaitu sakelar Nintendo). Namun, saya tidak dapat menjamin itu.
Juga harap dicatat ini dibagikan terutama untuk tujuan pendidikan. Meskipun ini memungkinkan pengguna untuk melakukan hal-hal seperti menggunakan pengontrol uap pada sakelar Nintendo, harap kenali bahwa ini hampir pasti akan datang dengan trade-off dibandingkan dengan perangkat keras dan firmware yang didukung secara resmi. Jika Anda menginginkan pengontrol sakelar yang murah dan baik -baik saja dengan kabelnya, lihat yang dibuat PowerA atau Hori. Jika Anda menginginkan pengontrol yang sepenuhnya ditampilkan, pertimbangkan untuk menghabiskan uang tambahan dan dapatkan Pro Controller (itu benar -benar sepadan).
Akhirnya perhatikan bahwa saya mengatakan semua ini dengan harapan tidak mengecilkan hati siapa pun. Silakan menyelam dan membuat tangan Anda kotor. Perlu diketahui bahwa ada (semoga) (semoga) sangat kecil, tetapi bukan nol, kemungkinan kesalahan dapat menyebabkan perangkat keras yang rusak atau rusak.
Bagian ini memberikan garis besar dan demonstrasi singkat (jika berlaku) dari upaya utama proyek ini. Rincian lebih lanjut tentang setiap subproyject dapat ditemukan di direktori masing -masing.
Pekerjaan di direktori ini diarahkan untuk membuat firmware build yang sepenuhnya khusus untuk pengontrol Steam. Proyek ini dapat dikonfigurasi untuk memiliki tindakan pengontrol sebagai sistem pengembangan yang memungkinkan periferal kueri dan mengeksplorasi atau memverifikasi perilaku sistem. Selain itu proyek dapat dikonfigurasi untuk tujuan yang lebih praktis, seperti berperilaku seperti pengontrol Nintendo Switch kabel.
Di bawah ini adalah beberapa video yang menunjukkan berbagai firmware build:
Buka Steam Controller: Nintendo Switch
Open Steam Controller: Papan Pengembangan
Pekerjaan di direktori ini diarahkan untuk menciptakan cara ramah pengguna untuk menyesuaikan jingle apa yang dimainkan ketika pengontrol uap dimulai dan dimatikan.
Di bawah ini adalah video yang menunjukkan cara menyesuaikan jingle pada pengontrol uap:
Open Steam Controller: Kustomisasi Jingle
Pekerjaan di direktori ini berfokus pada mendekonstruksi firmware dan perangkat keras pengontrol uap. Pemahaman yang diperoleh dari ini sering kali adalah a
Bagian penting dari subproyek lainnya.
Steam menawarkan kemampuan untuk mengubah opsi konfigurasi tertentu untuk pengontrol uap (yaitu mengubah kecerahan LED, perubahan jingle mana yang akan dimainkan dari memori sistem). Direktori ini berisi pekerjaan untuk memahami, mereproduksi dan, mungkin, memperluas fungsionalitas ini.
Ini adalah proyek open source, jadi silakan memanfaatkan ini sesuka Anda (selama tidak melanggar lisensi yang dinyatakan di dalam).
Jika Anda ingin menawarkan kontribusi kembali ke repo ini, itu akan bagus. Itu bisa datang dalam bentuk masalah/diskusi tentang bagaimana ini bisa lebih ramah pengguna atau dengan menambahkan fitur atau dukungan yang belum ada.
Perhatikan bahwa ada dokumen TODO untuk setiap subproyek. Idenya adalah untuk menguraikan tujuan yang ingin saya capai. Jika Anda ingin membantu semua ini, itu akan luar biasa. Akan lebih luar biasa jika Anda memulai percakapan mengenai niat Anda untuk membatasi peluang upaya duplikat atau desain yang tidak sesuai.
Saya akan melakukan yang terbaik untuk menyediakan perangkat lunak yang mudah digunakan dan kuat. Namun, kemungkinan besar masih ada bug. Jika Anda menemukan bug, silakan laporkan.
Cara terbaik untuk melaporkan bug adalah dengan menggunakan tab Masalah di GitHub.
Saat melaporkan bug/masalah, pastikan untuk memberikan detail yang cukup. Detail utama untuk dimasukkan adalah:
Bagian ini mencantumkan beberapa proyek yang memengaruhi proyek ini, serta tautan ke beberapa sumber daya yang mungkin terus membantu untuk tetap terkini.
Sementara banyak yang telah dicapai dalam proyek ini sejauh ini, masih ada banyak hal yang dapat dilakukan dengan pengontrol uap (terutama mengingat dasar yang telah diletakkan hingga saat ini). Untuk menangkap dan melacak ide -ide ini, dokumen TODO telah dibuat untuk setiap subproyek. Tempat yang baik untuk memulai adalah dokumen TODO tingkat atas. Ini mencakup tujuan level tertinggi untuk proyek sambil memberikan tautan ke subproyik TODOS spesifik.