GithubHelp home page GithubHelp logo

nvdnkpr / node-logitech-dual-action-controller Goto Github PK

View Code? Open in Web Editor NEW

This project forked from olizilla/node-logitech-dual-action-controller

0.0 2.0 0.0 200 KB

Make a logitech gamepad do something useful

node-logitech-dual-action-controller's Introduction

Logitech Dual Action Controller for Node

Provides an EventEmitter with events for the buttons, dpad and analog sticks on the Logitech Dual Action Controller.

Heavily inspired by andrew/node-xbox-controller

Install

 npm install logitech-dual-action-controller

Usage

Step 1. Plug in the controller

Step 2. Add some event listeners

// Create a new one
var controller = new require('logitech-dual-action-controller')()

controller.on('1:release', console.log)

controller.on('left:move', function (data) {
  // horizontal positon of left analog stick -100 to 100 and 0 at the center.
  var rotateSpeed = data.x
  rotateRobot(rotateSpeed)
})

Events

The dual action has 12 numbered buttons, 1 to 12, a dpad and 2 analog sticks.

Buttons: There are :press and :release events for buttons 1 to 12 like so: 1:press 1:release

Dpad: There are :press and :release events for the dpad directions like so: dup:press, dleft:release. There is a dcenter:press event if you just want to know when they stop pressing the dpad.

Analog sticks: There are left:move and right:move events for the analog sticks, with a data parameter object like { x: 0, y: 0 } representing the position of the stick from -100 to 100 with 0 at the center.

        100
         |
  -100 - o - 100
         |
       -100
Source Events Description
1,2,3,4 #:press #:release arcade buttons (replace # with button number)
5,6,7,8 #:press #:release shoulder button
9,10 #:press #:release start(ish), select(ish)
11,12 #:press #:release left stick press, right stick press
dup,dright,ddown,dleft #:press #:release dpad digital directions
left,right left:move, right:move analog stick movement with x,y position in data param

HID info, for them experts.

{
  vendorId: 1133,
  productId: 49686,
  path: 'USB_046d_c216_14300000',
  serialNumber: '',
  manufacturer: 'Logitech',
  product: 'Logitech Dual Action',
  release: 768,
  interface: -1
}

We get an 8 byte Buffer from each data event.

  • byte 0: left analog stick horizontal
  • byte 1: left analog stick vertical
  • byte 2: right analog stick horizontal
  • byte 3: right analog stick vertical
  • byte 4: dpad direction and buttons 1,2,3,4
  • byte 5: buttons 5,6,7,8,9,10,11,12
  • byte 6: mode switch... flips the dpad and left analog stick. 4 is on, 5 is off.
  • byte 7: nothing. Seems to always return 252.

See: http://www.autohotkey.com/board/topic/64178-hid-template-and-example-for-logitech-dual-action/

node-logitech-dual-action-controller's People

Contributors

olizilla avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.