beyblock20

A 20 key modular macropad that can connect with other elements to form a larger macropad via magnets. This versatile module in combination with the encoder module (knoblin3) can be used to form a 20 key macropad with 3 encoders, a 4x10 ortholinear board, or a 4x10 ortholinear board with 3 encoders! Each module has a Seeeduino XIAO on it, and all of them communicate on an I2C bus. Because of the I2C bus, more kinds modules can be made for an even more fine tuned and customized macropad/keyboard, as well as up to 128 devices to be connected together at once!

Video demo here: https://www.youtube.com/watch?v=Z132qLr78tY

Status

Prototyping phase. Firmware is a WIP, though I refine and release it down the road. I need to write some firmware to handle I2C communication between the different elements, as well as add some mounting holes to the knoblin3. As such, I haven't yet had the chance to do testing on this batch of PCBs. If there's enough support for this project, I can work on adding new types of modules as well as refine the current ones. Anyone who wishes to expand on this idea are free to use the source files provided. I would produce these if you're looking to tinker and hack (and you're capable of doing so) at your own risk, though more work needs to be done before these are plug and play.

Features

  • A highly customizable framework to tailor your macropad to your needs, when you need to
    • A magnetic connector is on each side of the module, allowing you to connect the components you want, whenever you want
    • Open source, so anyone who wishes to make their own module and publish it is free to
      • Parts could include Display modules, sensors, sliders, LEDs, trackpads, etc.
      • Opens the possibility of a ecosystem of interchangible parts
  • Uses hotswap sockets, so you can swap out keys to your hearts content
  • Has TTRS jacks that uses the same I2C bus, so having a split keyboard should be doable!
  • Aside from the magnetic connector, uses commodity parts, so it should be easy to order and assemble your own!

Design

This design came out the Seeedstudio SeeeduinoXiao Keyboard Competition. The Seeeduino XIAO is a great, affordable, little microcontroller. I'm a big fan of the USB C port and castellated pins on it. It's biggest tradeoff was that there aren't as many pins on it as a pro-micro, meaning that you have to think outside the box to get enough pins to make a keyboard out of it. I found this constraint to be really fun, since I pushed me to take an I2C "split" keyboard approach. The beyblock20 also draws inspiration from Zack Freedman's Mirage Keyboard, particularly with the idea of an unbounded I2C bus.

Thank you to Seeedstudio for manufacturing these boards for free for the competition. I found the Seeduino Xiao RP2040 board to be an excellent product, and the community support for said board to be awesome.