1
0
Fork 0

[Core] Refactor OLED to allow easy addition of other types (#13454)

* add docs

* core changes

* update keyboards to new OLED

* updated users to new OLED

* update layouts to new OLED

* fixup docs

* drashna's suggestion

* fix up docs

* new keyboards with oled

* core split changes

* remaining keyboard files

* Fix The Helix keyboards oled options

* reflect develop

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: mtei <2170248+mtei@users.noreply.github.com>
This commit is contained in:
Xelus22 2021-08-24 16:28:26 +10:00 committed by GitHub
parent 6fd20acf4b
commit 4e1c5887c5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
500 changed files with 1579 additions and 1387 deletions

View file

@ -27,7 +27,8 @@ RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
OLED_DRIVER_ENABLE = yes # Enable the OLED Driver
OLED_ENABLE = yes
OLED_DRIVER = SSD1306 # Enable the OLED Driver
ENCODER_ENABLE = yes
@ -42,4 +43,4 @@ OPT_DEFS += -Ikeyboards/rgbkb/common
# matrix optimisations
SRC += matrix.c
DEFAULT_FOLDER = rgbkb/mun/rev1
DEFAULT_FOLDER = rgbkb/mun/rev1

View file

@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
#ifdef OLED_DRIVER_ENABLE
#ifdef OLED_ENABLE
void oled_task_user(void) {
// Host Keyboard Layer Status
oled_write_P(PSTR("RGBKB Pan\n"), false);

View file

@ -16,7 +16,8 @@ RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
WS2812_DRIVER = bitbang
ENCODER_ENABLE = yes
OLED_DRIVER_ENABLE = yes
OLED_ENABLE = yes
OLED_DRIVER = SSD1306
# RGB layout selection
RGB_ENCODERS = yes # For RGB encoders, solder on both WS2811 chips

View file

@ -196,7 +196,7 @@ void matrix_init_user(void) {
// OLED Driver Logic
#ifdef OLED_DRIVER_ENABLE
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_keyboard_master())

View file

@ -4,7 +4,7 @@
LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
# Misc
OLED_DRIVER_ENABLE = yes # Enable the OLED Driver
OLED_ENABLE = yes # Enable the OLED Driver

View file

@ -261,7 +261,7 @@ void matrix_init_user(void) {
// OLED Driver Logic
#ifdef OLED_DRIVER_ENABLE
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!has_usb())

View file

@ -298,7 +298,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
// OLED Driver Logic
#ifdef OLED_DRIVER_ENABLE
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (is_keyboard_master())
return OLED_ROTATION_270;

View file

@ -92,7 +92,7 @@ RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness. Otherwise, limited t
UNICODE_ENABLE = no # Unicode
SWAP_HANDS_ENABLE = no # Enable one-hand typing
OLED_DRIVER_ENABLE = no # Enable the OLED Driver (+5000)
OLED_ENABLE = no # Enable the OLED Driver (+5000)
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)

View file

@ -9,7 +9,7 @@ FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs
SF_ENABLE = no # Enables the additional 38 Starfighter LEDs
# Misc
OLED_DRIVER_ENABLE = yes # Enable the OLED Driver
OLED_ENABLE = yes # Enable the OLED Driver
# Not using the encoder for rev1
ifeq ($(strip $(KEYBOARD)), rgbkb/sol/rev1)

View file

@ -279,7 +279,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
#endif
// OLED Driver Logic
#ifdef OLED_DRIVER_ENABLE
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (is_keyboard_master())
return OLED_ROTATION_270;

View file

@ -24,7 +24,8 @@ OLED_ENABLE = no # OLED_ENABLE
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
DEFAULT_FOLDER = rgbkb/sol/rev1
ENCODER_ENABLE = no
OLED_DRIVER_ENABLE = yes
OLED_ENABLE = yes
OLED_DRIVER = SSD1306
# Do not edit past here
@ -51,4 +52,4 @@ endif
ifeq ($(strip $(LED_MIRRORED)), yes)
OPT_DEFS += -DLED_MIRRORED
endif
endif

View file

@ -25,5 +25,5 @@ RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness for RGBLIGHT
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
# Misc
OLED_DRIVER_ENABLE = no # Enable the OLED Driver
OLED_ENABLE = no # Enable the OLED Driver
SWAP_HANDS_ENABLE = no # Enable one-hand typing

View file

@ -64,7 +64,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D6 }
#else
#ifdef OLED_DRIVER_ENABLE
#ifdef OLED_ENABLE
#error Extra encoders cannot be enabled at the same time as the OLED Driver as they use the same pins.
#endif
#define ENCODERS_PAD_A { D2, D1, B0 }

View file

@ -28,7 +28,7 @@ ifeq ($(strip $(EXTRA_ENCODERS_ENABLE)), yes)
OPT_DEFS += -DEXTRA_ENCODERS_ENABLE
endif
ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
ifeq ($(strip $(OLED_ENABLE)), yes)
ifeq ($(strip $(ENCODER_ENABLE)), yes)
ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
ifneq ($(strip $(RGB_OLED_MENU)), no)

View file

