Git Product home page Git Product logo

kensington_expert_mouse_pmw3389_arduino's Introduction

PMW3389

Interfacing PixArt PMW3389 with Arduino boards

Parts info

Pin connection

  • MI = MISO
  • MO = MOSI
  • SS = Slave Select / Chip Select
  • SC = SPI Clock
  • MT = Motion (active low interrupt line)
  • RS = Reset
  • GD = Ground
  • VI = Voltage in up to +5.5V
[Module] --- [Teensy]
      RS --- (NONE)
      GD --- GND
      MT --- (NONE)
      SS --- Pin 10
      SC --- SCK
      MO --- MOSI
      MI --- MISO
      VI --- 3.3V

// in Mouse example
[Button] --- [Teensy]
    Left --- Pin 3
   Right --- Pin 0
  Middle --- Pin 2
    Back --- Pin 1
   
* Connect the other pole of a button to GND

Sketch Descriptions

  • PMW3389DM-Mouse/
    • Fully functional trackball (w. 1k polling rate) with four buttons (left, right, middle, back)
    • Default CPI and debounce time can be set (see #define sections in the source code)
    • Cycle through CPI with button combo (middle + right click)
    • Commands (newline (\n) should be placed at the end of each command)
      • Q: toggle surface quality report (can be seen thorugh Serial Monitor or Serial Plotter)
      • I: print device signature
      • C[number]: Set cpi level, example) C1600\n = set CPI to 1600.

How to use

  • Build the circuit as described.
  • (Arduino only) Copy the /library/AdvMouse/ to your Arduino library folder
  • Load PMW3389DM-Mouse on Arduino IDE.
    • Modify dx, dy for your sensor orientation

Wishlist

  • Deal with the scroll ring encoder

Construction

  • Image showing sensor inside a modified Kensington Expert Mouse bottom shell
  • Image showing sensor and Teensy inside a modified Kensington Expert Mouse shell
  • Image showing partially assembled Expert Mouse

kensington_expert_mouse_pmw3389_arduino's People

Contributors

dkao avatar sunjunkim 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.