Skip to content

Commit

Permalink
[Keyboard] ProjectKB Alice rev2 (qmk#8718)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
Andrew Kannan authored and violet-fish committed May 3, 2020
1 parent 8655d0f commit ad109a4
Show file tree
Hide file tree
Showing 7 changed files with 150 additions and 29 deletions.
12 changes: 6 additions & 6 deletions keyboards/projectkb/alice/alice.c
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
#include "alice.h"

void matrix_init_board(void){
setPinOutput(A0);
setPinOutput(A1);
setPinOutput(A2);
setPinOutput(INDICATOR_PIN_0);
setPinOutput(INDICATOR_PIN_1);
setPinOutput(INDICATOR_PIN_2);
}

bool led_update_kb(led_t led_state) {
bool runDefault = led_update_user(led_state);
if (runDefault) {
writePin(A0, !led_state.num_lock);
writePin(A1, !led_state.caps_lock);
writePin(A2, !led_state.scroll_lock);
writePin(INDICATOR_PIN_0, !led_state.num_lock);
writePin(INDICATOR_PIN_1, !led_state.caps_lock);
writePin(INDICATOR_PIN_2, !led_state.scroll_lock);
}
return runDefault;
}
2 changes: 1 addition & 1 deletion keyboards/projectkb/alice/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Keyboard Maintainer: onefiftynine
Hardware Supported: STM32F072CBT6
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:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_SPI SPID2
#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
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
Expand Down
27 changes: 27 additions & 0 deletions keyboards/projectkb/alice/rev1/rules.mk
Original file line number Diff line number Diff line change
@@ -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
85 changes: 85 additions & 0 deletions keyboards/projectkb/alice/rev2/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
/*
Copyright 2015 Jun Wako <[email protected]>
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
27 changes: 27 additions & 0 deletions keyboards/projectkb/alice/rev2/rules.mk
Original file line number Diff line number Diff line change
@@ -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
23 changes: 1 addition & 22 deletions keyboards/projectkb/alice/rules.mk
Original file line number Diff line number Diff line change
@@ -1,22 +1 @@
# MCU name
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
DEFAULT_FOLDER = projectkb/alice/rev1

0 comments on commit ad109a4

Please sign in to comment.