summary refs log tree commit diff
path: root/keyboards/handwired/woodpad
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2021-01-23 03:48:27 +1100
committerGitHub <noreply@github.com>2021-01-23 03:48:27 +1100
commit188c0bacb05335067bf79c2380eb0dca189a5c55 (patch)
tree26e0884e6ec1a83144d0ded5cae8c198d94e85e1 /keyboards/handwired/woodpad
parenta7d79f4c0060125a29cb0b3a9f8d9ad8356344c6 (diff)
Woodpad refactor (#11651)
Diffstat (limited to 'keyboards/handwired/woodpad')
-rw-r--r--keyboards/handwired/woodpad/config.h141
-rw-r--r--keyboards/handwired/woodpad/info.json37
-rw-r--r--keyboards/handwired/woodpad/keymaps/default/config.h19
-rw-r--r--keyboards/handwired/woodpad/keymaps/default/keymap.c179
-rw-r--r--keyboards/handwired/woodpad/keymaps/default/readme.md2
-rw-r--r--keyboards/handwired/woodpad/keymaps/default/rules.mk19
-rw-r--r--keyboards/handwired/woodpad/readme.md31
-rw-r--r--keyboards/handwired/woodpad/rules.mk28
-rw-r--r--keyboards/handwired/woodpad/woodpad.c31
-rw-r--r--keyboards/handwired/woodpad/woodpad.h30
10 files changed, 214 insertions, 303 deletions
diff --git a/keyboards/handwired/woodpad/config.h b/keyboards/handwired/woodpad/config.h
index 72b9fabab7..9894fe1338 100644
--- a/keyboards/handwired/woodpad/config.h
+++ b/keyboards/handwired/woodpad/config.h
@@ -1,5 +1,5 @@
 /*
-Copyright 2017
+Copyright 2017 WoodKeys
 
 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
@@ -15,17 +15,16 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
 
 #include "config_common.h"
 
 /* USB Device descriptor parameter */
-#define VENDOR_ID       0xFEED
-#define PRODUCT_ID      0x6069
-#define DEVICE_VER      0x0001
-#define MANUFACTURER    WoodKeys.click
-#define PRODUCT         woodpad
+#define VENDOR_ID    0xFEED
+#define PRODUCT_ID   0x6069
+#define DEVICE_VER   0x0001
+#define MANUFACTURER WoodKeys.click
+#define PRODUCT      Woodpad
 
 /* key matrix size */
 #define MATRIX_ROWS 5
@@ -40,17 +39,45 @@ 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 MATRIX_ROW_PINS { D1, D0, D4, C6, D7 }
 #define MATRIX_COL_PINS { B1, B3, B2, B6 }
 #define UNUSED_PINS
 
-/* COL2ROW, ROW2COL*/
+/* COL2ROW, ROW2COL */
 #define DIODE_DIRECTION COL2ROW
- 
-// #define BACKLIGHT_PIN B7
-// #define BACKLIGHT_BREATHING
-// #define BACKLIGHT_LEVELS 3
+
+//#define BACKLIGHT_PIN B7
+//#define BACKLIGHT_BREATHING
+//#define BACKLIGHT_LEVELS 3
+
+//#define RGB_DI_PIN E2
+//#ifdef RGB_DI_PIN
+//#    define RGBLED_NUM 16
+//#    define RGBLIGHT_HUE_STEP 8
+//#    define RGBLIGHT_SAT_STEP 8
+//#    define RGBLIGHT_VAL_STEP 8
+//#    define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+//#    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
 
 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 #define DEBOUNCE 5
@@ -58,13 +85,16 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* define if matrix has ghost (lacks anti-ghosting diodes) */
 //#define MATRIX_HAS_GHOST
 
-/* number of backlight levels */
-
 /* 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
 
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+//#define GRAVE_ESC_CTRL_OVERRIDE
+
 /*
  * Force NKRO
  *
@@ -87,54 +117,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //#define FORCE_NKRO
 
 /*
- * Magic Key Options
- *
- * Magic keys are hotkey commands that allow control over firmware functions of
- * 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
- * useful if your keyboard/keypad is missing keys and you want magic key support.
- *
- */
-
-/* control how magic key switches layers */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS  true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS  true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
-
-/* override magic key keymap */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
-//#define MAGIC_KEY_HELP1          H
-//#define MAGIC_KEY_HELP2          SLASH
-//#define MAGIC_KEY_DEBUG          D
-//#define MAGIC_KEY_DEBUG_MATRIX   X
-//#define MAGIC_KEY_DEBUG_KBD      K
-//#define MAGIC_KEY_DEBUG_MOUSE    M
-//#define MAGIC_KEY_VERSION        V
-//#define MAGIC_KEY_STATUS         S
-//#define MAGIC_KEY_CONSOLE        C
-//#define MAGIC_KEY_LAYER0_ALT1    ESC
-//#define MAGIC_KEY_LAYER0_ALT2    GRAVE
-//#define MAGIC_KEY_LAYER0         0
-//#define MAGIC_KEY_LAYER1         1
-//#define MAGIC_KEY_LAYER2         2
-//#define MAGIC_KEY_LAYER3         3
-//#define MAGIC_KEY_LAYER4         4
-//#define MAGIC_KEY_LAYER5         5
-//#define MAGIC_KEY_LAYER6         6
-//#define MAGIC_KEY_LAYER7         7
-//#define MAGIC_KEY_LAYER8         8
-//#define MAGIC_KEY_LAYER9         9
-//#define MAGIC_KEY_BOOTLOADER     PAUSE
-//#define MAGIC_KEY_LOCK           CAPS
-//#define MAGIC_KEY_EEPROM         E
-//#define MAGIC_KEY_NKRO           N
-//#define MAGIC_KEY_SLEEP_LED      Z
-
-/*
  * Feature disable options
  *  These options are also useful to firmware size reduction.
  */
@@ -149,30 +131,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //#define NO_ACTION_LAYER
 //#define NO_ACTION_TAPPING
 //#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-/*
- * MIDI options
- */
-
-/* Prevent use of disabled MIDI features in the keymap */
-//#define MIDI_ENABLE_STRICT 1
-
-/* enable basic MIDI features:
-   - MIDI notes can be sent when in Music mode is on
-*/
-//#define MIDI_BASIC
-
-/* enable advanced MIDI features:
-   - MIDI notes can be added to the keymap
-   - Octave shift and transpose
-   - Virtual sustain, portamento, and modulation wheel
-   - etc.
-*/
-//#define MIDI_ADVANCED
 
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 1
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
 
-#endif
+/* Bootmagic Lite key configuration */
+//#define BOOTMAGIC_LITE_ROW 0
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/woodpad/info.json b/keyboards/handwired/woodpad/info.json
new file mode 100644
index 0000000000..96c28fa5ed
--- /dev/null
+++ b/keyboards/handwired/woodpad/info.json
@@ -0,0 +1,37 @@
+{
+    "keyboard_name": "Woodpad",
+    "url": "",
+    "maintainer": "qmk",
+    "width": 4,
+    "height": 5,
+    "layouts": {
+        "LAYOUT_ortho_5x4": {
+            "layout": [
+                {"x": 0, "y": 0},
+                {"x": 1, "y": 0},
+                {"x": 2, "y": 0},
+                {"x": 3, "y": 0},
+
+                {"x": 0, "y": 1},
+                {"x": 1, "y": 1},
+                {"x": 2, "y": 1},
+                {"x": 3, "y": 1},
+
+                {"x": 0, "y": 2},
+                {"x": 1, "y": 2},
+                {"x": 2, "y": 2},
+                {"x": 3, "y": 2},
+
+                {"x": 0, "y": 3},
+                {"x": 1, "y": 3},
+                {"x": 2, "y": 3},
+                {"x": 3, "y": 3},
+
+                {"x": 0, "y": 4},
+                {"x": 1, "y": 4},
+                {"x": 2, "y": 4},
+                {"x": 3, "y": 4}
+            ]
+        }
+    }
+}
diff --git a/keyboards/handwired/woodpad/keymaps/default/config.h b/keyboards/handwired/woodpad/keymaps/default/config.h
deleted file mode 100644
index a72596783d..0000000000
--- a/keyboards/handwired/woodpad/keymaps/default/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2017 REPLACE_WITH_YOUR_NAME
- *
- * 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
-
-// place overrides here
diff --git a/keyboards/handwired/woodpad/keymaps/default/keymap.c b/keyboards/handwired/woodpad/keymaps/default/keymap.c
index 838c14ead5..059d460876 100644
--- a/keyboards/handwired/woodpad/keymaps/default/keymap.c
+++ b/keyboards/handwired/woodpad/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+/* Copyright 2017 WoodKeys
  *
  * 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
@@ -13,115 +13,88 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include QMK_KEYBOARD_H
 
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-#define _NUMLOCK 0
-#define _NAV 1
-#define _ALT 2
-#define _ADJUST 3
+enum layer_names {
+    _NUMLOCK,
+    _NAV,
+    _ALT,
+    _ADJUST
+};
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_NUMLOCK] = KEYMAP( /* Base */
-  KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\
-    KC_P7,  KC_P8, KC_P9, KC_PPLS,   \
-    KC_P4,  KC_P5, KC_P6, KC_PEQL,   \
-    KC_P1,  KC_P2, KC_P3, KC_COMM,   \
-    KC_LALT,  KC_P0, KC_PDOT, KC_PENT   \
-),
-[_NAV] = KEYMAP( /* Base */
-  _______, _______, _______, _______,\
-    KC_HOME,  KC_UP, KC_PGUP, _______,   \
-    KC_LEFT,  XXXXXXX, KC_RIGHT, _______,   \
-    KC_END,  KC_DOWN, KC_PGDN, _______,   \
-    _______,  KC_INS, KC_DEL, _______   \
-),
-[_ALT] = KEYMAP( /* Base */
-  _______, KC_MUTE, KC_VOLD, KC_VOLU,\
-    _______,  _______, _______, _______,   \
-    _______,  _______, _______, _______,   \
-    _______,  _______, _______, _______,   \
-    _______,  _______, _______, _______   \
-),
-[_ADJUST] = KEYMAP( /* Base */
-  _______, KC_A, _______, RESET,\
-    _______,  _______, _______, _______,   \
-    _______,  _______, _______, _______,   \
-    _______,  _______, _______, _______,   \
-    _______,  _______, _______, _______   \
-),
+    [_NUMLOCK] = LAYOUT_ortho_5x4( /* Base */
+        KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+        KC_P7,   KC_P8,   KC_P9,   KC_PPLS,
+        KC_P4,   KC_P5,   KC_P6,   KC_PEQL,
+        KC_P1,   KC_P2,   KC_P3,   KC_COMM,
+        KC_LALT, KC_P0,   KC_PDOT, KC_PENT
+    ),
+    [_NAV] = LAYOUT_ortho_5x4( /* Base */
+        _______, _______, _______, _______,
+        KC_HOME, KC_UP,   KC_PGUP, _______,
+        KC_LEFT, XXXXXXX, KC_RGHT, _______,
+        KC_END,  KC_DOWN, KC_PGDN, _______,
+        _______, KC_INS,  KC_DEL,  _______
+    ),
+    [_ALT] = LAYOUT_ortho_5x4( /* Base */
+        _______, KC_MUTE, KC_VOLD, KC_VOLU,
+        _______, _______, _______, _______,
+        _______, _______, _______, _______,
+        _______, _______, _______, _______,
+        _______, _______, _______, _______
+    ),
+    [_ADJUST] = LAYOUT_ortho_5x4( /* Base */
+        _______, KC_A,    _______, RESET,
+        _______, _______, _______, _______,
+        _______, _______, _______, _______,
+        _______, _______, _______, _______,
+        _______, _______, _______, _______
+    )
 };
 
