László Monda
05bbd28877
Maintain the states of previous key states.
2017-11-03 13:43:16 +01:00
László Monda
b18cb651ce
Leave the active layer active even if another layer switcher key gets pressed while holding it.
2017-11-03 12:49:55 +01:00
László Monda
88fac5c1ff
Rename key_matrix_instance.[ch] to right_key_matrix.[ch]
2017-11-03 03:30:14 +01:00
László Monda
fe2e611bb1
Update KeyStates[SlotId_RightKeyboardHalf] within usb_report_updater.c instead of main.c
2017-11-03 03:22:56 +01:00
László Monda
599b78a676
Don't expose UpdateUsbReports() anymore.
2017-11-03 03:20:08 +01:00
László Monda
a0a162ae9e
Extend key states to include not only the current state but also the previous state and suppressed state.
2017-11-03 03:17:46 +01:00
László Monda
e0868ac866
Rename CurrentKeyStates to KeyStates and move it to the newly created key_states.[ch]
2017-11-03 02:46:34 +01:00
László Monda
31b7dddef4
Read the new UserConfig.userConfigLength field.
2017-11-02 23:10:22 +01:00
László Monda
ecf7f10b9c
Exchange Ctrl and Alt according to the official UHK default keymap.
2017-11-02 22:03:43 +01:00
László Monda
2aaef66d85
Convert LAYER_ID_* macros to LayerId_* enum values.
2017-11-02 21:48:30 +01:00
László Monda
00dfd96d55
Instead of scanning the keyboard matrix from the main loop and utilizing busy loops, try to use a PIT interrupt handler to do the same thing, scanning one row per interrupt call without busy loops.
...
For some reason, this makes the movement of the mouse pointer very slow and makes it jump from time to time, so I ended up adding INTERRUPT_KEY_SCANNER and disabling the timer interrupt.
Also double bufferred the mouse report just like the others. Unfortunately this does not affect this issue.
2017-11-02 01:11:41 +01:00
László Monda
ba5a49f7d1
Hoist {left,right}/build/kds/* to {left,right}/build to simplify the directory hierarchy.
2017-10-31 23:11:22 +01:00
László Monda
1d7790f74e
Generate .hex files instead of .srec for the right half firmware.
2017-10-29 22:27:47 +01:00
László Monda
808d916687
Clean up .cproject and .gitignore files after the rename of the build and run configurations.
2017-10-29 22:04:48 +01:00
László Monda
52bb02bc3d
Rename build and run configurations to reflect device ids.
2017-10-29 21:54:02 +01:00
László Monda
72b279841c
Port the blhost-unix.sh firmware update script of the right keyboard half to ShellJS resulting in update-master-firmware.js
2017-10-29 18:20:13 +01:00
László Monda
cf007f81bd
Merge branch 'master' into add-device-name
2017-10-28 18:46:46 +02:00
László Monda
569493cbfa
Add UsbDebugInfo to aid future debugging via USB.
2017-10-28 17:12:52 +02:00
László Monda
f0a98eebb5
Set the initial keymap abbrivation to FTY (for factory keymap).
2017-10-26 20:32:19 +02:00
László Monda
55e4997ea2
Make the system keyboard descriptor play nicely with OSX.
2017-10-26 18:22:37 +02:00
László Monda
5642ab29a1
Reorder USB interfaces in usb_device_config.h, too.
2017-10-26 01:12:51 +02:00
László Monda
6bdd320ed8
Reorder USB interfaces all across the codebase in the following order: generic HID, basic keyboard, media keyboard, system keyboard, mouse.
2017-10-26 00:52:20 +02:00
László Monda
c77286512c
Reset keyboard reports just before changing them by UpdateActiveUsbReports(). This seems to completely solve the repeated media key issue.
2017-10-25 18:31:52 +02:00
László Monda
85b1a65ea7
Implement KbootCommand_Ping and set set left BOOTLOADER_TIMEOUT_MS back to 100 ms.
2017-10-23 21:33:08 +02:00
László Monda
c46dcad490
Use reenumerate.js instead of jump-to-bootloader.js and make left/blhost-unix.sh handle argument related errors.
2017-10-23 16:52:15 +02:00
László Monda
ab807cd0c8
Make sendKbootCommand() accept various command types, not only reset.
2017-10-23 01:19:19 +02:00
László Monda
92ee3b5606
Add KBOOT I2C slave driver, its related USB command, and make the firmware updater script of the left half successfully reset the left half after firmware update.
2017-10-22 02:17:43 +02:00
László Monda
e57d199b40
Move FIXED_BUSPAL_BOOTLOADER to buspal/command.c
2017-10-21 03:53:01 +02:00
László Monda
95faf64b76
Remove the now unused FORCE_BUSPAL macro.
2017-10-21 03:50:07 +02:00
László Monda
89fef3d933
Upon receiving the reset BusPal command, reset the MCU and reenumerate in normal keyboard mode.
2017-10-21 01:29:05 +02:00
László Monda
25f8017879
Get rid of the now obsoleted bootloader_config.h
2017-10-20 00:52:32 +02:00
László Monda
968c6c0416
Call NVIC_SystemReset() instead of custom code.
2017-10-20 00:34:01 +02:00
László Monda
3d46584b79
Don't try to npm install the dependencies of jump-to-bootloader.js but rather display instructions.
2017-10-20 00:31:06 +02:00
László Monda
37c90cc4a7
Fix indentation.
2017-10-17 00:30:03 +02:00
László Monda
b3e025f443
Make reenumerate() set Wormhole.timeoutMs based on GenericHidInBuffer+2
2017-10-16 23:26:37 +02:00
László Monda
84b304fe02
Read (and ignore) device name.
2017-10-14 15:54:38 +02:00
László Monda
53cb8aa129
Delete armgcc build scripts because they aren't planned to be used anymore.
2017-10-14 13:04:39 +02:00
László Monda
0b120a3286
Fix generic HID descriptor enumeration error by making UsbGenericHidReportDescriptor extern.
2017-10-13 22:49:09 +02:00
László Monda
d4200524d7
Make the firmware depend of the wormhole.[ch] files of the bootloader. Remove local wormhole.[ch] files.
2017-10-13 22:09:52 +02:00
László Monda
ef34094004
Add jump to slave bootloader command.
2017-10-12 19:57:41 +02:00
László Monda
302a750621
Improve file according to our coding standards.
2017-10-07 16:37:20 +02:00
László Monda
9f411dc1d4
Throw ParserError_InvalidKeymapCount if keymapCount == 0.
2017-10-06 23:37:05 +02:00
László Monda
fd7f2c3b25
Expose the currently attached module ids via getKeyboardState()
2017-10-05 20:53:15 +02:00
László Monda
8c067b9190
Use UhkModuleDriverId_* enum values instead of magic numbers wherever possible.
2017-10-05 20:36:29 +02:00
László Monda
bea13f063a
UpperCamelCase UhkModuleStates now that it's a global.
2017-10-05 20:27:57 +02:00
László Monda
9842a6ff60
Merge UhkModuleVars into uhkModuleStates. Also make uhkModuleStates globally accessible because it must be accessed by other parts of the firmware, so it's unpractical to keep it private and write accessor functions for it.
2017-10-05 20:18:57 +02:00
László Monda
f8e83b139d
Rerequest transfer if CRC is invalid.
2017-10-05 20:02:12 +02:00
László Monda
6be45c4521
Add uhk_module_state_t->isEnumerated and maintain its state.
2017-10-05 19:56:26 +02:00
László Monda
a9ba8a1907
Remove redundant module members.
2017-10-05 19:51:15 +02:00
László Monda
96eb2ef7a3
Make slaves send their protocol version to the master.
2017-10-05 17:55:59 +02:00