diff options
author | Stany MARCEL <stanypub@gmail.com> | 2015-11-19 00:34:41 +0300 |
---|---|---|
committer | Stany MARCEL <stanypub@gmail.com> | 2015-11-19 00:34:41 +0300 |
commit | abac09ea2cda6d71f034d5894bcd2f9994a68a85 (patch) | |
tree | 12389dfda7c1f2a21fb8f93f431782c48795bfed | |
parent | 039ac2e8f00833dedcea78025b12feb97b0b7ea6 (diff) |
Create gh-pages branch via GitHubgh-pages
-rw-r--r-- | index.html | 75 | ||||
-rw-r--r-- | params.json | 2 |
2 files changed, 48 insertions, 29 deletions
@@ -53,9 +53,8 @@ <a id="installation" class="anchor" href="#installation" aria-hidden="true"><span class="octicon octicon-link"></span></a>Installation</h2> <ol> -<li>Get the project <a href="https://github.com/ynsta/steamcontroller/archive/master.tar.gz">tarbal</a> or clone it github <code>git clone https://github.com/ynsta/steamcontroller.git</code> -</li> -<li>Install dependencies +<li> +<p>Install dependencies</p> <ul> <li>for python 3.4+: @@ -76,20 +75,29 @@ </li> </ul> </li> -<li>sudo python setup.py install</li> +<li> +<p>Get the project <a href="https://github.com/ynsta/steamcontroller/archive/master.tar.gz">tarbal</a> or clone it from github:</p> + +<div class="highlight highlight-source-shell"><pre><span class="pl-c"># Get from tarbal:</span> +wget https://github.com/ynsta/steamcontroller/archive/master.tar.gz +tar xf master.tar.gz +<span class="pl-c1">cd</span> steamcontroller-master +<span class="pl-c"># or clone it:</span> +git clone https://github.com/ynsta/steamcontroller.git +<span class="pl-c1">cd</span> steamcontroller</pre></div> +</li> +<li><p>Install python modules and scripts with <code>sudo python setup.py install</code></p></li> <li> <p>Install udev rules (if not already done for steam) in <code>/etc/udev/rules.d/99-steam-controller.rules</code>:</p> -<pre><code># replace game group by a valid group on your system -# Steam controller keyboard/mouse mode -SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", GROUP="games", MODE="0660" +<div class="highlight highlight-source-shell"><pre><span class="pl-c"># replace game group by a valid group on your system</span> +<span class="pl-c"># Steam controller keyboard/mouse mode</span> +SUBSYSTEM==<span class="pl-s"><span class="pl-pds">"</span>usb<span class="pl-pds">"</span></span>, ATTRS{idVendor}==<span class="pl-s"><span class="pl-pds">"</span>28de<span class="pl-pds">"</span></span>, GROUP=<span class="pl-s"><span class="pl-pds">"</span>games<span class="pl-pds">"</span></span>, MODE=<span class="pl-s"><span class="pl-pds">"</span>0660<span class="pl-pds">"</span></span> -# Steam controller gamepad mode -KERNEL=="uinput", MODE="0660", GROUP="games", OPTIONS+="static_node=uinput" -</code></pre> -</li> -<li>Reload udev <code>sudo udevadm control --reload</code> +<span class="pl-c"># Steam controller gamepad mode</span> +KERNEL==<span class="pl-s"><span class="pl-pds">"</span>uinput<span class="pl-pds">"</span></span>, MODE=<span class="pl-s"><span class="pl-pds">"</span>0660<span class="pl-pds">"</span></span>, GROUP=<span class="pl-s"><span class="pl-pds">"</span>games<span class="pl-pds">"</span></span>, OPTIONS+=<span class="pl-s"><span class="pl-pds">"</span>static_node=uinput<span class="pl-pds">"</span></span></pre></div> </li> +<li><p>Reload udev <code>sudo udevadm control --reload</code></p></li> </ol> <h2> @@ -97,11 +105,18 @@ KERNEL=="uinput", MODE="0660", GROUP="games", OPTIONS+="static_node=uinput" <ol> <li>Exit Steam.</li> -<li>run <code>sc-xbox.py start</code> for the simple xbox360 emulator</li> -<li>run <code>sc-xbox.py stop</code> to stop the driver</li> -</ol> +<li>Start: -<p>Replace <code>xbox</code> by <code>desktop</code> for the desktop keyboard/mouse mode.</p> +<ul> +<li> +<code>sc-xbox.py start</code> for the simple xbox360 emulator.</li> +<li> +<code>sc-desktop.py start</code> for the desktop keyboard/mouse mode.</li> +</ul> +</li> +<li>Stop: <code>sc-xbox.py stop</code> or <code>sc-xbox.py stop</code> +</li> +</ol> <p>Other test tools are installed:</p> @@ -111,7 +126,8 @@ KERNEL=="uinput", MODE="0660", GROUP="games", OPTIONS+="static_node=uinput" <li> <code>sc-gyro-plot.py</code> : Plot curves from gyro data (require pyqtgraph and pyside installed).</li> <li> -<code>sc-test-cmsg.py</code> : Permit to send control message to the contoller. For example <code>echo 8f07005e 015e01f4 01000000 | sc-test-cmsg.py</code> will make the controller beep.</li> +<code>sc-test-cmsg.py</code> : Permit to send control message to the contoller. For example:<br> +<code>echo 8f07005e 015e01f4 01000000 | sc-test-cmsg.py</code> will make the controller beep.</li> <li> <code>vdf2json.py</code> : Convert Steam VDF file to JSON.</li> <li> @@ -122,24 +138,24 @@ KERNEL=="uinput", MODE="0660", GROUP="games", OPTIONS+="static_node=uinput" <a id="todo--status" class="anchor" href="#todo--status" aria-hidden="true"><span class="octicon octicon-link"></span></a>TODO / Status</h2> <ol> -<li>Finish to guess each bytes/bits roles in the usb message (Mostly <em>Done</em>). +<li>Finish to guess each bytes/bits roles in the usb message (Mostly <strong>Done</strong>). <ul> <li>Verify that Gyroscope data 4 to 7 are a quaternion as suspected</li> </ul> </li> -<li>Understand how to configure haptic feed backs (<em>Done</em>).</li> -<li>Understand how to enable gyroscopes (<em>Done</em>).</li> -<li>Redirect inputs to userland events via uinput (<em>Done</em>). +<li>Understand how to configure haptic feed backs (<strong>Done</strong>).</li> +<li>Understand how to enable gyroscopes (<strong>Done</strong>).</li> +<li>Redirect inputs to userland events via uinput (<strong>Done</strong>). <ul> -<li>Xbox360 uintput device (<em>Done</em>)</li> -<li>Keyboard uintput device (<em>Done</em>)</li> -<li>Mouse uintput device with trackball model (<em>Done</em>)</li> +<li>Xbox360 uintput device (<strong>Done</strong>)</li> +<li>Keyboard uintput device (<strong>Done</strong>)</li> +<li>Mouse uintput device with trackball model (<strong>Done</strong>)</li> </ul> </li> -<li>Create a simple xbox event mapper (<em>Done</em>)</li> -<li>Create a configurable event mapper (Work in Progress): +<li>Create a simple xbox event mapper (<strong>Done</strong>)</li> +<li>Create a configurable event mapper (<strong>Work in Progress</strong>): <ul> <li>Create an event mapper that reads steam vdf files and maps usb inputs to uinput events.</li> @@ -147,12 +163,12 @@ KERNEL=="uinput", MODE="0660", GROUP="games", OPTIONS+="static_node=uinput" <li>Get all possible configurations of steam config file.</li> </ul> </li> -<li>Create a haptic feedback Manager (TBD)</li> +<li>Create a haptic feedback Manager (<strong>Work in Progress</strong>)</li> <li>Measure latencies.</li> </ol> <h2> -<a id="control-message-capture" class="anchor" href="#control-message-capture" aria-hidden="true"><span class="octicon octicon-link"></span></a>Control Message Capture</h2> +<a id="control-messages-capture" class="anchor" href="#control-messages-capture" aria-hidden="true"><span class="octicon octicon-link"></span></a>Control Messages Capture</h2> <ol> <li><code>sudo modprobe usbmon</code></li> @@ -183,6 +199,9 @@ KERNEL=="uinput", MODE="0660", GROUP="games", OPTIONS+="static_node=uinput" <li><code>87153284 03180000 31020008 07000707 00300000 2f010000 00000000 00000000</code></li> </ul> +<h2> +<a id="control-messages-formats" class="anchor" href="#control-messages-formats" aria-hidden="true"><span class="octicon octicon-link"></span></a>Control Messages formats</h2> + <h3> <a id="haptic-feedback-format" class="anchor" href="#haptic-feedback-format" aria-hidden="true"><span class="octicon octicon-link"></span></a>Haptic feedback format:</h3> diff --git a/params.json b/params.json index c581169..4c0b48f 100644 --- a/params.json +++ b/params.json @@ -1 +1 @@ -{"name":"Steamcontroller ","tagline":"Standalone Steam Controller Driver","body":"# Standalone Steam Controller Driver\r\n\r\nThis project is a standalone userland driver for the steam controller to be used where steam client can't be installed.\r\n\r\nTwo modes are already working with haptic feedback:\r\n - xbox360: gamepad emulator\r\n - desktop: mouse, keyboard mode\r\n\r\nThe final purpose is to have support for custom mapping created with a stand-alone tool or imported from steam vdf files.\r\n\r\nThe initial target is *GNU/Linux*, but I'll welcome any contributor that want to port input generation for other OS (OSX, Windows, *BSD, Android/Linux, ...)\r\n\r\nThis project is licensed under MIT.\r\n\r\n## Installation\r\n\r\n 1. Get the project [tarbal](https://github.com/ynsta/steamcontroller/archive/master.tar.gz) or clone it github `git clone https://github.com/ynsta/steamcontroller.git`\r\n 2. Install dependencies\r\n * for python 3.4+:\r\n - Install python libusb1 `sudo pip install libusb1`\r\n * for python 2.7+ (you might have to use pip2 for python2.7 or pip3 for python3):\r\n - Install python libusb1 `sudo pip install libusb1`\r\n - Install python enum backport `sudo pip install enum34`\r\n 3. sudo python setup.py install\r\n 4. Install udev rules (if not already done for steam) in `/etc/udev/rules.d/99-steam-controller.rules`:\r\n ```\r\n# replace game group by a valid group on your system\r\n# Steam controller keyboard/mouse mode\r\nSUBSYSTEM==\"usb\", ATTRS{idVendor}==\"28de\", GROUP=\"games\", MODE=\"0660\"\r\n\r\n# Steam controller gamepad mode\r\nKERNEL==\"uinput\", MODE=\"0660\", GROUP=\"games\", OPTIONS+=\"static_node=uinput\"\r\n```\r\n 6. Reload udev `sudo udevadm control --reload`\r\n\r\n\r\n## Usage\r\n\r\n 1. Exit Steam.\r\n 2. run `sc-xbox.py start` for the simple xbox360 emulator\r\n 3. run `sc-xbox.py stop` to stop the driver\r\n\r\nReplace `xbox` by `desktop` for the desktop keyboard/mouse mode.\r\n\r\nOther test tools are installed:\r\n - `sc-dump.py` : Dump raw message from the controller.\r\n - `sc-gyro-plot.py` : Plot curves from gyro data (require pyqtgraph and pyside installed).\r\n - `sc-test-cmsg.py` : Permit to send control message to the contoller. For example `echo 8f07005e 015e01f4 01000000 | sc-test-cmsg.py` will make the controller beep.\r\n - `vdf2json.py` : Convert Steam VDF file to JSON.\r\n - `json2vdf.py` : Convert back JSON to VDF file.\r\n\r\n\r\n## TODO / Status\r\n\r\n 1. Finish to guess each bytes/bits roles in the usb message (Mostly *Done*).\r\n - Verify that Gyroscope data 4 to 7 are a quaternion as suspected\r\n 2. Understand how to configure haptic feed backs (*Done*).\r\n 3. Understand how to enable gyroscopes (*Done*).\r\n 4. Redirect inputs to userland events via uinput (*Done*).\r\n - Xbox360 uintput device (*Done*)\r\n - Keyboard uintput device (*Done*)\r\n - Mouse uintput device with trackball model (*Done*)\r\n 5. Create a simple xbox event mapper (*Done*)\r\n 6. Create a configurable event mapper (Work in Progress):\r\n - Create an event mapper that reads steam vdf files and maps usb inputs to uinput events.\r\n - Create fallback mappings for unsupported config options.\r\n - Get all possible configurations of steam config file.\r\n 7. Create a haptic feedback Manager (TBD)\r\n 8. Measure latencies.\r\n\r\n## Control Message Capture\r\n\r\n 1. `sudo modprobe usbmon`\r\n 2. `lsusb -d 28de:1142` and look at bus and device numbers (B & D)\r\n 3. `sudo cat /sys/kernel/debug/usb/usbmon/Bu | grep Co:B:D:0` B=3 and D=003 on my setup.\r\n\r\n### Disable auto feedback on rpad:\r\n\r\n - `81000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000`\r\n\r\n### Enable Gyro\r\n\r\n - `87153284 03180000 31020008 07000707 00301400 2f010000 00000000 00000000`\r\n\r\n### Disable Gyro\r\n\r\n - `87153284 03180000 31020008 07000707 00300000 2f010000 00000000 00000000`\r\n\r\n### Haptic feedback format:\r\n\r\n - u8 : `8f`\r\n - u8 : `07`\r\n - u8 : `00` for Right `01` for Left\r\n - u16 : Amplitude\r\n - u16 : Period\r\n - u16 : count\r\n - pads the end with `00`\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file +{"name":"Steamcontroller ","tagline":"Standalone Steam Controller Driver","body":"# Standalone Steam Controller Driver\r\n\r\nThis project is a standalone userland driver for the steam controller to be used where steam client can't be installed.\r\n\r\nTwo modes are already working with haptic feedback:\r\n - xbox360: gamepad emulator\r\n - desktop: mouse, keyboard mode\r\n\r\nThe final purpose is to have support for custom mapping created with a stand-alone tool or imported from steam vdf files.\r\n\r\nThe initial target is *GNU/Linux*, but I'll welcome any contributor that want to port input generation for other OS (OSX, Windows, *BSD, Android/Linux, ...)\r\n\r\nThis project is licensed under MIT.\r\n\r\n## Installation\r\n\r\n 1. Install dependencies\r\n * for python 3.4+:\r\n - Install python libusb1 `sudo pip install libusb1`\r\n * for python 2.7+ (you might have to use pip2 for python2.7 or pip3 for python3):\r\n - Install python libusb1 `sudo pip install libusb1`\r\n - Install python enum backport `sudo pip install enum34`\r\n\r\n 2. Get the project [tarbal](https://github.com/ynsta/steamcontroller/archive/master.tar.gz) or clone it from github:\r\n ```shell\r\n# Get from tarbal:\r\nwget https://github.com/ynsta/steamcontroller/archive/master.tar.gz\r\ntar xf master.tar.gz\r\ncd steamcontroller-master\r\n# or clone it:\r\ngit clone https://github.com/ynsta/steamcontroller.git\r\ncd steamcontroller\r\n```\r\n\r\n 3. Install python modules and scripts with `sudo python setup.py install`\r\n\r\n 4. Install udev rules (if not already done for steam) in `/etc/udev/rules.d/99-steam-controller.rules`:\r\n ```shell\r\n# replace game group by a valid group on your system\r\n# Steam controller keyboard/mouse mode\r\nSUBSYSTEM==\"usb\", ATTRS{idVendor}==\"28de\", GROUP=\"games\", MODE=\"0660\"\r\n\r\n# Steam controller gamepad mode\r\nKERNEL==\"uinput\", MODE=\"0660\", GROUP=\"games\", OPTIONS+=\"static_node=uinput\"\r\n```\r\n\r\n 5. Reload udev `sudo udevadm control --reload`\r\n\r\n## Usage\r\n\r\n 1. Exit Steam.\r\n 2. Start:\r\n * `sc-xbox.py start` for the simple xbox360 emulator.\r\n * `sc-desktop.py start` for the desktop keyboard/mouse mode.\r\n 3. Stop: `sc-xbox.py stop` or `sc-xbox.py stop`\r\n\r\nOther test tools are installed:\r\n - `sc-dump.py` : Dump raw message from the controller.\r\n - `sc-gyro-plot.py` : Plot curves from gyro data (require pyqtgraph and pyside installed).\r\n - `sc-test-cmsg.py` : Permit to send control message to the contoller. For example: \r\n `echo 8f07005e 015e01f4 01000000 | sc-test-cmsg.py` will make the controller beep.\r\n - `vdf2json.py` : Convert Steam VDF file to JSON.\r\n - `json2vdf.py` : Convert back JSON to VDF file.\r\n\r\n\r\n## TODO / Status\r\n\r\n 1. Finish to guess each bytes/bits roles in the usb message (Mostly **Done**).\r\n - Verify that Gyroscope data 4 to 7 are a quaternion as suspected\r\n 2. Understand how to configure haptic feed backs (**Done**).\r\n 3. Understand how to enable gyroscopes (**Done**).\r\n 4. Redirect inputs to userland events via uinput (**Done**).\r\n - Xbox360 uintput device (**Done**)\r\n - Keyboard uintput device (**Done**)\r\n - Mouse uintput device with trackball model (**Done**)\r\n 5. Create a simple xbox event mapper (**Done**)\r\n 6. Create a configurable event mapper (**Work in Progress**):\r\n - Create an event mapper that reads steam vdf files and maps usb inputs to uinput events.\r\n - Create fallback mappings for unsupported config options.\r\n - Get all possible configurations of steam config file.\r\n 7. Create a haptic feedback Manager (**Work in Progress**)\r\n 8. Measure latencies.\r\n\r\n## Control Messages Capture\r\n\r\n 1. `sudo modprobe usbmon`\r\n 2. `lsusb -d 28de:1142` and look at bus and device numbers (B & D)\r\n 3. `sudo cat /sys/kernel/debug/usb/usbmon/Bu | grep Co:B:D:0` B=3 and D=003 on my setup.\r\n\r\n### Disable auto feedback on rpad:\r\n\r\n - `81000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000`\r\n\r\n### Enable Gyro\r\n\r\n - `87153284 03180000 31020008 07000707 00301400 2f010000 00000000 00000000`\r\n\r\n### Disable Gyro\r\n\r\n - `87153284 03180000 31020008 07000707 00300000 2f010000 00000000 00000000`\r\n\r\n## Control Messages formats\r\n\r\n### Haptic feedback format:\r\n\r\n - u8 : `8f`\r\n - u8 : `07`\r\n - u8 : `00` for Right `01` for Left\r\n - u16 : Amplitude\r\n - u16 : Period\r\n - u16 : count\r\n - pads the end with `00`\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file |