Hey all! I’ve been working on a new standard for interconnecting a main keyboard pcb to modules.

What does this mean? If a keyboard pcb supports the interface via a connector and some basic wiring, it will allow you to use the available open source modules.

I designed an open source keyboard called vulpes minora to prove out the concept, along with 4 modules that you can connect to it. Even before officially announcing it, there are have been 3 keyboards that have adopted it, along with 2 modules developed (Great work by zzeneg , Ariamelon, and Ben!)

Here is a link to see the full list of supported keyboards and modules.

The VIK repository is here, and it highlights how it works, how to implement support for it (for both a keyboard and a module), along with working examples.

https://github.com/sadekbaroudi/vik

If more people adopt it, more people will be incentivized to make modules, and we’ll all benefit from it. No more days of “hey, check out this cirque trackpad, let’s figure out a way to hack it onto existing boards!”. Instead, it will be “Hey, we should design a VIK module that supports this new cool thing!”. Then people will be able to just swap in the new thing, write some basic firmware, and fold it into their existing keyboards.

Thinking out loud here, but if it starts to get popular, we could even work with the QMK folk to potentially create some standardized way of supporting modules (from a firmware perspective) in a more streamlined way.

Anyway, questions and feedback very much welcome.

If you’d like to discuss it in more depth, please feel free to join the fingerpunch discord server, and chat me up (sadekbaroudi) in the #vik channel.

https://fingerpunch.xyz/discord

There was a recent article published on kbd.news if anyone wants to look through that as well

  • nickwitha_k (he/him)@lemmy.sdf.org
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    If I’m reading this right, you’re basically combining power, I2C (I3C - same pins), SPI, 1-wire RGB LED data (neopixel), and some extra for additional I/Os on an FPC. I like it. I had similar occur to me but never ended up developing it past “wouldn’t it be cool…”.

    Nice work. I’ll have to play around with this once I’ve got my dev boards setup.