Merge remote-tracking branch 'origin/master' into develop

master
QMK Bot 2021-11-10 14:10:35 +00:00
commit ed48c0bd8b
11 changed files with 693 additions and 62 deletions

View File

@ -41,8 +41,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DYNAMIC_KEYMAP_LAYER_COUNT 16
#define LAYER_STATE_16BIT
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* disable action features */
//#define NO_ACTION_LAYER

View File

@ -44,11 +44,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
#define RGBLED_NUM 20
#define RGBLED_NUM 52
#define RGBLIGHT_SPLIT
#define RGBLED_SPLIT \
{ 10, 10 }
#define RGBLIGHT_LMIT_VAL 80
{ 26, 26 }
#define RGBLIGHT_LIMIT_VAL 150
#define DEBUG_LED_PIN C13

View File

@ -1,16 +1,21 @@
# Drashna's Blackpill Tractyl Manuform (5x6) with a right side trackball
* VBUS mod, using PB10
* System Timer on TIM5
* ~~VBUS mod, using PB10~~ (*doesn't seem to work for me*)
* Split Hand Pin, using PC14
* Full Duplex Serial/USART using PA3 and PA4 on USART2
* Full Duplex Serial/USART using PA2 and PA3 on USART2
* PWM Audio using PB1 and TIM3 and GPT on TIM4
* PWM RGB using PA1 TIM2
* pmw3360 sensor sharing PA5-PA7 on SPI1, with B0 as CS pin
* PWM WS2812 RGB using PA1 TIM2
* 8KB SPI EEPROM chip sharing PA5-PA7 on SPI1 with PA4 as CS pin
* pmw3360 sensor sharing PA5-PA7 on SPI1, with B0 as CS pin
* Encoder using PA13 and PA14
* SSD1306 OLED display (128x64) using PB8-PB9 on I2C1
* Pull-up resistor (22k) on PA10 to fix reset issue.
* Pull-up resistor (5.1k) on PA1 for WS2812 LED support, and wire it's VCC to the 5V pin.
* Pins PA9, PA11, A12 are not useable because they're used for USB connection, and can't be shared.
* Pin PB2 is used by BOOT1, and is unusable
## Keyboard Info
* Keyboard Maintainer: [Drashna Jael're](https://github.com/drashna)
* Hardware Supported: [Design files](https://gitlab.com/keyboards1/dm_r_track/-/tree/master/boolean), [WeAct BlackPill (F411)](https://github.com/WeActTC/MiniSTM32F4x1), [PMW3360 Optical Sensor](https://www.tindie.com/products/jkicklighter/pmw3360-motion-sensor/)
@ -24,3 +29,9 @@ Flashing example for this keyboard:
make handwired/tractyl_manuform/5x6_right/f411:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
* **Bootmagic reset**: Hold down the top right key on the right side, or the top left key on the left side while plugging in.
* **Physical reset button**: Briefly press the "USER" button on the BlackPill
* **Keycode in layout**: Press the key mapped to `RESET`.

View File

@ -6,8 +6,11 @@ BOOTLOADER = stm32-dfu
KEYBOARD_SHARED_EP = yes
CONSOLE_ENABLE = yes
MOUSE_SHARED_EP = no
EEPROM_DRIVER = spi
WS2812_DRIVER = pwm
SERIAL_DRIVER = usart
AUDIO_DRIVER = pwm_hardware
DEBOUNCE_TYPE = asym_eager_defer_pk

View File

@ -16,16 +16,7 @@
#pragma once
// #define USE_I2C
// #define SELECT_SOFT_SERIAL_SPEED 1
// #define SERIAL_USE_MULTI_TRANSACTION
#define SPLIT_MODS_ENABLE
#define EE_HANDS
#define TRACKBALL_DPI_OPTIONS { 1200, 1800, 2600, 3400 }
#undef DEBOUNCE
#define DEBOUNCE 10
#define SOLENOID_PIN F1
#define SOLENOID_DEFAULT_DWELL 8
#define DEBOUNCE 15

View File

@ -348,16 +348,8 @@ void render_kitty(void) {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x04, 0x04, 0x04, 0x04, 0x05, 0x04, 0x04, 0x04, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
// assumes 1 frame prep stage
#ifdef SWAP_HANDS_ENABLE
extern bool swap_hands;
#endif
void animation_phase(void) {
# ifdef SWAP_HANDS_ENABLE
if (swap_hands)
#else
if (tap_toggling)
#endif
{
if (tap_toggling) {
anim_frame_duration = 300;
current_rtogi_frame = (current_rtogi_frame + 1) % RTOGI_FRAMES;
oled_write_raw_P(rtogi[abs((RTOGI_FRAMES - 1) - current_rtogi_frame)], ANIM_SIZE);

View File

@ -24,9 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0x44DD
#define MANUFACTURER Drashna
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
#define USB_POLLING_INTERVAL_MS 1
/* disable debug print */

View File

@ -147,6 +147,9 @@
// # define OLED_FONT_5X5
// # define OLED_FONT_AZTECH
// # define OLED_FONT_BMPLAIN
// # define OLED_FONT_CRACKERS
// # define OLED_FONT_HISKYF21
# define OLED_FONT_DEAD_MEAL
// # define OLED_FONT_SUPER_DIGG
// # define OLED_LOGO_GMK_BAD
// # define OLED_LOGO_HUE_MANITEE
@ -163,17 +166,12 @@
# define ONESHOT_TIMEOUT 3000
#endif // !ONESHOT_TIMEOUT
// this makes it possible to do rolling combos (zx) with keys that
// convert to other keys on hold (z becomes ctrl when you hold it,
// and when this option isn't enabled, z rapidly followed by x
// actually sends Ctrl-x. That's bad.)
#define IGNORE_MOD_TAP_INTERRUPT
#undef PERMISSIVE_HOLD
//#define TAPPING_FORCE_HOLD_PER_KEY
//#define RETRO_TAPPING_PER_KEY
#if !defined(KEYBOARD_kyria) && !defined(KEYBOARD_splitkb_kyria)
# define TAPPING_TERM_PER_KEY
#endif
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
#define PERMISSIVE_HOLD_PER_KEY
#define TAPPING_FORCE_HOLD_PER_KEY
#define RETRO_TAPPING_PER_KEY
#define TAPPING_TERM_PER_KEY
#ifndef TAPPING_TOGGLE
# define TAPPING_TOGGLE 1

View File

@ -259,3 +259,61 @@ void matrix_slave_scan_user(void) {
matrix_slave_scan_keymap();
}
#endif
__attribute__((weak)) uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
default:
return TAPPING_TERM;
}
}
__attribute__((weak)) bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
// Immediately select the hold action when another key is tapped:
// return true;
// Do not select the hold action when another key is tapped.
// return false;
switch (keycode) {
default:
return false;
}
}
__attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
// Immediately select the hold action when another key is pressed.
// return true;
// Do not select the hold action when another key is pressed.
// return false;
switch (keycode) {
case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
return true;
default:
return false;
}
}
__attribute__((weak)) bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
// Do not force the mod-tap key press to be handled as a modifier
// if any other key was pressed while the mod-tap key is held down.
// return true;
// Force the mod-tap key press to be handled as a modifier if any
// other key was pressed while the mod-tap key is held down.
// return false;
switch (keycode) {
default:
return true;
}
}
__attribute__((weak)) bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
default:
return false;
}
}
__attribute__((weak)) bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
default:
return false;
}
}

View File

@ -338,6 +338,297 @@ static const unsigned char font[] PROGMEM = {
0x22, 0x3e, 0x08, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# elif defined(OLED_FONT_CRACKERS)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x06, 0x06, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00,
0x20, 0x7C, 0x38, 0x38, 0x7C, 0x08,
0x48, 0xFE, 0x64, 0x64, 0x00, 0x00,
0x64, 0x60, 0x60, 0x18, 0x0C, 0x0C,
0x74, 0x4A, 0x4A, 0x7E, 0x48, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3C, 0x7E, 0x7E, 0x42, 0x00, 0x00,
0x42, 0x7E, 0x7E, 0x3C, 0x00, 0x00,
0x04, 0x0C, 0x04, 0x06, 0x0C, 0x04,
0x10, 0x3C, 0x3C, 0x3C, 0x10, 0x00,
0x00, 0x60, 0xE0, 0x00, 0x00, 0x00,
0x08, 0x08, 0x08, 0x00, 0x00, 0x00,
0x60, 0x60, 0x60, 0x00, 0x00, 0x00,
0x60, 0x78, 0x78, 0x1E, 0x06, 0x00,
0x3C, 0x3C, 0x7E, 0x42, 0x7E, 0x7E,
0x04, 0x7E, 0x7E, 0x7E, 0x00, 0x00,
0x76, 0x7A, 0x7E, 0x7E, 0x4C, 0x00,
0x4A, 0x7E, 0x7E, 0x7C, 0x00, 0x00,
0x0E, 0x08, 0x7E, 0x7E, 0x7E, 0x00,
0x4E, 0x4E, 0x4E, 0x7A, 0x1A, 0x00,
0x3C, 0x7E, 0x7E, 0x4A, 0x7A, 0x00,
0x02, 0x02, 0x0A, 0x7E, 0x7E, 0x7E,
0x7E, 0x7E, 0x7E, 0x4A, 0x7E, 0x00,
0x0C, 0x4A, 0x7E, 0x7E, 0x3C, 0x00,
0x66, 0x66, 0x66, 0x00, 0x00, 0x00,
0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
0x08, 0x3C, 0x7E, 0x7E, 0x62, 0x00,
0x14, 0x14, 0x14, 0x00, 0x00, 0x00,
0x62, 0x7E, 0x7E, 0x3C, 0x08, 0x00,
0x02, 0x4A, 0x0E, 0x0E, 0x0C, 0x00,
0x3C, 0x7E, 0x7E, 0x4A, 0x72, 0x30,
0x7A, 0x4A, 0x7E, 0x7E, 0x7C, 0x00,
0x7E, 0x7E, 0x7E, 0x4A, 0x24, 0x00,
0x3C, 0x7E, 0x7E, 0x7E, 0x46, 0x00,
0x7E, 0x7E, 0x7E, 0x62, 0x3C, 0x00,
0x7E, 0x7E, 0x7E, 0x4A, 0x00, 0x00,
0x7E, 0x7E, 0x7E, 0x0A, 0x00, 0x00,
0x3C, 0x7E, 0x7E, 0x42, 0x62, 0x00,
0x7E, 0x7E, 0x7E, 0x18, 0x7E, 0x00,
0x7E, 0x7E, 0x7E, 0x00, 0x00, 0x00,
0x40, 0x7E, 0x7E, 0x7E, 0x00, 0x00,
0x7E, 0x7E, 0x7E, 0x3C, 0x66, 0x00,
0x7E, 0x7E, 0x7E, 0x40, 0x00, 0x00,
0x7E, 0x3E, 0x3E, 0x7C, 0x3E, 0x3E,
0x7E, 0x3E, 0x7E, 0x7C, 0x7E, 0x00,
0x3C, 0x3C, 0x7E, 0x62, 0x7E, 0x7E,
0x7E, 0x7E, 0x7E, 0x22, 0x0C, 0x00,
0x3C, 0x7E, 0x7E, 0x62, 0x7E, 0x7C,
0x7E, 0x7E, 0x7E, 0x0A, 0x64, 0x00,
0x4C, 0x4E, 0x4E, 0x7A, 0x1A, 0x00,
0x02, 0x7E, 0x7E, 0x7E, 0x02, 0x00,
0x7E, 0x60, 0x7E, 0x7E, 0x7E, 0x00,
0x3E, 0x60, 0x7E, 0x7E, 0x3E, 0x00,
0x7E, 0x7C, 0x7C, 0x3E, 0x7C, 0x7C,
0x46, 0x7E, 0x08, 0x7E, 0x62, 0x62,
0x5E, 0x5E, 0x5E, 0x70, 0x3E, 0x00,
0x66, 0x7A, 0x7A, 0x5E, 0x66, 0x00,
0x7E, 0x7E, 0x7E, 0x42, 0x00, 0x00,
0x06, 0x1E, 0x1E, 0x78, 0x60, 0x00,
0x42, 0x7E, 0x7E, 0x7E, 0x00, 0x00,
0x0C, 0x06, 0x0C, 0x00, 0x00, 0x00,
0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
0x02, 0x06, 0x06, 0x04, 0x00, 0x00,
0x78, 0x24, 0x7C, 0x7C, 0x78, 0x00,
0x7C, 0x7C, 0x7C, 0x48, 0x20, 0x00,
0x18, 0x7C, 0x7C, 0x7C, 0x4C, 0x00,
0x20, 0x48, 0x7C, 0x7C, 0x7C, 0x00,
0x18, 0x7C, 0x7C, 0x74, 0x4C, 0x00,
0x78, 0x7C, 0x7C, 0x24, 0x00, 0x00,
0x18, 0x7C, 0x7C, 0x44, 0x74, 0x00,
0x7C, 0x7C, 0x7C, 0x08, 0x60, 0x00,
0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00,
0x40, 0x7C, 0x7C, 0x7C, 0x00, 0x00,
0x7C, 0x7C, 0x7C, 0x20, 0x48, 0x00,
0x7C, 0x7C, 0x7C, 0x40, 0x00, 0x00,
0x7C, 0x3C, 0x3C, 0x78, 0x3C, 0x3C,
0x7C, 0x7C, 0x7C, 0x04, 0x78, 0x00,
0x18, 0x18, 0x7C, 0x44, 0x7C, 0x7C,
0x7C, 0x7C, 0x7C, 0x24, 0x08, 0x00,
0x18, 0x18, 0x7C, 0x44, 0x7C, 0x7C,
0x7C, 0x7C, 0x7C, 0x04, 0x00, 0x00,
0x5C, 0x7C, 0x7C, 0x74, 0x00, 0x00,
0x08, 0x7C, 0x7C, 0x7C, 0x48, 0x00,
0x7C, 0x60, 0x7C, 0x7C, 0x7C, 0x00,
0x3C, 0x60, 0x7C, 0x7C, 0x3C, 0x00,
0x7C, 0x78, 0x78, 0x3C, 0x78, 0x78,
0x4C, 0x3C, 0x3C, 0x78, 0x64, 0x00,
0x4C, 0x4C, 0x4C, 0x78, 0x3C, 0x00,
0x5C, 0x74, 0x44, 0x5C, 0x74, 0x00,
0x24, 0x7E, 0x42, 0x42, 0x00, 0x00,
0x7E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x42, 0x7E, 0x24, 0x00, 0x00, 0x00,
0x04, 0x06, 0x06, 0x02, 0x04, 0x06,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# elif defined(OLED_FONT_EIN)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
0x00, 0x41, 0x5D, 0x59, 0x4E, 0x00,
0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
0x00, 0x00, 0x7F, 0x00, 0x00, 0x00,
0x20, 0x40, 0x40, 0x3F, 0x00, 0x00,
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
0x01, 0x01, 0x7F, 0x01, 0x01, 0x00,
0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
0x78, 0x14, 0x14, 0x78, 0x00, 0x00,
0x7C, 0x54, 0x54, 0x28, 0x00, 0x00,
0x38, 0x44, 0x44, 0x28, 0x00, 0x00,
0x7C, 0x44, 0x44, 0x38, 0x00, 0x00,
0x7C, 0x54, 0x54, 0x44, 0x00, 0x00,
0x7C, 0x14, 0x14, 0x04, 0x00, 0x00,
0x38, 0x44, 0x54, 0x34, 0x00, 0x00,
0x7C, 0x10, 0x10, 0x7C, 0x00, 0x00,
0x00, 0x7C, 0x00, 0x00, 0x00, 0x00,
0x20, 0x40, 0x40, 0x3C, 0x00, 0x00,
0x7C, 0x10, 0x28, 0x44, 0x00, 0x00,
0x7C, 0x40, 0x40, 0x40, 0x00, 0x00,
0x7C, 0x08, 0x70, 0x08, 0x7C, 0x00,
0x7C, 0x08, 0x10, 0x7C, 0x00, 0x00,
0x38, 0x44, 0x44, 0x38, 0x00, 0x00,
0x7C, 0x14, 0x14, 0x08, 0x00, 0x00,
0x38, 0x44, 0x24, 0x58, 0x00, 0x00,
0x7C, 0x14, 0x34, 0x48, 0x00, 0x00,
0x48, 0x54, 0x54, 0x24, 0x00, 0x00,
0x04, 0x7C, 0x04, 0x00, 0x00, 0x00,
0x3C, 0x40, 0x40, 0x3C, 0x00, 0x00,
0x3C, 0x40, 0x20, 0x1C, 0x00, 0x00,
0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
0x0C, 0x10, 0x70, 0x10, 0x0C, 0x00,
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
# elif defined(OLED_FONT_HISKYF21)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x28, 0x7C, 0x28, 0x7C, 0x28, 0x00,
0x48, 0x54, 0x54, 0xFE, 0x54, 0x54,
0x44, 0x20, 0x10, 0x08, 0x44, 0x00,
0x28, 0x54, 0x54, 0x54, 0x74, 0x10,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x78, 0x84, 0x00, 0x00, 0x00, 0x00,
0x84, 0x78, 0x00, 0x00, 0x00, 0x00,
0x48, 0x30, 0x30, 0x48, 0x00, 0x00,
0x10, 0x38, 0x10, 0x00, 0x00, 0x00,
0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
0x60, 0x10, 0x0C, 0x00, 0x00, 0x00,
0x38, 0x44, 0x44, 0x44, 0x44, 0x38,
0x08, 0x7C, 0x00, 0x00, 0x00, 0x00,
0x64, 0x54, 0x54, 0x54, 0x48, 0x00,
0x44, 0x54, 0x54, 0x54, 0x28, 0x00,
0x1C, 0x10, 0x10, 0x10, 0x7C, 0x00,
0x4C, 0x54, 0x54, 0x54, 0x24, 0x00,
0x38, 0x54, 0x54, 0x54, 0x54, 0x20,
0x44, 0x24, 0x14, 0x0C, 0x00, 0x00,
0x28, 0x54, 0x54, 0x54, 0x54, 0x28,
0x08, 0x54, 0x54, 0x54, 0x54, 0x38,
0x48, 0x00, 0x00, 0x00, 0x00, 0x00,
0xC8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x28, 0x44, 0x00, 0x00, 0x00,
0x28, 0x28, 0x28, 0x28, 0x00, 0x00,
0x44, 0x28, 0x10, 0x00, 0x00, 0x00,
0x04, 0x54, 0x14, 0x14, 0x08, 0x00,
0x38, 0x44, 0x5C, 0x54, 0x48, 0x00,
0x60, 0x18, 0x14, 0x14, 0x18, 0x60,
0x7C, 0x54, 0x54, 0x54, 0x58, 0x30,
0x38, 0x44, 0x44, 0x44, 0x40, 0x00,
0x7C, 0x44, 0x44, 0x44, 0x38, 0x00,
0x7C, 0x54, 0x54, 0x54, 0x54, 0x40,
0x7C, 0x14, 0x14, 0x14, 0x10, 0x00,
0x38, 0x44, 0x44, 0x44, 0x70, 0x10,
0x7C, 0x10, 0x10, 0x10, 0x10, 0x7C,
0x7C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x40, 0x40, 0x40, 0x40, 0x3C,
0x7C, 0x10, 0x10, 0x28, 0x44, 0x00,
0x7C, 0x40, 0x40, 0x40, 0x00, 0x00,
0x7C, 0x08, 0x10, 0x60, 0x10, 0x08,
0x7C, 0x08, 0x10, 0x20, 0x7C, 0x00,
0x38, 0x44, 0x44, 0x44, 0x44, 0x38,
0x7C, 0x24, 0x24, 0x24, 0x18, 0x00,
0x38, 0x44, 0x64, 0x44, 0x38, 0x00,
0x7C, 0x14, 0x14, 0x14, 0x68, 0x00,
0x48, 0x54, 0x54, 0x54, 0x54, 0x20,
0x04, 0x04, 0x7C, 0x04, 0x04, 0x00,
0x3C, 0x40, 0x40, 0x40, 0x3C, 0x00,
0x0C, 0x30, 0x40, 0x30, 0x0C, 0x00,
0x0C, 0x30, 0x40, 0x20, 0x1C, 0x20,
0x74, 0x2C, 0x10, 0x28, 0x44, 0x00,
0x04, 0x08, 0x70, 0x08, 0x04, 0x00,
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
0xFC, 0x84, 0x00, 0x00, 0x00, 0x00,
0x0C, 0x10, 0x60, 0x00, 0x00, 0x00,
0x84, 0xFC, 0x00, 0x00, 0x00, 0x00,
0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
0x40, 0x40, 0x40, 0x40, 0x00, 0x00,
0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
0x60, 0x18, 0x14, 0x14, 0x18, 0x60,
0x7C, 0x54, 0x54, 0x54, 0x58, 0x30,
0x38, 0x44, 0x44, 0x44, 0x40, 0x00,
0x7C, 0x44, 0x44, 0x44, 0x38, 0x00,
0x7C, 0x54, 0x54, 0x54, 0x54, 0x40,
0x7C, 0x14, 0x14, 0x14, 0x10, 0x00,
0x38, 0x44, 0x44, 0x44, 0x70, 0x10,
0x7C, 0x10, 0x10, 0x10, 0x10, 0x7C,
0x7C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x40, 0x40, 0x40, 0x40, 0x3C,
0x7C, 0x10, 0x10, 0x28, 0x44, 0x00,
0x7C, 0x40, 0x40, 0x40, 0x00, 0x00,
0x7C, 0x08, 0x10, 0x60, 0x10, 0x08,
0x7C, 0x08, 0x10, 0x20, 0x7C, 0x00,
0x38, 0x44, 0x44, 0x44, 0x44, 0x38,
0x7C, 0x24, 0x24, 0x24, 0x18, 0x00,
0x38, 0x44, 0x64, 0x44, 0x38, 0x00,
0x7C, 0x14, 0x14, 0x14, 0x68, 0x00,
0x48, 0x54, 0x54, 0x54, 0x54, 0x20,
0x04, 0x04, 0x7C, 0x04, 0x04, 0x00,
0x3C, 0x40, 0x40, 0x40, 0x3C, 0x00,
0x0C, 0x30, 0x40, 0x30, 0x0C, 0x00,
0x0C, 0x30, 0x40, 0x20, 0x1C, 0x20,
0x74, 0x2C, 0x10, 0x28, 0x44, 0x00,
0x04, 0x08, 0x70, 0x08, 0x04, 0x00,
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
0xFC, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# elif defined(OLED_FONT_SUPER_DIGG)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x5C, 0x00, 0x00, 0x00, 0x00,
@ -435,6 +726,103 @@ static const unsigned char font[] PROGMEM = {
0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00,
0x02, 0x01, 0x03, 0x04, 0x06, 0x02,
0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00,
#elif defined (OLED_FONT_ZXPIX)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x03, 0x00, 0x00, 0x00,
0x12, 0x3F, 0x12, 0x12, 0x3F, 0x12,
0x2E, 0x2A, 0x7F, 0x2A, 0x3A, 0x00,
0x23, 0x13, 0x08, 0x04, 0x32, 0x31,
0x10, 0x2A, 0x25, 0x2A, 0x10, 0x20,
0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
0x1E, 0x21, 0x00, 0x00, 0x00, 0x00,
0x21, 0x1E, 0x00, 0x00, 0x00, 0x00,
0x08, 0x2A, 0x1C, 0x2A, 0x08, 0x08,
0x08, 0x08, 0x3E, 0x08, 0x08, 0x08,
0x80, 0x60, 0x00, 0x00, 0x00, 0x00,
0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
0x30, 0x30, 0x00, 0x00, 0x00, 0x00,
0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
0x1E, 0x31, 0x29, 0x25, 0x23, 0x1E,
0x22, 0x21, 0x3F, 0x20, 0x20, 0x20,
0x32, 0x29, 0x29, 0x29, 0x29, 0x26,
0x12, 0x21, 0x21, 0x25, 0x25, 0x1A,
0x18, 0x14, 0x12, 0x3F, 0x10, 0x10,
0x17, 0x25, 0x25, 0x25, 0x25, 0x19,
0x1E, 0x25, 0x25, 0x25, 0x25, 0x18,
0x01, 0x01, 0x31, 0x09, 0x05, 0x03,
0x1A, 0x25, 0x25, 0x25, 0x25, 0x1A,
0x06, 0x29, 0x29, 0x29, 0x29, 0x1E,
0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x64, 0x00, 0x00, 0x00, 0x00,
0x08, 0x14, 0x22, 0x00, 0x00, 0x00,
0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
0x22, 0x14, 0x08, 0x00, 0x00, 0x00,
0x02, 0x01, 0x01, 0x29, 0x05, 0x02,
0x1E, 0x21, 0x2D, 0x2B, 0x2D, 0x0E,
0x3E, 0x09, 0x09, 0x09, 0x09, 0x3E,
0x3F, 0x25, 0x25, 0x25, 0x25, 0x1A,
0x1E, 0x21, 0x21, 0x21, 0x21, 0x12,
0x3F, 0x21, 0x21, 0x21, 0x12, 0x0C,
0x3F, 0x25, 0x25, 0x25, 0x25, 0x21,
0x3F, 0x05, 0x05, 0x05, 0x05, 0x01,
0x1E, 0x21, 0x21, 0x21, 0x29, 0x1A,
0x3F, 0x04, 0x04, 0x04, 0x04, 0x3F,
0x21, 0x21, 0x3F, 0x21, 0x21, 0x21,
0x10, 0x20, 0x20, 0x20, 0x20, 0x1F,
0x3F, 0x04, 0x0C, 0x0A, 0x11, 0x20,
0x3F, 0x20, 0x20, 0x20, 0x20, 0x20,
0x3F, 0x02, 0x04, 0x04, 0x02, 0x3F,
0x3F, 0x02, 0x04, 0x08, 0x10, 0x3F,
0x1E, 0x21, 0x21, 0x21, 0x21, 0x1E,
0x3F, 0x09, 0x09, 0x09, 0x09, 0x06,
0x1E, 0x21, 0x29, 0x31, 0x21, 0x1E,
0x3F, 0x09, 0x09, 0x09, 0x19, 0x26,
0x12, 0x25, 0x25, 0x25, 0x25, 0x18,
0x01, 0x01, 0x01, 0x3F, 0x01, 0x01,
0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F,
0x0F, 0x10, 0x20, 0x20, 0x10, 0x0F,
0x1F, 0x20, 0x10, 0x10, 0x20, 0x1F,
0x21, 0x12, 0x0C, 0x0C, 0x12, 0x21,
0x01, 0x02, 0x0C, 0x38, 0x04, 0x02,
0x21, 0x31, 0x29, 0x25, 0x23, 0x21,
0x3F, 0x21, 0x00, 0x00, 0x00, 0x00,
0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
0x21, 0x3F, 0x00, 0x00, 0x00, 0x00,
0x04, 0x02, 0x3F, 0x02, 0x04, 0x00,
0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
0x01, 0x02, 0x00, 0x00, 0x00, 0x00,
0x10, 0x30, 0x2A, 0x2A, 0x3C, 0x00,
0x3F, 0x24, 0x24, 0x24, 0x18, 0x00,
0x0C, 0x14, 0x22, 0x22, 0x00, 0x00,
0x18, 0x24, 0x24, 0x24, 0x3F, 0x00,
0x1C, 0x2C, 0x2A, 0x2A, 0x24, 0x00,
0x3E, 0x05, 0x01, 0x00, 0x00, 0x00,
0x18, 0x28, 0xA4, 0xA4, 0x7C, 0x00,
0x3F, 0x04, 0x04, 0x0C, 0x30, 0x00,
0x24, 0x3D, 0x20, 0x00, 0x00, 0x00,
0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
0x3F, 0x0C, 0x12, 0x20, 0x00, 0x00,
0x1F, 0x20, 0x20, 0x00, 0x00, 0x00,
0x3E, 0x02, 0x3C, 0x02, 0x3C, 0x00,
0x3E, 0x02, 0x02, 0x02, 0x3C, 0x00,
0x0C, 0x14, 0x22, 0x32, 0x0C, 0x00,
0xFC, 0x24, 0x24, 0x24, 0x18, 0x00,
0x18, 0x24, 0x24, 0x24, 0xFC, 0x80,
0x3C, 0x04, 0x02, 0x02, 0x00, 0x00,
0x24, 0x2C, 0x2A, 0x2A, 0x10, 0x00,
0x02, 0x1F, 0x22, 0x20, 0x00, 0x00,
0x1E, 0x20, 0x20, 0x20, 0x1E, 0x00,
0x06, 0x18, 0x20, 0x18, 0x06, 0x00,
0x1E, 0x30, 0x1C, 0x30, 0x0E, 0x00,
0x22, 0x14, 0x08, 0x14, 0x22, 0x00,
0x0C, 0x10, 0xA0, 0xA0, 0x7C, 0x00,
0x22, 0x32, 0x2A, 0x26, 0x22, 0x22,
0x0C, 0x3F, 0x21, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x21, 0x3F, 0x0C, 0x00, 0x00, 0x00,
0x02, 0x01, 0x02, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# else // default font
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
@ -525,7 +913,7 @@ static const unsigned char font[] PROGMEM = {
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
0x4C, 0x90, 0x10, 0x90, 0x7C, 0x00,
0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
@ -601,6 +989,50 @@ static const unsigned char font[] PROGMEM = {
0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# elif defined(OLED_LOGO_LOOSE)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8,
0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00,
0xFC, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
0x02, 0xF9, 0x01, 0x01, 0x05, 0x09,
0x11, 0x22, 0x06, 0xFE, 0xFE, 0xFE,
0xFE, 0xFE, 0xFE, 0xFE, 0x46, 0x46,
0x44, 0x44, 0x45, 0x44, 0x29, 0x28,
0x2A, 0x28, 0x11, 0x13, 0x05, 0x07,
0x05, 0x07, 0x05, 0x07, 0x05, 0x07,
0xE5, 0xE7, 0xE5, 0x07, 0x05, 0x07,
0x05, 0x07, 0x05, 0x07, 0x05, 0x07,
0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7,
0xE5, 0xE7, 0xE5, 0xC7, 0x85, 0x07,
0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7,
0xE5, 0xE7, 0xE5, 0xC7, 0x85, 0x07,
0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7,
0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0x07,
0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xE7,
0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# elif defined(OLED_LOGO_SKEEB)
0xC0, 0x20, 0x10, 0x08, 0x04, 0x02,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x03, 0x07, 0x0F, 0x1F,
0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01,
0xFF, 0xFF, 0x01, 0x01, 0xFF, 0xFF,
0x01, 0x01, 0xFF, 0xFF, 0x19, 0x19,
0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
0x01, 0x01, 0xFF, 0xFF, 0x81, 0x81,
0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
0x19, 0x19, 0xFF, 0xFF, 0xF9, 0xF9,
0xF9, 0xF9, 0x01, 0x01, 0xF9, 0xF9,
0xF9, 0xF9, 0xFF, 0xFF, 0x99, 0x99,
0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
0xF9, 0xF9, 0xFF, 0xFF, 0x19, 0x19,
0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
0x67, 0x67, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F,
0x1F, 0x0F, 0x07, 0x03, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x02, 0x04, 0x08, 0x10, 0x20, 0xC0,
# else
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8,
@ -705,6 +1137,50 @@ static const unsigned char font[] PROGMEM = {
0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# elif defined(OLED_LOGO_LOOSE)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xE3, 0xC1, 0xC1, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0xFF, 0x00, 0x00, 0x80, 0x00,
0x1C, 0x3E, 0x7F, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x22, 0x22,
0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
0x22, 0x22, 0x22, 0x14, 0x14, 0x14,
0x14, 0x14, 0x08, 0x08, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xBE,
0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0xBD,
0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x8F, 0x9F, 0x9C, 0x9C, 0x9C, 0x9C,
0x9C, 0x9C, 0x9C, 0xFC, 0xF8, 0x00,
0xFF, 0xFF, 0xFF, 0x9C, 0x9C, 0x9C,
0x9C, 0x9C, 0x9C, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# elif defined(OLED_LOGO_SKEEB)
0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x03, 0x07,
0x0F, 0x0F, 0x0F, 0x0F, 0x08, 0x08,
0x0F, 0x0F, 0x0E, 0x0E, 0x0F, 0x0F,
0x08, 0x08, 0x0F, 0x0F, 0x08, 0x08,
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
0x08, 0x08, 0x0F, 0x0F, 0x09, 0x09,
0x09, 0x09, 0xF9, 0xF9, 0x09, 0x09,
0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F,
0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x0F,
0x0F, 0x0F, 0x0F, 0x0F, 0x09, 0x09,
0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
0x09, 0x09, 0x0F, 0x0F, 0x08, 0x08,
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F,
0x07, 0x03, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
# else
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF,
@ -738,7 +1214,7 @@ static const unsigned char font[] PROGMEM = {
0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x44, 0x28, 0xFF, 0x5A, 0x24,
0xF0, 0xFE, 0xF1, 0x91, 0xF6, 0xF0,
0xF0, 0xFC, 0xF2, 0x92, 0xFC, 0xF0,
@ -809,6 +1285,50 @@ static const unsigned char font[] PROGMEM = {
0x07, 0x07, 0x03, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# elif defined(OLED_LOGO_LOOSE)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x03, 0x07, 0x0F,
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00,
0x1F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
0x20, 0x47, 0x48, 0x50, 0x40, 0x41,
0x42, 0x24, 0x30, 0x3F, 0x3F, 0x3F,
0x3F, 0x3F, 0x3F, 0x3F, 0x31, 0x31,
0x11, 0x51, 0x11, 0x11, 0x4A, 0x0A,
0x2A, 0x0A, 0x44, 0x64, 0x50, 0x70,
0x50, 0x70, 0x50, 0x70, 0x50, 0x70,
0x53, 0x73, 0x53, 0x73, 0x53, 0x73,
0x53, 0x73, 0x53, 0x73, 0x53, 0x70,
0x50, 0x71, 0x53, 0x73, 0x53, 0x73,
0x53, 0x73, 0x53, 0x71, 0x50, 0x70,
0x50, 0x71, 0x53, 0x73, 0x53, 0x73,
0x53, 0x73, 0x53, 0x71, 0x50, 0x70,
0x53, 0x73, 0x53, 0x73, 0x53, 0x73,
0x53, 0x73, 0x53, 0x73, 0x51, 0x70,
0x53, 0x73, 0x53, 0x73, 0x53, 0x73,
0x53, 0x73, 0x53, 0x73, 0x53, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# elif defined(OLED_LOGO_SKEEB)
0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x08, 0x08, 0x08, 0x08, 0xFF,
0x08, 0x08, 0x0F, 0x0F, 0x08, 0x08,
0x03, 0x04, 0x08, 0x10, 0x20, 0x40,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x40, 0x20, 0x10, 0x08, 0x04, 0x03,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8,
0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x80,
0x01, 0x02, 0xFC, 0xF8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
#else
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F,
@ -834,17 +1354,17 @@ static const unsigned char font[] PROGMEM = {
#endif
// third icon section
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1F, 0x05, 0x00, 0x02, 0x1F, 0x00,
0x1F, 0x05, 0x00, 0x1D, 0x17, 0x00,
0x1F, 0x05, 0x00, 0x15, 0x1F, 0x00,
0x1F, 0x05, 0x00, 0x07, 0x1C, 0x00,
0x1F, 0x05, 0x00, 0x17, 0x1D, 0x00,
0x1F, 0x05, 0x00, 0x1F, 0x1D, 0x00,
0x1F, 0x05, 0x00, 0x01, 0x1F, 0x00,
0x1F, 0x05, 0x00, 0x1F, 0x1F, 0x00,
0x1F, 0x05, 0x00, 0x07, 0x1F, 0x00,
0x1F, 0x05, 0x00, 0x70, 0x77, 0x00,
0x1F, 0x05, 0x00, 0x00, 0x77, 0x00,
// fourth icon section
0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
@ -874,7 +1394,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08,
0x18, 0x08, 0x18, 0x00, 0x00, 0x00,
0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1F, 0x05, 0x00, 0x10, 0x77, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

View File

@ -167,13 +167,76 @@ NOTE: These are all the same length. If you do a search/replace
#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
#define __________________ISRT_L1__________________ KC_W, KC_C, KC_L, KC_M, KC_K
#define __________________ISRT_L2__________________ KC_I, KC_S, KC_R, KC_T, KC_G
#define __________________ISRT_L3__________________ KC_Q, KC_V, KC_W, KC_D, KC_J
#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
#define __________________ISRT_R1__________________ KC_Z, KC_F, KC_U, KC_COMM, KC_QUOTE
#define __________________ISRT_R2__________________ KC_P, KC_N, KC_E, KC_A, KC_O, KC_SCLN
#define __________________ISRT_R3__________________ KC_B, KC_H, KC_SLSH, KC_DOT, KC_X
#define __________________SOUL_L1__________________ KC_Q, KC_W, KC_L, KC_D, KC_P
#define __________________SOUL_L2__________________ KC_A, KC_S, KC_R, KC_T, KC_G
#define __________________SOUL_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_J
#define __________________SOUL_R1__________________ KC_K, KC_M, KC_U, KC_Y, KC_SCLN
#define __________________SOUL_R2__________________ KC_F, KC_N, KC_E, KC_I, KC_O, KC_QUOTE
#define __________________SOUL_R3__________________ KC_B, KC_H, KC_COMM, KC_DOT, KC_SLSH
#define __________________NIRO_L1__________________ KC_Q, KC_W, KC_U, KC_D, KC_P
#define __________________NIRO_L2__________________ KC_A, KC_S, KC_E, KC_T, KC_G
#define __________________NIRO_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define __________________NIRO_R1__________________ KC_J, KC_F, KC_Y, KC_L, KC_SCLN
#define __________________NIRO_R2__________________ KC_H, KC_N, KC_I, KC_R, KC_O, KC_QUOTE
#define __________________NIRO_R3__________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
#define _________________ASSET_L1__________________ KC_Q, KC_W, KC_J, KC_F, KC_G
#define _________________ASSET_L2__________________ KC_A, KC_S, KC_E, KC_T, KC_D
#define _________________ASSET_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define _________________ASSET_R1__________________ KC_Y, KC_P, KC_U, KC_L, KC_SCLN
#define _________________ASSET_R2__________________ KC_H, KC_N, KC_I, KC_O, KC_R, KC_QUOTE
#define _________________ASSET_R3__________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
#define _________________MTGAP_L1__________________ KC_Y, KC_P, KC_O, KC_U, KC_J
#define _________________MTGAP_L2__________________ KC_I, KC_N, KC_E, KC_A, KC_COMM
#define _________________MTGAP_L3__________________ KC_Q, KC_Z, KC_SLSH, KC_DOT, KC_SCLN
#define _________________MTGAP_R1__________________ KC_K, KC_D, KC_L, KC_C, KC_W
#define _________________MTGAP_R2__________________ KC_M, KC_H, KC_T, KC_S, KC_R, KC_QUOTE
#define _________________MTGAP_R3__________________ KC_B, KC_F, KC_G, KC_V, KC_X
#define _________________MINIMAK_L1________________ KC_Q, KC_W, KC_D, KC_R, KC_K
#define _________________MINIMAK_L2________________ KC_A, KC_S, KC_T, KC_F, KC_G
#define _________________MINIMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define _________________MINIMAK_R1________________ KC_Y, KC_U, KC_I, KC_O, KC_P
#define _________________MINIMAK_R2________________ KC_H, KC_J, KC_E, KC_L, KC_SCLN, KC_QUOT
#define _________________MINIMAK_R3________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
#define ________________MINIMAK_8_L1_______________ KC_Q, KC_W, KC_D, KC_R, KC_K
#define ________________MINIMAK_8_L2_______________ KC_A, KC_S, KC_T, KC_F, KC_G
#define ________________MINIMAK_8_L3_______________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define ________________MINIMAK_8_R1_______________ KC_Y, KC_U, KC_I, KC_L, KC_P
#define ________________MINIMAK_8_R2_______________ KC_H, KC_N, KC_E, KC_O, KC_SCLN, KC_QUOT
#define ________________MINIMAK_8_R3_______________ KC_J, KC_M, KC_COMM, KC_DOT, KC_SLSH
#define _______________MINIMAK_12_L1_______________ KC_Q, KC_W, KC_D, KC_F, KC_K
#define _______________MINIMAK_12_L2_______________ KC_A, KC_S, KC_T, KC_R, KC_G
#define _______________MINIMAK_12_L3_______________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define _______________MINIMAK_12_R1_______________ KC_Y, KC_U, KC_I, KC_L, KC_SCLN
#define _______________MINIMAK_12_R2_______________ KC_H, KC_N, KC_E, KC_O, KC_P, KC_QUOT
#define _______________MINIMAK_12_R3_______________ KC_J, KC_M, KC_COMM, KC_DOT, KC_SLSH
#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5