Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
341,147 changes: 341,147 additions & 0 deletions hackpads/TITANPAD/CAD/TitanPad_V1_Case.step

Large diffs are not rendered by default.

Binary file added hackpads/TITANPAD/Case.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added hackpads/TITANPAD/PCB.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
50 changes: 50 additions & 0 deletions hackpads/TITANPAD/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# TITANPAD

TITANPAD is a custom 12-key macropad with two rotary encoders, designed for versatility and ease of use. It features a compact and ergonomic layout, making it perfect for productivity, gaming, and creative applications.

![Assembled](Render2.PNG)
![Parts](Render1.PNG)
## Features
- 12 programmable keys with Cherry MX switches
- 2 rotary encoders for enhanced control
- Custom QMK firmware compatibility
- Compact 3D-printed case
- Powered by Seeed XIAO RP2040

## Bill of Materials (BOM)
| Quantity | Component |
|----------|------------|
| 12 | Cherry MX Switches |
| 12 | Through-hole 1N4148 diodes |
| 2 | EC11 Rotary Encoders |
| 5 | Blank DSA Keycaps (Black) |
| 6 | Blank DSA Keycaps (White) |
| 1 | Blank DSA Keycap (Red) |
| 4 | M3x16mm Screws |
| 4 | M3x533x433 Heatset Inserts |
| 3 | 3D Printed Case Parts (Black: top, plate, bottom) |
| 1 Set | Header Pins for Seeed XIAO RP2040 |

## Assembly Instructions
1. Solder the 1N4148 diodes onto the PCB.
2. Mount and solder the Cherry MX switches.
3. Install the EC11 rotary encoders.
4. Attach the header pins to the Seeed XIAO RP2040 and solder it to the PCB.
5. Assemble the 3D-printed case using the M3 screws and heatset inserts.
6. Install keycaps onto the switches.
7. Flash QMK firmware onto the microcontroller.

## Firmware
TITANPAD is powered by QMK firmware, allowing for full customization of key mappings and macros.

To compile and flash the firmware:
```bash
qmk setup
qmk compile -kb titanpad -km default
qmk flash -kb titanpad -km default
```
| Part | Image |
|-|-|
|Schematic|![Schematic](Schematic.png)|
|PCB|![PCB](PCB.png)|
|Case|![Case](Case.png)|
Binary file added hackpads/TITANPAD/Render1.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added hackpads/TITANPAD/Render2.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added hackpads/TITANPAD/Schematic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions hackpads/TITANPAD/firmware/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later

#define ENCODER_A_PINS {GP3, GP2}
#define ENCODER_B_PINS {GP4, GP1}
44 changes: 44 additions & 0 deletions hackpads/TITANPAD/firmware/keyboard.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"manufacturer": "Arthur Djiomou",
"keyboard_name": "titanpad",
"maintainer": "UnusualTitan711x",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP29", "GP6", "GP7", "GP0"],
"rows": ["GP26", "GP27", "GP28"]
},
"processor": "RP2040",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2}
]
}
}
}
52 changes: 52 additions & 0 deletions hackpads/TITANPAD/firmware/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H
#include <stdio.h>
#include <stdint.h>

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┐
* │ 7 │ 8 │ 9 │ / │
* ├───┼───┼───┼───┤
* │ 4 │ 5 │ 6 │ * │
* ├───┼───┼───┼───┤
* │ 0 │ . │Ent│ + │
* └───┴───┴───┴───┘
*/
[0] = LAYOUT(
KC_SLEP, KC_MPLY, KC_MYCM, MO(1),
KC_Q, KC_W, KC_E, KC_MAIL,
KC_A, KC_S, KC_D, KC_SPC
),

[1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
)
};

bool encoder_update_user (uint8_t index, bool clockwise)
{
if (index == 0)
{
tap_code(KC_VOLU);
}
else
{
tap_code(KC_VOLD);
}

if (index == 1)
{
tap_code(KC_BRIU);
}
else
{
tap_code(KC_BRID);
}

return false;
}
27 changes: 27 additions & 0 deletions hackpads/TITANPAD/firmware/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# titanpad

![titanpad](imgur.com image replace me!)

*A short description of the keyboard/project*

* Keyboard Maintainer: [Arthur Djiomou](https://github.com/UnusualTitan711x)
* Hardware Supported: *The PCBs, controllers supported*
* Hardware Availability: *Links to where you can find this hardware*

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

make titanpad:default

Flashing example for this keyboard:

make titanpad: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 3 ways:

* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
2 changes: 2 additions & 0 deletions hackpads/TITANPAD/firmware/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
LTO_ENABLE = yes
ENCODER_ENABLE = yes
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading