Rebuild A Podcast by Tatsuhiko Miyagawa. Talking about Tech, Software Development and Gadgets.

May 08

9: Making your own keyboard (Jesse Vincent)

収録時間: 34:45 | Download MP3 (19.9MB)

Jesse Vincent joins me to discuss his recent experiments to build his own keyboard.


miyagawa: So, this is the first episode of my podcast with an English speaker as a guest, and here is Jesse Vincent. Hi, Jesse.

obra: Hey Tatsuhiko, how are you.

miyagawa: It's great to have you here.

obra: Thanks for having me.


miyagawa: So, we are just back from OSDC, Taiwan, which is actually not true because it was two weeks ago. We wanted to record the show while we were in Taipei, but we just forgot about it but here we are, so let's talk a little about that conference. Just in case the listeners of my show do not know about this conference, it's an open source developer's conference Taiwan, and I think it's an annual conference in Taipei about open source stuff.

It's kind of like, OSCON, it's kind of like YAPC, but is not as big as OSCON and it's not limited to Perl, like YAPC. And so I think it's really interesting conference, what did you think about this year's OSDC?

obra: I enjoyed it, there were lots of interesting talks, there were lots of clearly interesting talks that I didn't understand. That's one of the problems of being an English speaker, there's usually a lot of stuff there that I can tell from the slides, is really interesting, but I don't actually understand enough of to really get a lot out of.

miyagawa: I think I might be a little better at understanding because of the kanjis they use, but other than that sometimes the jokes do not translate very well, but otherwise it's a pretty enjoyable conference. I think the topics of the OSDC has been... these days a lot about database and JavaScript, and not about programming languages.

obra: Yah, there's been a lot of database, JavaScript, there seems to be a fair amount of big data... and there's always a sort of a little bit of random stuff... a tiny bit of hardware, there's some community sorts of things, it's clear that most people there are very technical, but it's not language hackers.

miyagawa: Right.

obra: Not so much.


miyagawa: Yah, I did my presentation about cpanminus 1.6, and 1.7 which I have been working on for the past couple of months, and my talk had a little bit of a problem with the slot because one of the speakers did not make it at the conference, due to family problems or something like that, and my slot has been changed at the last minute, and they were against Kawasaki-san's.

obra: Ooh.

miyagawa: So, none of my friends came to my talk, which is fine, because the talk had been the same with my screencast that I uploaded the other day. The talk went really well, but it was 30 minute slot and I had 10 minute left because it originally was a 10 min talk.

obra: Right. Originally, you and I were going to split a slot.

miyagawa: Exactly, a 30 min slot, which would end up really bad if that happened, but yah, I waited for a question and nobody really asked questions, which is fine, I mean usual in the conferences in Taiwan and Japan, because they are like shy away and don't raise their hands to ask questions. They really didn't ask questions, so I asked back, who actually uses Perl, and then there's only a couple of people...

obra: Ahhh.

miyagawa: Out of 30-40 attendees, so it was kind weird, but otherwise it went well.

obra: My talk this year was about the keyboards I've been making, and just at the beginning of my talk, I asked, "who uses keyboards?" And not everybody put their hands up.

miyagawa: (laughs)

obra: So, really, you know, there probably were a few more people who used Perl, and didn't raise their hands.

miyagawa: That's probably right. You should have asked, "who here, does NOT use keyboards?"

obra: Fair enough.

miyagawa: Yah. Okay, let's talk about that stuff. At OSDC, you presented making a keyboard from scratch?

obra: Yah.

miyagawa: Can you tell us a little bit about it?