-void numlock_led_on(void) {
-  PORTF |= (1<<7);
-}
-
-void numlock_led_off(void) {
-  PORTF &= ~(1<<7);
-}
-
 static bool numlock_down = false;
 
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-  switch (keycode) {
-	  case KC_NLCK:
-      if (record->event.pressed) {
-		  numlock_down = true;
-		  if (IS_LAYER_ON(_ALT)) {
-			  layer_on(_ADJUST);
-		  }
-	  } else{
-		if(!IS_LAYER_ON(_ADJUST)) {
-		  if (!IS_LAYER_ON(_NAV)){
-			  numlock_led_off();
-		    layer_on(_NAV);
-		  } else {
-			  numlock_led_on();
-		    layer_off(_NAV);
-		  }
-		} else {
-			layer_off(_ADJUST);
-		}
-		numlock_down = false;
-	  }
-      return false;
-      break;
-	  case KC_LALT:
-      if (record->event.pressed) {
-		  if (numlock_down) {
-			  layer_on(_ADJUST);
-		  } else {
-			  layer_on(_ALT);
-		  }
-	  } else {
-		  if(IS_LAYER_ON(_ADJUST)) {
-		      layer_off(_ADJUST);
-		  } else {
-			  layer_off(_ALT);
-		  }
-	  }
-	  // Allow normal processing of ALT?
-      return false;
-      break;
-  }
-  return true;
-}
-
-void matrix_init_user(void) {
-  // set Numlock LED to output and low
-    DDRF |= (1<<7);
-    PORTF &= ~(1<<7);
-
-}
-
-void matrix_scan_user(void) {
-
-}
-
-
-void led_set_user(uint8_t usb_led) {
-
+    switch (keycode) {
+        case KC_NLCK:
+            if (record->event.pressed) {
+                numlock_down = true;
+                if (IS_LAYER_ON(_ALT)) {
+                    layer_on(_ADJUST);
+                }
+            } else {
+                if(!IS_LAYER_ON(_ADJUST)) {
+                    if (!IS_LAYER_ON(_NAV)) {
+                        numlock_led_off();
+                        layer_on(_NAV);
+                    } else {
+                        numlock_led_on();
+                        layer_off(_NAV);
+                    }
+                } else {
+                    layer_off(_ADJUST);
+                }
+                numlock_down = false;
+            }
+            return false;
+        case KC_LALT:
+            if (record->event.pressed) {
+                if (numlock_down) {
+                    layer_on(_ADJUST);
+                } else {
+                    layer_on(_ALT);
+                }
+            } else {
+                if(IS_LAYER_ON(_ADJUST)) {
+                    layer_off(_ADJUST);
+                } else {
+                    layer_off(_ALT);
+                }
+            }
+            // Allow normal processing of ALT
+            return false;
+    }
+    return true;
 }
diff --git a/keyboards/handwired/woodpad/keymaps/default/readme.md b/keyboards/handwired/woodpad/keymaps/default/readme.md
index 5f17409787..1f9e924689 100644
--- a/keyboards/handwired/woodpad/keymaps/default/readme.md
+++ b/keyboards/handwired/woodpad/keymaps/default/readme.md
@@ -1 +1 @@
-# The default keymap for woodpad
+# The default keymap for Woodpad
diff --git a/keyboards/handwired/woodpad/keymaps/default/rules.mk b/keyboards/handwired/woodpad/keymaps/default/rules.mk
index 394bc0271f..88dc644500 100644
--- a/keyboards/handwired/woodpad/keymaps/default/rules.mk
+++ b/keyboards/handwired/woodpad/keymaps/default/rules.mk
@@ -1,17 +1,2 @@
-# QMK Build Options
-#   change to "no" to disable the options, or define them in the Makefile in 
-#   the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
-CONSOLE_ENABLE = no         # Console for debug(+400)
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-MIDI_ENABLE = no            # MIDI support (+2400 to 4200, depending on config)
-AUDIO_ENABLE = no           # Audio output on port C6
-UNICODE_ENABLE = no         # Unicode
-BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight. 
-SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+CONSOLE_ENABLE = no
+NKRO_ENABLE = yes
diff --git a/keyboards/handwired/woodpad/readme.md b/keyboards/handwired/woodpad/readme.md
index 2697398c96..189e6c4ade 100644
--- a/keyboards/handwired/woodpad/readme.md
+++ b/keyboards/handwired/woodpad/readme.md
@@ -1,28 +1,17 @@
-woodpad keyboard firmware
-======================
+# Woodpad
 
