* Initial commit

meow
Dominika 2022-01-28 20:40:16 +01:00
commit 3e1f906899
5 changed files with 109 additions and 0 deletions

12
README.md Normal file
View File

@ -0,0 +1,12 @@
# CuteBoard
(pronounced "Qt Board")
A custom 60% mechanical keyboard built around parts I've already had at home or that I could 3d print.
A writeup about making this keyboard is available [here](https://sdomi.pl/weblog/14-cuteboard-mechanical-keyboard-from-scratch/), go check it out :3
No STL files; get OpenSCAD and hack the source yourself! Also because I think that my math isn't 100% right and one of the walls may be thicker than the other.
by sdomi

43
keyboard_case.scad Normal file
View File

@ -0,0 +1,43 @@
h=9;
btm_h=1.3;
a=13;
difference() {
cube([93.75+6+4.5,254+6+4.5,btm_h+h+a]);
translate([1.5,1.5,btm_h]) {
cube([93.75+6.5,254+6.5,btm_h+h+a]);
}
tilty_boi();
translate([93.75,240,btm_h+1]) cube([20,8.5,3]);
}
difference() {
translate([2.7,1.5,btm_h]) {
translate([3,3,0]) {
for (j = [1:5]) {
for (i = [0:2:14]) {
translate([j*(15+4.5),i*(14+4.5),0]) translate([-(.75/2),-(.75/2),0]) translate([-3,-3,0]) cube([2,2,30]);
}
}
}
}
translate([0,0,-5]) tilty_boi();
}
module tilty_boi() {
translate([1.5,1.5,h]) rotate([0,-7,0]) translate([-1.5,-1.5,0]) {
cube([150,300,50]);
}
}
//translate([1.5,1.5,h-4.5]) rotate([0,-7,0]) difference() {
// cube([93.75+6,254+6,5]);
// translate([3,3,0]) {
// for (j = [0:4]) {
// for (i = [0:13]) {
// translate([j*(15+4.5),i*(14+4.5),0]) translate([-(.75/2),-(.75/2),0]) cube([15.75,14.75,10]);
// }
// }
// }
//}

10
keyboard_frame.scad Normal file
View File

@ -0,0 +1,10 @@
difference() {
cube([93.75+6,254+6,5]);
translate([3,3,0]) {
for (j = [0:4]) {
for (i = [0:13]) {
translate([j*(15+4.5),i*(14+4.5),0]) translate([-(.75/2),-(.75/2),0]) cube([15.75,14.75,10]);
}
}
}
}

9
soft/boot.py Executable file
View File

@ -0,0 +1,9 @@
import supervisor
import usb_hid
import usb_midi
usb_hid.enable(
(usb_hid.Device.KEYBOARD)
)
usb_midi.disable()
supervisor.set_next_stack_limit(4096 + 4096)

35
soft/code.py Executable file
View File

@ -0,0 +1,35 @@
import board
from kmk.kmk_keyboard import KMKKeyboard
from kmk.keys import KC
from kmk.matrix import DiodeOrientation
from kmk.modules.layers import Layers
keyboard = KMKKeyboard()
keyboard.modules.append(Layers())
keyboard.row_pins = (board.GP16,board.GP17,board.GP18,board.GP19,board.GP20,)
keyboard.col_pins = (board.GP13,board.GP12,board.GP11,board.GP10,board.GP9,board.GP8,board.GP7,board.GP6,board.GP5,board.GP4,board.GP3,board.GP2,board.GP1,board.GP0)
keyboard.diode_orientation = DiodeOrientation.ROW2COL
keyboard.keymap = [
[
KC.ESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.MINUS, KC.EQUAL, KC.BSPC,
KC.TAB, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.LBRC, KC.RBRC, KC.BSLS,
KC.MO(1), KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT, KC.ENT, KC.ENT,
KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.INS, KC.UP, KC.DEL,
KC.LCTL, KC.F13, KC.LALT, KC.SPC, KC.SPC, KC.SPC, KC.SPC, KC.SPC, KC.RALT, KC.RALT, KC.MO(1), KC.LEFT, KC.DOWN, KC.RIGHT,
],
[
KC.GRAVE, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, KC.F12, KC.PSCR,
KC.NO, KC.F13, KC.F14, KC.F15, KC.F16, KC.F17, KC.F18, KC.F19, KC.F20, KC.F21, KC.F22, KC.F23, KC.F24, KC.NO,
KC.NO, KC.VOLD, KC.VOLU, KC.MUTE, KC.NO, KC.TRNS,KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.VOLD, KC.VOLU, KC.MUTE,
KC.TRNS, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.PGUP, KC.NO,
KC.TRNS, KC.NO, KC.TRNS, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.TRNS, KC.TRNS, KC.NO, KC.HOME, KC.PGDN, KC.END,
]
]
keyboard.debug_enabled = True
if __name__ == '__main__':
keyboard.go()