obra: Sure. So, I guess it's now been about 6 months that I've been working on making keyboards. I've always used an external keyboard because my very first job out of university -actually I was a student- the company gave me a chair with ergonomic arms, and the desk with a drawer that had the keyboard at the perfect height, that I never had or assigned before. But all these ergonomic things they gave me made my arms... gave me really bad RSI. So since that time, I've always used an external keyboard that's more comfortable than what's built into a laptop or a desktop, and for a bunch of years I would carry around one of those Microsoft natural keyboards, one of the giant cheap white ones. And I guess it was about a year and a half ago now, over the Christmas and New Year's holiday, I stumbled across a blog post that talked about a sort of keyboard-otaku. It's sort of like people say, you spend so much of your life sleeping on your mattress, and that it's worth spending a lot of money picking a good mattress, or a good desk chair.

And I spend so much of time typing on a keyboard that maybe it's worth spending more than $20 on a cheap keyboard. So, I bought a keyboard, it was a KBC poker, and it was a Taiwanese tiny mechanical keyboard where they call it 60%, it was pretty good, key switches, and it was compact so that my hands didn't have to move very much, but I started reading the keyboard forums and discovered sort of how much else was out there. Most of the new keyboards being made that are designed for gamers, and I'm very much not a gamer, the games I like are writing programs.

And I discovered there was a group on one of the forums who were designing a split keyboard, one piece for each hand, with the keys aligned in columns, so that your fingers don't have to go at crazy angles. And that sounded really cool, so I tried to figure out how I could make one according to their new design, and they had released, I guess this was actually about a year ago now, they released the STL files to be able to put the shelf in their keyboard, but they didn't want to release the circuit board design. And I'm not a hardware guy, I wasn't a hardware guy. I haven't soldered since I was 10 years old, I didn't own a soldering iron, I didn't own a multimeter.

But I was reading these forums and discovered that mostly these days keyboard is really simple. It's key switches, which you can buy from a distributor, diodes, a wire, and then you buy a microcontroller, you could use Arduion but you could use something as simple as a little Atmel chip, an Atmel AVR chip, which you program in C. And in fact, there's good open source keyboard drivers fit on for these. So I bought some key switches, diodes, wire, soldering iron, and I started trying to put it together. And it took me about 40 hours of soldering to get it right, and that's because I hadn't done this ever, and I had to do it over four times because I screwed it up really badly a couple of times. But in the end I had a working keyboard, and it was kind of comfortable.

But it wasn't quite right, it didn't fit my hands as nicely as I wanted, and I spent a lot of time doing a lot of research online, downloaded about 300 patents from the US patent system, for different interesting keyboard designs throughout the years. But the most sensible thing I actually found was a Japanese design from the 80's, from the TRON project, run by, I think it's Ken Sakamura.


obra: And it was really clear that there is this keyboard called the TK-1, the "TRON keyboard one," that had been produced in 1987, and not many of them were made, I've never figured out how few, there are pictures on Wikipedia, and little bits on various places on the internet, and by reading backwards, through citations and papers about ergonomics, I found that there was a single paper in English published by Sakamura-san's lab about the actual dimensions of the TRON keyboard, so the angles and everything, shapes of the key switches... I'm skipping over a whole a lot of stuff about a micro-TRON keyboard which is still produced in Japan in very limited numbers, that I actually went and had to go buy, for cash in the offices of the company who makes it, because they don't have distributors, really.

miyagawa: Oh, did you buy it??

obra: Oh yah, I bought one when I was in Tokyo for YAPC::Asia last year. I tried to buy one on Amazon JP, and realized that it wasn't going to arrive in time, so I reached out to the company and said, "Can I buy this anywhere in Tokyo?"

miyagawa: Did you find it in place.

obra: Well, I did, so I know there was a shop in Akihabara, that used to sell them and I went to the shop and discovered that they had closed. And coming back and saying, well, there's one shop that can order it for you a demo unit if you want to see a demo.

And I've seen it before and I know I wanted to buy it. Well, if you want you can come to our offices on Monday, and bring this many thousand yen with you, I'm very sorry we can only take Japanese bank transfer or cash, but we'd be happy to sell you one. And so I showed up and they were incredibly nice to me, they let me try a demo unit, I said, "No no, I've already tried one, I know I want one." I handed them a big stack of yen, they handed me the keyboard, and invoice, and a little red bean treat.

