Andy: hey Jacob, thanks for taking the time to talk to me again! I’m really excited about the final installment in our current string of interviews!
Jacob: no problem, I always have time to talk about keyboards 😀
Andy: something I am always glad to hear. 😀
Andy: So, we have briefly talked about your involvement with the input club in the past interviews, but would you like give a quick overview of what the Input Club is for people that may not know?
Jacob: Input Club is a small company founded by 3 GeekHack/Keyboard community members that were tired of seeing boring mechanical keyboards.
Jacob: And, if possible, we open source everything. Not just for ideological reasons, but to help raise the technical expertise level of the keyboard industry.
Jacob: We’ve also released two keyboards so far through Massdrop, the Infinity 60% and Infinity Ergodox
Andy: Both were hugely successful as well. The Infinity Ergodox should be just about ready to ship out as far as I know. I for one can not wait!
Jacob: Yes! The Infinity Ergodox is in production and we seem to be on track to ship before the end of the month
Andy: Outstanding! Can you give a little insight on what you changed from the original Ergodox to make the Infinity Ergodox?
Jacob: (those waiting on the recent Infinity 60%, they will also be shipping around the same time)
Jacob: The Infinity Ergodox, except for the Ergodox layout, was re-designed from scratch. Case, PCB and firmware.
Jacob: When we started this project, the two requests were to add backlighting and Alps compatibility.
Jacob: Alps compatibility was something we’d already done before with the Infinity 60%; however, this is our first keyboard with backlighting.
Jacob: I won’t go into too much detail, but we’re using a very advanced LED driver chip (from ISSI) that significantly simplifies PCB design compared to all other keyboards on the market.
Jacob: Backlighting will have 256 levels per key.
Jacob: Eventually when firmware support is ready, I’ve calculated it’s possible to turn the keyboard backlight into a 60 fps display with each key as a pixel.
Andy: That would be super intense! So is it RGB compatible?
Jacob: Unfortunately not. We will have RGB support in the upcoming K-Type keyboard though.
Andy: I didn’t think so, but just wanted to check. Personally I’m always more than happy with a simple white backlight 🙂
Jacob: (there are also lots more considerations to deal with in terms of switches when dealing with RGB)
Andy: So can you tell what the LCD screen, which is new on the Infinity model, will be used for?
Jacob: The LCD was originally going to be some status lights (say, a configurable NumLock led)
Jacob: Which turned into 3 configurable RGB leds.
Jacob: Then someone suggested an RGB Backlight LCD screen.
Jacob: Normally, on most keyboards with LCD screens, they are just a gimmick.
Jacob: But since the Infinity Ergodox is a fully programmable keyboard, it’s possible to do anything you want with it.
Andy: I’ll expect to see community members come up with quite a few uses for it them!
Jacob: It’s a 128×32 pixel display with a 48-bit color backlight
Andy: Did you pre-program it to do any functions, or are you just leaving it to the imagination of the beholder?
Jacob: Haha, originally, to speed up production I was just going to leave it with nothing (there is an API available from the virtual serial port so you can directly control the backlight and pixels from your computer), but first impressions are everything…so I wrote a basic layer stack display.
Andy: Very cool!
Jacob: For those that aren’t familiar with KLL function layers, each function layer, when activated is stacked on top of the previous one (like a cake).
Jacob: If the top layer does not have the key defined, it uses the previously stacked layer.
Jacob: Both the Infinity 60% and Infinity Ergodox support this.
Jacob: The LCD screen will show the top 4 layers as well as change the backlight color depending on which layer is on top.
Andy: That’s pretty sweet. That will make it a lot easier for users to navigate the layers for sure
Andy: Learning the layers well is essential to getting the most out of keyboards like the Infinity or the Infinity Ergodox
Jacob: Both the Infinity Ergodox and original Ergodox are fully programmable keyboards, but unlike, say the Pok3r they are generally a lot easier to program.
Jacob: The Pok3r relies on fancy key combinations to set all of the keys. Which makes it very tedious to change keymappings or share your keymapping with someone else.
Andy: I can attest to that
Andy: In a way it is nice to be able to program it from the keyboard itself, but it is such a hassle I find myself programming it less than my Planck for example.
Jacob: It’s also possible, with the Infinity Ergodox, to share a layout with an Infinity 60% keyboard.
Andy: whoa, interesting possibilities
Jacob: The other bonus about flashed programmable keyboards it the possibilities to add new features to the keyboard.
Jacob:For example, add a small game to play on the lcd screen.
Andy: Yeah, free beer on me for the first one to program Snake for the Infinity Ergodox
Jacob: Should also be possible to use multiple LCDs to make a snake game
Jacob: Which brings up another one of the new features on the Infinity Ergodox
Jacob: The interconnect.
(I’ll try to not get too technical, but it’s hard for this part)
Andy: Please do get as technical as you want!
Jacob: First, I have to explain how split keyboards have been implemented in the past.
Jacob: Most keyboards have what’s called a keyboard matrix that scans each key to see if it has been pressed or not.
Jacob: The easiest split implementation is to just route those wires to the other half of the keyboard.
Jacob: Likely 95% of split keyboards before the original Ergodox just did this.
Jacob: Lots of wires, big cable, expensive.
Jacob: Hard to have more than 2 halves.
Jacob: Now, the Ergodox only needs 4 wires.
Jacob: Because it gets the key state in a different way.
Andy: was that just a TRRS cable?
Jacob: Yep, that’s the TRRS cable.
Jacob: 1 pin for Vcc/+5V, 1 pin for Gnd and 2 pins for data.
Jacob: On the 2nd half of the Ergodox, there’s an I2C GPIO expander chip.
Jacob: When the keyboard controller wants to check the state of a key on that side, it sends a command to the GPIO expander (using the I2C protocol) which then returns if the key is pressed or not.
Jacob: Theoretically, this means you can have a lot more keys, but still use the same 4 pin TRRS cable.
Jacob: However, this is actually one of the main flaws of the original Ergodox.
Jacob: Since the GPIO expander doesn’t do any of the debouncing, it has to scan the keys constantly, which significantly increases latency of the 2nd half.
Andy: Yeah, which is no good at all for faster typist
Jacob: Or if you do any sort of gaming.
(I can’t find the link, but I actually have calculations online somewhere of how slow it really is)
Jacob: So, when I agreed to wotk on the Infinity Ergodox I made it clear that I was going to “fix” the interconnect to at least be low latency.
Andy: When i had an Ergodox (which was sold off to make room for the Infinity) I remember noticing it from time to time, but generally as a non-gamer it didn’t become much more than a slight annoyance. But any kind of keyboard lag really is just no good, it definitely diminishes the experience
Jacob: To deal with the keypress lag we fundamentally changed how the Ergodox halves work.
Jacob: Instead of just having 1 controller, there is now 1 controller in each Ergodox half.
Jacob: This way each Ergodox “node” can do it’s own key detection and debouncing.
Jacob: Then, when the Ergodox node knows a key has been pressed or released, it sends it to the USB connected node.
Jacob: No more polling (constantly asking for updates). The Infinity Ergodox only sends keypress data if it needs to.
Jacob: For those familiar with internet modems of ages past, the new interconnect is running at 4.5 megabaud.
Jacob: I’ve literally clocked it as fast as I can without overclocking the keyboard controllers.
(Under the hood I have error checking and have yet to see any errors)
Jacob: The speed isn’t important for how much data is being sent. It’s important for reducing the latency to the point that the keypress will reach the USB buffer faster than the 1000 Hz that your computer polls the keyboard to see if there are any new keypresses.
Jacob: It’s also possible to send other types of signals through the interconnect, such as changing the LCD backlight.
Andy: So the new ergodox has no perceivable latency it sounds like
Which is excellent
Jacob: I’ve tried to make it lag, haven’t been able to 😛
Andy: That’s what I want to hear
Jacob: (The speed of the interconnect is configurable through the KLL if you have a bad interconnect cable for those that are wondering)
Jacob: Some other features of the new interconnect include using USB 3.0 Micro B cables instead of TRRS cables.
Jacob: This means that only one type of cable is required now.
Andy: that i did not know! that is quite exciting actually
Jacob: (The extra USB port can’t be used as a hub, but it will charge devices)
Andy: Well thats never a bad thing
Andy: Cell phone is always dead, perhaps the InfinityDox will fix that issue as well haha
Jacob: The other bonus of switching to the USB cable
is that it’s also possible to “daisy chain” Infinity Ergodox keyboards together.
Each Ergodox “node” will enumerate in the chain and be uniquely addressable.
Andy: haha, my god, the possibilities of that
Jacob: There are some limitations to chaining, but should work well if setup properly.
Jacob: One of them being, all the layouts and macros must be contained on the Ergodox plugged directly into the computer.
Jacob: So if you only have 2 programmed and plug a 3rd in, the 3rd won’t do anything.
Jacob: In general it’s safest to program all the Ergodox nodes with the same firmware. But it is possible to have a different layout programmed on each half. Then depending on which one is plugged into the computer first, it will use that particular layout.
Andy: This has really taken the Ergodox a lot further than I initially asumed!
Jacob: Yeah, it’s a complete redesign.
Jacob: The controller chips are the same ones that the Teensy 3.1 uses.
Jacob: To compare specs vs. the Teensy 2.0
- 16 MHz vs. 72 MHz
- 2.5 kB vs. 64 kB of RAM
- 32 kB vs. 256 kB of Flash
Andy: Yeah that is a very significant leap
Jacob: 8 bit vs. 32 bit
Andy: Basically, this =P
Jacob: Pretty much.
Jacob: I’m looking at using a 120 MHz ARM /w 256 kB of RAM, 1 MB of flash and an FPU sometime in the near future.
Jacob: But this will be for a ridiculous keyboard 😛
Andy: I cant wait haha. Ridiculous is what I need=
Andy: So, speaking of new keyboards the Input Club is also working on a TKL?!
Jacob: Yep! We’re working on a new TKL called the K-Type.
Andy: So what is the low down on that? I know you’re not just making a normal keyboard haha
Jacob: So far, Input Club has made “niche” keyboards. This keyboard will be polishing up all the new keyboard ideas we’ve been trying to push with the Infinity 60% and Infinity Ergodox and make it useful enough for a typical end user.
Jacob: At the same time we’ll be adding a few new features as well. Including USB Type C and RGB LED support.
Jacob: This will also be our first keyboard designed to be shipped fully assembled (complete with proper FCC certs).
Jacob: Also in the works is a sophisticated configurator to work with the RGB backlights.
Andy: Basically a GUI that actually works? haha
Jacob: To add reaction anmiations to key combinations.
Jacob: lol yep
Jacob: All of it will be Opensourced and there won’t be any drivers required.
(Windows currently requires a small virtual serial port driver if you want to use the direct APIs though)
Andy: That will be amazing
Andy: really a game changer for RGB keyboards for sure
Andy: I’ve had nothing but awful experiences with current lighting software
(Razer Synapse….I’m staring straight at you, Corsair, you can’t hide either)
Andy: Will there be anything special about the case or layout of the K-Type?
Jacob: Layout wise, it’ll be a standard TKL.
Andy: Will it use a plastic case or are you going acrylic or aluminum?
Jacob: As for the case, can say too much yet. But it’ll machined aluminum.
Jacob: (forgot to add this for the RGB support)
Jacob: The RGB support will be using a very similar ISSI chip that should achieve similar 60 fps update speed.
Jacob: In this case, it’ll really be like a color display.
Andy: Truly endless possibilities there in that case
Jacob: We’ll include at least one game built-in to the keyboard.
Most likely to be snake 😛
Really, the purpose of the K-Type is to make a polished TKL.
That has all the main features the general keyboard community wants.
Andy: Cases are always important to me, and something I’ve very happy to pay for combined with features the community has been wanting for ages really makes this an extremely exciting keyboard
Andy: Simple upgrades that larger companies really just seem to ignore for one reason or another
Jacob: Yep, larger companies just rely on their marketing teams to come up with the feature lists.
It’s very rare to actually see them as active community members.
Jacob: Since the whole thing will be opensource, it’ll be quite easy for the DIY types to make their own cases as well.
No guessing dimensions, or trial and error.
Andy: Speaking of, will their be kit options available as well for people that want to tune switches and such
Andy: or perhaps install LEDs on the bottom of the PCB instead of the top for lower case lighting instead of switch lighting?
Jacob: If enough people ask, then sure, we’ll have a kit version.
Jacob: I’ll see if I can get reverse mount leds added.
Andy: Very cool. Kits are always fun IMO, especially now with specialty switches hitting the market
Jacob: I think the limit is 144 rgb leds until I need more chips
Andy: That is a lot really
Andy: Do you have a projected date for the K-Type to be available, or is it still in the early stages of development
Jacob: It’s still a bit early yet. Though, at this point, probably early next year.
Andy: That’s not really too far off
Jacob: It really depends on whether the polish is there.
Andy: Yeah, no reason to rush it
Andy: Do you have a plan with how you will distribute it yet? Will the Input Club eventually have their own store?
Jacob: Distribution plans haven’t been decided yet. But we won’t be relying on Massdrop at least for the first batch of keyboards.
Jacob: I’m sure we’ll have a storefront at some point.
Andy: Very cool, glad to see you becoming a more independent company in many regards
Jacob: It’s a stretch sometimes, all of us have separate full-time jobs 😛
Andy: Yeah, I completely understand that. Constantly overwhelmed with stuff as keyboards are quite a labor of love
Jacob: I find trying to fit keyboards into every spare moment I can find.
Jacob: Which usually means (nearly) passing out on the keyboard, lol.
Andy: Haha happens more often than not
Andy: Luckily keyboards are such a part of normal life it isnt too difficult to find time to test new ones out, or enjoy the ones I have. Regardless what job I’m at, I’m on a keyboard 🙂
Jacob: That’s what makes them so fun. You can use them, even when doing real work.
Andy: AND they make real work not so dreadful, super plus
Andy: Going a little backwards to past interviews, found any more new-old keyboards since the last interview?
Jacob: Nothing super exciting, but I have a constant influx of old keyboards filling up my cube at work.
…is one of them
Andy: Thats pretty nifty, what was it originally used for/on?
Jacob: I have no idea.
Jacob: It came in a sealed package, so was likely never used.
Jacob: I’ve had this for a while, but took pictures recently:
There are a bunch of videos online of it (was designed for amateur radio iirc).
Andy: those keycaps are amazing, very cool keyboard as well
Jacob: But, you’ll notice, its the same layout as those Alps keyboards I showed off in the previous interview.
Andy: Ah yeah it sure does
Jacob: I’ve been doing a bit of work on that keyboard this week actually.
Jacob: It’s gonna be cool 😀
Jacob: So far, the only feature modern keyboards have been pushing for is light.
Jacob: Which can be used as a visual indicator.
Jacob: I think it’s time for a ridiculous keyboard based around sound.
Andy: yeah that would be insane
Andy: so many things and so many places you could go with that
Jacob: At minimum, there will be at least 1 speaker and 1 solenoid. Though I might stick more. Just because I can
Andy: I vote for more. More is always better
Andy: Coworkers will love you I’m sure
Jacob: But, one of the reasons to do a keyboard that can vary the sound.
Jacob: You can turn it off.
Jacob: Can’t turn off MX Blues or a Buckling Spring keyboard.
Andy: This is true. Could be a game changer
Andy: SK-Type (“S” for sound, see what I did there)
Jacob: Haha, might have to use that 😛
Jacob: Might do some fun stuff like implementing basic audio mixers, having an SD card to load up sound clips, waveform based sounds, etc.
Jacob: I’ve been told to add an external jack out so you can attach a sub, lol.
Andy: I know Jack at olkb.co is working on something of that nature, though really not sure what yet
Jacob: Haha, neat. I’ve been planning on doing something like this longer than Input Club has existed.
Andy: I think he may be adding faders and knobs to control DAW’s and such, but never really got into it with him
Jacob: But things like KLL had to be written first.
Andy: no so much real time sound
Andy: yeah, that is definitely the harder part too I bet
Jacob: Similar to RGB LEDs, sure you can have them, but what do you do with them.
Andy: that is the key, isnt it?
Andy: so do you have your sights on anything beyond the K-Type, or are you trying to stay grounded with what you have in front of you for now?
Andy: nothing wrong with that
Jacob: I think the K-Type just represents the beginnig
Andy: that is good to hear, very good to hear
Jacob: Input Club isn’t here to be a typical business.
Jacob: We exist to progress the state of input devices.
Jacob: It’s the reason we Opensource stuff. We want people to copy us.
Andy: Its a good goal, certainly not one larger companies have
Jacob: So the general keyboard isn’t so crappy.
Andy: As things progress, you definitely need to find time to finish making your own switch from the ground up, that would also be a whole new game changer
Jacob: That’s right, until we can configure every single aspect of a keyboard, we aren’t done.