Build Your Own MIM

Mouse Input Modifier Β· Open Hardware Β· Build it in an afternoon

MIM is open hardware β€” and that's the whole point. The device that reshapes your mouse input in real time is something you can hold, open up, and build yourself. No locked-down black box: the exact same firmware that ships in the finished Alpha units runs on a Teensy you solder at your own kitchen table. Start with a bare-bones board in about 25 minutes, or go all the way to a full build with dual displays and encoders in an aluminium enclosure. Three tiers, each one building on the last, and firmware flashing that works the same across all of them.

Not into soldering? You don't have to be. Ready-to-use MIM units are available on request β€” no iron, no wiring, just plug in and play. Say hi on Discord and we'll sort you out. The build guide below stays right here for whenever you get curious.

Build Tiers Overview

TierNameSolderingWhat you get
Tier 1 Bare Bones ~25 min, basic skills Fully functional, no enclosure
Tier 2 Compact Build ~40 min Permanently soldered, reset button, stable
Tier 3 Full Build ~2 h 2Γ— TFT, 2Γ— encoder, aluminium enclosure

Tier 1 β€” Bare Bones #

Goal: The fastest possible path to a working MIM β€” just a handful of solder joints. Perfect for a first taste before you commit to a fancier build.

Parts

PartSourceNote
Teensy 4.1SparkFun / DigiKeySparkFun DEV-20360
Micro-USB cableanyTeensy β†’ PC
USB-A socket on breakout boardAliExpress / Amazonfor mouse / keyboard / controller
4Γ— jumper wires (male–female)any10–15 cm is enough
Soldering iron + solderβ€”Basic equipment

USB Host Pin Assignment

The Teensy 4.1 has five pads on its bottom side for the USB host connection. This is where you connect the mouse, keyboard, or controller.

Pad 2  β†’  +5V   (USB Pin 1)
Pad 3  β†’  Dβˆ’    (USB Pin 2)
Pad 4  β†’  D+    (USB Pin 3)
Pad 5  β†’  GND   (USB Pin 4)
Pad 6  β†’  GND   (optional, can share with Pad 5)
Teensy 4.1 β€” USB Host pads on the bottom side

Teensy 4.1 β€” Bottom side with USB Host pads (Pads 2–6). Red = +5 V, White = Dβˆ’, Green = D+, Black = GND.

MOUSE / KEYBOARD / CONTROLLER
        β”‚
  USB-A Socket (Breakout)
  Pin 1 (+5V)  ──── Teensy bottom Pad 2
  Pin 2 (Dβˆ’)   ──── Teensy bottom Pad 3
  Pin 3 (D+)   ──── Teensy bottom Pad 4
  Pin 4 (GND)  ──── Teensy bottom Pad 5
        β”‚
     [Teensy 4.1]
        β”‚
  Micro-USB (top)
        β”‚
       PC
Bare Bones build β€” three connection variants

Bare Bones build β€” left: with deleyCON USB-A adapter and extension cable; center: with right-angle USB-A socket; right: mounted on breadboard with wiring.

Optional: Built in an Enclosure

The Bare Bones build fits into a compact aluminium enclosure β€” no additional soldering required, just cable management and a USB-C panel-mount adapter.

Bare Bones MIM build in aluminium enclosure

Completed Bare Bones build in aluminium enclosure with MIM label and USB-C cable.


Wiring #

For more complex builds, correct wiring according to the firmware implementation is essential. The diagram below shows the full connection overview for all supported configurations.

MIM Wiring Diagram v03 β€” Overview

MIM Wiring Diagram v03 β€” Overview


Tier 2 β€” Compact Build #

Builds on Tier 1. This is the one you'll actually keep on your desk: permanently soldered on perfboard, with a proper reset button and buffer capacitors. Rock-solid even with high-resolution gaming mice (Beast X Pro, 4K polling) β€” set it up once and forget about it.

Additional Parts vs. Tier 1

PartValue / TypeSourceNote
Perfboard~80 Γ— 50 mmAliExpress / ConradTeensy fits on 56-pin board
Buffer capacitor 11000 Β΅F / 16 V, Low-ESRConrad / ReicheltElectrolytic, on USB host VBUS/GND
Buffer capacitor 2100 nF, MLCCConrad / ReicheltCeramic, parallel to electrolytic
Reset buttonMomentary, illuminatedAliExpresse.g. RUNCCI-YUN 16 mm
USB host cableUSB-A socket with pigtailAliExpressinstead of breakout board
Wire4Γ— 0.25 mmΒ²anyfor USB host wiring

Why Capacitors?

High-resolution mice (2000Hz and more) can cause brief voltage drops on the VBUS line during enumeration, leading to connection drops. The capacitors buffer these spikes directly at the Teensy's host port.

Placement: both capacitors in parallel between Pad 2 (+5V) and Pad 5 (GND) on the bottom of the Teensy, as close to the pads as possible.

Tier 2 build progression β€” breadboard to compact enclosure

Left: Bare Bones build on breadboard. Center: Compact build with capacitors, USB-A socket, and illuminated reset button. Right: Finished build in compact enclosure.

