Commit Graph

1387 Commits

Author SHA1 Message Date
Kristian Sloth Lauszus
e12e219b4e Various fixes and improvements (#96)
* Global variables shared between an interrupt and the main code should be volatile

See: https://www.embedded.com/electronics-blogs/beginner-s-corner/4023801/Introduction-to-the-Volatile-Keyword

* There is no reason to change the active report if it has not changed

* Declare local functions and variables static

This both helps the compiler and the programmer
2018-03-11 19:19:15 +01:00
Kristian Sloth Lauszus
1742437f8b Replace HID_KEYBOARD_SC_MENU scancode with HID_KEYBOARD_SC_APPLICATION (#95)
Fixes https://github.com/UltimateHackingKeyboard/agent/issues/563
2018-03-11 02:31:40 +01:00
László Monda
5093a0c0a6 Bump version to 8.1.4. Update changelog, package.json, and versions.h v8.1.4 2018-03-05 15:57:14 +01:00
László Monda
7e524d97b1 Don't read (the default 250ms) DoubleTapSwitchLayerTimeout from the user configuration but rather set it to 150ms which feels quite optimal. 2018-03-05 10:16:58 +01:00
László Monda
2e53331a0f Set KEY_DEBOUNCER_TIMEOUT_MSEC to 30. This looks like a safe bet to eliminate key chattering for every switch. 2018-02-27 23:01:39 +01:00
László Monda
c6d60780f4 Bump version to 8.1.3 and update package.json, versions.h and the changelog accordingly. v8.1.3 2018-02-18 00:46:17 +01:00
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
cc49118868 Bump version to 8.1.2. Update changelog, package.json, versions.h and reference the latest Agent repo. v8.1.2 2018-02-13 03:31:35 +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
6881f8e340 Update versions.h to 8.1.1 v8.1.1 2018-02-11 04:23:31 +01:00
László Monda
00cd1f65e8 Bump version to 8.1.1. Update package.json and the changelog. 2018-02-11 04:21:49 +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
275bfee860 Merge branch 'master' of github.com:UltimateHackingKeyboard/firmware 2018-02-10 23:55:48 +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
8521619783 Update README.md 2018-02-05 02:24:10 +01:00
László Monda
62184240df Update README.md 2018-02-05 02:03:56 +01:00
László Monda
0b210ac68e Update README.md 2018-02-01 18:39:20 +01:00
László Monda
56f7753afc Bump firmware version to 8.1.0 and update changelog, package.json, and versions.h v8.1.0 8.1.0 2018-01-15 10:35:22 +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
aab0e8473f Enable left half I2C watchdog in reinit mode because it seems to improve things. 2018-01-11 23:43:34 +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
25a2b3af93 Convert tabs to spaces. 2017-12-27 17:21:28 +01:00