stemcell test stuff

This commit is contained in:
Sadek Baroudi 2022-03-24 21:09:34 -07:00
parent d2ff6f8608
commit 166c1692a3
5 changed files with 356 additions and 0 deletions

50
bin/make-all-ffkb_stemcell.sh Executable file
View File

@ -0,0 +1,50 @@
#!/bin/bash
cp keyboards/fingerpunch/ffkb_byomcu/config.h keyboards/fingerpunch/ffkb_byomcu/config.h.bak
cp keyboards/fingerpunch/ffkb_byomcu/config.stemcell.h keyboards/fingerpunch/ffkb_byomcu/config.h
cp keyboards/fingerpunch/ffkb_byomcu/rules.mk keyboards/fingerpunch/ffkb_byomcu/rules.mk.bak
cp keyboards/fingerpunch/ffkb_byomcu/rules.stemcell.mk keyboards/fingerpunch/ffkb_byomcu/rules.mk
mv keyboards/fingerpunch/ffkb_byomcu/halconf.stemcell.h keyboards/fingerpunch/ffkb_byomcu/halconf.h
mv keyboards/fingerpunch/ffkb_byomcu/mcuconf.stemcell.h keyboards/fingerpunch/ffkb_byomcu/mcuconf.h
#make fingerpunch/ffkb_byomcu/rgblight_evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/ec11:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgbmatrix_evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/pimoroni_evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgbmatrix_pimoroni_evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgbmatrix_pimoroni_ec11:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgbmatrix_oled:sadekbaroudi
#make fingerpunch/ffkb_byomcu/oled:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgbmatrix:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgbmatrix_ec11:sadekbaroudi
make fingerpunch/ffkb_byomcu/rgbmatrix_oled_ec11:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgblight_pimoroni_evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgbmatrix_pimoroni:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgblight_oled_evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/pimoroni:sadekbaroudi
#make fingerpunch/ffkb_byomcu/evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgblight_ec11:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgblight_pimoroni_ec11:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgblight_oled:sadekbaroudi
#make fingerpunch/ffkb_byomcu/oled_ec11:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgbmatrix_ec11_evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgblight:sadekbaroudi
#make fingerpunch/ffkb_byomcu/no_features:sadekbaroudi
#make fingerpunch/ffkb_byomcu/pimoroni_ec11:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgblight_pimoroni:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgblight_ec11_evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgbmatrix_oled_evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/oled_evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/ec11_evq:sadekbaroudi
#make fingerpunch/ffkb_byomcu/rgblight_oled_ec11:sadekbaroudi
mv keyboards/fingerpunch/ffkb_byomcu/config.h.bak keyboards/fingerpunch/ffkb_byomcu/config.h
mv keyboards/fingerpunch/ffkb_byomcu/rules.mk.bak keyboards/fingerpunch/ffkb_byomcu/rules.mk
mv keyboards/fingerpunch/ffkb_byomcu/halconf.h keyboards/fingerpunch/ffkb_byomcu/halconf.stemcell.h
mv keyboards/fingerpunch/ffkb_byomcu/mcuconf.h keyboards/fingerpunch/ffkb_byomcu/mcuconf.stemcell.h
cp fingerpunch_ffkb_byomcu_*_sadekbaroudi.bin /mnt/g/My\ Drive/qmk-keyboards/ffkb_stemcell/sadekbaroudi/

View File

@ -0,0 +1,150 @@
/*
Copyright 2021 Sadek Baroudi <sadekbaroudi@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
#include "config_common.h"
/* USB Device descriptor parameter */
#define DEVICE_VER 0x0001
#define VENDOR_ID 0xFEFE
#define PRODUCT_ID 0xFFBB
#define MANUFACTURER sadekbaroudi
#define PRODUCT sadekbaroudi ffkb_byomcu
#define DESCRIPTION sadekbaroudi ffkb_byomcu
/* key matrix size */
/* Rows are doubled up */
#define MATRIX_ROWS 6
#define MATRIX_COLS 8
// STeMcell v1.0.0
#define MATRIX_ROW_PINS \
{ A3, B10, B2, B1, B0, A7 } // A7 and A5 are swapped on STeMcell v1.0.1
#define MATRIX_COL_PINS \
{ B9, B8, B5, B4, B3, A15, A5, A6 }
#define UNUSED_PINS
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
#define TAP_CODE_DELAY 25
#define TAPPING_FORCE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
// STeMcell v1.0.0
#define RGB_DI_PIN A2
#ifdef RGBLIGHT_ENABLE
// Use twinkle as the default rgb mode for the layers
#define DEFAULT_RGB_LAYER_MODE RGBLIGHT_MODE_TWINKLE+2
#define RGBLED_NUM 42
#define RGBLIGHT_HUE_STEP 16
#define RGBLIGHT_SAT_STEP 16
#define RGBLIGHT_VAL_STEP 16
#define RGBLIGHT_LIMIT_VAL 112 /* The maximum brightness level for RGBLIGHT_ENABLE */
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
// /*== all animations enable ==*/
#define RGBLIGHT_ANIMATIONS
// /*== or choose animations ==*/
// #define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
// #define RGBLIGHT_EFFECT_SNAKE
// #define RGBLIGHT_EFFECT_KNIGHT
// #define RGBLIGHT_EFFECT_CHRISTMAS
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING
// /*== customize breathing effect ==*/
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
// /*==== use exp() and sin() ====*/
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
#endif
#ifdef RGB_MATRIX_ENABLE
#define DRIVER_LED_TOTAL 42
#define RGB_MATRIX_CENTER {100, 32}
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 112 /* The maximum brightness level for RGB_MATRIX */
#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYREACTIVE_ENABLED
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_BREATHING
#define ENABLE_RGB_MATRIX_BAND_SAT
#define ENABLE_RGB_MATRIX_BAND_VAL
// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
// #define ENABLE_RGB_MATRIX_CYCLE_ALL
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
// #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
#define ENABLE_RGB_MATRIX_DUAL_BEACON
// #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
// #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
// #define ENABLE_RGB_MATRIX_RAINBOW_BEACON
// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
// #define ENABLE_RGB_MATRIX_RAINDROPS
// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
// #define ENABLE_RGB_MATRIX_SPLASH
// #define ENABLE_RGB_MATRIX_MULTISPLASH
// #define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif
// STeMcell v1.0.0
#define ENCODERS_PAD_A {C14, A4, B7}
#define ENCODERS_PAD_B {C13, A0, B6}
#define ENCODER_RESOLUTION 2
// Per encoder settings
//#define ENCODER_RESOLUTIONS { 2, 2 }
/* 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
#ifdef PIMORONI_TRACKBALL_ENABLE
#define PIMORONI_TRACKBALL_ROTATE
#define PIMORONI_TRACKBALL_CLICK
#define PIMORONI_TRACKBALL_INVERT_X
#endif
// If using encoder type 2, uncomment this
// #define ENCODERS_B_REVERSE
#define DYNAMIC_KEYMAP_LAYER_COUNT 5

View File

@ -0,0 +1,26 @@
/* Copyright 2020 QMK
*
* 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/>.
*/
/*
* This file was auto-generated by:
* `qmk chibios-confupdate -i keyboards/tkw/grandiceps/halconf.h -r platforms/chibios/BLACKPILL_STM32_F411/configs/halconf.h`
*/
#pragma once
#define HAL_USE_I2C TRUE
#include_next <halconf.h>

