Releases: jfedor2/hid-remapper
r2023-12-13
- Inputs like analog sticks, triggers and d-pads can now be mapped directly without having to use expressions. Unmapped inputs passthrough now also works for them. (You might still need to use expressions, depending on what you want to map them to.)
- Added a firmware build for the Waveshare RP2040-PiZero, which is an affordable board with a second USB port, ready to use with HID Remapper. You might need a USB C-to-A adapter.
- Reintroduced a check to prevent macros from overflowing the output queue in certain situations.
- Added quirks for SpaceMouse Compact and Pro, making it more straightforward to remap them.
- Single Pico variant binary is no longer "copy-to-RAM", which was a legacy leftover.
r2023-11-15
- GPIO outputs now have a second mode where an output value of "1" sets the pin to low and an output value of "0" sets the pin to high impedance. This should help with using the outputs as inputs on another device like the Xbox Adaptive Controller without additional hardware.
- Macros now have a configurable step duration (1-256ms). This should help for use cases other than text input.
- GPIO outputs now work in macros.
r2023-11-08
This release adds the possibility to set GPIO pins as outputs on a mapping.
An output value of "0" drives the pin low and an output value of "1" drives the pin high. You can use it directly with LEDs, for example to make a CapsLock LED or to visualize layer state. If you want to use the outputs to drive other devices like the Xbox Adaptive Controller, you should probably use additional hardware such as optocouplers.
Also all GPIO pins that aren't used for other functions should now be usable as inputs/outputs (previously limited to GPIO2-GPIO9).
r2023-10-18
- MIDI inputs over USB are now supported. Notes, CCs, aftertouch, program, and pitch bend can all be mapped.
- Monitor tab now has "map this" buttons that create a new mapping for that usage.
- JSON files can have custom names for inputs, which might be helpful for configurations that map devices that aren't mice/keyboards. See the Xbox controller mappings in the Examples tab. The names are not stored on device.
r2023-10-11
This release adds support for Xbox One/Series controllers connected over USB, including the Xbox Adaptive Controller.
r2023-10-07
The Bluetooth version of HID Remapper is now compatible with the Xbox Adaptive Controller (and possibly other Bluetooth-enabled Xbox controllers).
Please note that the USB version of HID Remapper cannot currently take inputs from Xbox controllers.
r2023-10-04
This release adds Nintendo Switch compatibility to the Bluetooth version of HID Remapper.
r2023-09-27
HID Remapper can now emulate other device types in addition to regular mouse and keyboard. This release adds:
- Absolute mouse and keyboard. With absolute cursor positioning certain behaviors are now possible. See the advanced autoclicker example.
- Nintendo Switch compatible gamepad. Adapt any USB HID device with full remapping. See keyboard adapter example.
- PS4/PS5 compatible arcade stick. Similar to the above, this comes with certain caveats. You will need an officially licensed PS4 arcade stick (not a DualShock 4) or a dongle like Mayflash MagicBoots PS4 v1.1 or PXN N5. Plug it into a hub along with the device you want to use. On the PS5 it's only compatible with certain games (mostly fighting games).
Remapping things like the d-pad and joystick axes currently requires the use of (very simple) expressions. I hope to make this simpler in the future.
Other changes:
- Registers can now be mapping inputs. This way one expression can generate multiple outputs.
- Monitor tab now works on the Bluetooth version.
Be sure to also flash the B side when you upgrade to this version on the dual Pico and custom board (v1/v2) variants.
Please note the Bluetooth version doesn't currently have the ability to switch Vendor ID/Product ID based on the emulated device type so it won't work with Nintendo Switch. It also doesn't have a USB input so it won't be able to use another device for PS4 authentication.
r2023-07-19
This release has some significant internal changes, but if you're not using expressions, you will likely not notice any difference.
Be sure to flash the B side when you upgrade to this version on the dual Pico and custom board variants.
- USB timing improvements. Input/output USB clocks are now synchronized on the single Pico version, resulting in fixed 0.85ms latency. On the dual Pico version, latency should be between around 0.5 and 1.5ms.
- Expression registers. You can now store values in registers and fetch them later using new
store
andrecall
expression operations. Could be used for running averages, counters, etc. See the auto-clicker example. - New expression operations:
prev_input_state
,prev_input_state_binary
,sqrt
,atan2
,round
. - Because all expressions are now evaluated once per millisecond, regardless of their use in mappings, using
auto_repeat
is no longer necessary andscaling
can no longer be used for quick parametrization (they both now always return 1). - LED behavior of side B of dual Pico version is now consistent with side A.
r2023-07-07
- Adds special handling for a new variant of Elecom Huge wireless trackball (056e:011c) so that Fn1, Fn2, Fn3 buttons work.
- Makes the "unique" device names a bit more unique. This means your device name will change after flashing this release.