[Keyboard] ProjectKB Alice rev2 (#8718)

* Add revision 1 and revision 2 to ProjectKB Alice PCB

* Swap SLEEP LED to no

* Basic root rules.mk

* Apply suggestions from code review

* Update keyboards/projectkb/alice/rules.mk
This commit is contained in:
Andrew Kannan 2020-04-15 18:37:47 -04:00 committed by GitHub
parent 484c059d86
commit 17d0f6338e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 150 additions and 29 deletions

View File

@ -1,17 +1,17 @@
#include "alice.h" #include "alice.h"
void matrix_init_board(void){ void matrix_init_board(void){
setPinOutput(A0); setPinOutput(INDICATOR_PIN_0);
setPinOutput(A1); setPinOutput(INDICATOR_PIN_1);
setPinOutput(A2); setPinOutput(INDICATOR_PIN_2);
} }
bool led_update_kb(led_t led_state) { bool led_update_kb(led_t led_state) {
bool runDefault = led_update_user(led_state); bool runDefault = led_update_user(led_state);
if (runDefault) { if (runDefault) {
writePin(A0, !led_state.num_lock); writePin(INDICATOR_PIN_0, !led_state.num_lock);
writePin(A1, !led_state.caps_lock); writePin(INDICATOR_PIN_1, !led_state.caps_lock);
writePin(A2, !led_state.scroll_lock); writePin(INDICATOR_PIN_2, !led_state.scroll_lock);
} }
return runDefault; return runDefault;
} }

View File

@ -7,7 +7,7 @@ Keyboard Maintainer: onefiftynine
Hardware Supported: STM32F072CBT6 Hardware Supported: STM32F072CBT6
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make projectkb/alice:default make projectkb/alice/rev2:default
If you are flashing this keyboard/pcb for the first time: If you are flashing this keyboard/pcb for the first time:

View File

@ -58,6 +58,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_SPI SPID2 #define WS2812_SPI SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_MOSI_PAL_MODE 0
#define INDICATOR_PIN_0 A0
#define INDICATOR_PIN_1 A1
#define INDICATOR_PIN_2 A2
// 2 bits for 4 layout options // 2 bits for 4 layout options
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2

View File

@ -0,0 +1,27 @@
# MCU name
MCU = STM32F072
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
WS2812_DRIVER = spi
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE

View File

@ -0,0 +1,85 @@
/*
Copyright 2015 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* USB Device descriptor parameter */
#define VENDOR_ID 0x0159
#define PRODUCT_ID 0xA71C
#define DEVICE_VER 0x0001
#define MANUFACTURER ProjectKB
#define PRODUCT Alice
#define DESCRIPTION ProjectKB Alice
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 16
#define MATRIX_COL_PINS { B1, B0, A7, A1, A5, A4, A3, A10, B9, B8, B7, B6, B5, B4, B3, A15 }
#define MATRIX_ROW_PINS { B2, B10, B11, A2, A0 }
#define DIODE_DIRECTION COL2ROW
#define BACKLIGHT_PIN A6
#define BACKLIGHT_PWM_DRIVER PWMD3
#define BACKLIGHT_PWM_CHANNEL 1
#define BACKLIGHT_PAL_MODE 1
#define BACKLIGHT_LEVELS 6
#define BACKLIGHT_BREATHING
#define BREATHING_PERIOD 6
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
#define RGBLIGHT_ANIMATIONS
#define RGB_DI_PIN B15
#define RGBLED_NUM 14
#define WS2812_SPI SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define INDICATOR_PIN_0 A9
#define INDICATOR_PIN_1 A8
#define INDICATOR_PIN_2 B12
// 2 bits for 4 layout options
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

@ -0,0 +1,27 @@
# MCU name
MCU = STM32F072
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
WS2812_DRIVER = spi
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE

View File

@ -1,22 +1 @@
# MCU name DEFAULT_FOLDER = projectkb/alice/rev1
MCU = STM32F072
# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = no # Custom matrix file
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = spi
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE