Adds support for Nice Nano, no BLE yet.

This commit is contained in:
Luke D Russell 2022-05-27 20:07:22 +10:00 committed by Kyle Brown
parent f816f24497
commit dde6efe6fe
6 changed files with 268 additions and 192 deletions

View File

@ -2,9 +2,9 @@
![ffkb](https://github.com/sadekbaroudi/ffkb) ![ffkb](https://github.com/sadekbaroudi/ffkb)
A 36 or 42 key keyboard with support for per key leds, 2 rotary encoders (EC11 or evqwgd001), and a feature in the center (EC11, OLED (128x64), or pimoroni trackball) A 36 or 42 key keyboard with support for per key LEDs, 2 rotary encoders (EC11 or evqwgd001), and a feature in the center (EC11, OLED (128x64), or pimoroni trackball)
kb.py is designed to work with a pro micro or kb2040 kb.py is designed to work with a Pro Micro or KB2040, while kb-nn.py is designed to work with a Nice!Nano.
- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. - [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](https://github.com/KMKfw/kmk_firmware/tree/master/docs/rgb.md) Light it up - [RGB](https://github.com/KMKfw/kmk_firmware/tree/master/docs/rgb.md) Light it up
@ -13,3 +13,6 @@ Instructions:
* Copy the kmk directory as a whole into the root directory of your KB2040 * Copy the kmk directory as a whole into the root directory of your KB2040
* Copy <gitroot>/lib/neopixel* to <usbroot>/lib/ * Copy <gitroot>/lib/neopixel* to <usbroot>/lib/
* Copy kb.py and main.py in this folder to <usbroot>/ * Copy kb.py and main.py in this folder to <usbroot>/
> Note: The Nice!Nano doesn't have a lot of ROM, see guidance [over here](../../docs/../../docs/Officially_Supported_Microcontrollers.md#nicenano).

View File

@ -0,0 +1,39 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
col_pins = (
board.P1_06,
board.P1_04,
board.P0_11,
board.P1_00,
board.P0_24,
board.P0_22,
board.MOSI,
board.MISO,
)
row_pins = (
board.P0_08,
board.P0_31,
board.P0_29,
board.P0_02,
board.P1_15,
board.SCK,
)
diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = board.P0_06
rgb_num_pixels = 42
i2c = board.I2C
coord_mapping = [
0, 1, 2, 3, 4, 5, 6, 7,35,28,37,31,
8, 9,10,11,12,13, 33, 14,15,26,36,29,39,
16,17,18,19,20,21, 22,23,34,27,30,38,
41, 43,44,45, 46,47,42, 40,
]
encoder_pins = ((board.P0_20, board.P0_17, board.P0_09, False))

View File

@ -1,7 +1,7 @@
import board import board
from kb import KMKKeyboard from kb import KMKKeyboard
from kmk.extensions.RGB import RGB from kmk.extensions.rgb import RGB
from kmk.keys import KC from kmk.keys import KC
from kmk.modules.layers import Layers from kmk.modules.layers import Layers
from kmk.modules.modtap import ModTap from kmk.modules.modtap import ModTap

View File

@ -1 +0,0 @@
This is the firmware for the ffkb running on circuitpy

View File

@ -0,0 +1,35 @@
import board
import kb
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.encoder import EncoderHandler
encoder_handler = EncoderHandler()
encoder_handler.pins = kb.encoder_pins
keyboard = kb.KMKKeyboard()
keyboard.modules.append(Layers())
_______ = KC.TRNS
xxxxxxx = KC.NO
keyboard.keymap = [
[ #COLEMAK-DH
KC.TAB, KC.Q, KC.W, KC.F, KC.P, KC.B, KC.J, KC.L, KC.U, KC.Y, KC.SCLN, KC.BSPC,
KC.LCTL, KC.A, KC.R, KC.S, KC.T, KC.G, KC.NO, KC.H, KC.N, KC.E, KC.I, KC.O, KC.QUOT,
KC.LALT, KC.Z, KC.X, KC.C, KC.D, KC.V, KC.K, KC.H, KC.COMM, KC.DOT, KC.SLSH, KC.BSLS,
KC.NO, KC.LGUI, KC.LSFT, KC.BSPC, KC.MO(1), KC.SPC, KC.ENT, KC.NO,
],
[ #NAVIGATION
_______, KC.ESC, KC.PGUP, KC.UP, KC.PGDN, _______, KC.ASTR, KC.N7, KC.N8, KC.N9, KC.PLUS, _______,
_______, KC.HOME, KC.LEFT, KC.DOWN, KC.RIGHT, KC.END, _______, KC.SLSH, KC.N4, KC.N5, KC.N6, KC.MINS, _______,
_______, _______, _______, _______, _______, _______, KC.EQL, KC.N1, KC.N2, KC.N3, KC.N0, _______,
_______, _______, _______, _______, KC.BKSP, KC.SPC, KC.DOT, _______,
],
]
if __name__ == '__main__':
keyboard.go()