Finalize ScottoStarter

This commit is contained in:
Joe Scotto
2023-06-14 15:41:06 -04:00
parent 0cfad0da9f
commit acb9ddd685
22 changed files with 36327 additions and 18875 deletions
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
+88
View File
@@ -0,0 +1,88 @@
[
[
"0,0",
"0,1",
"0,2",
"0,3",
"0,4",
"0,5",
"0,6",
"0,7",
"0,8",
"0,9",
{
"w": 1.5
},
"0,10"
],
[
"1,0",
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
{
"w": 1.5
},
"1,10"
],
[
"2,0",
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
{
"w": 1.5
},
"2,10"
],
[
"3,0",
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
{
"w": 1.5
},
"3,10"
],
[
{
"w": 1.5
},
"4,0",
"4,1",
"4,2",
{
"w": 3
},
"4,4",
"4,7",
"4,8",
{
"w": 1.5
},
"4,9",
{
"w": 1.5
},
"4,10"
]
]
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
{"version": 1, "uid": 6619897686829564753, "layout": [[["KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPACE"], ["KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_TAB"], ["KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCOLON", "KC_QUOTE"], ["LSFT_T(KC_Z)", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMMA", "KC_DOT", "RSFT_T(KC_SLASH)", "KC_ENTER"], ["KC_LCTRL", "KC_LGUI", "KC_LALT", -1, "KC_SPACE", -1, -1, "MO(1)", "MO(2)", "KC_ESCAPE", "KC_CAPSLOCK"]], [["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_DELETE"], ["LSFT(KC_MINUS)", "KC_MINUS", "LSFT(KC_EQUAL)", "KC_EQUAL", "LSFT(KC_SCOLON)", "KC_GRAVE", "KC_MRWD", "KC_MPLY", "KC_MFFD", "KC_NO", "KC_TAB"], ["LSFT(KC_LBRACKET)", "LSFT(KC_9)", "LSFT(KC_0)", "LSFT(KC_RBRACKET)", "LSFT(KC_BSLASH)", "KC_ESCAPE", "KC_LEFT", "KC_UP", "KC_DOWN", "KC_RIGHT", "KC_QUOTE"], ["LSFT_T(KC_LBRACKET)", "KC_QUOTE", "LSFT(KC_QUOTE)", "KC_RBRACKET", "KC_SCOLON", "LSFT(KC_GRAVE)", "KC_VOLD", "KC_MUTE", "KC_VOLU", "RSFT_T(KC_BSLASH)", "KC_ENTER"], ["KC_LCTRL", "KC_LGUI", "KC_LALT", -1, "KC_SPACE", -1, -1, "KC_TRNS", "KC_TRNS", "KC_ESCAPE", "KC_CAPSLOCK"]], [["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_BSPACE"], ["LSFT(KC_1)", "LSFT(KC_2)", "LSFT(KC_3)", "LSFT(KC_4)", "LSFT(KC_5)", "LSFT(KC_6)", "LSFT(KC_7)", "LSFT(KC_8)", "KC_CAPSLOCK", "KC_BSPACE", "KC_TAB"], ["KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_QUOTE"], ["KC_LSHIFT", "KC_NO", "KC_NO", "KC_NO", "MO(3)", "KC_NO", "KC_NO", "KC_COMMA", "KC_DOT", "RSFT_T(KC_SLASH)", "KC_ENTER"], ["KC_LCTRL", "KC_LGUI", "KC_LALT", -1, "KC_SPACE", -1, -1, "KC_TRNS", "KC_TRNS", "KC_ESCAPE", "KC_CAPSLOCK"]], [["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_BSPACE"], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", 20484, "KC_TAB"], ["KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_QUOTE"], ["KC_F11", "KC_NO", "KC_NO", "RESET", "KC_TRNS", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_F12", "KC_ENTER"], ["KC_LCTRL", "KC_LGUI", "KC_LALT", -1, "KC_SPACE", -1, -1, "KC_TRNS", "KC_TRNS", "KC_ESCAPE", "KC_CAPSLOCK"]]], "encoder_layout": [[], [], [], []], "layout_options": -1, "macro": [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], "vial_protocol": 5, "via_protocol": 9, "tap_dance": [["KC_NO", "KC_NO", "KC_NO", "KC_NO", 135], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 135], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 135], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 135], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 135], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 135], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 135], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 135]], "combo": [["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO"]], "key_override": [{"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}], "settings": {"1": 0, "2": 50, "3": 0, "4": 175, "5": 5, "6": 5000, "7": 135, "8": 3, "9": 10, "10": 20, "11": 8, "12": 10, "13": 30, "14": 10, "15": 80, "16": 8, "17": 40, "18": 0, "19": 80, "20": 5, "21": 0}}
File diff suppressed because it is too large Load Diff
-91
View File
@@ -1,91 +0,0 @@
[
[
{
"a": 7
},
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
{
"w": 1.5
},
""
],
[
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
{
"w": 1.5
},
""
],
[
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
{
"w": 1.5
},
""
],
[
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
{
"w": 1.5
},
""
],
[
{
"w": 1.5
},
"",
"",
"",
{
"w": 3
},
"",
"",
"",
{
"w": 1.5
},
"",
{
"w": 1.5
},
""
]
]
+4 -24
View File
@@ -12,22 +12,11 @@
"mousekey": true,
"nkro": true
},
"build": {
"lto": true
},
"matrix_pins": {
// RX1, 4, 5, 6, 7, 8, 9, A3, A2, A1, TX0
"cols": [
"D2",
"D4",
"C6",
"D7",
"E6",
"B4",
"B5",
"F4",
"F5",
"F6",
"D3"
],
// A0, 15, 14, 16, 10
"cols": ["D2", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6", "D3"],
"rows": ["F7", "B1", "B3", "B2", "B6"]
},
"url": "https://scottokeebs.com",
@@ -39,7 +28,6 @@
"layouts": {
"LAYOUT_ortho_4x11_8": {
"layout": [
// Row 1
{ "matrix": [0, 0], "x": 0, "y": 0 },
{ "matrix": [0, 1], "x": 1, "y": 0 },
{ "matrix": [0, 2], "x": 2, "y": 0 },
@@ -51,8 +39,6 @@
{ "matrix": [0, 8], "x": 8, "y": 0 },
{ "matrix": [0, 9], "x": 9, "y": 0 },
{ "matrix": [0, 10], "x": 10, "y": 0 },
// Row 2
{ "matrix": [1, 0], "x": 0, "y": 1 },
{ "matrix": [1, 1], "x": 1, "y": 1 },
{ "matrix": [1, 2], "x": 2, "y": 1 },
@@ -64,8 +50,6 @@
{ "matrix": [1, 8], "x": 8, "y": 1 },
{ "matrix": [1, 9], "x": 9, "y": 1 },
{ "matrix": [1, 10], "x": 10, "y": 1 },
// Row 3
{ "matrix": [2, 0], "x": 0, "y": 2 },
{ "matrix": [2, 1], "x": 1, "y": 2 },
{ "matrix": [2, 2], "x": 2, "y": 2 },
@@ -77,8 +61,6 @@
{ "matrix": [2, 8], "x": 8, "y": 2 },
{ "matrix": [2, 9], "x": 9, "y": 2 },
{ "matrix": [2, 10], "x": 10, "y": 2 },
// Row 4
{ "matrix": [3, 0], "x": 0, "y": 3 },
{ "matrix": [3, 1], "x": 1, "y": 3 },
{ "matrix": [3, 2], "x": 2, "y": 3 },
@@ -90,8 +72,6 @@
{ "matrix": [3, 8], "x": 8, "y": 3 },
{ "matrix": [3, 9], "x": 9, "y": 3 },
{ "matrix": [3, 10], "x": 10, "y": 3 },
// Row 5
{ "matrix": [4, 0], "x": 0, "y": 4 },
{ "matrix": [4, 1], "x": 1, "y": 4 },
{ "matrix": [4, 2], "x": 2, "y": 4 },
+27
View File
@@ -0,0 +1,27 @@
/*
Copyright 2023 Joe Scotto
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
// Define options
#define TAPPING_TERM 135
#define PERMISSIVE_HOLD
// Vial
#define VIAL_KEYBOARD_UID {0x51, 0x03, 0xE8, 0x58, 0xDF, 0x99, 0xDE, 0x5B}
#define VIAL_UNLOCK_COMBO_ROWS { 4, 4 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 10 }
+52
View File
@@ -0,0 +1,52 @@
/*
Copyright 2023 Joe Scotto
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/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_4x11_8(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_ESC, KC_CAPS
),
[1] = LAYOUT_ortho_4x11_8(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL,
KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_NO, KC_TAB,
KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_QUOT,
LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILD, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_TRNS, KC_TRNS, KC_ESC, KC_CAPS
),
[2] = LAYOUT_ortho_4x11_8(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC,
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, KC_TAB,
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_QUOT,
KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_TRNS, KC_TRNS, KC_ESC, KC_CAPS
),
[3] = LAYOUT_ortho_4x11_8(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), KC_TAB,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_QUOT,
KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_TRNS, KC_TRNS, KC_ESC, KC_CAPS
)
};
+2
View File
@@ -0,0 +1,2 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
+80
View File
@@ -0,0 +1,80 @@
{
"matrix": {
"rows": 5,
"cols": 11
},
"layouts": {
"keymap": [
[
"0,0",
"0,1",
"0,2",
"0,3",
"0,4",
"0,5",
"0,6",
"0,7",
"0,8",
"0,9",
{ "w": 1.5 },
"0,10"
],
[
"1,0",
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
{ "w": 1.5 },
"1,10"
],
[
"2,0",
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
{ "w": 1.5 },
"2,10"
],
[
"3,0",
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
{ "w": 1.5 },
"3,10"
],
[
{ "w": 1.5 },
"4,0",
"4,1",
"4,2",
{ "w": 3 },
"4,4",
"4,7",
"4,8",
{ "w": 1.5 },
"4,9",
{ "w": 1.5 },
"4,10"
]
]
}
}
+3 -51
View File
@@ -1,55 +1,7 @@
# ScottoStarter
A 52 key ortholinear keyboard that is designed to help transition you into smaller layouts.
The ScottoStarter is a 52-key ortholinear keyboard designed to help ease the transition into smaller layouts.
You can read more about the components and how to build it [here](https://scottokeebs.com/blogs/keyboards/scottostarter-handwired-keyboard).
![ScottoStarter](https://user-images.githubusercontent.com/8194147/194448130-6270a86a-2794-474c-b43d-1042a35bd41a.jpg)
![Matrix](https://user-images.githubusercontent.com/8194147/194448158-ac15d897-9dd6-431e-ab2a-94d3c64ff069.jpg)
![Controller](https://user-images.githubusercontent.com/8194147/194448172-a8f095bc-6731-4647-859a-797a4201f8a1.jpg)
<!--
![ScottoStarter](https://user-images.githubusercontent.com/8194147/193435831-0216b09f-f500-457c-bb8a-a558330e786e.jpg)
![Matrix](https://user-images.githubusercontent.com/8194147/193435827-86c512b3-368f-4385-937a-316ecfe61c94.jpg)
![Controller](https://user-images.githubusercontent.com/8194147/193435829-58c55a69-d7db-4ae8-ad00-207e046fd9d4.jpg) -->
# Parts
- 1x - [Arduino Pro Micro (Atmega32U4)](https://amzn.to/3LwgAUq)
- 1x - [3u Plate Mount Stabilizer](https://amzn.to/3xUEvHz)
- 52x - [1N4148 Diode](https://amzn.to/3DMbQZ5)
- 18x - [8mm M2 Spacer](https://amzn.to/3r1xdxO)
- 36x - [M2x6mm Screw](https://amzn.to/3r1xdxO)
- 52x - MX Switches
- 52x - Keycaps
- 44x - 1u
- 7x - 1.5uz
- 1x - 3u
# Pins
Top left to right. Pins refer to the number on the Pro Micro, for more info see [info.json](QMK/info.json).
- **Rows** - A0, 15, 14, 16, 10
- **Columns** - RX1, 4, 5, 6, 7, 8, 9, A3, A2, A1, TX0
# Case
The controller is simply hot glued into the bottom of the case. You may have to disable skirts and brims depending on the build volume of your printer.
- [Plate](Case/ScottoStarter%20-%20Plate.stl)
- [Case](Case/ScottoStarter%20-%20Case.stl)
# Stabilizer
The ScottoStarter uses a 3u spacebar, this isn't a unique size but you will have to source a 3u stabilizer wire or make one yourself. To make your own, take a piece of 14g wire and bend it at each stabilizer mounting point. It will take a bit of trial and error to get it perfect but it beats having to wait for one in the mail.
# Flashing
1. [Install QMK locally](https://github.com/qmk/qmk_firmware)
2. Make changes to the keymap if required.
3. Run `qmk flash -kb handwired/jscotto/scottostarter -km default -c`.
# License
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/nc.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1"></a></p>
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://github.com/joe-scotto/scottokeebs/tree/main/ScottoStarter">ScottoStarter</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://github.com/joe-scotto">Joe Scotto</a> is licensed under <a href="http://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY-NC-SA 4.0