-## Quantum MK Firmware
+![Woodpad](https://woodkeys.click/wp-content/uploads/2017/08/ma2.jpg)
 
-For the full Quantum feature list, see [the parent readme](/).
+* Keyboard Maintainer: QMK Community
+* Hardware Supported: Woodpad PCB
+* Hardware Availability: [WoodKeys](https://woodkeys.click/product/woodpad/)
 
-## Building
+Make example for this keyboard (after setting up your build environment):
 
-Download or clone the whole firmware and navigate to the keyboards/woodpad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. 
+    make handwired/woodpad:default
 
-Depending on which keymap you would like to use, you will have to compile slightly differently.
+Flashing example for this keyboard:
 
-### Default
+    make handwired/woodpad:default:flash
 
-To build with the default keymap, simply run `make default`.
-
-### Other Keymaps
-
-Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
-
-To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
-
-```
-$ make [default|jack|<name>]
-```
-
-Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/handwired/woodpad/rules.mk b/keyboards/handwired/woodpad/rules.mk
index a3a1e5ffe9..8c2c2fbdc4 100644
--- a/keyboards/handwired/woodpad/rules.mk
+++ b/keyboards/handwired/woodpad/rules.mk
@@ -2,31 +2,23 @@
 MCU = atmega32u4
 
 # Bootloader selection
-#   Teensy       halfkay
-#   Pro Micro    caterina
-#   Atmel DFU    atmel-dfu
-#   LUFA DFU     lufa-dfu
-#   QMK DFU      qmk-dfu
-#   ATmega32A    bootloadHID
-#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
 # Build Options
 #   change yes to no to disable
 #
-BOOTMAGIC_ENABLE = no      # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
-CONSOLE_ENABLE = yes        # Console for debug(+400)
+BOOTMAGIC_ENABLE = no       # 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 = no            # USB Nkey Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no            # MIDI support (+2400 to 4200, depending on config)
-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
-RGBLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no       # Enable Bluetooth
+AUDIO_ENABLE = no           # Audio output
+
+LAYOUTS = ortho_5x4
diff --git a/keyboards/handwired/woodpad/woodpad.c b/keyboards/handwired/woodpad/woodpad.c
index 15a87f2eae..71bc0ba71e 100644
--- a/keyboards/handwired/woodpad/woodpad.c
+++ b/keyboards/handwired/woodpad/woodpad.c
@@ -1,4 +1,4 @@
-/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+/* Copyright 2017 WoodKeys
  *
  * 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
@@ -13,31 +13,18 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-#include "woodpad.h"
-
-void matrix_init_kb(void) {
-	// put your keyboard start-up code here
-	// runs once when the firmware starts up
-
-	matrix_init_user();
-}
 
-void matrix_scan_kb(void) {
-	// put your looping keyboard code here
-	// runs every cycle (a lot)
+#include "woodpad.h"
 
-	matrix_scan_user();
+void keyboard_pre_init_kb(void) {
+    setPinOutput(F7);
+    keyboard_pre_init_user();
 }
 
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
-	// put your per-action keyboard code here
-	// runs for every action, just before processing by the firmware
-
-	return process_record_user(keycode, record);
+inline void numlock_led_on(void) {
+    writePinHigh(F7);
 }
 
-void led_set_kb(uint8_t usb_led) {
-	// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
-
-	led_set_user(usb_led);
+inline void numlock_led_off(void) {
+    writePinLow(F7);
 }
diff --git a/keyboards/handwired/woodpad/woodpad.h b/keyboards/handwired/woodpad/woodpad.h
index 13ec0bfc28..078e56cdfb 100644
--- a/keyboards/handwired/woodpad/woodpad.h
+++ b/keyboards/handwired/woodpad/woodpad.h
@@ -1,4 +1,4 @@
-/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+/* Copyright 2017 WoodKeys
  *
  * 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
@@ -13,28 +13,32 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-#ifndef WOODPAD_H
-#define WOODPAD_H
+
+#pragma once
 
 #include "quantum.h"
 
-// This a shortcut to help you visually see your layout.
-// The following is an example using the Planck MIT layout
-// The first section contains all of the arguments
-// The second converts the arguments into a two-dimensional array
-#define KEYMAP( \
+extern void numlock_led_on(void);
+extern void numlock_led_off(void);
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_ortho_5x4( \
     k00, k01, k02, k03, \
     k10, k11, k12, k13, \
     k20, k21, k22, k23, \
     k30, k31, k32, k33, \
     k40, k41, k42, k43 \
-) \
-{ \
+) { \
     { k00, k01, k02, k03 }, \
     { k10, k11, k12, k13 }, \
     { k20, k21, k22, k23 }, \
     { k30, k31, k32, k33 }, \
-    { k40, k41, k42, k43 }, \
+    { k40, k41, k42, k43 } \
 }
-
-#endif