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

Add Support for LPAD #19852

Merged
merged 64 commits into from
Mar 18, 2023
Merged
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
baf496c
Add files via upload
Laneware Jan 5, 2023
4fb557b
Update keymap.c
Laneware Jan 5, 2023
fa13aec
Update lw75.c
Laneware Jan 5, 2023
761321c
Update lw75.h
Laneware Jan 5, 2023
01a66dd
Update keymap.c
Laneware Jan 5, 2023
397b612
Update keymap.c
Laneware Jan 5, 2023
87daa41
Update keymap.c
Laneware Jan 5, 2023
ae4ccbc
Update keymap.c
Laneware Jan 5, 2023
bb4f3c3
Update keymap.c
Laneware Jan 5, 2023
45a8f14
Update config.h
Laneware Jan 5, 2023
38cfc32
Update config.h
Laneware Jan 5, 2023
48ff1d8
Update keymap.c
Laneware Jan 5, 2023
7f10209
Update keymap.c
Laneware Jan 5, 2023
9ecd6c1
Update keymap.c
Laneware Jan 5, 2023
db1785d
Update keymap.c
Laneware Jan 5, 2023
89ca3fd
Update keymap.c
Laneware Jan 5, 2023
3ae08e5
Update lw75.c
Laneware Jan 5, 2023
8c5092a
Update lw75.h
Laneware Jan 5, 2023
54a2bdb
Update keyboards/lw75/keymaps/ansi_split_backspace/keymap.c
Laneware Jan 5, 2023
3a97824
Update keyboards/lw75/keymaps/default/keymap.c
Laneware Jan 5, 2023
3038c59
Update keyboards/lw75/keymaps/iso/keymap.c
Laneware Jan 5, 2023
676c37c
Update keyboards/lw75/keymaps/iso_split_backspace/keymap.c
Laneware Jan 5, 2023
8060d27
Update keyboards/lw75/readme.md
Laneware Jan 5, 2023
512e3e5
Update keyboards/lw75/lw75.c
Laneware Jan 5, 2023
34489b8
Update readme.md
Laneware Jan 5, 2023
3b6895a
Update rules.mk
Laneware Jan 6, 2023
97f089c
Update keymap.c
Laneware Jan 6, 2023
c3226ba
Update keymap.c
Laneware Jan 7, 2023
c96d3ef
Update keymap.c
Laneware Jan 7, 2023
86ec73b
Update keyboards/lw75/lw75.c
Laneware Jan 17, 2023
7a19a1f
Update keyboards/lw75/lw75.c
Laneware Jan 17, 2023
59f274d
Update keyboards/lw75/rules.mk
Laneware Jan 18, 2023
62b209f
Update keyboards/lw75/config.h
Laneware Jan 18, 2023
5a4f4ab
Update keyboards/lw75/info.json
Laneware Jan 18, 2023
7bf59b2
Update keyboards/lw75/config.h
Laneware Jan 27, 2023
d606cea
Support for LPAD
Laneware Feb 15, 2023
71dd53d
Merge branch 'qmk:master' into master
Laneware Feb 15, 2023
794628d
Support for LPAD
Laneware Feb 15, 2023
d324795
Update info.json
Laneware Feb 15, 2023
5a20307
Update keymap.c
Laneware Feb 15, 2023
598bb0f
Update keymap.c
Laneware Feb 15, 2023
6be8ff7
Update lpad.h
Laneware Feb 15, 2023
8db6362
Update lpad.h
Laneware Feb 15, 2023
f5f7fd1
Update keyboards/lpad/readme.md
Laneware Feb 15, 2023
ca52fe4
Update keyboards/lpad/readme.md
Laneware Feb 15, 2023
e1042a9
Update keyboards/lpad/lpad.h
Laneware Feb 15, 2023
307d1a5
Update keyboards/lpad/keymaps/via/keymap.c
Laneware Feb 15, 2023
8824efe
Update keyboards/lpad/keymaps/default/keymap.c
Laneware Feb 15, 2023
d787cb1
Update keyboards/lpad/info.json
Laneware Feb 15, 2023
e3235cc
Update keyboards/lpad/config.h
Laneware Feb 15, 2023
b49cfa4
Update keyboards/lpad/config.h
Laneware Feb 15, 2023
06d7fb0
Update config.h
Laneware Feb 17, 2023
2a0aa8a
Update keyboards/lpad/config.h
Laneware Feb 18, 2023
da1a5df
Update keyboards/lpad/info.json
Laneware Feb 18, 2023
020eff6
Update keyboards/lpad/info.json
Laneware Mar 12, 2023
2ae6cf6
Update keyboards/lpad/config.h
Laneware Mar 12, 2023
91d83ad
Update rules.mk
Laneware Mar 13, 2023
b818a14
Update rules.mk
Laneware Mar 13, 2023
de86ad6
Update keyboards/lpad/info.json
Laneware Mar 18, 2023
e0d142d
Update keyboards/lpad/lpad.c
Laneware Mar 18, 2023
634d288
Delete lpad.h
Laneware Mar 18, 2023
0f4db54
Update info.json
Laneware Mar 18, 2023
e1f68b6
Update info.json
Laneware Mar 18, 2023
02bc950
Update rules.mk
Laneware Mar 18, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions keyboards/lpad/config.h
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file could probably be removed completely, as locking switch support is uncommon, and that's the only setting present here.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// Copyright 2023 Laneware Peripherals
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

