Skip to content

Commit

Permalink
[Keyboard] New Keyboard - Sugar Glider (#19933)
Browse files Browse the repository at this point in the history
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Less/Rikki <[email protected]>
Co-authored-by: jack <[email protected]>
  • Loading branch information
4 people authored Mar 15, 2023
1 parent e62fc86 commit 915d7a1
Show file tree
Hide file tree
Showing 20 changed files with 1,165 additions and 0 deletions.
41 changes: 41 additions & 0 deletions keyboards/mechwild/sugarglider/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Copyright 2023 Kyle McCreery
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#define DYNAMIC_KEYMAP_LAYER_COUNT 5

/* Matrix COL and ROW definitions */
#define MATRIX_ROWS 9
#define MATRIX_COLS 6

/* Cirque Touchpad Settings */
#define POINTING_DEVICE_AUTO_MOUSE_ENABLE
#define CIRQUE_PINNACLE_ATTENUATION EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_2X

/* Define custom font */
#define OLED_FONT_H "keyboards/mechwild/sugarglider/glcdfont.c"

/* allows the "key" button on the blackpill to toggle caps lock for user testing before soldering */
#define DIP_SWITCH_PINS { A0 }

/* TAPPING_TERM value is used for the CIRQUE_PINNACLE_TAPPING_TERM as well by default
* defining it this way allows us to easily modify it with DYNAMIC_TAPPING_TERM_ENABLE
*/
#define TAPPING_TERM 0
#define CIRQUE_PINNACLE_TAP_ENABLE
#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE

/* spi config */
#define SPI_DRIVER SPID1
#define SPI_SCK_PIN A5
#define SPI_SCK_PAL_MODE 5
#define SPI_MOSI_PIN A7
#define SPI_MOSI_PAL_MODE 5
#define SPI_MISO_PIN A6
#define SPI_MISO_PAL_MODE 5
#define CIRQUE_PINNACLE_SPI_DIVISOR 8
#define CIRQUE_PINNACLE_SPI_CS_PIN A3

/* Force NKRO */
#define FORCE_NKRO
3 changes: 3 additions & 0 deletions keyboards/mechwild/sugarglider/f401/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# MCU name
MCU = STM32F401
BOARD = BLACKPILL_STM32_F401
3 changes: 3 additions & 0 deletions keyboards/mechwild/sugarglider/f411/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# MCU name
MCU = STM32F411
BOARD = BLACKPILL_STM32_F411
231 changes: 231 additions & 0 deletions keyboards/mechwild/sugarglider/glcdfont.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
// Copyright 2023 Kyle McCreery
// SPDX-License-Identifier: GPL-2.0-or-later

#include "progmem.h"

const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
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,
0x3E, 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, 0x41, 0x7F, 0x41, 0x00, 0x00,
0x20, 0x40, 0x41, 0x3F, 0x01, 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,
0x03, 0x01, 0x7F, 0x01, 0x03, 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,
0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
0x38, 0x44, 0x44, 0x28, 0x7E, 0x00,
0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
0x44, 0x28, 0x10, 0x28, 0x44, 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,
0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
0x00, 0x00, 0x00, 0xE0, 0xFE, 0xFF,
0xFE, 0xF8, 0xC0, 0x00, 0x00, 0x00,
0x00, 0x00, 0xE0, 0xFC, 0xFF, 0xFE,
0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x3E,
0xE0, 0x80, 0x70, 0x0E, 0x01, 0x00,
0x00, 0x00, 0x00, 0x07, 0x3C, 0xE0,
0x80, 0x78, 0x07, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F,
0x07, 0x1F, 0xFF, 0xFE, 0xF0, 0xC0,
0xF8, 0xFF, 0xF7, 0x07, 0x07, 0x7F,
0xFF, 0xFF, 0xF8, 0x00, 0xC0, 0x38,
0x0C, 0x18, 0x60, 0x80, 0x00, 0x00,
0x00, 0xF0, 0x0C, 0x04, 0xF4, 0x1C,
0x00, 0x1F, 0x1F, 0x1F, 0x07, 0x00,
0x00, 0x00, 0x00, 0x03, 0x1F, 0x1F,
0x0F, 0x01, 0x03, 0x06, 0xF8, 0x00,
0x07, 0x7F, 0x3F, 0x0E, 0xC1, 0x38,
0x07, 0x0E, 0x70, 0x83, 0x1C, 0x60,
0x1E, 0x03, 0xC0, 0x3E, 0x01, 0x00,
0x80, 0xC0, 0xFC, 0xE6, 0xC3, 0xC1,
0xC1, 0xC3, 0xE6, 0xFC, 0xC0, 0x80,
0x3F, 0x7F, 0xFF, 0xFF, 0xF9, 0xC0,
0xC0, 0xF9, 0xFF, 0xFF, 0x7F, 0x3F,
0x00, 0x80, 0x40, 0x40, 0xC0, 0xC0,
0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF8, 0x86, 0xC1, 0xC1,
0x41, 0x41, 0x81, 0x01, 0x01, 0x01,
0x02, 0x06, 0x18, 0x60, 0x80, 0x00,
0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0E, 0xF1, 0x00, 0x00, 0x00, 0x00,
0x81, 0xC7, 0xCF, 0xFF, 0xB1, 0x01,
0x1F, 0x7F, 0x7F, 0x1F, 0x01, 0xB1,
0xFF, 0xDF, 0xC7, 0x83, 0x01, 0x00,
0x00, 0x00, 0xE0, 0xDF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x1C,
0xE0, 0x00, 0x00, 0x80, 0x80, 0x80,
0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
0x04, 0x0B, 0x15, 0x22, 0x40, 0x41,
0x80, 0x41, 0x7E, 0x0C, 0x0C, 0x1C,
0x1C, 0x3C, 0x3C, 0x3C, 0x7C, 0x7C,
0x7C, 0x78, 0x7B, 0xFE, 0xC6, 0x84,
0x03, 0x0F, 0x0F, 0x0E, 0x0D, 0x07,
0x50, 0x78, 0x78, 0x50, 0x07, 0x0F,
0x0F, 0x0F, 0x0E, 0x07, 0x04, 0xC6,
0xFE, 0x7B, 0x79, 0x7D, 0x7E, 0x7C,
0x3C, 0x3C, 0x3C, 0x1C, 0x1C, 0x0C,
0x3F, 0x46, 0x41, 0x80, 0x41, 0x40,
0x21, 0x15, 0x0B, 0x04, 0x00, 0x00,
0x01, 0x06, 0x38, 0xE0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x03, 0x02, 0x04, 0x08, 0x08, 0x08,
0x10, 0x10, 0x10, 0x10, 0x10, 0x08,
0x08, 0x0C, 0x04, 0x02, 0x01, 0x00,
0xF0, 0x1C, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xC7, 0x78, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xFC, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0xF0, 0xE0, 0xC0,
0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x80, 0xC0, 0xC0, 0xE0,
0xF8, 0xBF, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1C, 0x3A,
0x51, 0x21, 0x60, 0x40, 0x21, 0x33,
0x1F, 0x07, 0x07, 0x07, 0x0F, 0x37,
0x27, 0x27, 0x46, 0x46, 0x46, 0x46,
0x4E, 0x4F, 0x4F, 0x4F, 0x47, 0x47,
0x43, 0x41, 0x41, 0x23, 0x27, 0x1F,
0x0F, 0x0F, 0x0F, 0x06, 0x06, 0x06,
0x06, 0x06, 0x07, 0x07, 0x07, 0x07,
0x07, 0x07, 0x0F, 0x17, 0x23, 0x41,
0x40, 0x60, 0x21, 0x75, 0x3A, 0x14,
0x00, 0x00, 0x00, 0xE0, 0xFE, 0xFF,
0xFE, 0xF8, 0xC0, 0x00, 0x00, 0x00,
0x00, 0x00, 0xE0, 0xFC, 0xFF, 0xFE,
0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF8, 0xFF, 0xF7, 0x07,
0x07, 0x1F, 0xFF, 0xFE, 0xF0, 0xC0,
0xF8, 0x3F, 0x8F, 0x0F, 0x3F, 0xFF,
0xFF, 0xFE, 0x80, 0xF0, 0x0C, 0x04,
0xF4, 0x1C, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1F, 0x1F, 0x1F, 0x07, 0x06,
0xF8, 0x00, 0x00, 0x73, 0x3F, 0x0F,
0xC1, 0x38, 0x07, 0x0F, 0x70, 0x83,
0x07, 0x7F, 0x1F, 0x03, 0xC0, 0x3F,
0x01, 0x3E, 0xE0, 0x80, 0x70, 0x0E,
0x01, 0x00, 0x00, 0x00, 0x00, 0x07,
0x3C, 0xE0, 0x80, 0x78, 0x07, 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
};
12 changes: 12 additions & 0 deletions keyboards/mechwild/sugarglider/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Copyright 2023 Kyle McCreery
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#define HAL_USE_I2C TRUE

#define HAL_USE_SPI TRUE
#define SPI_USE_WAIT TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD

#include_next <halconf.h>
Loading

0 comments on commit 915d7a1

Please sign in to comment.