miyagawa: I thought I saw it on Amazon, and it was like $500?

obra: It was very expensive.

miyagawa: Yah.


obra: I had gone back and forth about whether I wanted to buy it many times, because it existed for a fair number of years, and it was so expensive that it didn't seem worth it, because I didn't know if I would love it.

As I have been getting into designing keyboards I realized that it's a unique keyboard, and I probably should get one because I can learn from it. And it has some of the best design in any keyboards I have ever seen, most keyboards, all of the keys go at the same angle left or right, Q is to the left of A, to the left of Z. On this keyboard, on the right hand, it has that same set of angles. But in the left hand, Z is to the left of A, is to the left of Q, so it goes with the angles of where your fingers are at.

It's two halves that are split apart, and it's based on the design of this TRON keyboard I was talking about, the problem is, for me, is that it is very carefully designed based on a survey of Japanese' hands, it's designed for Japanese typists.

miyagawa: That's what I was trying to say. When I look at the website of the micro-TRON keyboard, it has a tag-line, it's pretty much like what you described, like "a keyboard for humans," but it also says, "for Japanese."

obra: Yes. It turns out that, as a big Westerner, my hands, my fingers are bigger than Japanese hands, mostly.

miyagawa: So when they say "for Japanese," is it about the size of their hands?

obra: The keys are 95% of the size of, standard Western keys. I can type on it, but it's a little bit too small to be really comfortable for me, each key. The key layout is of course also optimized for Japanese. They have their own design Japanese layout, and the English version of their design layout is actually Dvorak.

miyagawa: Oh, okay. Not QWERTY.

obra: It has QWERTY mode, but it also has Dvorak mode. But this is sort of the spiritual descendent of this TRON keyboard that I have been researching. And so I finally found that there's this one paper published in 1987 by Sakamura-san's lab, and I tried to find it on the internet. And finally found that I could buy a copy of it for $80 for this one paper. Doing a little bit more research I found that it had been published in the proceedings of their conference in 1987. And there was a paper copy on Amazon for $20 of the entire conference proceedings. So I ended up buying this paper book from the 1980's to get the dimension.

miyagawa: If I were in Japan at that time, I could have probably gone to the Univ. of Tokyo lab., to get a copy of that for free I think. But yah, that didn't happen.

obra: I understand. In fact, Sakamura-san's Japanese language papers are all on his current website. So I found, papers about the keyboard but it was more about the research they did to make the keyboard, rather than the engineering of the keyboard.

miyagawa: So you got a copy, and did that help?

obra: It helped a lot. I actually made a keyboard that was... I guess I should step back, so, when I started making keyboards, my plan was to 3D-print them, because I got this first one 3D-printed, and it was good quality and was exactly what I had specified, but it was very expensive.

miyagawa: The printer itself?

obra: Getting one copy printed.

miyagawa: I see.

obra: I did the math and realized that if I was going to make eight prototypes, it was cheaper to just buy a 3D-printer. So I decided, okay, now that I have a reason to buy one I'll go buy a 3D-printer. So I ordered a 3D-printer, and it was going to take about two months to come. And I was impatient. It turns out that there's a shop near my house that has a laser cutter, and they'll let you use the laser cutter for $2/min. Sort of like a fab-cafe in Tokyo, except that this place doesn't have a coffee.


obra: And so, I used Omnigraffle to design through my next keyboard. So I created an .eps file on Omnigraffle and I walked in to their shop, and they cut it for me. And I went through a couple of iterations like that, and so the first one was before I got access to the TRON paper so everything was straight lines. And it wasn't right. And I actually did one where all of the keys were placed -because those laser cutters were flat- rather than up and down angles, all of this sort of left and right angles and key placement was based on the TRON keyboard, and discovered that in fact, I have broad shoulders. So even though I had corrected for the fact, I made the keys bigger, because I'm a Westerner and wanted a bigger key caps, all the angles still assumed that my shoulders would be narrower, because it was designed for an average Japanese. And so since then I iterated and did a couple of more moving the angles so that it'd be more and more comfortable. The last couple I've built I've actually started, rather than making all the keys in columns that are parallel to each other, I've made the columns sort of spread out, like the rays of sun, which is similar to the TRON keyboard design, and it's very very comfortable. I was surprised at how nice it is.

