mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-27 11:06:37 +06:00
704934c427
* Add my own keymap * Layer 0: Workman * Layer 1: RSTHD (my own take on it) * Layer 2: Mouse * Layer 3: Navigation * Layer 4: Symbols right * Layer 5: Symbols left * Layer 6: Fn keys * Layer 7: Numbers * Layer 8: Vim and misceallaneaous accessible from any other layer * Move the current code to a 0.1 folder in preparation for upcoming changes Version 0.2 is currently being prototyped and uses an arm chip which will need its own firmware. There is also the Ferris sweep which uses a pro-micro compatible board which will need its own directory. * Move Ferris out of handwired and into the light The keyboard is now well out of the prototype phase as tens of them have been produced and acquired by various people. With 0.2 coming out, adoption is going to increase again as the board will be available for sale at some recognized vendors. Now is probably a good time to recognize its status as more than a prototype :) * Add code for the Ferris Sweep (a.k.a cradio) The Ferris Sweep is a creation of the talented @davidphilipbarr, a.k.a DPB. It has the key layout of a Ferris and uses a pro-micro connected to the switches via direct pins so that diodes are not needed and the soldering is minimal. With their blessing, I took the code for it from DPB's own repo: https://github.com/davidphilipbarr/36keys/tree/master/qmk/cradio and did some adaptations such as removing commented out code, enabling EE_HANDS and mouse keys for consistency with my existing Ferris code. * Fix indentation in rules.mk * Fix indentation in sweep's config * Remove unnecessary lines from sweep's rules.mk * Remove unnecessary lines from sweep's rules.mk * Rename 0.1 to 0_1 This avoids the dot looking like the separation between a filename and its extension. In the same commit, bring matrix.c to the 0_1 folder as this was needed for the code to compile properly (matrix.c is referred to in the readme under `0_1` and is specific to that revision of the firmware). * Update copyright statements for Sweep
75 lines
2.2 KiB
C
75 lines
2.2 KiB
C
/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@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 VENDOR_ID 0xC2AB
|
|
#define PRODUCT_ID 0x3939
|
|
#define DEVICE_VER 0x0001
|
|
#define MANUFACTURER DPB
|
|
#define PRODUCT Ferris sweep
|
|
|
|
/* key matrix size */
|
|
#define MATRIX_ROWS 8
|
|
#define MATRIX_COLS 5
|
|
|
|
/*
|
|
* Keyboard Matrix Assignments
|
|
*
|
|
* Change this to how you wired your keyboard
|
|
* COLS: AVR pins used for columns, left to right
|
|
* ROWS: AVR pins used for rows, top to bottom
|
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
|
* NO_DIODE = switches are directly connected to AVR pins
|
|
*
|
|
*/
|
|
#define DIRECT_PINS { \
|
|
{ E6, F7, F6, F5, F4 }, \
|
|
{ B1, B3, B2, B6, D3 }, \
|
|
{ D1, D0, D4, C6, D7 }, \
|
|
{ B4, B5, NO_PIN, NO_PIN, NO_PIN } \
|
|
}
|
|
|
|
#define DIRECT_PINS_RIGHT { \
|
|
{ F4, F5, F6, F7, E6 }, \
|
|
{ D3,B6,B2,B3,B1 }, \
|
|
{ D7,C6,D4,D0,D1}, \
|
|
{ B5, B4, NO_PIN, NO_PIN, NO_PIN } \
|
|
}
|
|
|
|
|
|
|
|
#define UNUSED_PINS
|
|
|
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not 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
|
|
|
|
/* Serial settings */
|
|
#define USE_SERIAL
|
|
/* serial.c configuration for split keyboard */
|
|
#define SOFT_SERIAL_PIN D2
|
|
|
|
#define EE_HANDS
|