* Add stm32f072 base ck4x4 to handwired * add prints * Save these tries * Save changes again * Working hadron oled * OLEd working but ws2812b still iffy: * save another try * Encoder feature + OLED * RTC code * Implement clock setting mode * Whitespace * Encoder hooked up to working LED PWM code * Add missing files * eeprom changes * Save changes * Move i2c master * Move satisfaction75 under cannonkeys * Set proper default folder * Revert some core changes * Undo paved iris changes * Reorganize code for maintainability and prep for new features * Add starting code for clock OLED mode * Clock set mode finished * Add custom encoder modes * Actually add VIA keymap * Gate to only 072 * fix gate for only 072 * Update header guards and includes * Update i2c selection strategy * Update board.c to handle software reset to DFU
		
			
				
	
	
		
			108 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| 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       0xCA04
 | |
| #define PRODUCT_ID      0x57F5
 | |
| #define DEVICE_VER      0x0001
 | |
| /* in python2: list(u"whatever".encode('utf-16-le')) */
 | |
| /*   at most 32 characters or the ugly hack in usb_main.c borks */
 | |
| #define MANUFACTURER QMK
 | |
| #define PRODUCT Satisfaction75
 | |
| #define DESCRIPTION Satisfaction 75 Keyboard
 | |
| 
 | |
| /* key matrix size */
 | |
| #define MATRIX_ROWS 6
 | |
| #define MATRIX_COLS 16
 | |
| 
 | |
| #define MATRIX_COL_PINS { B1, B2, B10, B11, B12, B13, B14, A8, A9, A10, B0, A7, A5, B5, A15, A1 }
 | |
| #define MATRIX_ROW_PINS { B3, B4, A0, A2, A4, A3 }
 | |
| #define DIODE_DIRECTION COL2ROW
 | |
| 
 | |
| #define NUMBER_OF_ENCODERS 1
 | |
| #define ENCODERS_PAD_A { B9 }
 | |
| #define ENCODERS_PAD_B { B8 }
 | |
| 
 | |
| //LEDS A6, RGB B15
 | |
| #define BACKLIGHT_LEVELS 24
 | |
| #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
 | |
| 
 | |
| #ifdef QWIIC_MICRO_OLED_ENABLE
 | |
| 
 | |
| #undef I2C_ADDRESS_SA0_1
 | |
| #define I2C_ADDRESS_SA0_1 0b0111100
 | |
| #define LCDWIDTH      128
 | |
| #define LCDHEIGHT     32
 | |
| 
 | |
| #endif
 | |
| 
 | |
| 
 | |
| #define DYNAMIC_KEYMAP_LAYER_COUNT 4
 | |
| 
 | |
| // EEPROM usage
 | |
| 
 | |
| // TODO: refactor with new user EEPROM code (coming soon)
 | |
| #define EEPROM_MAGIC 0x451F
 | |
| #define EEPROM_MAGIC_ADDR 32
 | |
| // Bump this every time we change what we store
 | |
| // This will automatically reset the EEPROM with defaults
 | |
| // and avoid loading invalid data from the EEPROM
 | |
| #define EEPROM_VERSION 0x02
 | |
| #define EEPROM_VERSION_ADDR 34
 | |
| 
 | |
| // Dynamic keymap starts after EEPROM version
 | |
| #define DYNAMIC_KEYMAP_EEPROM_ADDR 35
 | |
| // Dynamic macro starts after dynamic keymaps (35+(4*6*16*2)) = (35+768)
 | |
| #define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 803
 | |
| #define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 221
 | |
| #define DYNAMIC_KEYMAP_MACRO_COUNT 16
 | |
| 
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * 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
 |