Hi, interested in Framework and the future they bring to consumer electronics.
As the title asks, are there any plans or concrete information about the possibility of bringing keyboard modules with a more custom layout than what is currently offered?
By this I am talking about layouts with keys at the thumb, split for ergonomics and more customization options. It is something that I think sorely is lacking in the laptop formfactor, and pushing it to an external device kind of defeats the purpose of having a laptop. It would definitely be a killer-app feature for some, myself included.
I understand the difficulty and niche of this issue, and looking at the community posts related to keyboard it seems that much is still needed to just get the base-system up to scratch with the competition. I just figured that it would be nice to get any information regarding this.
Yeah that was partly something it could be used for, I’d personally want macro keys that can be used to record/replay macros, almost like a hardware clipboard.
Yeah, I would love this. An ergonomic keyboard layout with a macropad in the middle would be super cool, but I do wonder if that’d be possible since the ergonomic layout would probably take up more space due to how they’re usually shaped. With the limited space of the laptop, it would at the very least probably have to sacrifice the space that could be allocated to the macropad.
I also want this, and have the same concerns. Just only, instead of a macropad, i would want a (touch) screen to show statuses, alerta and notifications. The programable keys for macros could also do the job if they could have minidisplays, so i could put icons and badges on the keys.
There would not be so much space to consider it as a mini Steam Deck, but yeah, it’s a way to see it The main problem is keyboard layout, since the keys split is usually in diagonal.
My main point is about I HATE the expanded keyboards with keypad when having a laptop with a huge screen, that in a laptop force you to write sideways (specially if the laptop is in your lap ). So a splitted keyboard would allow to have a more natural position, and being screen and keyboard aligned and centered with both your eyes and hands. And if we can make use of the blank space in the middle between both half keyboards to have some extra screen space, it is welcome
I have never designed a keyboard but I did think of split keyboard as two modules, so that they can be placed on both sides, with the numpad or macro key in the center. But in the same vain, I had thought about said split keyboard having some form of tenting.
Two modules is the obvious way to do it, but unluckily Framework 16 laptop don’t have the needed connectors in place to connect the right half At least in a truly reusable / re-layoutable way…
The midplate has a total of 8 connectors, 5 of which are USB for keyboard, numpad and spacers. Those are the three to the left and two to the right. The other group of three in the middle is for connecting the trackpad and has I2C instead. If all 5 of these USB connectors can be used concurrently, installing some split keyboard should pose no problem, should it?
Thanks for the detailed description It was about it’s not possible to put the keyboard and spacers in all the connectors, so sure you can have a split keyboard but can’t use the middle connectors to put a spacer, since it’s I2C and not USB, nor you can swap the split keyboards (in case you want) since there’s no connectors in the correct place.
For full flexibility, I would have put USB connectors in the full row, both on keyboard and touchpad rows, allowing to put keyboard, numpad, spacers and touchpads however I want, for example a full row of spacers and no keyboard at all, or put the keyboard in the front row and second screen in the upper row, or a regular keyboard in the upper row and a piano keyboard in the lower one instead of a trackpad. Definitely that would have increased costs, at least for the materials of the connectors, but not doing it that way was shortsighned.
I found the Input Module Github, and can confirm it’s USB.
Input Modules are hot-swappable USB 2.0-interfaced devices that enable deep customization of the input system on the Framework Laptop 16.
If I remember correcctly, they used RPi2040s as the microcontroller, and but I can confirm they use QMK Firmware.
So now with this sauce, I believe that the big limitation is still module placement… I personally still think half a keyboard could work, with the numpad at the center, but I also assume this might move the touchpad to the center to be at the right of the modules as well?
It’s certainly an interesting concept for a laptop.
I think to make this feasible one would need to also do a custom midplate.
One could then design to put the connectors wherever one wished them.
Update~! If you haven’t heard yet, Framework has open sourced (or source-available) the a lot of the FW16 parts. Including main board, and CAD designs.
I think this could be used in conjunction with the InputModules repo to redesign a midplate if we really need to.
So I’ve been thinking about this quite a bit. I wanna do some sketches in KiCad, but I’m considering doing it as an all-in-one. I am aware of ErgoGen but I have never used it before. If someone would like to provide a template, similar it could help a lot for others who are knowledgeable in it. – I am sadly, not that person yet
Since I’m also a newbie into ergo keyboards, I’m going to be making a Freestyle-like split but with the numpad in the center. Hopefully, I can figure out a way to do tenting after that.
While I am not aware of what would be a good key to use, I’ll be using these GitHub - kiswitch/kiswitch: Footprints for popular keyboard switches
Since there are some displays that use i2c, and there are some projects that show how yo use them with xrandr, maybe could It be possible to use the i2c connectors in the middle to put a small touch screen, or are they painfully slow for that task?
I2C is far from ideal for the task, unfortunately. Even at high I2C clock speeds, it’s not fast enough for large displays or framerates. A 600x400 display is 5.76Mbit of data. At 1Mbit/s thats over 5.76s to render a single frame. Small monochrome displays may be possible. Larger displays tend to use one or more of the following:
Parallel lines for more data transferred per clock (such as in quad spi)
Low Voltage Differential Signalling (LVDS) for allowing better signal integrity at higher clock speeds
Higher clock speeds
Analog signals
compression
Perhaps using the USB interface on one of the other connectors may be more effective. Alternatively it may be posssible to use a microcontroller communicating with the computer over i2c and have the microcontroller indirectly draw to the display. Then you could update the display more frequently and have the microcontroller act sort of as a gpu. The 3d Printer that I have acts in this way; the graphical elements are stored within a microcontroller on the display module and the draw commands are sent to it via I2C.