miyagawa: Cool. I think it's hard to imagine what it's like, by explaining it in a voice, so I will put the links to the pictures on show notes.

obra: Excellent.

miyagawa: So that the listeners can see it. So, what's the status of that right now?

obra: I'm now putting together the seventh prototype, my wife actually finally said to me, this is more comfortable than all the keyboards I used, will you make me more. Which was a good sign to me. So I designed a keyboard for her and putting it together, I'm pretty close to saying that this is the design that I want to make more than one of. And so, the next thing I need to figure out is if I can find a way to put a mouse or cursor on it somehow, whether it's a track point, or a track ball, or a touch pad, because that's something that a lot of people have said that would change whether I would be willing to learn a new keyboard or not.

miyagawa: So, the current design, is it kind of like one body, and not spread between the right hand and the left hand?

obra: Yah. Right now it's one piece keyboard rather than two separate pieces, because I type at my lap a lot. I have my keyboard on my lap, and a computer in front of me, and what I found with two separate pieces is, I can't balance them on my lap. In my ideal world, I would probably have two pieces that are connected, that you can sort of change the angle on, but that's much harder engineering.


miyagawa: Yah, the reason I asked was if the keyboard is split and connected with a cable, you can put something like magic trackpad in between those pieces, to use it as a track pad replacement. I saw someone did that, using the Kinesis, put Apple's magic track pad between right hand and left hand pieces to use your thumb to control.

obra: That was actually something I tried with sort of very first one that I had laser cut, and it was kind of nice but what I find is that when you have a track pad between the hands it means you'd still have to move your hands in weird ways. So what I'm trying to figure out is something where it's really easy to use just one of your index fingers, having a pointer that is sort of very close in, and very easy to move.

miyagawa: Yah, so I think we are just taking back to the original motivation - I think one of the reasons you wanted to make a different kind of keyboard was to not have shift keys, ctrl keys, and return keys on pinky fingers, right?

obra: Right. It turns out that your pinkies, while they are dexterous, while they can move around pretty well, they are very weak. When I watch most programmers I know type, they don't use their pinkies to hit the shift and the caps lock and the return, they use their ring fingers, the fourth finger rather than the pinky. And, that doesn't mean if you are a proper typist you don't use your pinky. But that's kind of wrong, that means you are twisting your wrist in funny ways, and you're not really making an effective use of your hands.


miyagawa: I think that's one of the things that has grown up on me, when I started using the computer, I was using a Sun computer, I think with English keyboard on it. So the ctrl is in the right position, right as in the position of caps lock these days. You know, I started using the Emacs, and there's shift key and ctrl key, I always have to use them. And, when I switched to a Mac, it has the alt key and the command key in addition to those keys, right. Usually, there's an Esc key and meta keys to share in Sun computers, but now we've got Esc, tab, caps lock, shift, caps lock, ctrl, option, and command keys. That makes me crazy, but as days go by, I put my pinky finger on left shift all the time, my fourth finger on ctrl key, which is actually a caps lock key, so that I can only use the middle finger and the index finger to type all of these left hemisphere of the keyboards. My right finger often invades those areas like T, R, and D, when I need it. I actually type faster (that way), that's why I have no home position.

