# ZMK Input Modules

**URL:** <https://community.frame.work/t/zmk-input-modules/28648>\
**Category:** Input Module\
**Created:** [March 27, 2023, 4:07pm UTC](https://community.frame.work/t/zmk-input-modules/28648 "2023-03-27T16:07:24Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tony\_Grosinger](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/tony_grosinger/32/4990_2.png) [@Tony\_Grosinger](https://community.frame.work/u/Tony_Grosinger)\
**Post date:** [March 27, 2023, 4:07pm UTC](https://community.frame.work/t/zmk-input-modules/28648/1 "2023-03-27T16:07:24Z")

</div>

@nrp, will it be possible to use [ZMK](https://zmk.dev/) for the Input Modules instead of QMK? I’ve found that it has better support for the mods and chords that I prefer to use on my keyboards.

It looks like [the interface](https://github.com/FrameworkComputer/InputModules#electrical) is just USB and power, so I’m guessing it should be possible?

---

<div class="post-metadata">

**Author:** ![Be\_Far](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/be_far/32/43857_2.png) [@Be\_Far](https://community.frame.work/u/Be_Far)\
**Post date:** [March 27, 2023, 9:46pm UTC](https://community.frame.work/t/zmk-input-modules/28648/2 "2023-03-27T21:46:54Z")

</div>

ZMK is still highly experimental on RP2040; QMK’s ecosystem officially supports it. I imagine that’s why they decided to use QMK for the Gamework input modules.

At the end of the day they’re all just HID keyboards and the firmware just uses USB, correct? It shouldn’t matter what firmware is sending signals if it’s just a USB keyboard. You could design any USB device to connect to that pinout (more like a modified USB OTG, not _technically_ standard since it has a sleep pin, but that’s trivial to accommodate if you’re making a custom device already), including one with 32-bit or 64-bit processor so ZMK can run on it. I have some wild ideas already about what control surfaces I can create when high refresh rate touch panels that are thin enough to make into an input module become commercially available, or even how I can piggyback off of the ecosystem and standard to make a bluetooth USB hub for these modules that sits on your lap.

---

<div class="post-metadata">

**Author:** ![Tony\_Grosinger](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/tony_grosinger/32/4990_2.png) [@Tony\_Grosinger](https://community.frame.work/u/Tony_Grosinger)\
**Post date:** [March 27, 2023, 10:03pm UTC](https://community.frame.work/t/zmk-input-modules/28648/3 "2023-03-27T22:03:44Z")

</div>

@Be_Far if you manage to create touch panels I’d buy one! We’re going to need a community marketplace.

---

<div class="post-metadata">

**Author:** ![Be\_Far](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/be_far/32/43857_2.png) [@Be\_Far](https://community.frame.work/u/Be_Far)\
**Post date:** [March 27, 2023, 10:06pm UTC](https://community.frame.work/t/zmk-input-modules/28648/4 "2023-03-27T22:06:05Z")

</div>

> [@Tony\_Grosinger](#):
>
> if you manage to create touch panels I’d buy one!

Just created [a thread](http://community.frame.work/t/framework-16-custom-touchscreen-input-module-design-parts/28683) for crowdsourcing this project. We can’t do much without actual Gameworks to test on, but I want to put my pipe dream out there in case anyone else has the same idea or the knowledge/skills to do more than I can alone.

---

<div class="post-metadata">

**Author:** ![nrp](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/nrp/32/352_2.png) [@nrp](https://community.frame.work/u/nrp)\
**Post date:** [March 28, 2023, 3:57am UTC](https://community.frame.work/t/zmk-input-modules/28648/5 "2023-03-28T03:57:00Z")

</div>

You should be able to create ZMK-based firmware using our QMK-based firmware as a reference. As noted, QMK has more robust RP2040 support currently.

---

<div class="post-metadata">

**Author:** ![Tony\_Grosinger](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/tony_grosinger/32/4990_2.png) [@Tony\_Grosinger](https://community.frame.work/u/Tony_Grosinger)\
**Post date:** [March 28, 2023, 3:58am UTC](https://community.frame.work/t/zmk-input-modules/28648/6 "2023-03-28T03:58:50Z")

</div>

Awesome, glad to hear it. Thanks for the confirmation!

---

<div class="post-metadata">

**Author:** ![C\_Scott\_Ananian](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/c_scott_ananian/32/19874_2.png) [@C\_Scott\_Ananian](https://community.frame.work/u/C_Scott_Ananian)\
**Post date:** [January 23, 2024, 7:04pm UTC](https://community.frame.work/t/zmk-input-modules/28648/7 "2024-01-23T19:04:10Z")

</div>

> [@nrp](#):
>
> As noted, QMK has more robust RP2040 support currently.

Power management seems to be a weakness of the QMK firmware, which may be one reason to consider using ZMK. In the firmware for the Framework 16 keyboard I see a `suspend_power_down_kb()` call and some code which does a `readPin(SLEEP_GPIO)` but nothing which explicitly idles the RP2040 or reduces its scanning rate – although I could easily be missing something.

---

<div class="post-metadata">

**Author:** ![David\_Eastham](https://avatars.discourse-cdn.com/v4/letter/d/c68b51/32.png) [@David\_Eastham](https://community.frame.work/u/David_Eastham)\
**Post date:** [February 11, 2025, 4:16pm UTC](https://community.frame.work/t/zmk-input-modules/28648/8 "2025-02-11T16:16:36Z")

</div>

I hope that the second gen framework has a programmable input deck and that ZMK is compatible.

I am quite partial to [Kaleidoscope](https://github.com/keyboardio/Kaleidoscope/) because I am Keyboardio fan. That sits between QMK and ZMK: I found it much more elegant than the former but (I am told) less so than the latter. But so it should be: whereas kaleidoscope works on venerable pro micro 8bit controllers found on most mechanical keyboards as does QMK, ZMK needs 32bit, which is like having a phd to keep score of tiddlywinks.

So I would far rather advance to ZMK than regress to QMK (where I wrote my first keymap).

---

<div class="post-metadata">

**Author:** ![Hunter\_Haugen](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/hunter_haugen/32/41481_2.png) [@Hunter\_Haugen](https://community.frame.work/u/Hunter_Haugen)\
**Post date:** [September 30, 2025, 11:04pm UTC](https://community.frame.work/t/zmk-input-modules/28648/9 "2025-09-30T23:04:33Z")

</div>

I got [GitHub - hunner/zmk-fw16: ZMK module for framework 16](https://github.com/hunner/zmk-fw16) building and flashed on my FW16 keyboard today. It only has a basic ANSI keymap, but now that it’s actually working I think more features (backlight, ISO/Numpad, etc) can be added. So it’s still a work in progress :).

The “board” and driver implementations are separate from the shields, so custom keymaps in personal zmk-config repositories should be able to bring in the fw16 board and overlay any keymap you want.

---

<div class="post-metadata">

**Author:** ![Enzo\_Choi](https://avatars.discourse-cdn.com/v4/letter/e/b2d939/32.png) [@Enzo\_Choi](https://community.frame.work/u/Enzo_Choi)\
**Post date:** [October 1, 2025, 2:07am UTC](https://community.frame.work/t/zmk-input-modules/28648/10 "2025-10-01T02:07:05Z")

</div>

heyo! can’t wait to use this for parity when one-key drops and I can make a split board

---

<div class="post-metadata">

**Author:** ![nrp](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/nrp/32/352_2.png) [@nrp](https://community.frame.work/u/nrp)\
**Post date:** [October 9, 2025, 4:00am UTC](https://community.frame.work/t/zmk-input-modules/28648/11 "2025-10-09T04:00:40Z")

</div>

Awesome to see this!

---

<div class="post-metadata">

**Author:** ![WindF](https://avatars.discourse-cdn.com/v4/letter/w/9e8a1a/32.png) [@WindF](https://community.frame.work/u/WindF)\
**Post date:** [April 21, 2026, 8:07pm UTC](https://community.frame.work/t/zmk-input-modules/28648/12 "2026-04-21T20:07:15Z")

</div>

Now that Framework has announced a product with ZMK support. Is it possible ZMK support is coming to the input modules? Or is it a matter of the support for the RP2040 chip currently not being there?

---

<div class="post-metadata">

**Author:** ![Adrian\_Joachim](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/adrian_joachim/32/9949_2.png) [@Adrian\_Joachim](https://community.frame.work/u/Adrian_Joachim)\
**Post date:** [April 22, 2026, 6:07am UTC](https://community.frame.work/t/zmk-input-modules/28648/13 "2026-04-22T06:07:13Z")

</div>

Given the input modules are wired, what would the advantage of using zmk be there?

---

<div class="post-metadata">

**Author:** ![MJ1](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/mj1/32/15519_2.png) [@MJ1](https://community.frame.work/u/MJ1)\
**Post date:** [April 22, 2026, 7:04am UTC](https://community.frame.work/t/zmk-input-modules/28648/14 "2026-04-22T07:04:19Z")

</div>

Some people might just be more familiar with ZMK or like it better.

And if it can work, it would be good to have the keyboards united under a common firmware type. So that there can be one configuration utility. And since ZMK is made for battery use, I imagine there might be a tiny bit of power savings to be had switching over. I don’t know, every little bit adds up.

@WindF, it looks like ZMK has support for the rp2040.  
But not sure if FW will want to move over to ZMK at this time. One thing, not sure if ZMK currently supports the LED driver chip used in RGB keyboards. I don’t see mention of a IS31FL3743A compatible driver in ZMK’s docs.

---

<div class="post-metadata">

**Author:** ![Adrian\_Joachim](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/adrian_joachim/32/9949_2.png) [@Adrian\_Joachim](https://community.frame.work/u/Adrian_Joachim)\
**Post date:** [April 22, 2026, 7:14am UTC](https://community.frame.work/t/zmk-input-modules/28648/15 "2026-04-22T07:14:15Z")

</div>

ZMK generally has a lot fewer features than QMK and is just a much smaller project with a much bigger focus low power wireless stuff.

> [@MJ1](#):
>
> I imagine there might be a tiny bit of power savings to be had switching over.

Probably not on the rp2040 zmk is more usually run on much more power efficient platforms where it can use sleep states and interrupts and stuff.

---

<div class="post-metadata">

**Author:** ![MJ1](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/mj1/32/15519_2.png) [@MJ1](https://community.frame.work/u/MJ1)\
**Post date:** [April 22, 2026, 7:24am UTC](https://community.frame.work/t/zmk-input-modules/28648/16 "2026-04-22T07:24:52Z")

</div>

> [@Adrian\_Joachim](#):
>
> ZMK generally has a lot fewer features than QMK and is just a much smaller project with a much bigger focus low power wireless stuff.

Good point. But I feel like it’s not going to stay like that.

If you _can have_ the option of wireless, why would anyone not take it? You can still plug in USB if you’re playing games where you care about even the tiniest lag. I think future demand is in wireless. More users, brings more devs, since they are normally users as well.

I really see ZMK surpassing QMK at some point. Just today I look and see zmk studio, [zmk.dev/docs/features/studio](https://zmk.dev/docs/features/studio), realtime keymap updating. I don’t recall that last time I looked! Granted it’s been awhile.

Meanwhile, has QMK got away from Via yet? Via sucks, imho. I use Vial myself, but that’s not _from_ QMK either.

---

<div class="post-metadata">

**Author:** ![Adrian\_Joachim](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/adrian_joachim/32/9949_2.png) [@Adrian\_Joachim](https://community.frame.work/u/Adrian_Joachim)\
**Post date:** [April 22, 2026, 7:37am UTC](https://community.frame.work/t/zmk-input-modules/28648/17 "2026-04-22T07:37:25Z")

</div>

> [@MJ1](#):
>
> If you _can have_ the option of wireless, why would anyone not take it?

ZMK isn’t gonna magically make an rp2040 wireless.

> [@MJ1](#):
>
> I really see ZMK surpassing QMK at some point. Just today I look zmk studio, [zmk.dev/docs/features/studio](https://zmk.dev/docs/features/studio), realtime keymap updating.

The studio thing just got added back when I made my zmk keyboard but still QMK has a huge headstart and given it’s less low power focus has a lot more development for stuff like rgb stuff and things like that.

As far as basic keyboarding goes both work just fine.

I could see them releasing gen2 input modules for the 16 with the cop they use for the wireless keyboard that you can use wired or wirelessly but they would have to squeeze in a battery somewhere.

---

<div class="post-metadata">

**Author:** ![MJ1](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/mj1/32/15519_2.png) [@MJ1](https://community.frame.work/u/MJ1)\
**Post date:** [April 22, 2026, 7:46am UTC](https://community.frame.work/t/zmk-input-modules/28648/18 "2026-04-22T07:46:49Z")

</div>

> [@Adrian\_Joachim](#):
>
> I could see them releasing gen2 input modules for the 16 with the cop they use for the wireless keyboard that you can use wired or wirelessly but they would have to squeeze in a battery somewhere.

Yesss, that’s the dream. 😁  
Do we need it? No. But tell me it wouldn’t be fun to be able to pop out your keyboard & use it wirelessly?

A battery is a challenge. Feels like there is no room within existing keyboards. Separate, perhaps.

---

<div class="post-metadata">

**Author:** ![Adrian\_Joachim](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/adrian_joachim/32/9949_2.png) [@Adrian\_Joachim](https://community.frame.work/u/Adrian_Joachim)\
**Post date:** [April 22, 2026, 7:52am UTC](https://community.frame.work/t/zmk-input-modules/28648/19 "2026-04-22T07:52:06Z")

</div>

> [@MJ1](#):
>
> A battery is a challenge. Feels like there is no room within existing keyboards. Separate, perhaps.

The full width keyboard probably has some space for some really thin cells. if you don’t use the backlight even a couple dozend mah can last days with an optimized zmk setup.

---

<div class="post-metadata">

**Author:** ![MJ1](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/mj1/32/15519_2.png) [@MJ1](https://community.frame.work/u/MJ1)\
**Post date:** [April 22, 2026, 8:03am UTC](https://community.frame.work/t/zmk-input-modules/28648/20 "2026-04-22T08:03:20Z")

</div>

Ah, I forgot Framework released a full width keyboard! They release too much all at once, limited room in my head for it all 😆  
[@Framework](https://community.frame.work/groups/framework), don’t stop.
