Git Product home page Git Product logo

ps2dev's Introduction

Arduino ps2dev library

This library allows arduino to emulate ps2 keyboard and/or mouse, so you can implement your own ps2 keyboard or whatever...

I want to improve this, provide better documentation and arduino library manager package for it...

Originaly from:

Further reading:

Electrical connections

The following is an easy way to get started:

  • Take a PS/2 mouse apart without cutting any cables.
  • Desolder the socket that the PS/2 cable is connected to.
  • Use a multimeter to find the pinout of the socket.
  • Solder the socket to an Arduino proto shield. If the pitch does not match you can also consider simply using mounting the socket vertically with super glue and soldering wires directly to the socket.
  • Solder three wires on the Arduino proto shield as follows.
Arduino pin PS/2 pin example color (on a HP mouse)
2 DATA brown
3 CLK orange
GND GND green

There is no need to connect the VCC. If you want to use different pins on the Arduino side you can just adjust the call to the PS2dev constructor. In theory this should allow you to emulate multiple keyboard on one Arduino but this has not been tested.

Notes

  • If you are implementing keyboard you should read the commands from computer quite often. I don't know how often, but 1 second is not enough. You will miss stuff like num/caps/scroll LED changes and maybe even more important stuff needed for proper ps2 protocol initialisation.
  • Calling keyboard_handle(...); each 10ms should be enough...
  • Serial debug is not intended to be enabled in production code. Use it only during development. Otherwise it might mess up the protocol timing.

TODO

  • Move leds variable to the ps2dev class
  • Add mode, where attachInterrupt() will be used to watch CLK pin instead of need to constantly poll it using available() or keyboard_handle()
  • Add mouse protocol handling directly to library
  • Check against Arduino API style guide: https://www.arduino.cc/en/Reference/APIStyleGuide
  • Check why there are occasional issues with PS2Keyboard library https://github.com/PaulStoffregen/PS2Keyboard
    • I've been using this to send keystrokes between two arduinos (from ps2dev to PS2Keyboard) and there are some issues (missed keystrokes). So i had to use SoftwareSerial.h instead, ditching the PS2 compatibility. We need to debug this...

Special thanks

ps2dev's People

Contributors

harvie avatar iggyglass avatar lindi2 avatar mdevaev avatar liumazi 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.