obra: Yah. So the design I have puts 5-6 -depending on which model- keys on each thumb. So on the right hand thumb you got space, on the left hand thumb you got backspace, on both thumbs you have shift, -on a Mac- command, when you've got ctrl on the other you've got alt, and then you've got a second shift key to get to a second layer. On that second layer, arrow keys under HJKL, you've got your single quote lives under semicolon, your double quote lives under P, your brackets live under YUIO. And so the design of the keyboard is such that, and this isn't actually what the TRON keyboard did, the TRON keyboard actually has a lot more keys than my keyboard, it's designed so that you almost, you shouldn't have to move your wrists very much. Your thumbs do most of your meta keys of various sorts, space and backspace, and your fingers should be able to reach every other key. And so it should make your thumbs and your fingers hurt less, because there's less crazy reaching and twisting you'd need to do.


obra: The layout has been interesting, and I've been learning a lot, in my most recent model I'm adding a couple of more pinky keys because it turns out that they are very easy to reach. Your pinkies can get over farther, but I don't know that there are strong. So I don't want to put common keys on them.

miyagawa: So, some rare keys you put up on there?

obra: I'm thinking rare keys, I may put, for example the single and double quotes back over there. It's playing around, all of these keyboards are very very programmable, so I've been evolving the layout as I learn more about what I'm doing, and as I get more people to try it.

miyagawa: You still have the number keys on the top row?

obra: I still have the number keys, and I'm a little bit conflicted about it because number keys turn out that they are not harder to reach, it's just a little farther away. So I've been thinking about whether I can put an embedded number add-in on the right hand rather than having that whole number row. Some keyboard designers do get rid of it, but I'm not sure.

miyagawa: I think the number keys matter more to the programmers because they are shared with punctuation characters like @, $, %, especially for Perl programmers. So if you relocate these keys that would be a little... you have to learn a little bit to get used to it.

obra: That's... I mean, one of the things I've been sort of worrying about is, from designing these things I've been thinking a lot about is, how much can I change without making it too hard for people to adapt to. Because if I were going to make a keyboard that was as comfortable as possible for people, one of the first things I'd do is I'd get rid of the QWERTY layout.

miyagawa: Right.

obra: And there are much better... there's Dvorak, and there are more modern designs that are similar to Dvorak but better optimized. And it would make sense for people to switch to those but that's scary.

miyagawa: That would not probably get as much adapters as you'd want.

obra: Right. So, right now my keyboard has a secret mode that turns on Dvorak and another secret mode that turns on Colemak. And when and if I get to production with these keyboards, that would become an actual feature, but they would all still ship with QWERTY.


miyagawa: You said that even without the keyboards you make yourself, you usually bring your keyboard, so that you can comfortably type, even when you are at a cafe, or a library, that's one of the things I'm kind of worried about, buying a separate keyboard. I use a separate keyboard at home, but it's an Apple keyboard which feels exactly like a MacBook keyboard, so that I can take out only my MacBook Air, and I type, at a cafe, on a MacBook. It's the same keyboard.

obra: So that was something I was worried about too, one of the things I've discovered is that it is easier for me to switch between this and a MacBook keyboard, than it is for me to switch between a regular staggered square external keyboard and a MacBook. This is different enough, that it's not the same, it doesn't have the same feel, so my fingers don't feel confused. I don't know the right way to describe that.

miyagawa: Yah, that makes sense, so if you have a similar kind of layout, still having shift key in a pinky, your fingers kind of get confused in which keyboard you are typing on. But your keyboard feels different enough that you're not confused at all.

obra: Yes. When I'm switching between a 60% style keyboard and a MacBook keyboard, maybe Esc is in a slightly different place, or command and option are switched, or one of the shift keys is smaller. And that really messes me up. When I was doing that I'd use tools like KeyRemap4MacBook, and PCKeyboardHack.

miyagawa: Right. I remember when I switched from my Thinkpad to a MacBook, the biggest difference is that Thinkpad is made in Japan, maybe made in China, the keyboard has the Japanese layout. And MacBook obviously has an English layout. The difference is that those punctuation characters and quotes and brackets (are) laid out slightly differently. Like, $ is on 2, not 4. @ is on the right of P, not on 2. These kinds of slight differences kind of made me mad during the transition phase because I had to use the MacBook keyboard in the office and Thinkpad at home.

