Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jotpad16 #5212

Merged
merged 17 commits into from Feb 22, 2019
38 changes: 38 additions & 0 deletions keyboards/handwired/jotpad16/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#pragma once

#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER Jotix
#define PRODUCT JotPad16
#define DESCRIPTION A Jotantastic compact NumPad

/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 4

/* pro_micro pin-out */
#define MATRIX_ROW_PINS { B6, B2, D2, D3 }
#define MATRIX_COL_PINS { B5, B4, B3, B1 }
#define UNUSED_PINS

/* leds */
#define QMK_LED E6
#define BACKLIGHT_LEVELS 3
#define BACKLIGHT_PIN D7

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 0

/* 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

6 changes: 6 additions & 0 deletions keyboards/handwired/jotpad16/jotpad16.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "jotpad16.h"

void matrix_init_kb(void) {

matrix_init_user();
}
18 changes: 18 additions & 0 deletions keyboards/handwired/jotpad16/jotpad16.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#pragma once

#include "quantum.h"

// Used to create a keymap using only KC_ prefixed keys
#define LAYOUT_jotpad16( \
k00, k01, k02, k03, \
k10, k11, k12, k13, \
k20, k21, k22, k23, \
k30, k31, k32, k33 \
) \
{ \
{ k00, k01, k02, k03 }, \
{ k10, k11, k12, k13 }, \
{ k20, k21, k22, k23 }, \
{ k30, k31, k32, k33 } \
}

34 changes: 34 additions & 0 deletions keyboards/handwired/jotpad16/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
// this is the style you want to emulate.

#include QMK_KEYBOARD_H

extern keymap_config_t keymap_config;

// 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 _NUMPAD 0

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/* Numpad
* +-------+-------+-------+-------+
* | 7 | 8 | 9 | - |
* +-------+-------+-------+-------+
* | 4 | 5 | 6 | + |
* +-------+-------+-------+-------+
* | 1 | 2 | 3 | enter |
* +-------+-------+-------+-------+
* | 0 | . | / | * |
* +-------+-------+-------+-------+
*/
[_NUMPAD] = LAYOUT_jotpad16 (
KC_P7, KC_P8, KC_P9, KC_MINS,
KC_P4, KC_P5, KC_P6, KC_PLUS,
KC_P1, KC_P2, KC_P3, KC_PENT,
KC_P0, KC_PDOT,KC_PSLS,KC_ASTR
),
};
39 changes: 39 additions & 0 deletions keyboards/handwired/jotpad16/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# JotPad16

![JotPad16](https://i.imgur.com/RwmqWuS.jpg)

A ortholinear keypad (4x4) made by jotix.

Keyboard Maintainer: [jotix](https://github.com/jotix)
Hardware Supported: Arduino Pro Micro

### Arduino Pro Micro Pinout

| rows | 0 | 1 | 2 | 3 |
|-------------|----|----|-----|-----|
| arduino pin | 10 | 16 | RXI | TX0 |
| qmk pin | B6 | B2 | D2 | D3 |

| columns | 0 | 1 | 2 | 3 |
|-------------|----|----|----|----|
| arduino pin | 9 | 8 | 14 | 15 |
| qmk pin | B5 | B4 | B3 | C3 |

| | QMK led | Backlight |
|-------------|-----------|-----------|
| Arduino pin | 7 | 6 |
| qmk pin | E6 | D7 |

### Compiling the Firmware

Make example for this keyboard (after setting up your build environment):

make handwired/jotpad16:default

### The Defaukt Keymap

![Default Keymap](https://i.imgur.com/VJZcFRN.jpg)

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).


66 changes: 66 additions & 0 deletions keyboards/handwired/jotpad16/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# MCU name
MCU = atmega32u4

# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
#
# This will be an integer division of F_USB below, as it is sourced by
# F_USB after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
F_CPU = 16000000

#
# LUFA specific
#
# Target architecture (see library "Board Types" documentation).
ARCH = AVR8

# Input clock frequency.
# This will define a symbol, F_USB, in all source code files equal to the
# input clock frequency (before any prescaling is performed) in Hz. This value may
# differ from F_CPU if prescaling is used on the latter, and is required as the
# raw input clock is fed directly to the PLL sections of the AVR for high speed
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
# at the end, this will be done automatically to create a 32-bit value in your
# source code.
#
# If no clock division is performed on the input clock inside the AVR (via the
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB = $(F_CPU)

# Bootloader
# This definition is optional, and if your keyboard supports multiple bootloaders of
# different sizes, comment this out, and the correct address will be loaded
# automatically (+60). See bootloader.mk for all options.
BOOTLOADER = caterina

# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT

# 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 = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = no # 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 = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
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.
API_SYSEX_ENABLE = no

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
LAYOUTS = ortho_4x4