convert pm based boards to quickpin

This commit is contained in:
Kyle Brown 2022-10-09 08:44:45 -07:00 committed by xs5871
parent 17f2961c0b
commit 9842035834
32 changed files with 369 additions and 277 deletions

View File

@ -11,3 +11,11 @@ Retailers (USA)
Extensions enabled by default Extensions enabled by default
- [Layers](/docs/layers.md) Need more keys than switches? Use layers. - [Layers](/docs/layers.md) Need more keys than switches? Use layers.
## 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

@ -3,9 +3,9 @@
![Boardsource4x12](https://boardsource.imgix.net/164c3388-5057-46c8-8fcd-82c58c7870ce.jpg?raw=true) ![Boardsource4x12](https://boardsource.imgix.net/164c3388-5057-46c8-8fcd-82c58c7870ce.jpg?raw=true)
![Boardsource4x12LP](https://boardsource.imgix.net/c2108ea4-7d70-4327-b4b4-88c8191b1369.jpg?raw=true) ![Boardsource4x12LP](https://boardsource.imgix.net/c2108ea4-7d70-4327-b4b4-88c8191b1369.jpg?raw=true)
The 4x12 ortholinear keyboard is an extremely common and beloved layout within the keyboard community. Made popular by Jack's Planck from OLKB, the 4x12 ortholinear layout is possibly the most popular non-stagger layout available. The 4x12 ortholinear keyboard is an extremely common and beloved layout within
the keyboard community. Made popular by Jack's Planck from OLKB, the 4x12
kb.py is designed to work with the nice!nano ortholinear layout is possibly the most popular non-stagger layout available.
Retailers (USA) Retailers (USA)
4x12 4x12
@ -19,3 +19,10 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,25 +1,25 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = (board.P0_08, board.P0_06, board.P0_17, board.P0_20) row_pins = (board.pins[1], pins[0], board.pins[4], board.pins[5])
col_pins = ( col_pins = (
board.P0_31, board.pins[19],
board.P0_29, board.pins[18],
board.P0_02, board.pins[17],
board.P1_15, board.pins[16],
board.P1_13, board.pins[15],
board.P1_11, board.pins[14],
board.P0_10, board.pins[13],
board.P0_09, board.pins[12],
board.P1_06, board.pins[11],
board.P1_04, board.pins[10],
board.P0_11, board.pins[9],
board.P1_00, board.pins[8],
) )
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13

View File

@ -3,9 +3,12 @@
![Boardsource5x12](https://boardsource.imgix.net/74abb511-792e-42d9-9f6e-8100c521b2e0.jpg?raw=true) ![Boardsource5x12](https://boardsource.imgix.net/74abb511-792e-42d9-9f6e-8100c521b2e0.jpg?raw=true)
![Boardsource5x12LP](https://boardsource.imgix.net/57ad3f69-3c88-4ae8-9592-6e4d2f45a58e.jpg?raw=true) ![Boardsource5x12LP](https://boardsource.imgix.net/57ad3f69-3c88-4ae8-9592-6e4d2f45a58e.jpg?raw=true)
5x12 ortholinear -- for when just really don't want to give up your number row. The 5x12 ortholinear keyboard is a common ortholinear layout that many people prefer because it includes a number row. Made popular by Jack's Preonic from OLKB, the 5x12 ortholinear layout is a great option for those who want to try ortholinear but feel they aren't ready to make the jump to a 40%. The 5x12 Ortho is an approachable keyboard with hotswap compatibility. 5x12 ortholinear -- for when just really don't want to give up your number row.
The 5x12 ortholinear keyboard is a common ortholinear layout that many people
kb.py is designed to work with the nice!nano prefer because it includes a number row. Made popular by Jack's Preonic from
OLKB, the 5x12 ortholinear layout is a great option for those who want to try
ortholinear but feel they aren't ready to make the jump to a 40%. The 5x12 Ortho
is an approachable keyboard with hotswap compatibility.
Retailers (USA) Retailers (USA)
5x12 5x12
@ -19,3 +22,10 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,25 +1,25 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = (board.P0_08, board.P0_06, board.P0_17, board.P0_20, board.P0_22) row_pins = (board.pins[1], pins[0], board.pins[4], board.pins[5], board.pins[6])
col_pins = ( col_pins = (
board.P0_31, board.pins[19],
board.P0_29, board.pins[18],
board.P0_02, board.pins[17],
board.P1_15, board.pins[16],
board.P1_13, board.pins[15],
board.P1_11, board.pins[14],
board.P0_10, board.pins[13],
board.P0_09, board.pins[12],
board.P1_06, board.pins[11],
board.P1_04, board.pins[10],
board.P0_11, board.pins[9],
board.P1_00, board.pins[8],
) )
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13

View File

@ -2,9 +2,9 @@
![microdox](https://boardsource.imgix.net/337ae65a-d061-46a4-b119-9916b043c58f.jpg?raw=true) ![microdox](https://boardsource.imgix.net/337ae65a-d061-46a4-b119-9916b043c58f.jpg?raw=true)
The Microdox is is a feature-packed 30% split columnar staggered keyboard. Even though the Microdox is an extremely small keyboard it offers tons of features from larger boards while maintaining a tiny footprint. The Microdox is is a feature-packed 30% split columnar staggered keyboard. Even
though the Microdox is an extremely small keyboard it offers tons of features
kb.py is designed to work with the nice!nano from larger boards while maintaining a tiny footprint.
Retailers (USA) Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5f2e7e4a2902de7151494f92) [Boardsource](https://boardsource.xyz/store/5f2e7e4a2902de7151494f92)
@ -17,3 +17,11 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Split](/docs/split_keyboards.md) Connects halves using a wire - [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,21 +1,28 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
col_pins = (board.P0_31, board.P0_29, board.P0_02, board.P1_15, board.P1_13) col_pins = (
row_pins = (board.P0_10, board.P0_09, board.P1_04, board.P1_06) board.pins[19],
board.pins[18],
board.pins[17],
board.pins[16],
board.pins[15],
)
row_pins = (board.pins[13], board.pins[12], board.pins[10], board.pins[11])
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
data_pin = board.P0_08 data_pin = board.pins[1]
rgb_pixel_pin = board.P0_06 rgb_pixel_pin = pins[0]
rgb_num_pixels = 12 rgb_num_pixels = 12
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13
# NOQA # NOQA
# flake8: noqa # flake8: noqa
# fmt: off
coord_mapping = [ coord_mapping = [
0, 1, 2, 3, 4, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 20, 21, 22, 23, 24,
5, 6, 7, 8, 9, 25, 26, 27, 28, 29, 5, 6, 7, 8, 9, 25, 26, 27, 28, 29,

View File

@ -6,8 +6,6 @@
A split keyboard with a 3x6 columnar stagger and 3 thumb keys. A split keyboard with a 3x6 columnar stagger and 3 thumb keys.
kb.py is designed to work with the nice!nano
Hardware Availability: [PCB & Case Source](https://github.com/foostan/crkbd) Hardware Availability: [PCB & Case Source](https://github.com/foostan/crkbd)
Retailers (USA) Retailers (USA)
@ -25,3 +23,11 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Split](/docs/split_keyboards.md) Connects halves using a wire - [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -2,9 +2,15 @@
![ergo_travel](https://boardsource.imgix.net/fa53de62-fd37-4c75-8c5b-b4bec37927c1.jpg?raw=true) ![ergo_travel](https://boardsource.imgix.net/fa53de62-fd37-4c75-8c5b-b4bec37927c1.jpg?raw=true)
As the name implies, the Ergo Travel was originally designed as a travel keyboard, but it works just as well on your desk as a main daily use keyboard. The Ergo Travel is a popular choice by many because it offers a few more keys than other keyboards in similar sizes, and that is why we chose to stock it. Additionally, the Ergo Travel has nice customization options in the thumb cluster because you can configure the main thumb key to use a single larger 2u key, or two smaller 1u keys depending on your preference. The clean and simple aesthetic of the Ergo Travel and the few extra keys make it an awesome option for people wanting a 40%-ish split keyboard. As the name implies, the Ergo Travel was originally designed as a travel
keyboard, but it works just as well on your desk as a main daily use keyboard.
kb.py is designed to work with the nice!nano The Ergo Travel is a popular choice by many because it offers a few more keys
than other keyboards in similar sizes, and that is why we chose to stock it.
Additionally, the Ergo Travel has nice customization options in the thumb
cluster because you can configure the main thumb key to use a single larger 2u
key, or two smaller 1u keys depending on your preference. The clean and simple
aesthetic of the Ergo Travel and the few extra keys make it an awesome option
for people wanting a 40%-ish split keyboard.
Hardware Availability: [PCB & Case Source](https://github.com/jpconstantineau/ErgoTravel/blob/master/OrderingInstructions.md) Hardware Availability: [PCB & Case Source](https://github.com/jpconstantineau/ErgoTravel/blob/master/OrderingInstructions.md)
@ -22,3 +28,12 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Split](/docs/split_keyboards.md) Connects halves using a wire - [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,30 +1,31 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = (board.P0_24, board.P1_00, board.P0_11, board.P1_04) row_pins = (pins[7], pins[8], pins[9], pins[10])
col_pins = ( col_pins = (
board.P0_29, pins[17],
board.P0_02, pins[16],
board.P1_15, pins[15],
board.P1_13, pins[14],
board.P1_11, pins[13],
board.P0_10, pins[12],
board.P0_09, pins[10],
) )
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
led_pin = board.P1_06 led_pin = pins[9]
rgb_pixel_pin = board.P0_06 rgb_pixel_pin = pins[0]
rgb_num_pixels = 12 rgb_num_pixels = 12
data_pin = board.P0_08 data_pin = pins[1]
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13
# NOQA # NOQA
# flake8: noqa # flake8: noqa
# fmt: off
coord_mapping = [ coord_mapping = [
0, 1, 2, 3, 4, 5, 6, 34, 33, 32, 31, 30, 29, 28, 0, 1, 2, 3, 4, 5, 6, 34, 33, 32, 31, 30, 29, 28,
7, 8, 9, 10, 11, 12, 13, 41, 40, 39, 38, 37, 36, 35, 7, 8, 9, 10, 11, 12, 13, 41, 40, 39, 38, 37, 36, 35,

View File

@ -4,8 +4,6 @@
A keyboard with only 30 keys. A keyboard with only 30 keys.
kb.py is designed to work with the nice!nano
Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html) Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html)
Extensions enabled by default Extensions enabled by default
@ -15,3 +13,11 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,21 +1,21 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = (board.P1_15, board.P1_13, board.P1_11, board.P0_10, board.P0_09) row_pins = (pins[16], pins[15], pins[14], pins[13], pins[12])
col_pins = ( col_pins = (
board.P1_04, board.pins[10],
board.P0_11, board.pins[9],
board.P1_00, board.pins[8],
board.P0_24, board.pins[7],
board.P0_22, board.pins[6],
board.P0_20, board.pins[5],
) )
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
led_pin = board.P1_06 led_pin = board.pins[11]
rgb_num_pixels = 0 rgb_num_pixels = 0
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13

View File

@ -4,9 +4,6 @@
Luddite 60% keyboard with backlight and RGB underglow. Luddite 60% keyboard with backlight and RGB underglow.
kb.py is designed to work with the nice!nano
kb_converter.py is designed to work with an itsybitsy with converter board found [here](/hardware)
Hardware Availability: [Luddite project on 40% Keyboards](http://www.40percent.club/search/label/luddite) Hardware Availability: [Luddite project on 40% Keyboards](http://www.40percent.club/search/label/luddite)
Extensions enabled by default Extensions enabled by default
@ -16,3 +13,11 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,30 +0,0 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
col_pins = (
board.A0,
board.A1,
board.A2,
board.A3,
board.A4,
board.A5,
board.SCK,
board.MOSI,
)
row_pins = (
board.TX,
board.RX,
board.SDA,
board.SCL,
board.D13,
board.D12,
board.D11,
board.D10,
)
diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = board.D9
rgb_num_pixels = 12

View File

@ -1,33 +1,33 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = ( row_pins = (
board.P0_06, pins[0],
board.P0_08, board.pins[1],
board.P0_17, board.pins[4],
board.P0_20, board.pins[5],
board.P0_22, board.pins[6],
board.P0_24, board.pins[7],
board.P1_00, board.pins[8],
board.P0_11, board.pins[9],
) )
col_pins = ( col_pins = (
board.P0_31, board.pins[19],
board.P0_29, board.pins[18],
board.P0_02, board.pins[17],
board.P1_15, board.pins[16],
board.P1_13, board.pins[15],
board.P1_11, board.pins[14],
board.P0_10, board.pins[13],
board.P0_09, board.pins[12],
) )
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
led_pin = board.P1_06 led_pin = board.pins[11]
rgb_pixel_pin = board.P1_04 rgb_pixel_pin = board.pins[10]
rgb_num_pixels = 8 rgb_num_pixels = 8
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13

View File

@ -2,7 +2,6 @@
A split keyboard with a 4x6 layout with additional 4 thumb buttons A split keyboard with a 4x6 layout with additional 4 thumb buttons
kb.py is designed to work with the nice!nano
kb_converter.py is designed to work with an itsybitsy with converter board found [here](/hardware) kb_converter.py is designed to work with an itsybitsy with converter board found [here](/hardware)
Extensions enabled by default Extensions enabled by default
@ -13,3 +12,10 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Split](/docs/split_keyboards.md) Connects halves using a wire - [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,28 +1,35 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = (board.P1_00, board.P0_11, board.P1_04, board.P0_08, board.P0_22) row_pins = (
board.pins[8],
board.pins[9],
board.pins[10],
board.pins[1],
board.pins[6],
)
col_pins = ( col_pins = (
board.P0_02, board.pins[17],
board.P1_15, board.pins[16],
board.P1_13, board.pins[15],
board.P1_11, board.pins[14],
board.P0_10, board.pins[13],
board.P0_09, board.pins[12],
) )
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
led_pin = board.P1_06 led_pin = board.pins[11]
rgb_pixel_pin = board.P0_06 rgb_pixel_pin = pins[0]
rgb_num_pixels = 12 rgb_num_pixels = 12
i2c = board.I2C i2c = board.I2C
data_pin = board.P0_20 data_pin = board.pins[5]
powersave_pin = board.P0_13
# flake8: noqa # flake8: noqa
# fmt: off
coord_mapping = [ coord_mapping = [
0, 1, 2, 3, 4, 5, 35, 34, 33, 32, 31, 30, 0, 1, 2, 3, 4, 5, 35, 34, 33, 32, 31, 30,
6, 7, 8, 9, 10, 11, 41, 40, 39, 38, 37, 36, 6, 7, 8, 9, 10, 11, 41, 40, 39, 38, 37, 36,

View File

@ -2,7 +2,6 @@
A split keyboard with a 4x6 layout A split keyboard with a 4x6 layout
kb.py is designed to work with the nice!nano
kb_converter.py is designed to work with an itsybitsy with converter board found [here](/hardware) kb_converter.py is designed to work with an itsybitsy with converter board found [here](/hardware)
Extensions enabled by default Extensions enabled by default
@ -13,3 +12,11 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Split](/docs/split_keyboards.md) Connects halves using a wire - [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,23 +1,24 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = (board.P0_22, board.P1_00, board.P0_11, board.P1_04) row_pins = (board.pins[6], board.pins[8], board.pins[9], board.pins[10])
col_pins = ( col_pins = (
board.P0_02, board.pins[17],
board.P1_15, board.pins[16],
board.P1_13, board.pins[15],
board.P1_11, board.pins[14],
board.P0_10, board.pins[13],
board.P0_09, board.pins[12],
) )
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = board.P0_06 rgb_pixel_pin = pins[0]
rgb_num_pixels = 12 rgb_num_pixels = 12
led_pin = board.P1_06 led_pin = board.pins[11]
data_pin = board.P0_08 data_pin = board.pins[1]
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13 powersave_pin = board.P0_13

View File

@ -2,7 +2,6 @@
A split keyboard with a 5x6 layout A split keyboard with a 5x6 layout
kb.py is designed to work with the nice!nano
kb_converter.py is designed to work with an itsybitsy with converter board found [here](/hardware) kb_converter.py is designed to work with an itsybitsy with converter board found [here](/hardware)
@ -14,3 +13,10 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Split](/docs/split_keyboards.md) Connects halves using a wire - [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,23 +1,29 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = (board.P0_22, board.P1_00, board.P0_11, board.P1_04, board.P1_06) row_pins = (
board.pins[6],
board.pins[8],
board.pins[9],
board.pins[10],
board.pins[11],
)
col_pins = ( col_pins = (
board.P0_08, board.pins[1],
board.P0_29, board.pins[18],
board.P0_02, board.pins[17],
board.P1_15, board.pins[16],
board.P1_13, board.pins[15],
board.P1_11, board.pins[14],
) )
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = board.P0_06 rgb_pixel_pin = pins[0]
rgb_num_pixels = 12 rgb_num_pixels = 12
data_pin = board.P0_08 data_pin = board.pins[1]
led_pin = board.P0_09 led_pin = board.pins[12]
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13

View File

@ -1,46 +0,0 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.modules.layers import Layers
from kmk.scanners import DiodeOrientation
from kmk.scanners import intify_coordinate as ic
# Implements what used to be handled by KMKKeyboard.swap_indicies for this
# board, by flipping various row3 (bottom physical row) keys so their
# coord_mapping matches what the user pressed (even if the wiring
# underneath is sending different coordinates)
_r3_swap_conversions = {3: 9, 4: 10, 5: 11, 9: 3, 10: 4, 11: 5}
def r3_swap(col):
try:
return _r3_swap_conversions[col]
except KeyError:
return col
class KMKKeyboard(_KMKKeyboard):
# physical, visible cols (SCK, MO, MI, RX, TX, D4)
# physical, visible rows (10, 11, 12, 13) (9, 6, 5, SCL)
col_pins = (board.SCK, board.MOSI, board.MISO, board.RX, board.TX, board.D4)
row_pins = (
board.D10,
board.D11,
board.D12,
board.D13,
board.D9,
board.D6,
board.D5,
board.SCL,
)
rollover_cols_every_rows = 4
diode_orientation = DiodeOrientation.COLUMNS
coord_mapping = []
coord_mapping.extend(ic(0, x, 12) for x in range(12))
coord_mapping.extend(ic(1, x, 12) for x in range(12))
coord_mapping.extend(ic(2, x, 12) for x in range(12))
coord_mapping.extend(ic(3, r3_swap(x), 12) for x in range(12))
layers_ext = Layers()
modules = [layers_ext]

View File

@ -2,10 +2,12 @@
![Lily58](https://boardsource.imgix.net/af3d8d6d-5fbe-4578-a2ba-d09d7686fb29.jpg?raw=true) ![Lily58](https://boardsource.imgix.net/af3d8d6d-5fbe-4578-a2ba-d09d7686fb29.jpg?raw=true)
The Lily58 is a 58 key split keyboard design by kata0510, featuring a 6x4 columnar stagger and 4 thumb cluster keys on each hand. The Lily58 is a perfect choice for people who want to be on a split keyboard but still want to have a fairly standard amount of keys. The Lily58 is a 58 key split keyboard design by kata0510, featuring a 6x4
columnar stagger and 4 thumb cluster keys on each hand. The Lily58 is a perfect
choice for people who want to be on a split keyboard but still want to have a
fairly standard amount of keys.
Hardware Availability: [PCB & Case Source](https://github.com/kata0510/Lily58) Hardware Availability: [PCB & Case Source](https://github.com/kata0510/Lily58)
kb.py is designed to work with the nice!nano
Retailers (USA) Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5ec9df84c6b834480de6c3d0) [Boardsource](https://boardsource.xyz/store/5ec9df84c6b834480de6c3d0)
@ -18,3 +20,11 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Split](/docs/split.md) Connects halves using a wire - [Split](/docs/split.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -6,22 +6,28 @@ from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
col_pins = ( col_pins = (
board.P0_02, board.pins[17],
board.P1_15, board.pins[16],
board.P1_13, board.pins[15],
board.P1_11, board.pins[14],
board.P0_10, board.pins[13],
board.P0_09, board.pins[12],
)
row_pins = (
board.pins[7],
board.pins[8],
board.pins[9],
board.pins[10],
board.pins[11],
) )
row_pins = (board.P0_24, board.P1_00, board.P0_11, board.P1_04, board.P1_06)
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
uart_pin = board.P0_08 uart_pin = board.pins[1]
rgb_pixel_pin = board.P0_06 rgb_pixel_pin = pins[0]
data_pin = board.P0_08 data_pin = board.pins[1]
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13
# flake8: noqa # flake8: noqa
# fmt: off
coord_mapping = [ coord_mapping = [
0, 1, 2, 3, 4, 5, 36, 35, 34, 33, 32, 31, 0, 1, 2, 3, 4, 5, 36, 35, 34, 33, 32, 31,
6, 7, 8, 9, 10, 11, 42, 41, 40, 39, 38, 37, 6, 7, 8, 9, 10, 11, 42, 41, 40, 39, 38, 37,

View File

@ -2,7 +2,10 @@
![Reviung39](https://boardsource.imgix.net/d6215164-6100-4b72-b355-1a67b7704463.jpg?raw=true) ![Reviung39](https://boardsource.imgix.net/d6215164-6100-4b72-b355-1a67b7704463.jpg?raw=true)
Reviung39 is a 39 key keyboard designed by gtips. The Reviung39 sits somewhere between an Atreus and a Corne, you get some nice ergonomic benefits based on its quasi-split design and since a true split keyboard isn't for everyone, this is an awesome middle ground. I find this keyboard extremely comfortable to use. Reviung39 is a 39 key keyboard designed by gtips. The Reviung39 sits somewhere
between an Atreus and a Corne, you get some nice ergonomic benefits based on its
quasi-split design and since a true split keyboard isn't for everyone, this is
an awesome middle ground. I find this keyboard extremely comfortable to use.
kb.py is designed to work with the nice!nano kb.py is designed to work with the nice!nano
@ -18,3 +21,11 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,27 +1,27 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = ( row_pins = (
board.P0_31, pins[19],
board.P0_29, pins[18],
board.P0_02, pins[17],
board.P1_15, pins[16],
board.P1_13, pins[15],
board.P1_11, pins[14],
board.P0_10, pins[13],
) )
col_pins = ( col_pins = (
board.P0_22, pins[6],
board.P0_24, pins[7],
board.P1_00, pins[8],
board.P0_11, pins[9],
board.P1_04, pins[10],
board.P1_06, pins[11],
) )
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13

View File

@ -2,9 +2,13 @@
![Reviung41](https://boardsource.imgix.net/ea77f3f8-6cc4-4cb4-a801-cf58b5af8fcc.jpg?raw=true) ![Reviung41](https://boardsource.imgix.net/ea77f3f8-6cc4-4cb4-a801-cf58b5af8fcc.jpg?raw=true)
The Reviung41 is a 41 key keyboard designed by gtips, it is a slightly larger 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. The Reviung41 is a 41 key keyboard designed by gtips, it is a slightly larger
version of the popular Reviung 39. These "split non-split" keyboards offer a lot
kb.py is designed to work with the nice!nano 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/reviung41) Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung/tree/master/reviung41)
@ -18,3 +22,10 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,33 +1,33 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
from kmk.scanners import intify_coordinate as ic from kmk.scanners import intify_coordinate as ic
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
col_pins = ( col_pins = (
board.P0_22, pins[6],
board.P0_24, pins[7],
board.P1_00, pins[8],
board.P0_11, pins[9],
board.P1_04, pins[10],
board.P1_06, pins[11],
) )
row_pins = ( row_pins = (
board.P0_31, pins[19],
board.P0_29, pins[18],
board.P0_02, pins[17],
board.P1_15, pins[16],
board.P1_13, pins[15],
board.P1_11, pins[14],
board.P0_10, pins[13],
) )
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = board.P0_06 rgb_pixel_pin = pins[0]
rgb_num_pixels = 11 rgb_num_pixels = 11
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13
coord_mapping = [] coord_mapping = []
coord_mapping.extend(ic(0, x, 12) for x in range(12)) coord_mapping.extend(ic(0, x, 12) for x in range(12))

View File

@ -2,9 +2,11 @@
![rhymestone](https://boardsource.imgix.net/0968c21e-ed0c-47ec-ae5e-511ec6eb3bd2.jpg?raw=true) ![rhymestone](https://boardsource.imgix.net/0968c21e-ed0c-47ec-ae5e-511ec6eb3bd2.jpg?raw=true)
The Rhymestone is 40-key ortholinear split keyboard. Originally the Rhymestone was created to be sold alongside the Treadstone and used as either a Macro pad or a 10-key numpad, hence the similar naming conventions. However; the Rhymestone is also often used as a standalone split keyboard by people who prefer a 5 column ortholinear layout. The Rhymestone is 40-key ortholinear split keyboard. Originally the Rhymestone
was created to be sold alongside the Treadstone and used as either a Macro pad
kb.py is designed to work with the nice!nano or a 10-key numpad, hence the similar naming conventions. However; the
Rhymestone is also often used as a standalone split keyboard by people who
prefer a 5 column ortholinear layout.
Retailers (USA) Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5ecb6aee86879c9a0c22da89) [Boardsource](https://boardsource.xyz/store/5ecb6aee86879c9a0c22da89)
@ -17,3 +19,11 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Split](/docs/split_keyboards.md) Connects halves using a wire - [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,15 +1,21 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = (board.P0_31, board.P0_29, board.P0_02, board.P1_15) row_pins = (board.pins[19], board.pins[18], board.pins[17], board.pins[16])
col_pins = (board.P0_22, board.P0_24, board.P1_00, board.P0_11, board.P1_04) col_pins = (
board.pins[6],
board.pins[7],
board.pins[8],
board.pins[9],
board.pins[10],
)
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = board.P0_06 rgb_pixel_pin = pins[0]
rgb_num_pixels = 40 rgb_num_pixels = 40
data_pin = board.P0_08 data_pin = board.pins[1]
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13

View File

@ -2,9 +2,9 @@
![TG4X](https://boardsource.imgix.net/d50e1163-06dd-4c18-826e-caacd0a4a33d.jpg?raw=true) ![TG4X](https://boardsource.imgix.net/d50e1163-06dd-4c18-826e-caacd0a4a33d.jpg?raw=true)
TG4X is a 45% staggered keyboard, compared to a standard 40% stagger it has one additional column which makes it an approachable and highly use-able 40%-ish stagger. TG4X is a 45% staggered keyboard, compared to a standard 40% stagger it has one
additional column which makes it an approachable and highly use-able 40%-ish
kb.py is designed to work with the nice!nano stagger.
Retailers (USA) Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5eff7ead037395179221b90c) [Boardsource](https://boardsource.xyz/store/5eff7ead037395179221b90c)
@ -15,3 +15,11 @@ Extensions enabled by default
Common Extensions Common Extensions
- [Power](/docs/power.md) Powersaving features for battery life - [Power](/docs/power.md) Powersaving features for battery life
## 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

@ -1,31 +1,31 @@
import board import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard 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 DiodeOrientation
class KMKKeyboard(_KMKKeyboard): class KMKKeyboard(_KMKKeyboard):
row_pins = ( row_pins = (
board.P1_06, board.pins[11],
board.P1_04, board.pins[10],
board.P0_11, board.pins[9],
board.P1_00, board.pins[8],
board.P0_24, board.pins[7],
board.P0_22, board.pins[6],
board.P0_20, board.pins[5],
board.P0_17, board.pins[4],
) )
col_pins = [ col_pins = [
board.P0_06, pins[0],
board.P1_11, board.pins[14],
board.P1_13, board.pins[15],
board.P1_15, board.pins[16],
board.P0_02, board.pins[17],
board.P0_29, board.pins[18],
board.P0_31, board.pins[19],
] ]
diode_orientation = DiodeOrientation.COLUMNS diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = board.P0_08 rgb_pixel_pin = board.pins[1]
rgb_num_pixels = 6 rgb_num_pixels = 6
i2c = board.I2C i2c = board.I2C
powersave_pin = board.P0_13