Commit Graph

858 Commits

Author SHA1 Message Date
László Monda
8666a495d8 Set KEY_DEBOUNCER_TIMEOUT_MSEC from 15 to 20 ms. 2018-02-17 21:37:02 +01:00
Kristian Sloth Lauszus
33bbf44199 Fix system keyboard descriptor, so it is byte-aligned (#93)
I have verified that the descriptor shows up correctly on Windows 7 and macOS

The descriptor is based on the two following pages: https://github.com/Microsoft/Windows-driver-samples/tree/master/hid/hidusbfx2 and https://docs.microsoft.com/en-us/windows-hardware/drivers/gpiobtn/hid-button-report-descriptors

Fixes #76
2018-02-14 00:27:53 +01:00
László Monda
f8fd99f588 Set KEY_DEBOUNCER_TIMEOUT_MSEC from 10 to 15 msec. 2018-02-12 18:08:53 +01:00
Kristian Sloth Lauszus
fa8c9dc907 Logical maximum is wrongly assumed to be an unsigned integer, thus 0xFF is interpreted as -1 and not 255 (#92)
Simply setting the number of bits to 16 solves this
2018-02-12 04:51:59 +01:00
László Monda
0911e67bf6 Fix the coding style of usb_interface_basic_keyboard.c 2018-02-11 22:28:12 +01:00
László Monda
57a7cee62a Remove debug statements from updateActiveUsbReports() 2018-02-11 22:25:29 +01:00
Kristian Sloth Lauszus
1af28a79db Detect Caps Lock state and set the LED accordingly (#91)
Fixes #65
2018-02-11 12:45:46 +01:00
László Monda
2c9a6c0bd2 Add doubleTapSwitchLayerReleaseTimeout and set it to 100ms. Resolves #79. 2018-02-11 04:09:15 +01:00
László Monda
0c94cbb256 Make doubleTapSwitchLayerKey and doubleTapSwitchLayerStartTime static. 2018-02-11 03:29:15 +01:00
László Monda
8a655e3cfd Lock layers every time when double-tapping their layer switcher keys. Fixes #81. 2018-02-10 23:53:35 +01:00
László Monda
a0803875c4 Make UsbCommand_GetModuleProperty() branch based on modulePropertyId 2018-01-15 00:04:22 +01:00
László Monda
f5716bdadc Rename some private functions in init_peripherals.c from upper to lower camel case. 2018-01-14 20:30:46 +01:00
László Monda
b76b3c0e4f Slow down main bus I2C baud rate to 30kHz when BusPal is on to make firmware transfer more robust. 2018-01-14 20:27:17 +01:00
László Monda
2661c3d909 Implement DevicePropertyId_Uptime 2018-01-14 18:32:18 +01:00
László Monda
c854e98d84 Implement DevicePropertyId_I2cMainBusBaudRate 2018-01-14 18:10:04 +01:00
László Monda
72d8e49717 Make UsbProtocolHandler() invoke UsbCommand_SetI2cBaudRate() when requested. 2018-01-13 19:54:48 +01:00
László Monda
0fd95b71b2 Add usb_command_set_i2c_baud_rate.[ch] 2018-01-13 03:54:06 +01:00
László Monda
4d83bc2e75 Add I2cMainBusBaudRateBps 2018-01-13 03:29:01 +01:00
László Monda
cf7b05ab72 Make InitI2cMainBus() private. 2018-01-13 03:21:12 +01:00
László Monda
055f1945d0 Include slave_scheduler.h from init_peripherals.c instead of i2c_watchdog.c which I forgot to do in the previous commit. 2018-01-13 03:19:24 +01:00
László Monda
fa4a3abf84 Extract ReinitI2cMainBus() 2018-01-13 03:14:42 +01:00
László Monda
96c7ccd758 Remove some dead code from PIT_I2C_WATCHDOG_HANDLER 2018-01-13 03:03:42 +01:00
László Monda
76d319ec19 Remove comment that says that 100 kHz works with a 20 meter long bridge cable. It was true for UART, not so much for I2C. 2018-01-11 23:44:59 +01:00
László Monda
4a4c471b9e Implement DevicePropertyId_CurrentKbootCommand 2018-01-10 02:58:31 +01:00
László Monda
fcd75b2af2 Use identifiers instead of the magic numbers of kboot_driver.[ch] 2018-01-06 21:21:36 +01:00
László Monda
f318c6872e Move the definition of previousSlave within the if (isFirstCycle) block. 2018-01-06 17:25:07 +01:00
László Monda
ae1240c103 Rename isFirstIteration to isFirstCycle and kStatus_Uhk_NoTransfer to kStatus_Uhk_IdleCycle. 2018-01-06 17:05:37 +01:00
László Monda
e75d366245 Update and log previous I2C status within the if (isFirstIteration) block. 2018-01-06 17:00:59 +01:00
László Monda
da20cdacc4 Only check currentSlaveId overrun after incrementing it. 2018-01-06 16:36:57 +01:00
László Monda
5a986d367e Only call LogI2cError() if the passed status is an actual I2C error, otherwise it slows the mouse pointer down. 2018-01-06 02:04:47 +01:00
László Monda
f6b66283a7 Only count I2C errors. 2018-01-06 01:37:58 +01:00
László Monda
6ad425cbf9 Log I2C error counts on a per slave and per error type basis and expose them via USB. 2018-01-05 03:23:48 +01:00
László Monda
33e501cd83 Add SLAVE_COUNT 2018-01-04 23:16:48 +01:00
László Monda
fa558abef3 Add LED_DRIVERS_ENABLED 2017-12-28 00:08:29 +01:00
László Monda
1ac637af0f Rename the GetProperty command to GetDeviceProperty. 2017-12-23 16:11:47 +01:00
László Monda
36951d1a34 Minor cleanups regarding the previous rename. 2017-12-23 16:08:45 +01:00
László Monda
5190265a2c Rename get_module_properties.[ch] to get_module_property.[ch]. It seems that the header wasn't included in usb_protocol_handler.c possibly causing issues when using these commands. 2017-12-23 16:06:24 +01:00
László Monda
85e92d21b4 Add new UsbCommand_GetModuleProperties() device protocol command. 2017-12-15 02:46:30 +01:00
László Monda
fd43e81e46 Query module key count and pointer count in separate messages instead of a combined message for better clarity. 2017-12-15 02:13:58 +01:00
László Monda
c994a97d03 Make the modules transfer their firmware version to the device. Fix the message length of the module protocol version. 2017-12-15 01:42:58 +01:00
László Monda
d59ba83d99 Make the modules transfer a module protocol version composed of a major, a minor and a patch number. 2017-12-15 01:28:13 +01:00
László Monda
c1b887cea8 Rename UhkModulePhase_*ProtocolVersion to UhkModulePhase_*ModuleProtocolVersion. 2017-12-15 01:16:27 +01:00
László Monda
bd53b73685 Rename usb_command_get_keyboard_state.[ch] to usb_command_get_device_state.[ch] 2017-12-14 23:10:13 +01:00
László Monda
83e782d74a Remove DevicePropertyId_HardwareConfigSize and DevicePropertyId_UserConfigSize 2017-12-14 21:49:15 +01:00
László Monda
312f56048b Add DevicePropertyId_ConfigSizes. 2017-12-14 16:40:44 +01:00
László Monda
494621a841 Expose version numbers via the get property interface. 2017-12-14 16:16:11 +01:00
László Monda
23459e3791 Don't make horizontal scrolling and vertical scrolling affect each other. 2017-12-14 01:30:06 +01:00
László Monda
6a54944cb1 Make UsbCommand_JumpToModuleBootloader() more robust by not making it dependent on the state of the module driver. 2017-12-13 01:27:04 +01:00
László Monda
28f98f179a Change the value of UsbCommandId_{GetDeviceState,SetTestLed,GetDebugBuffer,GetAdcValue,SetLedPwmBrightness}. 2017-12-12 18:38:01 +01:00
László Monda
5798f9e4fb Refactor UsbCommandId_LaunchEepromTransfer, change its arguments, and change its ID to 0x08. 2017-12-12 03:24:34 +01:00