System76, a computer manufacturer known for selling machines which run Linux, recently unveiled the complete sources for their forthcoming Launch mechanical keyboard. Made with familiar tools, mass produced, and backed by a stable company it looks like the Launch will be a compelling entrant into the world of mechanical keyboards.
Back in March of 2020 System76 published a blog post about a new project they were embarking on; a mechanical keyboard with an unusual layout. At the time there was scant information available besides a summer 2021 target and little was heard until last week when they opened up access to the Launch repository. Everything should be recognizable if you’ve ever looked at the sources for a customized mechanical keyboard before, which is what gets our attention. Electrical sources are authored with KiCad and should be easy to tweak or fabricate. And mechanical components are provided in STEP files with mechanical drawings, presumably because they intend to actually manufacture these.
Feature wise all the usual hallmarks of a well designed keyboard are here. The Launch uses hostswap sockets to make it easy to install the usual Cherry MX compatible switch options, and includes per-key RGB backlighting courtesy of SK6805 LEDs. The ATmega32U4 runs the popular and extremely capable QMK firmware instead of something bespoke, so it should be easy to customize to the user’s desire.
System76 touts an unusual key layout, but if you’ve seen a 75% keyboard before it shouldn’t be too threatening (though we do wonder about that shrunken right shift). The most unusual feature is that it features a USB hub capable of full speed 10 gigabit USB 3.1 Gen 2 on two USB-C and two USB-A ports. It’s worth checking out the schematic to appreciate how much more complicated the hub design is than the rest of the keyboard, which is practically vestigial in comparison.
The remaining unknown is how the Launch integrates with Pop!_OS, System76’s awkwardly named remix of Ubuntu. They promise deep, compelling integration and we’re excited to see how that manifests.
What a great opportunity to pitch https://github.com/wez/flutterby-rs
That project is about keyboard firmware written in Rust, yes indeed also for an ATmega32U4.
problem is with nationality keys/char. many language have many chars, more than latin.
meybe rust firmware move to better processor (teensy?)
I can’t wait for the ISO version.
layout key are not problem. problem is for example NO INDICATORS for ins, capslock etc.
no insert no nationality chars, no volume control, no info for clock etc.
Don’t know what you mean. The text of the article says “per key RGB backlighting courtesy of SK6805 LEDs”.
The firmware provides direct addressing of the Caps and Num Lock status:
https://beta.docs.qmk.fm/using-qmk/hardware-features/feature_led_indicators
The documentation also says:
“By including #define RGBLIGHT_LAYERS in your config.h file you can enable lighting layers. These make it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations.”
https://beta.docs.qmk.fm/using-qmk/hardware-features/lighting/feature_rgblight
I dislike poorly designed RGB patterns. I prefer a single color so that when you have another color defined for Caps Locks or Num Locks you can notice it. The following video shows that you can get Caps Locks indication in the case of RGB lighting, but the poor choice of RGB makes it difficult to appreciate:
https://youtu.be/uLGE1epbmdY
No insert? Reassign any key as your heart wishes per this list:
https://beta.docs.qmk.fm/using-qmk/simple-keycodes/keycodes
If the keyboard runs out of keys, you use the Function key as a Layer modifier to assign 2nd function to any key. You can actually assign any key as a layers modifier. For example, when I click Caps Locks it toggles Caps Lock. When I hold it, it enables a modifier layer.
If you want specific national characters, emojis, whatever, then you have it too:
https://beta.docs.qmk.fm/using-qmk/software-features/feature_unicode
But this is not a feature of this keyboard. Any keyboard supporting QMK firmware can do this.
Is that actually planned?
What the ever-loving heck? An open-source keyboard? In a world where keyboards have been open-source for about a decade? What are you selling, here? Their designs are intuitively obvious. I’m not going to utter the three-word-condemnation, but why am I seeing this?
This is just the usual “Until Linux has a single product controlled by a monopolist it will NEVER be successful!!!” meme with a slight hardware twist, isn’t it? Diversity is still a feature, and options are still appreciated – even with hardware. 😉
I get that, but to me, the fact that it contains a USB 3 hub doesn’t really add enough to make it news, so it ends up looking like an advertisement from a manufacturer who throws out the trigger words “open source”, even though when it comes to keyboards, “open source” is close to meaningless. I mean, how bold is it to “open source” your firmware when it’s just QMK, which means YOU got it for free in the first place? Or are we talking about open-source hardware, where we get holes punched in an aluminum plate at a totally standard interval? I just don’t see what they’re being “open” about.
Came for the vacuous comments. Left satisfied.
That’s a ton of flowery prose to dance around the fact that you’re trying to avoid saying the default troll phrase “not a hack”. Just own it.
32U4? They should have used a NE555!
You realize a 32U4 is a 8bit Micro Controller and a NE555 is a Single Precision Timer…
WOOOSH!
No, really?
Yep. I remember reading something about it a while back.
I think he realizes that, who would ever use an entire 8 bit processor where a simple timer would do!
..although just WHAT a 555 could do in this context is a mystery. Although maybe not a major mystery — there were keyboards before there were microcontrollers, and there were even auto-repeat keyboards before microcontrollers, and what ELSE would you use to implement autorepeat?
In theory, if you had a bucket full of 555s, you could probably implement an AT interface keyboard… binary tree resistor ladder coding of the keys, with rudimentary ADCs made out of 555s making it into bits, one for a central clock and others to insert the start and stop bits per frame. But it would drive you nuts to tweak the timings just right.
RW, I hope you won’t be too disappointed if I don’t try this.
Doesn’t each NE555 actually contain an 8-bit micro to generate the pulses?
I believe the latest NE555 silicon uses a 64 bit core, to allow for extended timing range, exceeding the life expectancy of the universe by a number of orders of magnitude, as well as a GPS receiver to compensate for relativistic effects when traveling at high speed. The external timing components are no longer used in the actual operation of the device; these are measured to a high precision at boot time, and subsequently the device simulates the charge and discharge of the external capacitor.
Because we can.
I still think a 64bit RISC-V would offer more flexibility in stimulating the control voltage pin to metrologic standards
@Lee, maybe you are too young to know that @deshipu was referring to the eternal joke of circuit design. ‘Hey, you can do that with a 555!’
See below:
https://hackaday.com/2017/08/10/you-know-you-can-do-that-with-a-555/
Wait a minute… where’s the spacebar?
They put Shift and… BACKSPACE where the spacebar goes?
And those unmarked keys. That one MIGHT be Enter, but it might be space or something else…. Ahhhhh!
The highlighted link “key layout” shows the actual key layout….
Still, the pattern they chose to take a picture of didn’t have a spacebar. Seems like something you’d notice.
Imagine how many mistakes you need to make before thinking that a Backspace key under your thumb is a good idea…
The physical keyboard in the post is an early prototype using an off-the-shelf set of keycaps, and those were the ones that fit there. Standard on Launch is have both split spacebars be space (which is configurable in the settings).
It’s not an unusual layout at all. Outside of the split space, it’s the same layout as the Cherry ML4100 that’s been around for decades, and the late ’80s Toshiba laptop keyboards.
Or you could go back to the IBM Executive typewriter, which had a split spacebar, marked ‘3’ on the left and ‘2’ on the right, corresponding to the widths of spaces they produced, relative to the width of the letter ‘i’.
Huh?
Shift, and backpace are where the spacebar usually is.
How are you supposed to type capital J, K, etc on the right side of the k/b?
Instead of using your pinky for shift, you’ll have to use your thumb.
So, yes, it is a weird layout.
Where’s the windows key?
joke
It’s next to the Any key.
More importantly, why isn’t the control key to the left of the A key like the UNIX ghods decreed decades ago?
If you’re going to take on the Ctrl key, why not ask why shift-2 isn’t double-quote and shift-7 single-quote, and other keys don’t match where they were on glass Teletypes, or mechanical Teletypes for that matter. What it all comes down to is, when IBM decided to go into the personal computer business, they refused to make users of their typewriters learn a new keyboard pattern. They went so far as to dedicate a microcontroller to remapping the keys (in addition to the microcontroller in the keyboard itself) just to make their PC keyboards match their typewriter keyboards as closely as possible.
I write code and admin computers. A lot of the keyboard shortcuts involve the control key (alt and meta too, but less often). Were I writing text (articles, books, etc.) then, yeah, I’d care about quote characters.
At present I have a pair of Sun type 6 UNIX layout keyboards but at some point they’ll fail (the primary one is 15 years old). No one seems to be making similar ones and the grey market cost for these seems to be around $100 a pop for used ones last I looked (adapters for the type 4, non-USB ones are even more pricey so I can’t repurpose that rarely used keyboard).
That’s the benefit of programable keyboards. You can reprogram that key to behave as a Control key. Or you can, for example, program that key to act as Caps Lock when pressed momentarily and work as Control when held down.
https://beta.docs.qmk.fm/using-qmk/simple-keycodes/keycodes
Some people assign Caps Locks to the backspace, since that key is closer to the center row, but assigning backspace to half section of the spacebar is extreme. Possible, as long as the other half is spacebar and not Shift.
I have other reasons to use programmable keyboards. I need to enter characters used in Spanish that doesn’t exist in the English layout keyboard, and changing the layout at the OS level is not convenient. I use modifier keys to enter those ü, ñ, á, ¿, etc. characters and their corresponding upper case versions (when applicable). All of that, without requiring modifying anything at the OS level.
Anyway, one I have tried programable keyboards, I’m not going back. I’m moving my only programable keyboard between my personal and office computer, so I already ordered another one.
A programmable keyboard kinda sorta works (I’ve looked at a few programmer focused ones over the years), except that the Sun keyboard has slightly different shapes for a couple of the keycaps too (plus a bank of keys on the left side that a 101 key style lacks). The Dell keyboards which I typically have to deal with for example resize the key that I’d be mapping to a backspace to about 67% of the expected width.
On the plus side, there is (well, was) an “open box” 320-1273 keyboard on ebay for a reasonable price that I found while trying to write this. (If you compare your keyboard of choice to an image search for a “sun 320-1273” keyboard (make sure to find one where the control key is adjacent to the “A” as you’ll also see 320-1272’s which are PC layout) you’ll understand why the programmable keyboards get most but not everything I want [the older Sun gear like I have sometimes requires you to get into the OBP (think BIOS) and that requires the stop key which most keyboards don’t have])
What you are referring to is called Split Backspace:
https://scottw.com/keyboards/splitbs/
This is one of the many customization options offered by the vendor of https://www.modelfkeyboards.com/ This was the place were I purchased my programmable keyboard, which is a reproduction of the original IBM Model F Keyboard. This is not more expensive than other customizable and programmable mechanical keyboards, but the mechanical part will last many more years, so the cost per year is lower. Also, as a repairable cult item, I suepect that I will be able to find the electronics and will be able to repair it for at least 3-5 decades from now.
You could order this keyboard having split backspace. By default it will send F1, F2, F3, etc. when you press Right-Click plus 1, 2, 3, etc. You could program it to send F13-F624 if you press Right-Ctrl+Shift. More about this later.
I programmed very specific layout for entering characters used in Spanish without OS support, so I have developed muscle memory and I want all my keyboards to have the same programming. Since this keyboard not entirely silent, I reserved a GMMK Pro for using when working and during conferences. This is is a barebones programmable keyboard. You have to buy and install the switches (no soldering required) and the keycaps. I already got the keycaps, but I will wait to see if I can buy the switches together with the keyboard.
https://www.pcgamingrace.com/products/glorious-gmmk-pro-75-barebone-black-reservation
About the keycode, I’d suggest to look into this table.
https://kentie.net/article/sunkbd/sun%20keys.txt
I noticed from the picture that the keyboard that you are using is an USB keyboard, so you have to look at the USB scan code, which according to the article below, are different:
https://en.wikipedia.org/wiki/Scancode
So the Scan code for Stop is going to be either 0x78 or 0x69. Not sure about that. Maybe the scan code can be reproduced with F14.
Can you try this page to see what it says when you try the Stop button? Actually, you can try all the extra buttons in your Sun keyboard if you want.
https://w3c.github.io/uievents/tools/key-event-viewer.html
It is not giving me direct scan codes for F13 and above, but it is identifying them.
In any case, QMK supports custom key codes:
https://beta.docs.qmk.fm/using-qmk/guides/custom_quantum_functions#custom-keycodes
And if you need help, I don’t see it far fetched to request it help to the QMK community. I asked for help to the developer who adapted QMK support for the Model F keyboard and he wrote a function for my case.
https://beta.docs.qmk.fm/using-qmk/simple-keycodes/keycodes
BTW, ignore the QMK keycode called KC_STOP. It is the same as KC_WWW_STOP. It just stop the browser from loading.
That’s hilarious, such much Hub. A true usb 3.2 hub with actual USB-C ports is quite a thing, there are not many of them out there. Oh and yeah, and there is also keyboard added seems funny.
next version will use raspbery pi pico 2030 ;-)
and trackball
Where’s the Arduino?
Consider to used ATmega32U4 as an Arduino Micro or Arduino Leonardo, visit https://en.wikipedia.org/wiki/List_of_Arduino_boards_and_compatible_systems for more Atmega32U4 Arduino.
Advice: Don’t tell that you were trolling, because you won’t be feed again.
My Drevo has a rotating knob on the side. I have gotten quite used to it, as a volume control and tuning control for SDR software.
The key layout is odd, but lacking that knob is the deal breaker for me.
You tempt me!
I want a keyboard with a dedicated Compose key placed somewhere that I don’t tie my fingers in knots trying to use it. Every time I see one of these builds I start to think about going for it.
But I would have to build two, one for work and one for home. And that would only be good at my desks. Once I was used to the layout I’d be forced to build a third, this one into a Cyberdeck so I would have something portable. But I like my Nexdock and don’t want to replace it with a Cyberdeck. And besides, finishing all that would take me years!