100%
insomniac_mouse Insomniac_MkII view
Description

Imported from GitHub: ADBeta/Insomniac_Mouse · commit adf71ba · license MIT

Description

CH32V003 USB HID Mouse which moves randomly to keep PCs awake, or many other dumb uses!

README

Insomniac Mouse MkII

USB HID Mouse Device using a 10¢ Microcontroller.
Moves randomly to keep PCs awake; make games harder to play; annoy co-workers and friends; or to give you a digital fishbowl to watch.
Each board has jumpers to change the Mouse Behaviour, a lanyard loop, and is designed with minimum cost and complexity.

Using ch32v003fun and rv003usb to create a Software Defined HID Mouse - it then uses Bresenham's Line Algorithm to plot lines for the mouse to move.

Jumpers

ModeJ1J2J3DescriptionUsecase
Normal000±125 Units MovementDefault balance of speed and distance
Hi-Res100±250 Units MovementLonger movement for Hi DPI Displays
Jitter010±20 Units MovementMore chaotic movement. Good for messing with games
Stepped110±2 Unit Movement (Slower)Slow mode for controllability while plugged in
Square001Lock movement to a squarePrevents the mouse from wandering too far
Unused101
Unused011
Unused111

Uses

Keeping PCs awake

Even if you disable Screensaver/Sleep mode, some PCs go to sleep anyway - this forces the machine to stay awake regardless.
This is especially useful on Industial, Unmanaged and headless machines.

Testing USB Ports

Due to the very low power consumption, small size, lanyard loop, USB 1.0 connection spec, and simple HID data, this is a perfect cheap USB Tester.

Activity Monitor Spoofing

Because this moves the mouse like any other HID Mouse, it keeps users as "Online" on Teams, Slack etc programs which monitor user activity.
WARNING This is not recommended, and any touble you get into for doing this is your own fault.

Pranks / Game Challenges

Guaranteed to annoy your friends and make games much harder to play.

Creating Artwork

Hold down the mouse in an art package of your choice to create some.... interesting art.

PCB Specification

The overall thickness of the PCBs MUST be between 2.0mm and 2.4mm.
MkII Offers more adaptability to get to this final thickness easily.

  • Order Insomniac_USB_Gerb as a 2.0mm PCB
  • Order Insomniac_USB_Gerb as a 1.6mm PCB and glue on a 0.4mm - 0.8mm Shim
  • Order Insomniac_USB_Gerb and Insomniac_Shim_Gerb as 1.2mm or 1.0mm PCBs and glue together

Partslist

U1    CH32V003J4M6       SOIC-8
U2    AP2112K-3.3        SOT-23-5
C1    100nF MLCC         0603
C2    100nF MLCC         0603
R1    1.5K Ohm           0603

CHANGELOG

  • V1.0.1 - Fixed a compatability issue with Windows
  • V1.1.2 - Refactor functions and vairable names
  • V1.2.0 - Added Diagonal Movement for USB HID Data, improves smoothness
  • V1.3.2 - Changed Jumper Detection Method & added JITTER Mode
  • V1.4.0 - Refined the code and added CALM Mode.
  • V1.5.0 - Added USB Serial Number based on UUID of the MCU
  • V2.0.0 - MkII PCB and minor bug fixes & refactor
  • V2.1.0 - Added Square Limit Mode

TODO


MIT License Copyright (c) 2025-2026 ADBeta

Comments
Sign in to comment

No comments yet. Be the first to ask about this board.