Giter VIP home page Giter VIP logo

mouseinstruct's Introduction

MouseInstruct

Mouse Instruct is an Arduino firmware that serves as a controlled USB mouse emulator. It works by receiving designated instructions from the host for mouse actions through the USB HID protocol and executing these actions acting as an actual USB HID Mouse.

The system utilizes two HID interfaces. One interface belongs to the HID Mouse class, while the other involves a Generic HID class Raw HID primarily functioning as an output from host to relay mouse reports via Raw HID to arduino and dictate mouse behaviors, like movements and button clicks. Mouse Instruct firmware is based on ImprovedMouse class which provides a higher resolution of 16 bits per movement axis (unlike the Mouse class from Arduino library which supports only 8 bits). However the mouse scroll functionality is not supported.

Purpose

Mouse Instruct serves a distinct purpose: externally mimicking a mouse device to execute mouse actions while being controlled by the host system. This becomes important for bypassing the limitations posed by certain anticheat software that prevents the use of simulated mouse movements via the win32 API's SendInput events. Mouse Instruct bypasses this restriction with a controlled external mouse that operates through the existing USB HID protocol, as opposed to the more easily detectable conventional Serial UART approach.

Build firmware

  1. Copy files from shared to ArduinoMouseInstruct.
  2. Install HID-Project Library in Arduino IDE.
  3. (Optional) Change VID/PID/usb_product/usb_manufacturer.
  4. Disable CDC Serial by appending -DCDC_DISABLED to relevant build.extra_flags in boards.txt.
  5. Upload.

Client Dependencies

Mouse Instruct client relies on MouseInstruct class which is reponsible for providing a simple Mouse API and forwarding the instructions to external MCU. MouseInstruct depends on hidapi library to interface with Arduino over USB HID.

Re-enable CDC Serial

Leonardo/32u4-based boards

Instructions taken from: Arduino Forum

  1. Remove -DCDC_DISABLED flag.
  2. Start uploading the blink example.
  3. When the IDE reports the memory usage, immediately press and release the reset button on the Arduino board.

UNO/Hoodloader2

  1. Remove -DCDC_DISABLED flag.
  2. Re-install Hoodloader2 bootloader.

mouseinstruct's People

Contributors

khanxbahria 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.