Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc49118868 | ||
|
|
f8fd99f588 | ||
|
|
fa8c9dc907 | ||
|
|
0911e67bf6 | ||
|
|
57a7cee62a | ||
|
|
1af28a79db |
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is loosely based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
The format is loosely based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||||
and this project adheres to the [UHK Versioning](VERSIONING.md) conventions.
|
and this project adheres to the [UHK Versioning](VERSIONING.md) conventions.
|
||||||
|
|
||||||
|
## [8.1.2] - 2018-02-13
|
||||||
|
|
||||||
|
Device Protocol: 4.2.0 | Module Protocol: 4.0.0 | User Config: 4.0.0 | Hardware Config: 1.0.0
|
||||||
|
|
||||||
|
- Detect Caps Lock USB state and light up the Caps Lock icon of the LED display accordingly.
|
||||||
|
- Set key debounce timeout from 10ms to 15ms. This should at least reduce and hopefully eliminate key chattering.
|
||||||
|
|
||||||
## [8.1.1] - 2018-02-11
|
## [8.1.1] - 2018-02-11
|
||||||
|
|
||||||
Device Protocol: 4.2.0 | Module Protocol: 4.0.0 | User Config: 4.0.0 | Hardware Config: 1.0.0
|
Device Protocol: 4.2.0 | Module Protocol: 4.0.0 | User Config: 4.0.0 | Hardware Config: 1.0.0
|
||||||
@@ -75,7 +82,7 @@ Device Protocol: 2.0.0 | Module Protocol: 3.0.0 | User Config: **3.0.0** | Hardw
|
|||||||
|
|
||||||
- Implement mouse movement and scrolling deceleration and acceleration.
|
- Implement mouse movement and scrolling deceleration and acceleration.
|
||||||
- Toggle layers upon double tapping their keys. Make the double tap timeout configurable.
|
- Toggle layers upon double tapping their keys. Make the double tap timeout configurable.
|
||||||
- Make the parser read additional user configuration properties: USERCONFIGMajorVersion, USERCONFIGMinorVersion, USERCONFIGPatchVersion, doubleTapSwitchLayerTimeout, iconsAndLayerTextsBrightness, alphanumericSegmentsBrightness, keyBacklightBrightness, mouseMoveInitialSpeed, mouseMoveAcceleration, mouseMoveDeceleratedSpeed, mouseMoveBaseSpeed, mouseMoveAcceleratedSpeed, mouseScrollInitialSpeed, mouseScrollAcceleration, mouseScrollDeceleratedSpeed, mouseScrollBaseSpeed, mouseScrollAcceleratedSpeed. `USERCONFIG:MAJOR`
|
- Make the parser read additional user configuration properties: userConfigMajorVersion, userConfigMinorVersion, userConfigPatchVersion, doubleTapSwitchLayerTimeout, iconsAndLayerTextsBrightness, alphanumericSegmentsBrightness, keyBacklightBrightness, mouseMoveInitialSpeed, mouseMoveAcceleration, mouseMoveDeceleratedSpeed, mouseMoveBaseSpeed, mouseMoveAcceleratedSpeed, mouseScrollInitialSpeed, mouseScrollAcceleration, mouseScrollDeceleratedSpeed, mouseScrollBaseSpeed, mouseScrollAcceleratedSpeed. `USERCONFIG:MAJOR`
|
||||||
|
|
||||||
## [3.0.0] - 2017-11-15
|
## [3.0.0] - 2017-11-15
|
||||||
|
|
||||||
|
|||||||
1
left/build/.gitignore
vendored
1
left/build/.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
/.settings/
|
/.settings/
|
||||||
/uhk60-left_debug/
|
/uhk60-left_debug/
|
||||||
/uhk60-left_release/
|
/uhk60-left_release/
|
||||||
|
/uhk60-left_release/
|
||||||
|
|||||||
Submodule lib/agent updated: dd973c80ea...9beadb4aac
@@ -9,7 +9,7 @@
|
|||||||
// Macros:
|
// Macros:
|
||||||
|
|
||||||
#define KEY_DEBOUNCER_INTERVAL_MSEC 1
|
#define KEY_DEBOUNCER_INTERVAL_MSEC 1
|
||||||
#define KEY_DEBOUNCER_TIMEOUT_MSEC 10
|
#define KEY_DEBOUNCER_TIMEOUT_MSEC 15
|
||||||
|
|
||||||
// Functions:
|
// Functions:
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ uint8_t UsbBasicKeyboardReportDescriptor[USB_BASIC_KEYBOARD_REPORT_DESCRIPTOR_LE
|
|||||||
|
|
||||||
// Scancodes
|
// Scancodes
|
||||||
HID_RI_LOGICAL_MINIMUM(8, 0x00),
|
HID_RI_LOGICAL_MINIMUM(8, 0x00),
|
||||||
HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
|
HID_RI_LOGICAL_MAXIMUM(16, 0xFF),
|
||||||
HID_RI_USAGE_PAGE(8, HID_RI_USAGE_PAGE_KEY_CODES),
|
HID_RI_USAGE_PAGE(8, HID_RI_USAGE_PAGE_KEY_CODES),
|
||||||
HID_RI_USAGE_MINIMUM(8, 0x00),
|
HID_RI_USAGE_MINIMUM(8, 0x00),
|
||||||
HID_RI_USAGE_MAXIMUM(8, 0xFF),
|
HID_RI_USAGE_MAXIMUM(8, 0xFF),
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
// Macros:
|
// Macros:
|
||||||
|
|
||||||
#define USB_BASIC_KEYBOARD_REPORT_DESCRIPTOR_LENGTH 63
|
#define USB_BASIC_KEYBOARD_REPORT_DESCRIPTOR_LENGTH 64
|
||||||
#define USB_BASIC_KEYBOARD_MAX_KEYS 6
|
#define USB_BASIC_KEYBOARD_MAX_KEYS 6
|
||||||
|
|
||||||
// Variables:
|
// Variables:
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ uint8_t UsbGenericHidReportDescriptor[USB_GENERIC_HID_REPORT_DESCRIPTOR_LENGTH]
|
|||||||
// Input flowing from device to host
|
// Input flowing from device to host
|
||||||
HID_RI_USAGE(8, USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_DATA_IN),
|
HID_RI_USAGE(8, USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_DATA_IN),
|
||||||
HID_RI_LOGICAL_MINIMUM(8, 0x00),
|
HID_RI_LOGICAL_MINIMUM(8, 0x00),
|
||||||
HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
|
HID_RI_LOGICAL_MAXIMUM(16, 0xFF),
|
||||||
HID_RI_REPORT_SIZE(8, 0x08),
|
HID_RI_REPORT_SIZE(8, 0x08),
|
||||||
HID_RI_REPORT_COUNT(8, USB_GENERIC_HID_INTERRUPT_IN_PACKET_SIZE),
|
HID_RI_REPORT_COUNT(8, USB_GENERIC_HID_INTERRUPT_IN_PACKET_SIZE),
|
||||||
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
|
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
|
||||||
@@ -18,7 +18,7 @@ uint8_t UsbGenericHidReportDescriptor[USB_GENERIC_HID_REPORT_DESCRIPTOR_LENGTH]
|
|||||||
// Output flowing from host to device
|
// Output flowing from host to device
|
||||||
HID_RI_USAGE(8, USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_DATA_OUT),
|
HID_RI_USAGE(8, USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_DATA_OUT),
|
||||||
HID_RI_LOGICAL_MINIMUM(8, 0x00),
|
HID_RI_LOGICAL_MINIMUM(8, 0x00),
|
||||||
HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
|
HID_RI_LOGICAL_MAXIMUM(16, 0xFF),
|
||||||
HID_RI_REPORT_SIZE(8, 0x08),
|
HID_RI_REPORT_SIZE(8, 0x08),
|
||||||
HID_RI_REPORT_COUNT(8, USB_GENERIC_HID_INTERRUPT_OUT_PACKET_SIZE),
|
HID_RI_REPORT_COUNT(8, USB_GENERIC_HID_INTERRUPT_OUT_PACKET_SIZE),
|
||||||
HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
|
HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
// Macros:
|
// Macros:
|
||||||
|
|
||||||
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_LENGTH 31
|
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_LENGTH 33
|
||||||
|
|
||||||
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_PAGE_INDEX 0x80
|
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_PAGE_INDEX 0x80
|
||||||
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_COLLECTION 0x81
|
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_COLLECTION 0x81
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
|
#include "led_display.h"
|
||||||
#include "usb_composite_device.h"
|
#include "usb_composite_device.h"
|
||||||
|
|
||||||
static usb_basic_keyboard_report_t usbBasicKeyboardReports[2];
|
static usb_basic_keyboard_report_t usbBasicKeyboardReports[2];
|
||||||
uint32_t UsbBasicKeyboardActionCounter;
|
uint32_t UsbBasicKeyboardActionCounter;
|
||||||
usb_basic_keyboard_report_t* ActiveUsbBasicKeyboardReport = usbBasicKeyboardReports;
|
usb_basic_keyboard_report_t* ActiveUsbBasicKeyboardReport = usbBasicKeyboardReports;
|
||||||
bool IsUsbBasicKeyboardReportSent = false;
|
bool IsUsbBasicKeyboardReportSent = false;
|
||||||
|
static uint8_t usbBasicKeyboardInBuffer[USB_BASIC_KEYBOARD_REPORT_LENGTH];
|
||||||
|
|
||||||
usb_basic_keyboard_report_t* getInactiveUsbBasicKeyboardReport(void)
|
usb_basic_keyboard_report_t* getInactiveUsbBasicKeyboardReport(void)
|
||||||
{
|
{
|
||||||
@@ -41,10 +43,28 @@ usb_status_t UsbBasicKeyboardCallback(class_handle_t handle, uint32_t event, voi
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case kUSB_DeviceHidEventGetReport:
|
case kUSB_DeviceHidEventGetReport:
|
||||||
case kUSB_DeviceHidEventSetReport:
|
|
||||||
case kUSB_DeviceHidEventRequestReportBuffer:
|
|
||||||
error = kStatus_USB_InvalidRequest;
|
error = kStatus_USB_InvalidRequest;
|
||||||
break;
|
break;
|
||||||
|
case kUSB_DeviceHidEventSetReport: {
|
||||||
|
usb_device_hid_report_struct_t *report = (usb_device_hid_report_struct_t*)param;
|
||||||
|
if (report->reportType == USB_DEVICE_HID_REQUEST_GET_REPORT_TYPE_OUPUT && report->reportId == 0 && report->reportLength == 1) {
|
||||||
|
LedDisplay_SetIcon(LedDisplayIcon_CapsLock, report->reportBuffer[0] & HID_KEYBOARD_LED_CAPSLOCK);
|
||||||
|
error = kStatus_USB_Success;
|
||||||
|
} else {
|
||||||
|
error = kStatus_USB_InvalidRequest;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case kUSB_DeviceHidEventRequestReportBuffer: {
|
||||||
|
usb_device_hid_report_struct_t *report = (usb_device_hid_report_struct_t*)param;
|
||||||
|
if (report->reportLength <= USB_BASIC_KEYBOARD_REPORT_LENGTH) {
|
||||||
|
report->reportBuffer = usbBasicKeyboardInBuffer;
|
||||||
|
error = kStatus_USB_Success;
|
||||||
|
} else {
|
||||||
|
error = kStatus_USB_InvalidRequest;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case kUSB_DeviceHidEventGetIdle:
|
case kUSB_DeviceHidEventGetIdle:
|
||||||
case kUSB_DeviceHidEventGetProtocol:
|
case kUSB_DeviceHidEventGetProtocol:
|
||||||
case kUSB_DeviceHidEventSetIdle:
|
case kUSB_DeviceHidEventSetIdle:
|
||||||
|
|||||||
@@ -265,10 +265,8 @@ static uint8_t secondaryRoleSlotId;
|
|||||||
static uint8_t secondaryRoleKeyId;
|
static uint8_t secondaryRoleKeyId;
|
||||||
static secondary_role_t secondaryRole;
|
static secondary_role_t secondaryRole;
|
||||||
|
|
||||||
#define pos 35
|
|
||||||
void updateActiveUsbReports(void)
|
void updateActiveUsbReports(void)
|
||||||
{
|
{
|
||||||
SetDebugBufferUint32(pos, 1);
|
|
||||||
memset(activeMouseStates, 0, ACTIVE_MOUSE_STATES_COUNT);
|
memset(activeMouseStates, 0, ACTIVE_MOUSE_STATES_COUNT);
|
||||||
|
|
||||||
static uint8_t previousModifiers = 0;
|
static uint8_t previousModifiers = 0;
|
||||||
@@ -300,7 +298,6 @@ void updateActiveUsbReports(void)
|
|||||||
memcpy(&ActiveUsbSystemKeyboardReport, &MacroSystemKeyboardReport, sizeof MacroSystemKeyboardReport);
|
memcpy(&ActiveUsbSystemKeyboardReport, &MacroSystemKeyboardReport, sizeof MacroSystemKeyboardReport);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SetDebugBufferUint32(pos, 2);
|
|
||||||
|
|
||||||
for (uint8_t slotId=0; slotId<SLOT_COUNT; slotId++) {
|
for (uint8_t slotId=0; slotId<SLOT_COUNT; slotId++) {
|
||||||
for (uint8_t keyId=0; keyId<MAX_KEY_COUNT_PER_MODULE; keyId++) {
|
for (uint8_t keyId=0; keyId<MAX_KEY_COUNT_PER_MODULE; keyId++) {
|
||||||
@@ -354,10 +351,8 @@ void updateActiveUsbReports(void)
|
|||||||
keyState->previous = keyState->current;
|
keyState->previous = keyState->current;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SetDebugBufferUint32(pos, 4);
|
|
||||||
|
|
||||||
processMouseActions();
|
processMouseActions();
|
||||||
SetDebugBufferUint32(pos, 5);
|
|
||||||
|
|
||||||
// When a layer switcher key gets pressed along with another key that produces some modifiers
|
// When a layer switcher key gets pressed along with another key that produces some modifiers
|
||||||
// and the accomanying key gets released then keep the related modifiers active a long as the
|
// and the accomanying key gets released then keep the related modifiers active a long as the
|
||||||
@@ -372,7 +367,6 @@ void updateActiveUsbReports(void)
|
|||||||
|
|
||||||
previousModifiers = ActiveUsbBasicKeyboardReport->modifiers;
|
previousModifiers = ActiveUsbBasicKeyboardReport->modifiers;
|
||||||
previousLayer = activeLayer;
|
previousLayer = activeLayer;
|
||||||
SetDebugBufferUint32(pos, 7);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UsbBasicKeyboardReportEverSent = false;
|
bool UsbBasicKeyboardReportEverSent = false;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
"commander": "^2.11.0",
|
"commander": "^2.11.0",
|
||||||
"shelljs": "^0.7.8"
|
"shelljs": "^0.7.8"
|
||||||
},
|
},
|
||||||
"firmwareVersion": "8.1.1",
|
"firmwareVersion": "8.1.2",
|
||||||
"deviceProtocolVersion": "4.2.0",
|
"deviceProtocolVersion": "4.2.0",
|
||||||
"moduleProtocolVersion": "4.0.0",
|
"moduleProtocolVersion": "4.0.0",
|
||||||
"userConfigVersion": "4.0.0",
|
"userConfigVersion": "4.0.0",
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#define FIRMWARE_MAJOR_VERSION 8
|
#define FIRMWARE_MAJOR_VERSION 8
|
||||||
#define FIRMWARE_MINOR_VERSION 1
|
#define FIRMWARE_MINOR_VERSION 1
|
||||||
#define FIRMWARE_PATCH_VERSION 1
|
#define FIRMWARE_PATCH_VERSION 2
|
||||||
|
|
||||||
#define DEVICE_PROTOCOL_MAJOR_VERSION 4
|
#define DEVICE_PROTOCOL_MAJOR_VERSION 4
|
||||||
#define DEVICE_PROTOCOL_MINOR_VERSION 2
|
#define DEVICE_PROTOCOL_MINOR_VERSION 2
|
||||||
|
|||||||
Reference in New Issue
Block a user