tidy up code and fix backlight bug

This commit is contained in:
VeyPatch 2024-12-03 17:18:20 +01:00
commit 27e9b17189
10 changed files with 23 additions and 51 deletions

View file

@ -204,8 +204,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
[_ADJUST] = LAYOUT_split_3x6_5_hlc( [_ADJUST] = LAYOUT_split_3x6_5_hlc(
_______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, DVORAK , _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, _______, _______, _______, _______, DVORAK , _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______,
_______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______, _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______,
_______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),

View file

@ -10,7 +10,7 @@
["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_HOME", "KC_UP", "KC_END", "KC_VOLU", "KC_DEL", "KC_TRNS", "KC_LGUI", "KC_LALT", "KC_LCTL", "KC_LSFT", "KC_TRNS", "KC_PGDN", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_VOLD", "KC_INS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_SCRL", "KC_TRNS", "KC_TRNS", "KC_PAUSE", "KC_MPRV", "KC_MPLY", "KC_MNXT", "KC_MUTE", "KC_PSCR", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_HOME", "KC_UP", "KC_END", "KC_VOLU", "KC_DEL", "KC_TRNS", "KC_LGUI", "KC_LALT", "KC_LCTL", "KC_LSFT", "KC_TRNS", "KC_PGDN", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_VOLD", "KC_INS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_SCRL", "KC_TRNS", "KC_TRNS", "KC_PAUSE", "KC_MPRV", "KC_MPLY", "KC_MNXT", "KC_MUTE", "KC_PSCR", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"],
["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_EQL", "KC_TILD", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_PLUS", "KC_PIPE", "KC_BSLS", "KC_COLN", "KC_SCLN", "KC_MINS", "KC_LBRC", "KC_LCBR", "KC_TRNS", "KC_TRNS", "KC_RCBR", "KC_RBRC", "KC_UNDS", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_QUES", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], ["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_EQL", "KC_TILD", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_PLUS", "KC_PIPE", "KC_BSLS", "KC_COLN", "KC_SCLN", "KC_MINS", "KC_LBRC", "KC_LCBR", "KC_TRNS", "KC_TRNS", "KC_RCBR", "KC_RBRC", "KC_UNDS", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_QUES", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"],
["KC_TRNS", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_TRNS", "KC_TRNS", "KC_RSFT", "KC_RCTL", "KC_LALT", "KC_RGUI", "KC_TRNS", "KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], ["KC_TRNS", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_TRNS", "KC_TRNS", "KC_RSFT", "KC_RCTL", "KC_LALT", "KC_RGUI", "KC_TRNS", "KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"],
["KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(0)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(1)", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_SAI", "RGB_HUI", "RGB_VAI", "RGB_MOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(2)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_SAD", "RGB_HUD", "RGB_VAD", "RGB_RMOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"] ["KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(0)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(1)", "KC_TRNS", "KC_TRNS", "RM_TOGG", "RM_SATU", "RM_HUEU", "RM_VALU", "RM_NEXT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(2)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_SATD", "RM_HUED", "RM_VALD", "RM_PREV", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"]
], ],
"encoders": [ "encoders": [
[{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}], [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],

View file

@ -11,18 +11,18 @@
#define RP_PWM_USE_PWM5 TRUE #define RP_PWM_USE_PWM5 TRUE
#define HAL_USE_PWM TRUE #define HAL_USE_PWM TRUE
#define HAL_USE_SPI TRUE
#define SPLIT_POINTING_ENABLE #define SPLIT_POINTING_ENABLE
#define POINTING_DEVICE_COMBINED #define POINTING_DEVICE_COMBINED
#define HLC_BACKLIGHT_TIMEOUT 120000 #define HLC_BACKLIGHT_TIMEOUT 120000
#define BACKLIGHT_PWM_DRIVER PWMD5
#define BACKLIGHT_LEVELS 10
#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B
#if !defined(HLC_TFT_DISPLAY) #if !defined(HLC_TFT_DISPLAY)
#define BACKLIGHT_PIN NO_PIN #define BACKLIGHT_PIN NO_PIN
#define BACKLIGHT_PWM_DRIVER PWMD5
#define BACKLIGHT_LEVELS 10
#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B
#endif #endif
#if !defined(HLC_CIRQUE_TRACKPAD) #if !defined(HLC_CIRQUE_TRACKPAD)

View file

@ -1,13 +1,9 @@
// Copyright 2024 splitkb.com (support@splitkb.com) // Copyright 2024 splitkb.com (support@splitkb.com)
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#include "halcyon.h" #include "halcyon.h"
#include "transactions.h" #include "transactions.h"
#include "print.h"
#include "split_util.h" #include "split_util.h"
#include "pointing_device.h"
__attribute__((weak)) bool module_post_init_kb(void) { __attribute__((weak)) bool module_post_init_kb(void) {
return module_post_init_user(); return module_post_init_user();
@ -49,6 +45,9 @@ bool backlight_off = false;
void backlight_wakeup(void) { void backlight_wakeup(void) {
backlight_off = false; backlight_off = false;
backlight_enable(); backlight_enable();
if (get_backlight_level() == 0) {
backlight_level(BACKLIGHT_LEVELS);
}
} }
// Timeout handling // Timeout handling
@ -79,6 +78,8 @@ void housekeeping_task_kb(void) {
static bool synced = 0; static bool synced = 0;
if(is_transport_connected() && synced == 0) { if(is_transport_connected() && synced == 0) {
transaction_rpc_send(MODULE_SYNC, sizeof(module), &module); // Sync to slave transaction_rpc_send(MODULE_SYNC, sizeof(module), &module); // Sync to slave
// Good moment to make sure the backlight wakes up after boot for both halves
backlight_wakeup();
synced = 1; synced = 1;
} }
display_module_housekeeping_task_kb(false); // Is master so can never be the second display display_module_housekeeping_task_kb(false); // Is master so can never be the second display

View file

@ -1,7 +1,3 @@
CURRENT_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) CURRENT_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
SPI_DRIVER_REQUIRED = yes
POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
CONFIG_H += $(CURRENT_DIR)/config.h CONFIG_H += $(CURRENT_DIR)/config.h

View file

@ -1,11 +1,7 @@
// Copyright 2024 splitkb.com (support@splitkb.com) // Copyright 2024 splitkb.com (support@splitkb.com)
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#include "util.h"
#include "split_util.h" #include "split_util.h"
#include "matrix.h"
#include "debounce.h"
#include "atomic_util.h" #include "atomic_util.h"
#ifdef SPLIT_KEYBOARD #ifdef SPLIT_KEYBOARD

View file

@ -29,9 +29,6 @@
// Backlight configuration // Backlight configuration
#define BACKLIGHT_PIN GP27 #define BACKLIGHT_PIN GP27
#define BACKLIGHT_PWM_DRIVER PWMD5
#define BACKLIGHT_LEVELS 10
#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B
// Timeout configuration // Timeout configuration
#define QUANTUM_PAINTER_DISPLAY_TIMEOUT HLC_BACKLIGHT_TIMEOUT #define QUANTUM_PAINTER_DISPLAY_TIMEOUT HLC_BACKLIGHT_TIMEOUT

View file

@ -1,17 +1,10 @@
// Copyright 2024 splitkb.com (support@splitkb.com) // Copyright 2024 splitkb.com (support@splitkb.com)
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#include "halcyon.h" #include "halcyon.h"
#include "hlc_tft_display.h" #include "hlc_tft_display.h"
#include "config.h"
#include "qp.h"
#include "qp_comms.h"
#include "qp_surface.h" #include "qp_surface.h"
#include "qp_st77xx_opcodes.h"
#include "split_util.h"
#include <time.h> #include <time.h>
// Fonts mono2 // Fonts mono2

View file

@ -1,15 +1,9 @@
CURRENT_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) CURRENT_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
QUANTUM_PAINTER_ENABLE = yes
QUANTUM_PAINTER_DRIVERS += st7789_spi surface
BACKLIGHT_ENABLE = yes
BACKLIGHT_DRIVER = pwm
SRC += $(CURRENT_DIR)/hlc_tft_display.c SRC += $(CURRENT_DIR)/hlc_tft_display.c
CONFIG_H += $(CURRENT_DIR)/config.h
# Fonts # Fonts
SRC += $(CURRENT_DIR)/graphics/fonts/Retron2000-27.qff.c $(CURRENT_DIR)/graphics/fonts/Retron2000-underline-27.qff.c SRC += $(CURRENT_DIR)/graphics/fonts/Retron2000-27.qff.c $(CURRENT_DIR)/graphics/fonts/Retron2000-underline-27.qff.c
# Numbers in image format # Numbers in image format
SRC += $(CURRENT_DIR)/graphics/numbers/0.qgf.c $(CURRENT_DIR)/graphics/numbers/1.qgf.c $(CURRENT_DIR)/graphics/numbers/2.qgf.c $(CURRENT_DIR)/graphics/numbers/3.qgf.c $(CURRENT_DIR)/graphics/numbers/4.qgf.c $(CURRENT_DIR)/graphics/numbers/5.qgf.c $(CURRENT_DIR)/graphics/numbers/6.qgf.c $(CURRENT_DIR)/graphics/numbers/7.qgf.c $(CURRENT_DIR)/graphics/numbers/8.qgf.c $(CURRENT_DIR)/graphics/numbers/9.qgf.c $(CURRENT_DIR)/graphics/numbers/undef.qgf.c SRC += $(CURRENT_DIR)/graphics/numbers/0.qgf.c $(CURRENT_DIR)/graphics/numbers/1.qgf.c $(CURRENT_DIR)/graphics/numbers/2.qgf.c $(CURRENT_DIR)/graphics/numbers/3.qgf.c $(CURRENT_DIR)/graphics/numbers/4.qgf.c $(CURRENT_DIR)/graphics/numbers/5.qgf.c $(CURRENT_DIR)/graphics/numbers/6.qgf.c $(CURRENT_DIR)/graphics/numbers/7.qgf.c $(CURRENT_DIR)/graphics/numbers/8.qgf.c $(CURRENT_DIR)/graphics/numbers/9.qgf.c $(CURRENT_DIR)/graphics/numbers/undef.qgf.c
CONFIG_H += $(CURRENT_DIR)/config.h

View file

@ -4,21 +4,16 @@ SRC += halcyon.c
LTO_ENABLE ?= yes LTO_ENABLE ?= yes
ifndef HLC_CIRQUE_TRACKPAD #add any other pointing devices here # May need to be changed when adding more pointing devices
# Needed otherwise pointing devices will not work POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
# cirque defined here as otherwise sensitivity on slave is way too high
# may need to be changed when we start supporting other pointing devices
POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
endif
ifndef HLC_TFT_DISPLAY #add any other displays here # May need to be changed when adding more displays
# Needed otherwise displays will not work QUANTUM_PAINTER_ENABLE = yes
QUANTUM_PAINTER_ENABLE = yes QUANTUM_PAINTER_DRIVERS += st7789_spi surface
QUANTUM_PAINTER_DRIVERS += st7789_spi
BACKLIGHT_ENABLE = yes BACKLIGHT_ENABLE = yes
BACKLIGHT_DRIVER = pwm BACKLIGHT_DRIVER = pwm
endif
ifdef HLC_ENCODER ifdef HLC_ENCODER
include $(CURRENT_DIR)/hlc_encoder/rules.mk include $(CURRENT_DIR)/hlc_encoder/rules.mk