3 Commits

Author SHA1 Message Date
Cole Smith
c538d98dfa formatting sorry 2023-01-23 16:44:21 -08:00
Cole Smith
2fc1d586d6 updated docs 2023-01-23 16:37:02 -08:00
Cole Smith
5d65940f28 added reviung34, made gtips folder and moved all reviung boards into said folder 2023-01-23 16:24:39 -08:00
14 changed files with 150 additions and 178 deletions

View File

@@ -0,0 +1,28 @@
# Reviung34
The Reviung34 is a 34 key keyboard designed by gtips, it is a slightly smaller
version of the popular Reviung 39. These "split non-split" keyboards offer a lot
of features split keyboards have in terms of comfort and ergonomics but do so in
a single-piece package. Many people consider keyboards in this style easier to
travel with since you don't have to manage two halves and there is of course no
need for a TRRS cable. This board sits somewhere between and Atreus and Corne,
and it is extremely comfortable to use.
Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung/tree/master)
Retailers (USA)
[Boardsource](https://boardsource.xyz/store)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB matrix](/docs/en/peg_rgb_matrix.md) Light it up
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins

View File

@@ -0,0 +1,37 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
from kmk.scanners import intify_coordinate as ic
class KMKKeyboard(_KMKKeyboard):
row_pins = (
pins[19],
pins[18],
pins[17],
pins[16]
)
col_pins = (
pins[6],
pins[7],
pins[8],
pins[9],
pins[10],
pins[15],
pins[14],
pins[13],
pins[12],
)
diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = pins[0]
rgb_num_pixels = 9
led_key_pos = [0,1,2,3,8,4,5,6,7]
brightness_limit = 1.0
num_pixels = 9
coord_mapping = [
0, 1, 2, 3, 4, 5, 6, 7, 8, 32
,9, 10, 11, 12, 13, 14, 15, 16, 17, 33
,18,19, 20, 21, 22, 23, 24, 25, 26, 34
,29,30,31,35]

View File

@@ -0,0 +1,49 @@
from kb import KMKKeyboard
from kmk.extensions.peg_rgb_matrix import Rgb_matrix
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.layers import Layers
keyboard = KMKKeyboard()
# Adding extensions
# ledmap
rgb_ext = Rgb_matrix(ledDisplay=[[55,55,55],[55,55,55],[55,55,55],[55,55,55],[55,55,55],[55,55,55],[55,55,55],[55,55,55],[55,55,55]],split=False,rightSide=False,disable_auto_write=True)
# ledmap
layers_ext = Layers()
keyboard.modules.append(layers_ext)
keyboard.extensions.append(rgb_ext)
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
LOWER = KC.MO(2)
RAISE = KC.MO(1)
keyboard.keymap = [
[ #QWERTY
KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P,\
KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN,\
KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH,\
LOWER, KC.SPC, KC.BSPC, RAISE
],
[ #RAISE
KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0,\
KC.TAB, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT, XXXXXXX, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC,\
KC.LCTL, KC.GRV, KC.LGUI, KC.LALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.BSLS, KC.QUOT,\
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
],
[ #LOWER
KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN,\
KC.ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.UNDS, KC.PLUS, KC.LCBR, KC.RCBR,\
KC.CAPS, KC.TILD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.PIPE, KC.DQT,\
XXXXXXX, XXXXXXX, KC.ENT, KC.DEL
]
]
if __name__ == '__main__':
keyboard.go()

View File

@@ -6,18 +6,16 @@ from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = (pins[19], pins[18], pins[17], pins[16]) row_pins = (board.pins[19], board.pins[18], board.pins[17], board.pins[16])
col_pins = ( col_pins = (
pins[6], board.pins[6],
pins[7], board.pins[7],
pins[8], board.pins[8],
pins[9], board.pins[9],
pins[10], board.pins[10],
) )
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = pins[0] rgb_pixel_pin = pins[0]
rgb_num_pixels = 40 rgb_num_pixels = 40
data_pin = pins[1] data_pin = board.pins[1]
SCL = board.SCL
SDA = board.SDA
i2c = board.I2C i2c = board.I2C

View File

@@ -1,53 +1,27 @@
from kb import KMKKeyboard from kb import KMKKeyboard
from kmk.extensions.peg_oled_Display import ( from kmk.extensions.layers import Layers
Oled, from kmk.extensions.split import Split, SplitSide, SplitType
OledData,
OledDisplayMode,
OledReactionType,
)
from kmk.keys import KC from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.split import Split, SplitSide, SplitType
keyboard = KMKKeyboard() keyboard = KMKKeyboard()
split = Split(use_pio=True) # TODO Comment one of these on each side
oled_ext = Oled( split_side = SplitSide.LEFT
OledData( split_side = SplitSide.RIGHT
corner_one={ split = Split(split_type=SplitType.BLE, split_side=split_side)
0: OledReactionType.STATIC,
1: ['1 2 3 4 5 6', '', '', '', '', '', '', ''],
},
corner_two={
0: OledReactionType.STATIC,
1: [' 7 8 Layer', '', '', '', '', '', '', ' 7 8 Layer'],
},
corner_three={
0: OledReactionType.LAYER,
1: ['^', ' ^', ' ^', ' ^', ' ^', ' ^', '', ''],
},
corner_four={
0: OledReactionType.LAYER,
1: ['', '', '', '', '', '', ' ^', ' ^'],
},
),
toDisplay=OledDisplayMode.TXT,
flip=True,
)
keyboard.extensions.append(oled_ext)
layers_ext = Layers() layers_ext = Layers()
keyboard.modules = [layers_ext, split] keyboard.extensions = [layers_ext, split]
# Cleaner key names
_______ = KC.TRNS _______ = KC.TRNS
XXXXXXX = KC.NO XXXXXXX = KC.NO
LOWER = KC.MO(2) LOWER = KC.MO(2)
RAISE = KC.MO(1) RAISE = KC.MO(1)
KC_Z_SF = KC.LSFT(KC.Z) KC_Z_SF = KC.LSFT(KC.Z)
KC_SLSF = KC.RSFT(KC.SLSH) KC_SLSF = KC.RSFT(KC.SLSH)
KC_11SF = KC.LSFT(KC.F11) KC_11SF = KC.LSFT(KC.F11)
@@ -55,131 +29,23 @@ KC_GRSF = KC.RSFT(KC.GRV)
keyboard.keymap = [ keyboard.keymap = [
[ #QWERTY [ #QWERTY
KC.Q, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P,
KC.W, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.ENT,
KC.E, KC.Z_SF, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSF,
KC.R, KC.LCTL, KC.LALT, KC.LGUI, LOWER, KC.BSPC, KC.SPC, RAISE, KC.RGUI, KC.APP, KC.RCTL
KC.T,
KC.Y,
KC.U,
KC.I,
KC.O,
KC.P,
KC.A,
KC.S,
KC.D,
KC.F,
KC.G,
KC.H,
KC.J,
KC.K,
KC.L,
KC.ENT,
KC_Z_SF,
KC.X,
KC.C,
KC.V,
KC.B,
KC.N,
KC.M,
KC.COMM,
KC.DOT,
KC_SLSF,
KC.LCTL,
KC.LALT,
KC.LGUI,
LOWER,
KC.BSPC,
KC.SPC,
RAISE,
KC.RGUI,
KC.APP,
KC.RCTL,
], ],
[ #RAISE [ #RAISE
KC.N1, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0,
KC.N2, KC.LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT, KC.RSFT,
KC.N3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.MINS, KC.RO, KC.COMM, KC.DOT, KC.SLSF,
KC.N4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
KC.N5,
KC.N6,
KC.N7,
KC.N8,
KC.N9,
KC.N0,
KC.LSFT,
XXXXXXX,
XXXXXXX,
XXXXXXX,
XXXXXXX,
KC.LEFT,
KC.DOWN,
KC.UP,
KC.RGHT,
KC.RSFT,
XXXXXXX,
XXXXXXX,
XXXXXXX,
XXXXXXX,
XXXXXXX,
KC.MINS,
KC.RO,
KC.COMM,
KC.DOT,
KC_SLSF,
_______,
_______,
_______,
_______,
_______,
_______,
_______,
_______,
_______,
_______,
], ],
[ #LOWER [ #LOWER
KC.F1, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC, KC.BSLS,
KC.F2, KC.F6, KC.F7, KC.F8, KC.F9, KC.F10, XXXXXXX, XXXXXXX, XXXXXXX, KC.SCLN, KC.QUOT,
KC.F3, KC.N11SF, KC.F12, KC.ESC, KC.TAB, _______, KC.DEL, XXXXXXX, XXXXXXX, KC.RO, KC.GRSF,
KC.F4, _______, _______, _______, _______, KC.DEL, _______, _______, _______, _______, _______
KC.F5, ]
KC.MINS,
KC.EQL,
KC.LBRC,
KC.RBRC,
KC.BSLS,
KC.F6,
KC.F7,
KC.F8,
KC.F9,
KC.F10,
XXXXXXX,
XXXXXXX,
XXXXXXX,
KC.SCLN,
KC.QUOT,
KC_11SF,
KC.F12,
KC.ESC,
KC.TAB,
_______,
KC.DEL,
XXXXXXX,
XXXXXXX,
KC.RO,
KC_GRSF,
_______,
_______,
_______,
_______,
KC.DEL,
_______,
_______,
_______,
_______,
_______,
],
] ]
if __name__ == '__main__': if __name__ == '__main__':

