From 595ced99020497a9f339addba5d20312301d150c Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Wed, 12 Jul 2017 20:03:50 -0700 Subject: [PATCH 01/11] Treat the LED driver as a peripheral with a driver --- right/src/init_peripherals.c | 3 ++- right/src/led_display.h | 2 +- right/src/main.c | 3 +-- right/src/{ => peripherals}/led_driver.c | 4 ++-- right/src/{ => peripherals}/led_driver.h | 2 +- right/src/slave_drivers/slave_driver_led_driver.h | 2 +- right/src/usb_protocol_handler.c | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) rename right/src/{ => peripherals}/led_driver.c (83%) rename right/src/{ => peripherals}/led_driver.h (95%) diff --git a/right/src/init_peripherals.c b/right/src/init_peripherals.c index a876c6a..780cd14 100644 --- a/right/src/init_peripherals.c +++ b/right/src/init_peripherals.c @@ -4,7 +4,7 @@ #include "peripherals/reset_button.h" #include "i2c.h" #include "i2c_watchdog.h" -#include "led_driver.h" +#include "peripherals/led_driver.h" #include "peripherals/merge_sensor.h" #include "led_pwm.h" #include "slave_scheduler.h" @@ -52,6 +52,7 @@ void InitI2c() { void InitPeripherials(void) { + InitLedDriver(); InitResetButton(); InitMergeSensor(); ADC_Init(); diff --git a/right/src/led_display.h b/right/src/led_display.h index c2434bb..58dc6af 100644 --- a/right/src/led_display.h +++ b/right/src/led_display.h @@ -1,7 +1,7 @@ #ifndef __LED_DISPLAY_H__ #define __LED_DISPLAY_H__ - #include "led_driver.h" + #include "peripherals/led_driver.h" extern uint8_t LedDisplayBrightness; diff --git a/right/src/main.c b/right/src/main.c index d1a19db..c28b4f0 100644 --- a/right/src/main.c +++ b/right/src/main.c @@ -2,7 +2,7 @@ #include "init_clock.h" #include "init_peripherals.h" #include "usb_composite_device.h" -#include "led_driver.h" +#include "peripherals/led_driver.h" #include "key_action.h" #include "slave_scheduler.h" #include "peripherals/test_led.h" @@ -70,7 +70,6 @@ void main() { init_hardware(); handleUsbBusPalCommand(); } else { - LedDriver_InitAllLeds(1); InitSlaveScheduler(); KeyMatrix_Init(&KeyMatrix); UpdateUsbReports(); diff --git a/right/src/led_driver.c b/right/src/peripherals/led_driver.c similarity index 83% rename from right/src/led_driver.c rename to right/src/peripherals/led_driver.c index 80fae05..8a9c28b 100644 --- a/right/src/led_driver.c +++ b/right/src/peripherals/led_driver.c @@ -1,7 +1,7 @@ -#include "led_driver.h" +#include "peripherals/led_driver.h" #include "i2c_addresses.h" -void LedDriver_InitAllLeds(char isEnabled) +void InitLedDriver() { CLOCK_EnableClock(LED_DRIVER_SDB_CLOCK); PORT_SetPinMux(LED_DRIVER_SDB_PORT, LED_DRIVER_SDB_PIN, kPORT_MuxAsGpio); diff --git a/right/src/led_driver.h b/right/src/peripherals/led_driver.h similarity index 95% rename from right/src/led_driver.h rename to right/src/peripherals/led_driver.h index 33909c6..5e66051 100644 --- a/right/src/led_driver.h +++ b/right/src/peripherals/led_driver.h @@ -44,6 +44,6 @@ // Functions: - extern void LedDriver_InitAllLeds(char isEnabled); + extern void InitLedDriver(); #endif diff --git a/right/src/slave_drivers/slave_driver_led_driver.h b/right/src/slave_drivers/slave_driver_led_driver.h index 53b0426..86cdb9e 100644 --- a/right/src/slave_drivers/slave_driver_led_driver.h +++ b/right/src/slave_drivers/slave_driver_led_driver.h @@ -4,7 +4,7 @@ // Includes: #include "fsl_common.h" - #include "led_driver.h" + #include "peripherals/led_driver.h" // Macros: diff --git a/right/src/usb_protocol_handler.c b/right/src/usb_protocol_handler.c index 68b8cea..bb67926 100644 --- a/right/src/usb_protocol_handler.c +++ b/right/src/usb_protocol_handler.c @@ -2,7 +2,7 @@ #include "system_properties.h" #include "peripherals/test_led.h" #include "i2c_addresses.h" -#include "led_driver.h" +#include "peripherals/led_driver.h" #include "peripherals/merge_sensor.h" #include "config/parse_config.h" #include "config/config_state.h" From 9a5e146866f76eb3724fbb0c0a9c81f939eae744 Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Wed, 12 Jul 2017 20:06:11 -0700 Subject: [PATCH 02/11] Rename InitPeripherials to InitPeripherals --- left/src/init_peripherals.c | 2 +- left/src/init_peripherals.h | 2 +- left/src/main.c | 2 +- right/src/init_peripherals.c | 2 +- right/src/init_peripherals.h | 2 +- right/src/main.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/left/src/init_peripherals.c b/left/src/init_peripherals.c index f856549..8cdbf4c 100644 --- a/left/src/init_peripherals.c +++ b/left/src/init_peripherals.c @@ -64,7 +64,7 @@ void InitLedDriver(void) { GPIO_WritePinOutput(LED_DRIVER_SDB_GPIO, LED_DRIVER_SDB_PIN, 1); } -void InitPeripherials(void) +void InitPeripherals(void) { InitLedDriver(); InitTestLed(); diff --git a/left/src/init_peripherals.h b/left/src/init_peripherals.h index 4b9d38c..77cc793 100644 --- a/left/src/init_peripherals.h +++ b/left/src/init_peripherals.h @@ -10,6 +10,6 @@ // Functions: - void InitPeripherials(void); + void InitPeripherals(void); #endif diff --git a/left/src/main.c b/left/src/main.c index c008630..2315730 100644 --- a/left/src/main.c +++ b/left/src/main.c @@ -28,7 +28,7 @@ volatile bool DisableKeyMatrixScanState; int main(void) { InitClock(); - InitPeripherials(); + InitPeripherals(); KeyMatrix_Init(&keyMatrix); while (1) { diff --git a/right/src/init_peripherals.c b/right/src/init_peripherals.c index 780cd14..ddf25b0 100644 --- a/right/src/init_peripherals.c +++ b/right/src/init_peripherals.c @@ -50,7 +50,7 @@ void InitI2c() { I2C_MasterInit(I2C_EEPROM_BUS_BASEADDR, &masterConfig, sourceClock); } -void InitPeripherials(void) +void InitPeripherals(void) { InitLedDriver(); InitResetButton(); diff --git a/right/src/init_peripherals.h b/right/src/init_peripherals.h index d6540f6..32c7055 100644 --- a/right/src/init_peripherals.h +++ b/right/src/init_peripherals.h @@ -5,6 +5,6 @@ // Functions: - extern void InitPeripherials(); + extern void InitPeripherals(); #endif diff --git a/right/src/main.c b/right/src/main.c index c28b4f0..68a6047 100644 --- a/right/src/main.c +++ b/right/src/main.c @@ -62,7 +62,7 @@ void UpdateUsbReports() } void main() { - InitPeripherials(); + InitPeripherals(); InitClock(); if (Wormhole.magicNumber == WORMHOLE_MAGIC_NUMBER && Wormhole.enumerationMode == EnumerationMode_BusPal) { From 335c77a1584d81bdcb4cf27653037a60f55948ac Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Wed, 12 Jul 2017 20:44:18 -0700 Subject: [PATCH 03/11] Expose LedDriverStates --- right/src/slave_drivers/slave_driver_led_driver.c | 10 +++++----- right/src/slave_drivers/slave_driver_led_driver.h | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/right/src/slave_drivers/slave_driver_led_driver.c b/right/src/slave_drivers/slave_driver_led_driver.c index e559066..2c0a3aa 100644 --- a/right/src/slave_drivers/slave_driver_led_driver.c +++ b/right/src/slave_drivers/slave_driver_led_driver.c @@ -1,7 +1,7 @@ #include "slave_drivers/slave_driver_led_driver.h" #include "slave_scheduler.h" -led_driver_state_t ledDriverStates[LED_DRIVER_MAX_COUNT] = { +led_driver_state_t LedDriverStates[LED_DRIVER_MAX_COUNT] = { { .i2cAddress = I2C_ADDRESS_LED_DRIVER_RIGHT, .setupLedControlRegistersCommand = { @@ -58,15 +58,15 @@ uint8_t setFrame1Buffer[] = {LED_DRIVER_REGISTER_FRAME, LED_DRIVER_FRAME_1}; uint8_t updatePwmRegistersBuffer[PWM_REGISTER_BUFFER_LENGTH]; void LedSlaveDriver_Init(uint8_t ledDriverId) { - led_driver_state_t *currentLedDriverState = ledDriverStates + ledDriverId; + led_driver_state_t *currentLedDriverState = LedDriverStates + ledDriverId; currentLedDriverState->phase = LedDriverPhase_SetFunctionFrame; currentLedDriverState->ledIndex = 0; - ledDriverStates[LedDriverId_Left].setupLedControlRegistersCommand[7] |= 0b00000010; // Enable the LED of the ISO key. + LedDriverStates[LedDriverId_Left].setupLedControlRegistersCommand[7] |= 0b00000010; // Enable the LED of the ISO key. SetLeds(0xff); } void LedSlaveDriver_Update(uint8_t ledDriverId) { - led_driver_state_t *currentLedDriverState = ledDriverStates + ledDriverId; + led_driver_state_t *currentLedDriverState = LedDriverStates + ledDriverId; uint8_t *ledDriverPhase = ¤tLedDriverState->phase; uint8_t ledDriverAddress = currentLedDriverState->i2cAddress; uint8_t *ledIndex = ¤tLedDriverState->ledIndex; @@ -106,6 +106,6 @@ void LedSlaveDriver_Update(uint8_t ledDriverId) { void SetLeds(uint8_t ledBrightness) { for (uint8_t i=0; i Date: Thu, 13 Jul 2017 16:37:58 -0700 Subject: [PATCH 04/11] Expose the new API for controlling the LED display --- right/src/led_display.c | 17 +++++++---------- right/src/led_display.h | 19 ++++++++++++++++--- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/right/src/led_display.c b/right/src/led_display.c index bc8f1b9..a5e21b7 100644 --- a/right/src/led_display.c +++ b/right/src/led_display.c @@ -1,13 +1,10 @@ #include "led_display.h" -#include "layer.h" -#define LAYER_LED_FIRST FRAME_REGISTER_PWM_FIRST + 13 -#define LAYER_LED_DISTANCE 16 - -uint8_t LedDisplayBrightness = 0xff; - -void LedDisplay_SetLayerLed(uint8_t layerId) { - for (uint8_t i = 0; i < LAYER_COUNT; i++) { -// LedDriver_WriteRegister(I2C_ADDRESS_LED_DRIVER_LEFT, LAYER_LED_FIRST + (i * LAYER_LED_DISTANCE), LedDisplayBrightness * (layerId == i + 1)); - } +void LedDisplay_SetText(uint8_t length, const char* text) { +} + +void LedDisplay_SetLayer(uint8_t layerId) { +} + +void LedDisplay_SetIcon(led_display_icon_t icon, bool isEnabled) { } diff --git a/right/src/led_display.h b/right/src/led_display.h index 58dc6af..bd49f95 100644 --- a/right/src/led_display.h +++ b/right/src/led_display.h @@ -1,10 +1,23 @@ #ifndef __LED_DISPLAY_H__ #define __LED_DISPLAY_H__ - #include "peripherals/led_driver.h" +// Includes: - extern uint8_t LedDisplayBrightness; + #include + #include - void LedDisplay_SetLayerLed(uint8_t layerId); +// Typedefs: + + typedef enum { + LedDisplayIcon_CapsLock, + LedDisplayIcon_Agent, + LedDisplayIcon_Adaptive, + } led_display_icon_t; + +// Functions: + + void LedDisplay_SetText(uint8_t length, const char* text); + void LedDisplay_SetLayer(uint8_t layerId); + void LedDisplay_SetIcon(led_display_icon_t icon, bool isEnabled); #endif From 1cd060122f366a1d1a5fbc70ace95c62e6238753 Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Thu, 13 Jul 2017 19:28:19 -0700 Subject: [PATCH 05/11] Implement the new API for controlling the LED display --- right/src/led_display.c | 111 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) diff --git a/right/src/led_display.c b/right/src/led_display.c index a5e21b7..c86ca16 100644 --- a/right/src/led_display.c +++ b/right/src/led_display.c @@ -1,10 +1,119 @@ #include "led_display.h" +#include "slave_drivers/slave_driver_led_driver.h" +#include "layer.h" -void LedDisplay_SetText(uint8_t length, const char* text) { +static uint16_t characterToSegmentSet(char character) { + switch (character) { + case 'A': + return 0b0000000011110111; + case 'B': + return 0b0001001010001111; + case 'C': + return 0b0000000000111001; + case 'D': + return 0b0001001000001111; + case 'E': + return 0b0000000011111001; + case 'F': + return 0b0000000011110001; + case 'G': + return 0b0000000010111101; + case 'H': + return 0b0000000011110110; + case 'I': + return 0b0001001000001001; + case 'J': + return 0b0000000000001110; + case 'K': + return 0b0011011000000000; + case 'L': + return 0b0000000000111000; + case 'M': + return 0b0000010100110110; + case 'N': + return 0b0010000100110110; + case 'O': + return 0b0000000000111111; + case 'P': + return 0b0000000011110011; + case 'Q': + return 0b0010000000111111; + case 'R': + return 0b0010000011110011; + case 'S': + return 0b0000000011101101; + case 'T': + return 0b0001001000000001; + case 'U': + return 0b0000000000111110; + case 'V': + return 0b0000110000110000; + case 'W': + return 0b0010100000110110; + case 'X': + return 0b0010110100000000; + case 'Y': + return 0b0001010100000000; + case 'Z': + return 0b0000110000001001; + case '0': + return 0b0000110000111111; + case '1': + return 0b0000010000000110; + case '2': + return 0b0000100010001011; + case '3': + return 0b0000000011001111; + case '4': + return 0b0000000011100110; + case '5': + return 0b0010000001101001; + case '6': + return 0b0000000011110111; + case '7': + return 0b0000000000000111; + case '8': + return 0b0000000011111111; + case '9': + return 0b0000000011101111; + } + return 0; } +void LedDisplay_SetText(uint8_t length, const char* text) { + uint64_t allSegmentSets = 0; + + switch (length) { + case 3: + allSegmentSets = (uint64_t)characterToSegmentSet(text[2]) << 28; + case 2: + allSegmentSets |= characterToSegmentSet(text[1]) << 14; + case 1: + allSegmentSets |= characterToSegmentSet(text[0]); + } + LedDriverStates[LedDriverId_Left].ledValues[11] = allSegmentSets & 0b00000001 ? 255 : 0; + LedDriverStates[LedDriverId_Left].ledValues[12] = allSegmentSets & 0b00000010 ? 255 : 0; + allSegmentSets >>= 2; + for (uint8_t i = 24; i <= 136; i += 16) { + for (uint8_t j = 0; j < 5; j++) { + LedDriverStates[LedDriverId_Left].ledValues[i + j] = allSegmentSets & 1 << j ? 255 : 0; + } + allSegmentSets >>= 5; + } +} + + void LedDisplay_SetLayer(uint8_t layerId) { + uint8_t layerLedValues[3] = { 0 }; + + if (layerId >= LAYER_ID_MOD && layerId <= LAYER_ID_MOUSE) { + layerLedValues[layerId - 1] = 0xFF; + } + LedDriverStates[LedDriverId_Left].ledValues[13] = layerLedValues[0]; + LedDriverStates[LedDriverId_Left].ledValues[29] = layerLedValues[1]; + LedDriverStates[LedDriverId_Left].ledValues[45] = layerLedValues[2]; } void LedDisplay_SetIcon(led_display_icon_t icon, bool isEnabled) { + LedDriverStates[LedDriverId_Left].ledValues[8 + icon] = isEnabled ? 255 : 0; } From 37c56296eb4f800bd02899bfde6e7a5c34ff7642 Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Thu, 13 Jul 2017 19:35:37 -0700 Subject: [PATCH 06/11] Display the abbreviation of a keymap when it is being applied --- right/src/config/parse_keymap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/right/src/config/parse_keymap.c b/right/src/config/parse_keymap.c index 75442ae..85af313 100644 --- a/right/src/config/parse_keymap.c +++ b/right/src/config/parse_keymap.c @@ -1,6 +1,7 @@ #include "config/parse_keymap.h" #include "key_action.h" #include "current_keymap.h" +#include "led_display.h" static bool isDryRun; @@ -180,13 +181,15 @@ parser_error_t ParseKeymap(serialized_buffer_t *buffer) {; const char *description = readString(buffer, &descriptionLen); uint16_t layerCount = readCompactLength(buffer); - (void)abbreviation; (void)name; (void)description; if (layerCount != LAYER_COUNT) { return ParserError_InvalidLayerCount; } isDryRun = !isDefault; + if (!isDryRun) { + LedDisplay_SetText(abbreviationLen, abbreviation); + } for (uint16_t layerIdx = 0; layerIdx < layerCount; layerIdx++) { errorCode = parseLayer(buffer, layerIdx); if (errorCode != ParserError_Success) { From eaacc18ab11937a673e5b57b58deb80007a71b3b Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Fri, 14 Jul 2017 08:14:09 -0700 Subject: [PATCH 07/11] Make characterToSegmentSet use a lookup table --- right/src/led_display.c | 118 ++++++++++++++++------------------------ 1 file changed, 46 insertions(+), 72 deletions(-) diff --git a/right/src/led_display.c b/right/src/led_display.c index c86ca16..b83264c 100644 --- a/right/src/led_display.c +++ b/right/src/led_display.c @@ -2,80 +2,54 @@ #include "slave_drivers/slave_driver_led_driver.h" #include "layer.h" +static const uint16_t capitalLetterToSegmentSet[] = { + 0b0000000011110111, + 0b0001001010001111, + 0b0000000000111001, + 0b0001001000001111, + 0b0000000011111001, + 0b0000000011110001, + 0b0000000010111101, + 0b0000000011110110, + 0b0001001000001001, + 0b0000000000001110, + 0b0011011000000000, + 0b0000000000111000, + 0b0000010100110110, + 0b0010000100110110, + 0b0000000000111111, + 0b0000000011110011, + 0b0010000000111111, + 0b0010000011110011, + 0b0000000011101101, + 0b0001001000000001, + 0b0000000000111110, + 0b0000110000110000, + 0b0010100000110110, + 0b0010110100000000, + 0b0001010100000000, + 0b0000110000001001, +}; + +static const uint16_t digitToSegmentSet[] = { + 0b0000110000111111, + 0b0000010000000110, + 0b0000100010001011, + 0b0000000011001111, + 0b0000000011100110, + 0b0010000001101001, + 0b0000000011110111, + 0b0000000000000111, + 0b0000000011111111, + 0b0000000011101111, +}; + static uint16_t characterToSegmentSet(char character) { switch (character) { - case 'A': - return 0b0000000011110111; - case 'B': - return 0b0001001010001111; - case 'C': - return 0b0000000000111001; - case 'D': - return 0b0001001000001111; - case 'E': - return 0b0000000011111001; - case 'F': - return 0b0000000011110001; - case 'G': - return 0b0000000010111101; - case 'H': - return 0b0000000011110110; - case 'I': - return 0b0001001000001001; - case 'J': - return 0b0000000000001110; - case 'K': - return 0b0011011000000000; - case 'L': - return 0b0000000000111000; - case 'M': - return 0b0000010100110110; - case 'N': - return 0b0010000100110110; - case 'O': - return 0b0000000000111111; - case 'P': - return 0b0000000011110011; - case 'Q': - return 0b0010000000111111; - case 'R': - return 0b0010000011110011; - case 'S': - return 0b0000000011101101; - case 'T': - return 0b0001001000000001; - case 'U': - return 0b0000000000111110; - case 'V': - return 0b0000110000110000; - case 'W': - return 0b0010100000110110; - case 'X': - return 0b0010110100000000; - case 'Y': - return 0b0001010100000000; - case 'Z': - return 0b0000110000001001; - case '0': - return 0b0000110000111111; - case '1': - return 0b0000010000000110; - case '2': - return 0b0000100010001011; - case '3': - return 0b0000000011001111; - case '4': - return 0b0000000011100110; - case '5': - return 0b0010000001101001; - case '6': - return 0b0000000011110111; - case '7': - return 0b0000000000000111; - case '8': - return 0b0000000011111111; - case '9': - return 0b0000000011101111; + case 'A' ... 'Z': + return capitalLetterToSegmentSet[character - 'A']; + case '0' ... '9': + return digitToSegmentSet[character - '0']; } return 0; } From 7ed508943f7b8310b9e551351f7e5bca7509515e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Fri, 14 Jul 2017 19:51:56 +0200 Subject: [PATCH 08/11] Try to display "ABC" on the display. --- lib/KSDK_2.0_MK22FN512xxx12 | 2 +- lib/KSDK_2.0_MKL03Z8xxx4 | 2 +- right/src/slave_drivers/slave_driver_led_driver.c | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/KSDK_2.0_MK22FN512xxx12 b/lib/KSDK_2.0_MK22FN512xxx12 index ed719ab..cd173f9 160000 --- a/lib/KSDK_2.0_MK22FN512xxx12 +++ b/lib/KSDK_2.0_MK22FN512xxx12 @@ -1 +1 @@ -Subproject commit ed719ab139f2996bae940343867ae848824dd677 +Subproject commit cd173f98d1710558c518a101957d6d0c5b1b11ed diff --git a/lib/KSDK_2.0_MKL03Z8xxx4 b/lib/KSDK_2.0_MKL03Z8xxx4 index f0add9d..c02d0df 160000 --- a/lib/KSDK_2.0_MKL03Z8xxx4 +++ b/lib/KSDK_2.0_MKL03Z8xxx4 @@ -1 +1 @@ -Subproject commit f0add9def0d80aa4f2a03fd647b269a857547cfe +Subproject commit c02d0df05b5987f243a1c16e93a4304916bceb6e diff --git a/right/src/slave_drivers/slave_driver_led_driver.c b/right/src/slave_drivers/slave_driver_led_driver.c index 2c0a3aa..9ccb273 100644 --- a/right/src/slave_drivers/slave_driver_led_driver.c +++ b/right/src/slave_drivers/slave_driver_led_driver.c @@ -1,5 +1,6 @@ #include "slave_drivers/slave_driver_led_driver.h" #include "slave_scheduler.h" +#include "led_display.h" led_driver_state_t LedDriverStates[LED_DRIVER_MAX_COUNT] = { { @@ -63,6 +64,7 @@ void LedSlaveDriver_Init(uint8_t ledDriverId) { currentLedDriverState->ledIndex = 0; LedDriverStates[LedDriverId_Left].setupLedControlRegistersCommand[7] |= 0b00000010; // Enable the LED of the ISO key. SetLeds(0xff); + LedDisplay_SetText(3, "ABC"); } void LedSlaveDriver_Update(uint8_t ledDriverId) { From 38b281e96287cc029a32388108a1fe5a7cf358f5 Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Fri, 14 Jul 2017 11:26:02 -0700 Subject: [PATCH 09/11] Improve the appearance of "K" and "7" on the display --- right/src/led_display.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/right/src/led_display.c b/right/src/led_display.c index b83264c..14664a1 100644 --- a/right/src/led_display.c +++ b/right/src/led_display.c @@ -13,7 +13,7 @@ static const uint16_t capitalLetterToSegmentSet[] = { 0b0000000011110110, 0b0001001000001001, 0b0000000000001110, - 0b0011011000000000, + 0b0010010001110000, 0b0000000000111000, 0b0000010100110110, 0b0010000100110110, @@ -39,7 +39,7 @@ static const uint16_t digitToSegmentSet[] = { 0b0000000011100110, 0b0010000001101001, 0b0000000011110111, - 0b0000000000000111, + 0b0001010000000001, 0b0000000011111111, 0b0000000011101111, }; From 970dbd0a5085698b04c3c7d88c1baa42c05aaaa8 Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Fri, 14 Jul 2017 13:18:09 -0700 Subject: [PATCH 10/11] Call InitClock before InitPeripherals --- right/src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/right/src/main.c b/right/src/main.c index 68a6047..391b5aa 100644 --- a/right/src/main.c +++ b/right/src/main.c @@ -62,8 +62,8 @@ void UpdateUsbReports() } void main() { - InitPeripherals(); InitClock(); + InitPeripherals(); if (Wormhole.magicNumber == WORMHOLE_MAGIC_NUMBER && Wormhole.enumerationMode == EnumerationMode_BusPal) { Wormhole.magicNumber = 0; From 1eb2a737531ed415321e94719645f28c5d87157f Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Fri, 14 Jul 2017 13:28:48 -0700 Subject: [PATCH 11/11] Display the active layer --- right/src/usb_report_updater.c | 1 + 1 file changed, 1 insertion(+) diff --git a/right/src/usb_report_updater.c b/right/src/usb_report_updater.c index f684252..073cb8e 100644 --- a/right/src/usb_report_updater.c +++ b/right/src/usb_report_updater.c @@ -134,6 +134,7 @@ void UpdateActiveUsbReports() static uint8_t previousModifiers = 0; uint8_t activeLayer = getActiveLayer(); + LedDisplay_SetLayer(activeLayer); for (uint8_t slotId=0; slotId