kmk_firmware icon indicating copy to clipboard operation
kmk_firmware copied to clipboard

Update list of supported controllers

Open jpconstantineau opened this issue 2 years ago • 4 comments

Before making changes to this page, I would like to know what's considered "officially supported"...

Here are a few examples I have in mind to add:

Controller board form factor
nRF52840 BlueMicro840 Pro Micro
nRF52840 M60 Custom Keyboard
RP2040 Pro Micro RP2040 Pro Micro
RP2040 QP Py RP2040 Xiao/QT Py
RP2040 Xiao RP2040 Xiao/QT Py
RP2040 PyKey60 Custom keyboard
RP2040 EncoderPad Custom keyboard
RP2040 Raspberry Pi Pico Pico

I suspect a page with the controller and the link to the download page would make it super clear that to be supported, your board has too be on that page - or support the UF2 from a board in that page (VColChoc44 is an example where the PyKey60 download is used)

Perhaps include some of the content from here

jpconstantineau avatar Oct 27 '21 23:10 jpconstantineau

historically we've only added controllers we personally tested or used to this list, but that rule came from an era where there were probably less than 20 total KMK users, and there weren't really pro micro compatible form factor MCUs in the wild.

our technical requirements are just a board that can run CircuitPython (these days v7+, older commits worked as far back as CPy 4) and has enough USB descriptors available to run the whole HID stack + MSC + UART (for Bluetooth boards, then just enough USB descriptors to run MSC+UART)

not sure what the future of this page should really be, tbh. open to ideas.

klardotsh avatar Dec 06 '21 19:12 klardotsh

I think the page should have a few sections: 1 - Guidelines on how to determine if a specific controller/board combination can be supported.

  • CircuitPython support is needed
  • list of modules required by KMK/extensions/modules
  • memory requirements (SAMD21 not supported. not sure about the nrf52833...)

2 - List of known working boards/controllers (i.e. tested by someone...) 3 - List of partially working boards (matrix works but rotary encoder or RGB doesnt.) 4 - List of known not-working board/controllers & why (in case people want to enable support)

2 to 4 are not meant to be exhaustive lists but something to help guide people when asking does this support KMK... With the Pro Micro RP2040 and KB2040, we can expect people try and ask questions and having the sections above, especially the guidelines, will certainly help.

With the long list of macropads, keyboards, keyboard-looking things (Neotrellis) and breakout boards in the circuitpython downloads page, all of which could be used for creating keyboards, maintaining a list will be never ending. Documenting guidelines as indicated above will help future-proof this page (and perhaps help identify potential improvements/features needed (as in keypad module support) )

jpconstantineau avatar Dec 06 '21 21:12 jpconstantineau

I think 'blackpill' STM32F411 is also supported? Or KMK works on Blackpill?

mankoff avatar May 04 '22 17:05 mankoff

I am trying to use a kb2040 with no luck. I copied over the example files for my keyboard and then changed the quickpin line from kmk.quickpin.pro_micro.kb2040 import pinout as pins

but the code bombs out with the following error message: Traceback (most recent call last): File "main.py", line 2, in <module> File "kb.py", line 8, in <module> File "kb.py", line 10, in KMKKeyboard AttributeError: 'module' object has no attribute 'pins'

I'd expect the working examples to work but there seems to be a problem.

I have what may be a fix... at least the left half of the boar is working now. I will test it further and submit the code for testing and merging

hjw avatar Nov 01 '22 00:11 hjw