obra: I thought Apple sold Japanese layout keyboards?

miyagawa: They do, but I used the keyboard the company bought for me, which was in English (layout).

obra: Got it.

miyagawa: I think it was a good change, in the end. I do not regret it, I feel English keyboard is much easier to use now. It's not easy, it's more difficult but it's better to switch to English because everything else is English here.

obra: Understood. As I was doing my research I actually found some really neat papers from the early 1980's from Japan, about, "as we start to use computers in Japan, we need to think very hard about keyboard layouts so that we don't repeat the same mistakes that the West made...

miyagawa: (laughs)

obra: ... that they adopted QWERTY... " and actually there's been an article in Forbes in a link that keeps popping up on Hacker News this week, that talks about a new paper from Japan that actually refutes some of the claims from that paper, but it was really a fascinating paper because it talked about, "as we get computers and as people start to try to type kana and kanji regularly in Japan, and it's not just professional type setters but regular people in offices, so we should think very hard about this."

miyagawa: Yah, it's a JIS keyboard, Japanese Industrial Standard keyboard, it's a standard thing.

obra: I think this was before JIS.

miyagawa: Ok.

obra: This was when they were thinking about...

miyagawa: Oh, the research, yah.

obra: Yah.


miyagawa: Cool. So, is this a hobby or is this like business?

obra: Ah, what an interesting question! So, my last startup failed last July, which is a sad story but it happens. And I swore that I was going to take a year off. I was going to take a year sabbatical. And I didn't know what I was going to do, I built a little bit of software, I played around, I read books, I wasn't doing too much, and I decided that I was going to try to make a keyboard. And, more and more people keep saying, "Oh, I'd buy one of those, that sounds like a great idea!" And I would name the price that I thought I would have to charge for it, my guess for it is, for a small amount of these, that are made with very high quality materials, that it would probably cost about $250 for a finished keyboard, of a good quality that I can support. And most people I say that to, most people who are willing to buy the keyboard at all, they are like, "Okay, that number makes sense." And, it's gotten to a point where, enough people have said that, that I think I could do a small production run and not lose money on the production. And so, I think the right thing to do is a kickstarter, there's some hardware Appcelerator, that I've been trying to decide whether to apply to one of those. And I've been trying to figure out the economics of it. I've got some other keyboard related ideas that may make more sense for mass appeal, things like a proper keyboard for iPad, a keyboard with good mechanical keys for an iPad.

miyagawa: Whatever accessory for iPhone and iPad, that makes some kind of traction if you do it on kickstarter.

obra: If somebody can be successful on kickstarter with a typewriter keyboard for an iPad, I can probably do it with a good high quality keyboard for an iPad. I have a crazy project that I can't talk about yet, that might be done by, when I'm in San Francisco next week to show you that. It's kind of related to some of these.

miyagawa: So, if you wanted to follow the updates, is there a website?

obra: So, well yes, there is a website, so, the keyboard project is that's the website and the twitter name is @keyboardio.

miyagawa: Yah, I will put those links on my show notes. What a wonderful domain that you've got!

obra: Yah, I was kind of amazed that it was still there, I almost registered QWERTYU.IO, like the top row of a keyboard. But it's cute, but it doesn't sound as good, it's harder to remember... well, it's harder to explain. It's pretty easy to remember.

miyagawa: Well, I'm looking forward to seeing you next week and seeing what you are secretly working on, in addition to the keyboards.

obra: Yes! It's related to the keyboards, and is related to your concern about how many things we have to carry at a cafe. That's all I could say on the record right now.

miyagawa: That sounds awesome! So, listeners can follow you on twitter at, @obra, and your blog on

obra: Perfect. Yes.

miyagawa: I will put the show notes on there.

obra: Lovely. Thank you!

miyagawa: It's great, thanks for the chat.

obra: Cool, thanks for having me, this has been fun!

Transcribed by May Horimoto