View File

@ -0,0 +1,89 @@
/* Copyright 2020 QMK
*
* 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/>.
*/
/*
* This file was auto-generated by:
* `qmk chibios-confupdate -i keyboards/tkw/grandiceps/mcuconf.h -r platforms/chibios/BLACKPILL_STM32_F411/configs/mcuconf.h`
*/
#pragma once
#include_next "mcuconf.h"
#undef STM32_I2C_USE_I2C1
#define STM32_I2C_USE_I2C1 TRUE
#undef STM32_I2C_I2C1_RX_DMA_STREAM
#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
//#undef STM32_I2C_I2C1_TX_DMA_STREAM
//#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
//////
// #undef STM32_PWM_USE_TIM2
// #define STM32_PWM_USE_TIM2 TRUE
// #undef STM32_PWM_USE_TIM3
// #define STM32_PWM_USE_TIM3 TRUE
// #undef STM32_SPI_USE_SPI1
// #define STM32_SPI_USE_SPI1 TRUE
// #undef STM32_SPI_SPI1_RX_DMA_STREAM
// #define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
// #undef STM32_SPI_SPI1_TX_DMA_STREAM
// #define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)
// #undef STM32_SERIAL_USE_USART2
// #define STM32_SERIAL_USE_USART2 TRUE
//////
// #undef STM32_UART_USART2_RX_DMA_STREAM
// #define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
// #undef STM32_UART_USART2_TX_DMA_STREAM
// #define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
//////
// #undef STM32_GPT_USE_TIM4
// #define STM32_GPT_USE_TIM4 TRUE
// #undef STM32_ST_USE_TIMER
// #define STM32_ST_USE_TIMER 5
// #undef STM32_PLLM_VALUE
// #undef STM32_PLLN_VALUE
// #undef STM32_PLLP_VALUE
// #undef STM32_PLLQ_VALUE
// #undef STM32_PPRE1
// #undef STM32_PPRE2
// //STABLE use when crystals is 8mhz
// #define STM32_PLLM_VALUE 8
// #define STM32_PLLN_VALUE 192
// #define STM32_PLLP_VALUE 2
// #define STM32_PLLQ_VALUE 4
// #define STM32_PPRE1 STM32_PPRE1_DIV2 //4
// #define STM32_PPRE2 STM32_PPRE2_DIV1 //2
//////
//Also works when the crystal is 8mhz
// #define STM32_PLLM_VALUE 8
// #define STM32_PLLN_VALUE 384
// #define STM32_PLLP_VALUE 4
// #define STM32_PLLQ_VALUE 8
// #define STM32_PPRE1 STM32_PPRE1_DIV4
// #define STM32_PPRE2 STM32_PPRE2_DIV4

View File

@ -0,0 +1,41 @@
# MCU name
MCU = STM32F401
# Bootloader selection
BOOTLOADER = stm32-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # 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 = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
# Either do RGBLIGHT_ENABLE or RGB_MATRIX_ENABLE and RGB_MATRIX_DRIVER
RGBLIGHT_ENABLE = yes
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
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
ENCODER_ENABLE = yes
OLED_DRIVER_ENABLE = yes # this can be yes or no depending on if you have an OLED
EXTRAFLAGS += -flto # macros disabled, as a lot of barobord features require more space, can move this line into all the individual rules.mk, only where needed
# for instance, if you build "no_features", it's very unlikely you'll need to disable macros
MOUSEKEY_ENABLE = no
ifeq ($(strip $(PIMORONI_TRACKBALL_ENABLE)), yes)
POINTING_DEVICE_ENABLE := yes
SRC += drivers/sensors/pimoroni_trackball.c
QUANTUM_LIB_SRC += i2c_master.c
OPT_DEFS += -DPIMORONI_TRACKBALL_ENABLE
endif