@ -27,8 +27,8 @@ SF_ENABLE = no # Enables the additional 38 Starfighter LEDs
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
# Misc
OLED_DRIVER_ENABLE = no # Enable the OLED Driver
EXTRA_ENCODERS_ENABLE = no # Enables 3 encoders per side (up from 1, not compatible with OLED_DRIVER_ENABLE)
OLED_ENABLE = no # Enable the OLED Driver
EXTRA_ENCODERS_ENABLE = no # Enables 3 encoders per side (up from 1, not compatible with OLED_ENABLE)
SWAP_HANDS_ENABLE = no # Enable one-hand typing
LTO_ENABLE = yes # Enable Link Time Optimizations greatly reducing firmware size by disabling the old Macros and Functions features

View file

@ -103,7 +103,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
#if OLED_DRIVER_ENABLE
#if OLED_ENABLE
const char* layer_name_user(uint32_t layer) {
switch (layer) {
case _QWERTY:

View file

@ -1,6 +1,6 @@
#include "rev2.h"
#ifdef OLED_DRIVER_ENABLE
#ifdef OLED_ENABLE
#include "split_util.h"
#include "oled_driver.h"

View file

@ -1,9 +1,9 @@
ENCODER_ENABLE = yes
OLED_DRIVER_ENABLE = no
OLED_ENABLE = no
# Setup so that OLED can be turned on/off easily
ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
ifeq ($(strip $(OLED_ENABLE)), yes)
# Custom local font file
OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
endif

View file

@ -17,7 +17,7 @@ RGBLIGHT_FULL_POWER = yes # Allow maximum RGB brightness. Otherwise, limited t
UNICODE_ENABLE = no # Unicode
SWAP_HANDS_ENABLE = no # Enable one-hand typing
ENCODER_ENABLE = yes # Enable rotary encoder
OLED_DRIVER_ENABLE = no # Enable the OLED Driver
OLED_ENABLE = no # Enable the OLED Driver
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
LTO_ENABLE = no # Enable optimizations to reduce firmware size. Also disables action macros and functions.

View file

@ -98,7 +98,8 @@ RGBLIGHT_FULL_POWER = yes # Allow maximum RGB brightness. Otherwise, limited t
UNICODE_ENABLE = no # Unicode
SWAP_HANDS_ENABLE = no # Enable one-hand typing
ENCODER_ENABLE = yes # Enable rotary encoder (+90)
OLED_DRIVER_ENABLE = yes # Enable the OLED Driver (+5000)
OLED_ENABLE = yes
OLED_DRIVER = SSD1306 # Enable the OLED Driver (+5000)
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)

View file

@ -17,7 +17,7 @@ RGBLIGHT_FULL_POWER = yes # Allow maximum RGB brightness. Otherwise, limited t
UNICODE_ENABLE = no # Unicode
SWAP_HANDS_ENABLE = no # Enable one-hand typing
ENCODER_ENABLE = yes # Enable rotary encoder
OLED_DRIVER_ENABLE = no # Enable the OLED Driver
OLED_ENABLE = no # Enable the OLED Driver
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
LTO_ENABLE = no # Enable optimizations to reduce firmware size. Also disables action macros and functions.

View file

@ -169,7 +169,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// SSD1306 OLED driver logic
#ifdef OLED_DRIVER_ENABLE
#ifdef OLED_ENABLE
static void render_logo(void) {
static const char PROGMEM rgbkb_logo[] = {

View file

@ -17,7 +17,8 @@ RGBLIGHT_FULL_POWER = yes # Allow maximum RGB brightness. Otherwise, limited t
UNICODE_ENABLE = no # Unicode
SWAP_HANDS_ENABLE = no # Enable one-hand typing
ENCODER_ENABLE = yes # Enable rotary encoder
OLED_DRIVER_ENABLE = yes # Enable the OLED Driver
OLED_ENABLE = yes
OLED_DRIVER = SSD1306 # Enable the OLED Driver
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
LTO_ENABLE = yes # Enable optimizations to reduce firmware size. Also disables action macros and functions.

View file

@ -17,7 +17,7 @@ RGBLIGHT_FULL_POWER = yes # Allow maximum RGB brightness. Otherwise, limited t
UNICODE_ENABLE = no # Unicode
SWAP_HANDS_ENABLE = no # Enable one-hand typing
ENCODER_ENABLE = yes # Enable rotary encoder
OLED_DRIVER_ENABLE = no # Enable the OLED Driver
OLED_ENABLE = no # Enable the OLED Driver
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
# Do not edit past here

View file

@ -19,7 +19,7 @@ RGBLIGHT_FULL_POWER = yes # Allow maximum RGB brightness. Otherwise, limited t
UNICODE_ENABLE = no # Unicode
SWAP_HANDS_ENABLE = no # Enable one-hand typing
ENCODER_ENABLE = no # Enable rotary encoder
OLED_DRIVER_ENABLE = no # Enable the OLED Driver
OLED_ENABLE = no # Enable the OLED Driver
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
LTO_ENABLE = no # Enable optimizations to reduce firmware size. Also disables action macros and functions.