/* 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
31 changes: 31 additions & 0 deletions keyboards/lpad/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"keyboard_name": "L-PAD",
"manufacturer": "Laneware Peripherals",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4C50",
"pid": "0x2222",
"device_version": "0.0.1"
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
Laneware marked this conversation as resolved.
Show resolved Hide resolved
"matrix_pins": {
"cols": ["F5", "E6", "D0"],
"rows": ["D3", "D4", "D6"]
},
"diode_direction": "COL2ROW",
Laneware marked this conversation as resolved.
Show resolved Hide resolved
"encoder": {
"rotary": [
{
"pin_a": "F0",
"pin_b": "F1"
}
]
},
"layouts":{
"LAYOUT": {
"layout": [{"label":"Play", "x":0, "y":0}, {"label":"Mute", "x":1.5, "y":0.5}, {"label":"Next", "x":0, "y":1}, {"label":"Prev", "x":0, "y":2}, {"label":"Left", "x":1, "y":2}, {"label":"Right", "x":2, "y":2}]
Laneware marked this conversation as resolved.
Show resolved Hide resolved
},
}
}
13 changes: 13 additions & 0 deletions keyboards/lpad/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Copyright 2023 Laneware Peripherals
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

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

[0] = LAYOUT (
KC_MPLY, KC_MUTE,
KC_MNXT,
KC_MPRV, KC_LEFT, KC_RIGHT)
};

36 changes: 36 additions & 0 deletions keyboards/lpad/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// Copyright 2023 Laneware Peripherals
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

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

[0] = LAYOUT (
KC_MPLY, KC_MUTE,
KC_MNXT,
KC_MPRV, KC_LEFT, KC_RIGHT),

[1] = LAYOUT (
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),

[2] = LAYOUT (
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),

[3] = LAYOUT (
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
};

#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[1] = {ENCODER_CCW_CW(KC_TRNS, KC_TRNS)},
[2] = {ENCODER_CCW_CW(KC_TRNS, KC_TRNS)},
[3] = {ENCODER_CCW_CW(KC_TRNS, KC_TRNS)},
};
#endif
2 changes: 2 additions & 0 deletions keyboards/lpad/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes
18 changes: 18 additions & 0 deletions keyboards/lpad/lpad.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright 2023 Laneware Peripherals
// SPDX-License-Identifier: GPL-2.0-or-later

#include "lpad.h"
Laneware marked this conversation as resolved.
Show resolved Hide resolved

#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) return false;
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
return true;
}
#endif
25 changes: 25 additions & 0 deletions keyboards/lpad/lpad.h
Laneware marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Copyright 2023 Laneware Peripherals
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include "quantum.h"

/* ┌───┐
* │000│ ┌───┐
* ├───┤ │001│
* │100│ └───┘
* ├───┼───┬───┐
* │200│201│202│
* └───┴───┴───┘
*/

#define LAYOUT ( \
K000, K001, \
K100, \
K200, K201, K202 \
) { \
{ K000, K001}, \
{ K100}, \
{ K200, K201, K202} \
}
27 changes: 27 additions & 0 deletions keyboards/lpad/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# LPAD

![LPAD](https://i.imgur.com/bQgqZC6h.jpg)

A Macro Keyboard with a RHS rotary encoder, made and sold by Laneware Peripherals.

* Keyboard Maintainer: [Laneware Peripherals](https://github.com/laneware)
* Hardware Supported: LPAD
* Hardware Availability: [Laneware Peripherals](https://lanewareperipherals.com/),

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

make lpad:default
Laneware marked this conversation as resolved.
Show resolved Hide resolved

Flashing example for this keyboard:

make lpad:default:flash


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

## Bootloader

Enter the bootloader in 2 ways:

* **Bootmagic reset**: Hold down the Top Left Switch and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB
14 changes: 14 additions & 0 deletions keyboards/lpad/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@

# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes