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)
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.
- [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 <gitroot>/lib/neopixel* to <usbroot>/lib/
* 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
from kb import KMKKeyboard
from kmk.extensions.RGB import RGB
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.layers import Layers
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()