- Caps lock / Num lock didn't correctly remember output B state
- Windows relative mouse was jumping from secondary to primary
- Fixed NKRO keyboards without report ID
- IMPORTANT: moved config shortcut to LEFT CTRL + RIGHT SHIFT + C + O
because users had issues with keyboards unable to send both
shifts. Sorry for changing this.
- add gaming mode (use left shift + right shift + G to toggle)
- rework HID queue, smoother operation of rotary dials (no packets lost)
- fix dragging across multiple screens on the same output
- improve read reliability for UI
- move default keyboard hotkey for output switching to LCtrl + Caps Lock
- change default X/Y speed to match 16:9 geometry
- Fixed screen lock regression bug
- Cleaned up trailing spaces
Due to MacOS having issues:
- Moved screen lock shortcut to right control + L
- Moved switch lock shortcut to right control + K
- Single unified firmware binary
- Improved support for NKRO keyboards
- Report mode default for keyboard port
- Improved consumer control parser for variable
data types (media keys should be better supported)
- System control forwarding
- Improved HID parser
- Web UI to configure instead of keyboard shortcuts
- Firmware upgrade while the device remains functional
- Only one end will need upgrade, the other will get it automatically
- No need to recompile to set most settings
- Improved UART routines to use DMA, more reliable link
- Fixed a bunch of bugs and issues
- Implement fix for keyboards not switching to boot mode properly, until full report parsing gets done.
This is expected to improve support for certain models that were reported problematic.
- Implement fix for mouse acceleration omitting absolute mode
- Provide pass_to_os = true to not capture shift+backspace from the OS, it's annoying when you hold shift
and mistype something, then want to use backspace but couldn't.
- add mouse acceleration (configurable in user_config.h)
- add keyboard shortcuts for output configuration
- after several reports, bundling pico-sdk and tinyusb to simplify building
- bugfixes
- Auto switch-lock when dragging or resizing windows.
* This was super annoying for me, resizing a window and you
get too close to the left border, making it shrink suddenly.
Now if you drag while holding a mouse button pressed, it will
not switch.
- Added Mac OS multiple desktop workaround
* you need to tweak defaults.c and set screen_count to e.g. 2 if
you have 2 desktops on a single mac output, and set OUTPUT_A_OS
(or OUTPUT_B_OS) to MACOS in user_config.h, then rebuild
* This will be keyboard-configurable in the future without rebuilding
* Support still experimental
- HID report protocol default for port B
- Added support for swapping output order
* defaults.c, output has "pos" you can set to either LEFT or RIGHT
* this will be hotkey-configurable
- Bugfixes
- Added debugging mode (serial CDC device for printf things)
- Refactored screensaver a bit
- Code refactor, still far from great but a bit less crappy
- Unify behavior - Mouse Zoom feature was made toggle and
moved from ALT to Right ALT + Right CTRL to avoid interfering
with OS
- Added optional screensaver "Pong" mode, prevents sleep and it's fun
- Updated README
- Added more visible pin1 marking on PCB for digital isolator
- Marked pins to solder with a star *
- Added checksum and version format support for flash config
- Support for storing config in flash
- Support for keyboard and mouse in any port (hopefully)
- Single-sided operation should work with a USB hub
- Added mouse switch cursor height/offset simple calibration
- Added per-screen settings support
- Mouse speed is configurable per-screen and per-axis
- Small fixes and cleanup
- Added LED feedback
- Updated documentation for usage guide
Kindly assigned by the Raspberry Pi foundation, the project got its own
VID/PID so removing the current "test" one and adding this one. No other
changes.
==========================
Added 1000 Hz polling.
(Hopefully) fixed Logitech mouse issues
Removed special treatment for 12 and 16-bit mice
Increased mouse queue size
Increased current allowance from 100mA to 500mA
Allow mouse to wake up a suspended host
Added memory usage print to build
Updated README
- Added link to troubleshooting wiki
- Mouse polling rate chart
- Updated known issues
- Updates about possible PCB/assembly ordering
Interesting things happen when TinyUSB is used both for host and device.
bool tusb_inited(void)
{
bool ret = false;
ret = ret || tud_inited();
ret = ret || tuh_inited();
return ret;
}
-> This is effectively tud_inited() || tuh_inited(), which is great
but tuh_task() should check tuh_inited() not tusb_inited(). This way,
tusb_inited() returns true when tinyusb device gets inited correctly
and tuh_task gets stuck in an endless loop with watchdog rebooting the
device.
Some of the features implemented in this release are:
- TinyUSB used to handle HOST management as well
- USB hub support (tried an ancient one and it worked)
- Early and buggy support for mouse on the keyboard side
but have no unified usb receivers to test
- Rudimentary HID report descriptor parsing, support for
mice that don't send wheel data unless in report protocol mode
- Implemented queueing for keyboard/mouse messages with
hid report send verification
- Split firmware upgrade shortcut to two
now it's left-shift + F12 + A + right shift to write board A
left-shift + F12 + B + right shift to write board B
- Fixed keyboard stuck in outputing chars if you hold down a key
and change screens while doing it
- Implemented cursor hiding, so the screen we are moving away from
parks cursor at top right corner and it looks more natural and
feels intuitive
- Implemented switch lock, use Ctrl + L to lock and unlock
desktop switching
- Implemented jump threshold, works like barrier opacity - you can
define if mouse immediately jumps over or you need to give it a bit
of a "nudge"