KMKfw / kmk_firmware

Clackety Keyboards Powered by Python
https://kmkfw.zulipchat.com
Other
1.43k stars 482 forks source link

RFC: Removal of PyBoard/MicroPython support #54

Closed klardotsh closed 6 years ago

klardotsh commented 6 years ago

Right now our supported boards list consists of the PyBoard v1.1 (STM32/MPY), and two Adafruit boards (the Feather and ItsyBitsy M4 Expresses, both SAMD51/CPY). Our pipeline for supported devices right now includes the NRF52840 (NRF/CPY), Planck Rev6 (no existing port, most feasible is likely MicroPython to STM32F303), and possibly the Proton, which if I had to guess is likely to be similar to the Planck r6.

The common pattern here is that our best-supported, most economical, and most feature-complete boards are CircuitPython-based. We effectively support MicroPython for one expensive, RAM-constrained STM32 chip (and hold out hope for a future extremely-flash-constrained chip). It's worth deciding if the technical weight of this port is actually worthwhile: a single Python target would be much easier to reason about.

It's also entirely possible to have our cake and eat it too, preserving device support while moving to target CircuitPython exclusively, by reviving the stm32 port in CircuitPython's source tree, though it's deviated very heavily from upstream MicroPython at this point and that refactor would not be small.

Some factors to consider in this: with extremely economical options such as the Feather and ItsyBitsy available, and more feature-filled devices such as the NRF Feathers available for similar or lower pricepoints to the PyBoard, will that port actually be used enough to justify the support? Is porting to STM32F3 a worthwhile endeavor to add support for the Planck? Will the Proton perhaps be a bit less contsrained than the Planck, and thus a more worthwhile porting target (and thus another reason to keep the MPY tree around)?

klardotsh commented 6 years ago

I guess there's also the Teensy 3.2 to consider, which has a MicroPython port that lacks USB HID support. Another port that we could revive in either source tree, though to what use, I'm not entirely sure - that chip isn't particularly amazing compared to our other supported boards, unless one just has a pile of them laying around.

Teensy 3.5/3.6 is a better technical target, but more expensive and absolutely huge physically, and requires out-of-tree MicroPython patches.

klardotsh commented 6 years ago

It's likely also worth noting that our Pyboard support has been dwindling - currently HID only works on Linux boxes (haven't tested our CircuitPython targets on Windows yet, though), and only supports 5KRO rather than 6. This is likely because of some bug on my end.

kdb424 commented 6 years ago

For the time being, I would agree to remove micropython from the officially supported list, though as a community maintainer, and not as a core maintainer of this project, continue to ensure support for at least micropython. Where there are no boards that really fit the description of being a good "Keyboard PCB" I would argue that there may be later, and with stronger chips. So with that said, to ease the burden of adding new features, for the time being at least, we should drop micropython "officially" with the intention of adding backofficial support when and if boards that are more suitable for keyboards were to surface.

klardotsh commented 6 years ago

This is made mostly official in #62, so I'm going to consider this decided and closed (since I agree with the recommendation, and we have a council size of a whopping two people right now. DEMOCRACY!)