Reset Button

The reset button provides direct access to the HalfKay bootloader β€” useful when the firmware has locked up or for a manual firmware update.

Connection: Program pad (top left on Teensy, labelled) β†’ GND

[Button] ──── Program pad (Teensy front side, top left)
[Button] ──── GND
A brief press β†’ Teensy boots into the HalfKay bootloader. Teensy Loader recognises it automatically and waits for a new firmware image.

Assembly Order

  1. Place Teensy on perfboard, solder pin headers
  2. Mount USB-A socket with pigtail at the edge of the perfboard
  3. Solder capacitors to the bottom of the Teensy (watch electrolytic polarity!)
  4. Solder USB-A cable to host pads (pin assignment as Tier 1)
  5. Wire reset button (Program β†’ GND)
  6. Double-check all connections before first power-on

Tier 3 β€” Full Build #

Builds on Tier 2. The full experience: dual TFT displays, two encoders, an aluminium enclosure and a panel-mounted USB-C socket. Tune your curves live on the device, no laptop needed. This is exactly the Alpha Edition build β€” the same unit you'd get if you ordered a finished one.

Additional Parts vs. Tier 2

PartTypeSourceNote
TFT Display 1+2ST7789, 240Γ—280, SPIAliExpress2 pieces
Encoder 1+2KY-040 with buttonAliExpress2 pieces
EnclosureHammond 1455KGYBKMouser / RS Components120 Γ— 65 Γ— 27 mm
End panelsABS, matching Hammond 1455Hammond / Mouseror 3D print
USB-C Panel-MountCF-V8RI, 90Β°, 10 cmAliExpressMicro-B Male β†’ USB-C Female
Screws / standoffsM2.5, assortmentAmazonfor perfboard mounting inside enclosure

Encoder Assignment

E1 (left)   β€” Navigation (select parameter)
E2 (right)  β€” Change value / mode toggle (LongPress)

Both encoders: CLK, DT, SW pins each to free digital pins on the Teensy.

TFT Displays (SPI)

Both displays share the SPI bus (MOSI, SCLK, common) but each has its own CS and DC pin.

Display 1: CS β†’ Pin X, DC β†’ Pin Y
Display 2: CS β†’ Pin A, DC β†’ Pin B
MIM Full Build β€” interior view: perfboard in enclosure, TFTs and encoders installed

Full Build β€” interior view: perfboard mounted in enclosure slots, both TFTs installed, cable routing completed.

MIM Full Build β€” both TFT displays active with speed curves and encoder values

Full Build β€” both TFT displays active: speed curve (top) and Y-speed profile values (bottom). Left and right encoder for navigation and value adjustment.

MIM Full Build β€” alternate angle, both displays and encoders visible

Full Build from above β€” both displays and encoders visible. Device connected and in use.


Initial Firmware Flash

The same firmware runs on all three hardware tiers β€” no per-tier configuration needed.

  1. Download Teensy Loader (pjrc.com) and install it
  2. Go to mim-control.com/dev-options and download the latest MIM Firmware A .hex file
  3. Open the .hex in Teensy Loader, connect the Teensy via Micro-USB, press the white button on the Teensy β€” it flashes automatically
Teensy Loader with loaded .hex file, progress bar during flash

Teensy Loader with the MIM firmware .hex loaded β€” progress bar during flash.

Test the Connection

  1. Open a browser (Chrome or Edge β€” Firefox does not work)
  2. Go to mim-control.com
  3. Click Connect β€” device should appear
  4. Connect mouse β€” MIM tab becomes active
mim-control.com β€” connection flow: port selection to fully connected

mim-control.com β€” left: port selection dialog; center: correct port selected; right: connected with full MIM interface, speed curves, and serial monitor active.


Firmware Update

After the initial flash, updates can be installed directly from the browser.

  1. Go to mim-control.com/update
  2. Current vs. available version is shown
  3. "Download firmware" β†’ .hex file is loaded
  4. Press the white button on the Teensy briefly β†’ boots into bootloader
  5. Teensy Loader detects the bootloader and flashes automatically
Tier 2 and Tier 3 have a dedicated reset button β€” use it instead of the white button on the Teensy board.

AIM / CIM β€” XInput Mode

AIM converts mouse input into joystick deflection (XInput output). CIM passes a connected controller through with correction applied. Both modes output XInput signals instead of standard HID.

These modes require Firmware C β€” a separate firmware image available on mim-control.com/dev-options under "Firmware C". Flash it the same way as Firmware A using Teensy Loader.

Note: mim-control.com does not work with Firmware C. Configuration requires external tools. To return to MIM / KIM, simply flash Firmware A again.


Help & Community

Questions, problems, preset sharing β€” all in the Discord:

β†’ Join Discord

And if you'd rather skip the build entirely: ask about a ready-to-use unit there too β€” same place, same friendly people.

Video build guide:

β†’ Watch on YouTube

MIM Β· Mouse Input Modifier Β· github.com/boa-constrictor-42 Β· DIY Guide v1.0