Skip to content

Releases: jfedor2/hid-remapper

r2026-04-07

07 Apr 13:31

Choose a tag to compare

  • Build for the MeisterConverter board.
  • USB serial number string based on the unique flash ID.
  • Quirks for 3Dconnexion SpacePilot and another Elecom HUGE variant.

r2026-01-30

30 Jan 20:50

Choose a tag to compare

  • Mouse movement no longer wakes the computer from sleep, only button and key presses.
  • There's now a build for the Waveshare RP2350-PiZero board.

r2026-01-20

20 Jan 21:45

Choose a tag to compare

  • Wired Xbox 360 controllers should now work.
  • HID Remapper can now wake your computer from sleep. Currently this works in the keyboard/mouse modes and doesn't work on the Bluetooth version.

r2025-12-19

19 Dec 18:09

Choose a tag to compare

  • On custom boards v1, v2, v5, v6, v7 (dual RP2040 boards), the manual "Flash B side" step is no longer required. Please note you still have to disconnect and reconnect your HID Remapper after flashing the UF2 file on those boards.
  • Per-port mappings now work for Xbox controllers on the single Pico variant.
  • Mappings with the hub port set are now ignored until we start seeing inputs from a device plugged into that port (previously they were processed immediately after the device was plugged in, which could cause issues for inputs like analog sticks where the neutral state is not zero).

r2025-11-18

18 Nov 16:11

Choose a tag to compare

  • Adds support for Fn1, Fn2, Fn3 buttons on the Elecom Huge Plus trackball (thanks, @shiiba-cba!).
  • Fixes an issue with certain mice/trackballs where horizontal scroll would only work in one direction.

r2025-11-12

12 Nov 21:54

Choose a tag to compare

This release fixes an issue with certain devices that manifested as inputs showing up in the Monitor tab, but not working otherwise (#280, #295, #304).

The serial variant build is now compatible with the rp2040-rs232 adapter board.

r2025-06-17

17 Jun 21:36

Choose a tag to compare

This release fixes an issue where fetching input state in an expression could give an invalid value after a boot/report protocol mode switch.

(And since macOS sets the mode to report protocol after plugging a device in, even though that is the default, the issue manifested itself even without an actual mode switch.)

r2025-06-02

02 Jun 18:33

Choose a tag to compare

This release makes it so that HID Remapper works with the iOS "Full Keyboard Access" function when in mouse/keyboard mode.

(It has always worked as a keyboard for typing etc. on iOS, but now it also works with that function, which is an accessibility option that lets you navigate around the UI using a keyboard.)

r2025-05-23

23 May 19:30

Choose a tag to compare

Gamepad input normalization

A new option, Normalize gamepad inputs, enabled by default, makes it so that buttons on all known gamepads will show up as the same inputs, making it easier to create configurations that work with different game controllers. Because different controllers sometimes use different inputs for the same buttons, previously you had to adjust the mappings for specific controller models.

Currently PlayStation, Switch, Xbox and Stadia controllers should get the standard mapping and can therefore be used interchangeably (with some caveats, see below).

If you have a controller that uses the standard layout but doesn't get correct button mappings, please let me know.

When loading old configurations, the option is disabled to preserve existing behavior.

Please note that L2/R2 and L2 axis/R2 axis are separate inputs as far as HID Remapper is concerned. Some controllers send both, some only send the button inputs and some only send the axis inputs.

Please note that the normalization currently only occurs on the input side. Depending on which emulated device type you use, the inputs might not match the outputs, so for example if you configure your HID Remapper to work as a Stadia controller and enable unmapped inputs passthrough, you won't get a correct input mapping. You would still have to map each button separately.

Registers as outputs on a mapping

Mappings with outputs set to registers now work as expected, putting the input state value into the register, which can then be read from inside an expression. This makes is possible to create more generic expressions that use registers as parameters/placeholders, so that you can assign expression inputs using mappings, without having to modify the expression itself.

Because of the order of evaluating expressions and mappings, the values in the registers are delayed by one frame compared to if they were read directly.

r2025-03-25

25 Mar 20:14

Choose a tag to compare

This release adds builds for the Flatbox rev4 and rev8 boards. There are no other changes.