summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIBNobody <ibnobody@gmail.com>2016-05-24 17:57:40 -0500
committerIBNobody <ibnobody@gmail.com>2016-05-24 17:57:40 -0500
commit26277dbdf40ba7247981361c956ea44c92bf76ea (patch)
tree59e800a739797cb86d9345d01f73fceee4c32030
parent76e36a787a58ad0e72fac579e4a02aa66ce26be1 (diff)
parent287eb7ad148abc8fe3fb014218d71e205fd9131d (diff)
Merge remote-tracking branch 'remotes/jackhumbert/master'
-rw-r--r--HAND_WIRE.md26
-rw-r--r--keyboard/Bantam44/config.h7
-rw-r--r--keyboard/atomic/config.h17
-rw-r--r--keyboard/atomic/keymaps/pvc/config.h7
-rw-r--r--keyboard/atomic/keymaps/pvc/keymap.c41
-rw-r--r--keyboard/atreus/config.h12
-rw-r--r--keyboard/clueboard1/config.h25
-rw-r--r--keyboard/clueboard2/config.h19
-rw-r--r--keyboard/cluepad/config.h19
-rw-r--r--keyboard/gh60_rev_c/config.h17
-rw-r--r--keyboard/jd45/config.h9
-rw-r--r--keyboard/planck/config.h7
-rw-r--r--keyboard/planck/keymaps/default/keymap.c43
-rw-r--r--keyboard/planck/keymaps/pvc/config.h9
-rw-r--r--keyboard/planck/keymaps/pvc/keymap.c291
-rw-r--r--keyboard/preonic/config.h7
-rw-r--r--keyboard/retro_refit/config.h9
-rw-r--r--quantum/audio/audio.c17
-rw-r--r--quantum/audio/audio.h6
-rw-r--r--quantum/config_common.h125
-rw-r--r--quantum/keymap_common.c3
-rw-r--r--quantum/matrix.c369
-rw-r--r--quantum/quantum.c69
-rw-r--r--quantum/quantum.h4
-rw-r--r--quantum/template/config.h17
-rw-r--r--tmk_core/common/avr/suspend.c5
-rw-r--r--tmk_core/common/bootmagic.c14
-rw-r--r--tmk_core/common/command.c13
-rw-r--r--tmk_core/common/keyboard.c138
-rw-r--r--tmk_core/common/matrix.h61
-rw-r--r--tmk_core/protocol/lufa/lufa.c4
-rw-r--r--tmk_core/rules.mk8
32 files changed, 626 insertions, 792 deletions
diff --git a/HAND_WIRE.md b/HAND_WIRE.md
index 3f4d75b272..0b7367eda3 100644
--- a/HAND_WIRE.md
+++ b/HAND_WIRE.md
@@ -51,11 +51,11 @@ A problem arises when you start pressing more than one key at a time. Looking at
x row0 ---(-+-0)---(-+-1) x row0 ---(-+-0)---(-+-1)
| | | |
x row1 ---(key2)---(-+-3) x row1 ---(key2)---(-+-3)
-
+
Remember that this ^ is still connected to row1
The data we get from that is:
-
+
col0: 0b11
col1: 0b11
│└row0
@@ -73,7 +73,7 @@ Which isn't accurate, since we only have 3 keys pressed down, not all 4. This be
│ │ | │
(key2) (key3) (key2) (key3)
! ! ! !
- row1 ─────┴────────┘ row1 ─────┴────────┘
+ row1 ─────┴────────┘ row1 ─────┴────────┘
In practical applications, the black line of the diode will be placed facing the row, and away from the keyswitch - the `!` in this case is the diode, where the gap represents the black line. A good way to remember this is to think of this symbol: `>|`
@@ -89,10 +89,10 @@ Now when we press the three keys, invoking what would be a ghosting scenario:
│ │ │ │
(key2) (┌─┘3) (key2) (┌─┘3)
! ! ! !
- row1 ─────┴────────┘ x row1 ─────┴────────┘
+ row1 ─────┴────────┘ x row1 ─────┴────────┘
Things act as they should! Which will get us the following data:
-
+
col0: 0b01
col1: 0b11
│└row0
@@ -106,7 +106,7 @@ The firmware can then use this correct data to detect what it should do, and eve
When starting this, you should have all of your stabilisers and keyswitches already installed (and optionally keycaps). If you're using a Cherry-type stabiliser (plate-mounted only, obviously), you'll need to install that before your keyswitches. If you're using Costar ones, you can installed them afterwards.
-To make things easier on yourself, make sure all of the keyswitches are oriented the same way (if they can be - not all layouts support this). Despite this, it's important to remember that the contacts on the keyswitches are completely symmetrical. We'll be using the keyswitch's left side contact for wiring the rows, and the right side one for wiring the columns.
+To make things easier on yourself, make sure all of the keyswitches are oriented the same way (if they can be - not all layouts support this). Despite this, it's important to remember that the contacts on the keyswitches are completely symmetrical. We'll be using the keyswitch's left side contact for wiring the rows, and the right side one for wiring the columns.
Get your soldering iron heated-up and collect the rest of the materials from the part list at the beginning of the guide. Place your keyboard so that the bottoms of the keyswitches are accessible - it may be a good idea to place it on a cloth to protect your keyswitches/keycaps.
@@ -155,7 +155,7 @@ When all of the diodes are completely soldered, it's a good idea to quickly insp
### Soldering the columns
-You'll have some options in the next process - it's a good idea to insulate the column wires (since the diodes aren't), but if you're careful enough, you can use exposed wires for the columns - it's not recommended, though. If you're using single-cored wire, stripping the plastic off of the whole wire and feeding it back on is probably the best option, but can be difficult depending on the size and materials. You'll want to leave parts of the wire exposed where you're going to be solder it onto the keyswitch.
+You'll have some options in the next process - it's a good idea to insulate the column wires (since the diodes aren't), but if you're careful enough, you can use exposed wires for the columns - it's not recommended, though. If you're using single-cored wire, stripping the plastic off of the whole wire and feeding it back on is probably the best option, but can be difficult depending on the size and materials. You'll want to leave parts of the wire exposed where you're going to be solder it onto the keyswitch.
If you're using stranded wire, it's probably easiest to just use a lot of small wires to connect each keyswitch along the column. It's possible to use one and melt through the insulation, but this isn't recommended, will produce even more harmful fumes, and can ruin your soldering iron.
@@ -195,15 +195,13 @@ You'll want to navigate to the `keyboard/<project_name>/` folder by typing, like
#### config.h
-The first thing we're going to want to modify is the `config.h` file. On line 32 and 33, you'll see `MATRIX_ROWS` and `MATRIX_COLS` - set both these variables to however many rows and columns you have on your keyboard.
-
-On line 38 and 39 you'll see the `COLS` and `ROWS` definitions - this is where you'll enter the pins you used, in order (left-to-right when looking at the top of the keyboard, but right-to-left when looking at the bottom).
+The first thing you're going to want to modify is the `config.h` file. Find `MATRIX_ROWS` and `MATRIX_COLS` and them to match the dimensions of your keyboard's matrix.
-There are some other variables that you'll be able to modify (lines 23-29), but it's not necessary to do that now (or ever, really).
+Farther down are `MATRIX_ROW_PINS` and `MATRIX_COL_PINS`. Change their definitions to match how you wired up your matrix (looking from the top of the keyboard, the rows run top-to-bottom and the columns run left-to-right). Likewise, change the definition of `UNUSED_PINS` to match the pins you did not use (this will save power).
#### \<project_name\>.h
-The next file you'll want to look at is `<project_name>.h`. You're going to want to rewrite the `KEYMAP` definition - the format and syntax here is extremely important, so pay attention to how things are setup. The first half of the definition are considered the arguments - this is the format that you'll be following in your keymap later on, so you'll want to have as many k*xy* variables here as you do keys. The second half is the part that the firmware actually looks at, and will contain gaps depending on how you wired your matrix.
+The next file you'll want to look at is `<project_name>.h`. You're going to want to rewrite the `KEYMAP` definition - the format and syntax here is extremely important, so pay attention to how things are setup. The first half of the definition are considered the arguments - this is the format that you'll be following in your keymap later on, so you'll want to have as many k*xy* variables here as you do keys. The second half is the part that the firmware actually looks at, and will contain gaps depending on how you wired your matrix.
We'll dive into how this will work with the following example. Say we have a keyboard like this:
@@ -230,7 +228,7 @@ The middle column is unused on the bottom row in this example. Our `KEYMAP` defi
{ \
{ k00, k01, k02 }, \
{ k10, KC_NO, k11 }, \
- }
+ }
Notice how the top half is spaced to resemble our physical layout - this helps us understand which keys are associated with which columns. The bottom half uses the keycode `KC_NO` where there is no keyswitch wired in. It's easiest to keep the bottom half aligned in a grid to help us make sense of how the firmware actually sees the wiring.
@@ -251,7 +249,7 @@ This would require our `KEYMAP` definition to look like this:
{ \
{ k00, k01, k02 }, \
{ k10, k11, KC_NO }, \
- }
+ }
Notice how the `k11` and `KC_NO` switched places to represent the wiring, and the unused final column on the bottom row. Sometimes it'll make more sense to put a keyswitch on a particular column, but in the end, it won't matter, as long as all of them are accounted for. You can use this process to write out the `KEYMAP` for your entire keyboard - be sure to remember that your keyboard is actually backwards when looking at the underside of it.
diff --git a/keyboard/Bantam44/config.h b/keyboard/Bantam44/config.h
index 26d680704d..a55f629990 100644
--- a/keyboard/Bantam44/config.h
+++ b/keyboard/Bantam44/config.h
@@ -35,8 +35,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Planck PCB default pin-out
// Change this to how you wired your keyboard
// COLS: Left to right, ROWS: Top to bottom
-#define COLS (int []){ B0, B1, B2, B3, B7, D0, B6, F7, F6, F5, F4, F1 }
-#define ROWS (int []){ F0, D6, D4, D5 }
+#define MATRIX_ROW_PINS { F0, D6, D4, D5 }
+#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, B6, F7, F6, F5, F4, F1 }
+#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
@@ -48,7 +49,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
+#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboard/atomic/config.h b/keyboard/atomic/config.h
index 1b34decf9c..bf9550e948 100644
--- a/keyboard/atomic/config.h
+++ b/keyboard/atomic/config.h
@@ -41,15 +41,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
-*/
-#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 }
-#define ROWS (int []){ D0, D5, B5, B6, C6 }
+*/
+#define MATRIX_ROW_PINS { D0, D5, B5, B6, C6 }
+#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 }
+#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
+#define DEBOUNCING_DELAY 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
@@ -62,17 +63,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/*
+/*
* Force NKRO
*
- * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
- * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
@@ -90,7 +91,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* the keyboard. They are best used in combination with the HID Listen program,
* found here: https://www.pjrc.com/teensy/hid_listen.html
*
- * The options below allow the magic key functionality to be changed. This is
+ * The options below allow the magic key functionality to be changed. This is
* useful if your keyboard/keypad is missing keys and you want magic key support.
*
*/
diff --git a/keyboard/atomic/keymaps/pvc/config.h b/keyboard/atomic/keymaps/pvc/config.h
index 5e956286b5..1473aac34f 100644
--- a/keyboard/atomic/keymaps/pvc/config.h
+++ b/keyboard/atomic/keymaps/pvc/config.h
@@ -42,14 +42,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
-#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 }
-#define ROWS (int []){ D0, D5, B5, B6, B3 }
+#define MATRIX_ROW_PINS { D0, D5, B5, B6, B3 }
+#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 }
+#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
+#define DEBOUNCING_DELAY 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c
index 8431654d7d..f16ec8a6ec 100644
--- a/keyboard/atomic/keymaps/pvc/keymap.c
+++ b/keyboard/atomic/keymaps/pvc/keymap.c
@@ -62,8 +62,6 @@
#define M_BDFLT M(MACRO_BREATH_DEFAULT)
-//#define MU_TOG M(MACRO_MUSIC_TOGGLE)
-//#define AU_TOG M(MACRO_AUDIO_TOGGLE)
#define VC_UP M(MACRO_INC_VOICE)
#define VC_DOWN M(MACRO_DEC_VOICE)
@@ -156,11 +154,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* UPPER
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
- * | PRINT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | NUM LK | / | * | - | NUM LK | SCR LK | XXXXXX . PAUSE |
+ * | PRINT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | NUM LK | / | * | | NUM LK | SCR LK | XXXXXX . PAUSE |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | | F1 | F2 | F3 | F4 | | | 7 | 8 | 9 | + | ~ | | | INS |
+ * | | F1 | F2 | F3 | F4 | | | 7 | 8 | 9 | - | | | | INS |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
- * | CAP LK | F5 | F6 | F7 | F8 | | | 4 | 5 | 6 | + | ` | XXXXXX . | HOME |
+ * | CAP LK | F5 | F6 | F7 | F8 | | | 4 | 5 | 6 | + | | XXXXXX . | HOME |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
* | | F9 | F10 | F11 | F12 | | | 1 | 2 | 3 | ENTER | XXXXXX . | | END |
* |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
@@ -498,31 +496,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
#ifdef AUDIO_ENABLE
-/*
-bool process_action_user(keyrecord_t *record)
-{
-
- uint8_t starting_note = 0x0C;
- int offset = 7;
-
- if (IS_LAYER_ON(LAYER_MUSIC))
- {
- if (record->event.pressed)
- {
- play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
- }
- else
- {
- stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
- }
- }
-}
-*/
-
void matrix_init_user(void)
{
set_voice(default_voice);
- play_startup_tone();
+ startup_user();
println("Matrix Init");
}
@@ -570,30 +547,30 @@ void led_set_user(uint8_t usb_led)
}
-void play_startup_tone()
+void startup_user()
{
_delay_ms(10); // gets rid of tick
PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO);
}
-void play_goodbye_tone()
+void shutdown_user()
{
PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO);
_delay_ms(2000);
stop_all_notes();
}
-void play_audio_on_tone(void)
+void audio_on_user(void)
{
PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO);
}
-void play_music_on_tone(void)
+void music_on_user(void)
{
PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO);
}
-void play_music_scale(void)
+void music_scale_user(void)
{
PLAY_NOTE_ARRAY(music_scale, false, STACCATO);
}
diff --git a/keyboard/atreus/config.h b/keyboard/atreus/config.h
index 55d3b62b92..624d90188c 100644
--- a/keyboard/atreus/config.h
+++ b/keyboard/atreus/config.h
@@ -36,11 +36,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Change this to how you wired your keyboard
// COLS: Left to right, ROWS: Top to bottom
#if defined(ATREUS_ASTAR)
- #define COLS (int []){ D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 }
- #define ROWS (int []){ D0, D1, D3, D2 }
+# define MATRIX_ROW_PINS { D0, D1, D3, D2 }
+# define MATRIX_COL_PINS { D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 }
+# define UNUSED_PINS
#elif defined(ATREUS_TEENSY2)
- #define COLS (int []){ F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0}
- #define ROWS (int []){ D0, D1, D2, D3 }
+# define MATRIX_ROW_PINS { D0, D1, D2, D3 }
+# define MATRIX_COL_PINS { F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0 }
+# define UNUSED_PINS
#endif
/* COL2ROW or ROW2COL */
@@ -53,7 +55,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
+#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboard/clueboard1/config.h b/keyboard/clueboard1/config.h
index 2b20c3873d..16338ddb03 100644
--- a/keyboard/clueboard1/config.h
+++ b/keyboard/clueboard1/config.h
@@ -32,19 +32,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 5
#define MATRIX_COLS 16
-// COLS: Left to right, ROWS: Top to bottom
-
+// ROWS: Top to bottom, COLS: Left to right
/* Column pin configuration
- * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- * pin: B3 F1 F4 F5 F6 C7 C6 B6 B5 B4 D7 D6 D4 F7 B0 B1
- */
-#define COLS (int []){ B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 }
-
- /* Row pin configuration
- * row: 0 1 2 3 4
- * pin: D1 D0 D2 D5 D3
- */
-#define ROWS (int []){ D1, D0, D2, D5, D3 }
+* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+* pin: B3 F1 F4 F5 F6 C7 C6 B6 B5 B4 D7 D6 D4 F7 B0 B1
+*/
+#define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 }
+/* Row pin configuration
+* row: 0 1 2 3 4
+* pin: D1 D0 D2 D5 D3
+*/
+#define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 }
+#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
@@ -53,7 +52,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define MATRIX_HAS_GHOST
/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
+#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboard/clueboard2/config.h b/keyboard/clueboard2/config.h
index 04166c20f6..2887519afd 100644
--- a/keyboard/clueboard2/config.h
+++ b/keyboard/clueboard2/config.h
@@ -32,19 +32,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 10
#define MATRIX_COLS 8
-// COLS: Left to right, ROWS: Top to bottom
-
+// ROWS: Top to bottom, COLS: Left to right
+/* Row pin configuration
+* row: 0 1 2 3 4 5 6 7 8 9
+* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2
+*/
+#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 }
/* Column pin configuration
* col: 0 1 2 3 4 5 6 7
* pin: F0 F1 F4 F5 F6 F7 E6 B1
*/
-#define COLS (int []){ F0, F1, F4, F5, F6, F7, E6, B1 }
-
- /* Row pin configuration
- * row: 0 1 2 3 4 5 6 7 8 9
- * pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2
- */
-#define ROWS (int []){ B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 }
+#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 }
+#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
@@ -53,7 +52,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define MATRIX_HAS_GHOST
/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
+#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboard/cluepad/config.h b/keyboard/cluepad/config.h
index 5ed421a6e0..0955e0f702 100644
--- a/keyboard/cluepad/config.h
+++ b/keyboard/cluepad/config.h
@@ -32,19 +32,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 5
#define MATRIX_COLS 4
-// COLS: Left to right, ROWS: Top to bottom
-
+// ROWS: Top to bottom, COLS: Left to right
+/* Row pin configuration
+* row: 0 1 2 3 4
+* pin:
+*/
+#define MATRIX_ROW_PINS { B0, D3, D5, D4, D6 }
/* Column pin configuration
* col: 0 1 2 3
* pin: F4 E6 B1 D2
*/
-#define COLS (int []){ F4, E6, B1, D2 }
-
- /* Row pin configuration
- * row: 0 1 2 3 4
- * pin:
- */
-#define ROWS (int []){ B0, D3, D5, D4, D6 }
+#define MATRIX_COL_PINS { F4, E6, B1, D2 }
+#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
@@ -53,7 +52,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define MATRIX_HAS_GHOST
/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
+#define DEBOUNCING_DELAY 5
/* Number of backlighting levels */
#define BACKLIGHT_LEVELS 3
diff --git a/keyboard/gh60_rev_c/config.h b/keyboard/gh60_rev_c/config.h
index 2fd8f57439..827c08d1be 100644
--- a/keyboard/gh60_rev_c/config.h
+++ b/keyboard/gh60_rev_c/config.h
@@ -41,15 +41,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
-*/
-#define COLS (int []){ F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
-#define ROWS (int []){ D0, D1, D2, D3, D5 }
+*/
+#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
+#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
+#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
+#define DEBOUNCING_DELAY 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
@@ -62,17 +63,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/*
+/*
* Force NKRO
*
- * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
- * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
@@ -90,7 +91,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* the keyboard. They are best used in combination with the HID Listen program,
* found here: https://www.pjrc.com/teensy/hid_listen.html
*
- * The options below allow the magic key functionality to be changed. This is
+ * The options below allow the magic key functionality to be changed. This is
* useful if your keyboard/keypad is missing keys and you want magic key support.
*
*/
diff --git a/keyboard/jd45/config.h b/keyboard/jd45/config.h
index 1b81fe32ed..ffedb6a1a9 100644
--- a/keyboard/jd45/config.h
+++ b/keyboard/jd45/config.h
@@ -30,11 +30,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* key matrix size */
#define MATRIX_ROWS 4
-#define MATRIX_COLS 13
+#define MATRIX_COLS 13
/* Planck PCB default pin-out */
-#define COLS (int []){F4, D7, B5, B6, C6, C7, D4, D6, D5, D0, D1, D2, B0}
-#define ROWS (int []){F0, F1, F5, B4}
+#define MATRIX_ROW_PINS { F0, F1, F5, B4 }
+#define MATRIX_COL_PINS { F4, D7, B5, B6, C6, C7, D4, D6, D5, D0, D1, D2, B0 }
+#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
@@ -46,7 +47,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
+#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h
index 7d64f09773..b648931081 100644
--- a/keyboard/planck/config.h
+++ b/keyboard/planck/config.h
@@ -33,8 +33,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COLS 12
/* Planck PCB default pin-out */
-#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
-#define ROWS (int []){ D0, D5, B5, B6 }
+#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
+#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
+#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
@@ -46,7 +47,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
+#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c
index 36d496416e..3d62898171 100644
--- a/keyboard/planck/keymaps/default/keymap.c
+++ b/keyboard/planck/keymaps/default/keymap.c
@@ -174,21 +174,16 @@ const uint16_t PROGMEM fn_actions[] = {
};
#ifdef AUDIO_ENABLE
-float tone_startup[][2] = {
- {440.0*pow(2.0,(31)/12.0), 12},
- {440.0*pow(2.0,(28)/12.0), 8},
- {440.0*pow(2.0,(19)/12.0), 8},
- {440.0*pow(2.0,(24)/12.0), 8},
- {440.0*pow(2.0,(28)/12.0), 20}
-};
+float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-float goodbye[][2] = SONG(GOODBYE_SOUND);
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -288,16 +283,34 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
};
void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- _delay_ms(20); // stops the tick
- PLAY_NOTE_ARRAY(tone_startup, false, 0);
- #endif
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
}
#ifdef AUDIO_ENABLE
-void play_goodbye_tone()
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
{
- PLAY_NOTE_ARRAY(goodbye, false, 0);
- _delay_ms(150);
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
#endif
diff --git a/keyboard/planck/keymaps/pvc/config.h b/keyboard/planck/keymaps/pvc/config.h
index d435cc795c..b648931081 100644
--- a/keyboard/planck/keymaps/pvc/config.h
+++ b/keyboard/planck/keymaps/pvc/config.h
@@ -33,8 +33,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COLS 12
/* Planck PCB default pin-out */
-#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
-#define ROWS (int []){ D0, D5, B5, B6 }
+#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
+#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
+#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
@@ -46,7 +47,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
+#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
@@ -73,7 +74,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* disable debug print */
-#define NO_DEBUG
+//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c
index 177f04484d..2fc5f0da16 100644
--- a/