View File

@@ -84,7 +84,7 @@ class Layers(_Layers):
last_top_layer = 0 last_top_layer = 0
hues = (4, 20, 69) hues = (4, 20, 69)
def after_hid_send(self, keyboard): def after_hid_send(keyboard):
if keyboard.active_layers[0] != self.last_top_layer: if keyboard.active_layers[0] != self.last_top_layer:
self.last_top_layer = keyboard.active_layers[0] self.last_top_layer = keyboard.active_layers[0]
rgb.set_hsv_fill(self.hues[self.last_top_layer], 255, 255) rgb.set_hsv_fill(self.hues[self.last_top_layer], 255, 255)

View File

@@ -59,7 +59,7 @@ def hsv_to_rgb(hue, sat, val):
return (r >> 8), (g >> 8), (b >> 8) return (r >> 8), (g >> 8), (b >> 8)
def hsv_to_rgbw(hue, sat, val): def hsv_to_rgbw(self, hue, sat, val):
''' '''
Converts HSV values, and returns a tuple of RGBW values Converts HSV values, and returns a tuple of RGBW values
:param hue: :param hue:

View File

@@ -46,9 +46,7 @@ class Layers(HoldTap):
on_release=self._mo_released, on_release=self._mo_released,
) )
make_argumented_key( make_argumented_key(
validator=layer_key_validator, validator=layer_key_validator, names=('DF',), on_press=self._df_pressed
names=('DF',),
on_press=self._df_pressed,
) )
make_argumented_key( make_argumented_key(
validator=layer_key_validator, validator=layer_key_validator,
@@ -57,14 +55,10 @@ class Layers(HoldTap):
on_release=self._lm_released, on_release=self._lm_released,
) )
make_argumented_key( make_argumented_key(
validator=layer_key_validator, validator=layer_key_validator, names=('TG',), on_press=self._tg_pressed
names=('TG',),
on_press=self._tg_pressed,
) )
make_argumented_key( make_argumented_key(
validator=layer_key_validator, validator=layer_key_validator, names=('TO',), on_press=self._to_pressed
names=('TO',),
on_press=self._to_pressed,
) )
make_argumented_key( make_argumented_key(
validator=layer_key_validator_lt, validator=layer_key_validator_lt,