geekhack

geekhack Projects => Making Stuff Together! => DIY Discussions ARCHIVE => Topic started by: cfishy on Sat, 10 October 2009, 04:03:57

Title: Frankenstein, prototype
Post by: cfishy on Sat, 10 October 2009, 04:03:57
Work in progress: This isn't exactly a mod; it's built from the ground up using Cherry Blue switches. The microcontroller is the commercial X-key controller from P.I. Engineering.

pre-wired glamour shot: http://www.flickr.com/photos/20106852@N00/3980790575/
(http://farm4.static.flickr.com/3476/3980790575_a114425d19_b.jpg)

Partially wired working video demo:
http://www.youtube.com/watch?v=Nj6LFgt_mAs

I call it Frankenstein because I was watching The Young Frankenstein when I was soldering the switches. My keyboard from salvaged part reminded me of it: http://www.youtube.com/watch?v=SwLAdWPjZsg
Title: Frankenstein, prototype
Post by: AndrewZorn on Sat, 10 October 2009, 05:19:03
looks a lot like lowpoly's (as in, awesome)

is this hard to do once you have all the parts?  is it more difficult physically constructing it or doing the electrical stuff?
Title: Frankenstein, prototype
Post by: Rajagra on Sat, 10 October 2009, 08:44:11
Where is the enormous schwanstucker key? :-)

I like the idea of a clear base.
Title: Frankenstein, prototype
Post by: msiegel on Sat, 10 October 2009, 13:24:08
it's alive! A L I V E !!
very cool :D :D
Title: Frankenstein, prototype
Post by: JBert on Sat, 10 October 2009, 13:38:23
Interesting use of wide keys where the space bar used to be. I'd love to have a keyboard like that, would allow me to add all kinds of stuff to those keys.

The only thing I would comment on though is the conventional staggering - if I would build a keyboard I'd try to get rid of it and use a symmetrical layout.

But all in all, thanks for giving aspiring keyboard prototypers yet another possible route to a working example.
Title: Frankenstein, prototype
Post by: roadblock2thesun on Sat, 10 October 2009, 15:23:42
@cfishy,

I looked into this controller, but have a few questions for someone who has actually used it:

(1) How many layers does it support?
(2) How do you wire in those layers?

I'm sure there are other questions I have...

Excellent work though, cant wait to see the finished product,  Did you consider printing a circuit board and found it too expensive?

RB
Title: Frankenstein, prototype
Post by: lowpoly on Sat, 10 October 2009, 15:44:13
Great keyboard! Love the acrylic plate.

How did the hand wiring go? I suspect it's kind of comfortable to do once you get used to the pattern. I think there is wire with laquer (?) isolation that will burn or melt when you solder it. Not sure if it would work here.

So, how do you plan to continue?
Title: Frankenstein, prototype
Post by: cfishy on Sat, 10 October 2009, 23:24:17
Hi everyone,

Thanks for your responses. The prototype is bare minimum of what a completely customized keyboard could work. So, I used clear acrylics because they are the cheapest that I can laser cut. No bevel because it's bare minimum.

The keys caps are salvaged from two sets of Scorpius M10s. One of which sand blasted to that ugly grey color.

X-key does support two layers, according to the software manual. It also comes with LEDs that shows you which layer you are on. I'm actually having problems with certain rows-columns with x-key where the programming software scans all the columns. For connector pins: there are 8 rows, 16 columns, bunch of grounds and 5v drawn from the USB host. They are in the form of 2x15 standard male headers, that's 0.1" apart. There's a hardware switch on the board for programming mode. I have been trying all sorts of ways to wire up these hundreds of wires, will report back what works. Each key also can be programmed with multiple scan codes, delays, etc.

The good thing about laser cut layers is that you can layout any way you want.  My first versions of the cuts are actually split into to hands because the scrap acrylics are not large enough for the whole keyboard. It's pretty amazing that the split is so precisely cut that you can just put them back together and they fit perfectly like a single piece. here are some pictures:

(split) http://www.flickr.com/photos/20106852@N00/3975766510

(placed next to each other) http://www.flickr.com/photos/20106852@N00/3975919762

I promised to make a UK Mac version using Cherry blue switches for my friend in London. I have trouble finding the enter key caps though,

http://km.support.apple.com/library/APPLE/APPLECARE_ALLGEOS/HT2841/HT2841-Wireless-British.jpg

Anyone know of a source? i can find "L" and "J" shapes, but not that specific shape.

Also, I might have to make stablizers for larger keys, which is one main reason I don't have any over 2x wide keys right now.

I was quite amused that Optimus Maximus keys aren't even lined up on the edges of the layout. So I guess it really isn't that big of a deal.

Yeah, the soldering gets much easier after 30 or so. but that's 30 or so painful lessons.
Title: Frankenstein, prototype
Post by: cfishy on Sat, 10 October 2009, 23:40:18
Also about printing circuit boards: It needs multiple layers or jumpers, I gather, and it won't be cheap. Now that I have soldered a bunch, I'm thinking PCBs is a great idea. These cannot be hand made because the holes are precisely placed to hold the bottom stems. I have access to CNC routers and I will try using that as soon as I figure out how. I'm hoping the accuracy is good enough.
Title: Frankenstein, prototype
Post by: rdjack21 on Sun, 11 October 2009, 21:35:38
Really nice. thanks for sharing. Things like this help motivate me for some of the things I want to try.
Title: Frankenstein, prototype
Post by: quadibloc on Mon, 12 October 2009, 07:09:56
For the keyboard to have no right-hand Alt key means you miss out on having AltGr, and I'm dubious about doing without a proper space bar as well.

I realize you're trying to obtain a compact layout using full-size keys, but the point of any project like this is to arrive at a better keyboard than anything available on the market. So I think you should be very careful to avoid any compromises that you might end up not being happy with in the future.

Sorry to perhaps be chiming in with the one negative comment, but my intent is just to sound a helpful note of caution. And, of course, keyboard layout preferences are a personal thing.
Title: Frankenstein, prototype
Post by: Rajagra on Mon, 12 October 2009, 11:44:18
Quote from: quadibloc;124620
For the keyboard to have no right-hand Alt key means you miss out on having AltGr,


I also don't see a Home key, but I assumed there was some relabelling or finishing yet to be done.
Title: Frankenstein, prototype
Post by: cfishy on Mon, 12 October 2009, 12:45:59
The point of this prototype: No two keyboard geeks like their layout the same way. Instead of paying hundreds for many keyboards that each of us is 90% happy about, we can make a keyboard layout exactly to our own liking, and assign scan code accordingly.

The x-key controller is now functioning perfectly, I think my previous problem is weak contact points. I crimped some wires to fix that problem: http://www.flickr.com/photos/20106852@N00/4000652228/
Title: Frankenstein, prototype
Post by: cfishy on Mon, 12 October 2009, 12:59:45
Quote from: quadibloc;124620
For the keyboard to have no right-hand Alt key means you miss out on having AltGr,


It's not missing a right Alt key at all; before programming the keys, they are just switches with no scan codes, and whatever legend printed on the caps as I found them from my salvage key caps bag. X-key lets you assign scan codes for each key. I am placing key caps according to the row height and width. Say, Tab and Control keys might be the same width, but they are not the same height because they are on different rows.

I personally don't use right Alt, Win or Ctrl; i think the pinky's got a raw deal when it comes to typing.
Title: Puttin' on a Ritz!
Post by: cfishy on Thu, 15 October 2009, 23:30:38
After much soldering and de-soldering,

(http://farm3.static.flickr.com/2646/4010027735_be2c7e8598.jpg)"




I'm able to solder a fully working matrix:

(http://farm3.static.flickr.com/2761/4015255987_aa54c9a26a.jpg)

front: with some more wiring i can probably put the controller away under the key switches:

(http://farm3.static.flickr.com/2770/4015255997_da91b9807e.jpg)

but the problem is x-key. the controller sucks. it's super slow. so my next project will be using some keyboard controller ripped from a production keyboard, possibly a wireless one.

As Frankenstein would say, "Puttin' on a Ritz!!"
Title: Frankenstein, prototype
Post by: cfishy on Thu, 15 October 2009, 23:36:56
Quote from: ripster;125918
Whoah - that's a lot of wires.  The embedding ain't working so hot - just stick the http link in.

When you say slow controller you can actually feel a lag from keypress to key recognized?


link fixed. the lag is more like, typing something and wait til the text show up. it's not ok.

I got a teensy++ here and i might give that a try. Because the hardware matrix is already done, it's not possible to retrofit it to a production keyboard's controller anymore. I need to trace the circuits so I know where to wire which.
Title: Frankenstein, prototype
Post by: Mnemonix on Fri, 16 October 2009, 15:04:31
Quote from: cfishy;125920
I got a teensy++ here and i might give that a try. Because the hardware matrix is already done, it's not possible to retrofit it to a production keyboard's controller anymore. I need to trace the circuits so I know where to wire which.


Hm, I wonder if my Keyboard Upgrade firmware would run on that one... ;)
If want to try it, I'll be happy to help you adapting it to your needs.
Title: Frankenstein, prototype
Post by: cfishy on Fri, 16 October 2009, 16:19:29
oh! I think this might be what's wrong: I need to switch the x-key controller to hardware mode. otherwise it uses a system daemon to "translate" the key strokes. that's why it's so slow.


http://www.xkeys.com/software/hardware.mode.php
Title: Done!
Post by: cfishy on Sat, 17 October 2009, 02:56:58
Quote from: cfishy;126165
oh! I think this might be what's wrong: I need to switch the x-key controller to hardware mode. otherwise it uses a system daemon to "translate" the key strokes. that's why it's so slow.


http://www.xkeys.com/software/hardware.mode.php


Yup! that's what it is. I switched to hardware mode and programmed each key and now it works perfectly and is machine dependent.

In fact, I'm typing this post using Frankenstein! It's the first time I type full text on this keyboard!

Geekgirl approve stamp, please.  :)    I'll use this one at home for the weekend and I'll start using it at work next week.

Since it supports two layers, i might program the second layer if i can come up with a good layout.
Title: Frankenstein, prototype
Post by: msiegel on Sat, 17 October 2009, 03:03:30
:D yay!!
Title: ESC key assignment
Post by: cfishy on Sat, 17 October 2009, 04:38:50
BTW, I am very pleased with the ESC key on the left half of the space bar. Makes Vim so much nicer not having to move away from the home row. I use Vim key binding for Firefox, too.

But the whole point is, we now have a way to fully customize everything in a keyboard without paying a few thousand bucks, from layout to key switches, to scan code assignment in two layers! x-key also support multiple scan codes, even with delays. The possibilities are endless!

Gona head to local electronics shop tomorrow and replace the bulky capacitor and the headers, so I can shrink down the controller height and hide it under the keys.
Title: Frankenstein, prototype
Post by: roadblock2thesun on Sat, 17 October 2009, 11:35:37
Any chance you can post a link to a larger image of your matrix? Have you done a test for rollover? I've been working on putting together a board using black alps from a dell and a matrix/controller from some random p.o.s. keyboard... figuring out the matrix was rather difficult and the nest of wires is out of control. Whereas, yours looks pretty well organized...

Just curious to find out more details.

Excellent work!!!!!
Title: Frankenstein, prototype
Post by: cfishy on Sat, 17 October 2009, 12:57:07
Quote from: ripster;126340
This is looking good!

What gauge of wire did you use?  Any particular type?

And hey, we have the same soldering iron!  They are awesome.


The red, white wires are 24 AWG solid, the light blue ones are 30AWG solid, and the green is 26AWG. The bus lines are stripped off white 24AWGs.

I had a crappy soldering iron at the beginning of this project and it got too hot, so I had to order a good one. Boy, what a difference!
Title: Frankenstein, prototype
Post by: cfishy on Sat, 17 October 2009, 13:09:37
Quote from: roadblock2thesun;126366
Any chance you can post a link to a larger image of your matrix? Have you done a test for rollover? I've been working on putting together a board using black alps from a dell and a matrix/controller from some random p.o.s. keyboard... figuring out the matrix was rather difficult and the nest of wires is out of control. Whereas, yours looks pretty well organized...

Just curious to find out more details.

Excellent work!!!!!

Thanks!

larger photo :
http://www.flickr.com/photos/20106852@N00/4015255987/sizes/l/in/photostream/


I don't play games, and i type rather slow (between 60 and 80) so I didn't bother soldering even more diodes to get n-key rollover  :)  

I was trying to have two wires per switch, as you can see is previous photos. then I realized it's pretty aweful, so I de-soldered everything to switch to a bus layout.

The reason that I can avoid a giant mess by soldering bus lines is because I make the matrix first and program scan code accordingly. That's the advantage of not ripping a production keyboard controller: I don't have to follow their matrix assignment.
Title: Frankenstein, prototype
Post by: lowpoly on Sat, 17 October 2009, 14:43:52
You make it look easy. :-)

Could you use diodes instead of wire to connect the switches?

And can you still split it?
Title: Frankenstein, prototype
Post by: cfishy on Sat, 17 October 2009, 19:40:57
Quote from: lowpoly;126442
You make it look easy. :-)

Could you use diodes instead of wire to connect the switches?

And can you still split it?


split?
Title: Frankenstein, prototype
Post by: cfishy on Sat, 17 October 2009, 20:54:36
Quote from: lowpoly;126442
You make it look easy. :-)



Haha, I suppose a lot of people don't want to solder this many wires. Well. Here's what I'm trying next, instead of soldering:

http://www.flickr.com/photos/20106852@N00/4020387841/in/photostream/
Title: Frankenstein, prototype
Post by: lowpoly on Sun, 18 October 2009, 05:16:27
Quote from: cfishy;126485
split?

I thought the acrylic plate was actually two plates for a split layout.
Title: Frankenstein, prototype
Post by: roadblock2thesun on Sun, 18 October 2009, 13:21:54
I'm not sue if the wrapped wires will be enough to hold if the board takes any abuse...

I have a bunch of links saved related to printing circuit boards at home... If you are interested, shoot me a pm.
Title: Frankenstein, prototype
Post by: cfishy on Mon, 19 October 2009, 04:29:45
Quote from: roadblock2thesun;126649
I'm not sue if the wrapped wires will be enough to hold if the board takes any abuse...

I have a bunch of links saved related to printing circuit boards at home... If you are interested, shoot me a pm.


Have you seen the membrane sheets? I think, the wires aren't so bad compared to those. a drop of coffee and the membrane sheets would be stuck. Having been obsessed with keyboards since early 90s, I've seen many dead keyboards, and the majority of them died of some liquid/sticky stuff getting on the membrane.  But agreed, I'd rather not solder so much. this is by no means a finished prototype. I'm working on a wireless one now.

the idea is not to come up with a perfect keyboard, but find a process that everybody can easily duplicate and make their own keyboard precisely the way they like it.

say, all you need is to know the layout you want, the switch you want, scan code mapping, and that would be enough to make one offs less than a thousand dollars. The way I see it, it's perfectly doable with prototyping technologies like laser cutting, CNC routing, 3d printing.

Many people don't get what I'm trying to do: so let me explain: I'm doing this because I'm pissed that I can't buy a Filco tenless Cherry blue for months. Last time I bought it, it took over 3 weeks to arrive and then I can't buy another. I've had enough of "there's no demand for your keyboard" BS. I want a keyboard I like and I am not sitting helplessly for months on up to hoping to get one. For over 16 years, I had to pay top money, dig through junk yards, wait in pre-order for keyboards that click. I want to be free from that. Today, I know I got there.

so there. no more waiting for months to hope that the new Filco would ship. No more hoping for wireless and bluetooth. No more swapping to split keyboards when I have wrist pains. No more trying to get imports from Japan and Taiwan. No more hoping for backlit clickers. Now we can make it.

I'm sure many of you share the same frustration. No more keyboard wish lists, guys. We should not accept being held hostage by manufacturing. We deserve better. To mod a quote from Linus,

"Do you pine for the day when geeks are geeks and make their own keyboards?"

* I guess I should quote Tim Tyler but I haven't found one suitable.

So, yeah, I have a keyboard prototype with wires coming out. But I'm happy to be free. I am going to make improvements, more polished and feature rich versions. Meanwhile, if the wires fall off, I'll solder it back.

i'm working on PCBs, I got a deck here ready for etching/routing. I am trying to learn EAGLE and CAM stuff. I would be happy to see some links, too.

i think routing the PCBs with a CNC makes a lot more sense for one offs like this. It needs very precise drilling/routing to hold the bottom stem in place.  but one needs to know the precise firmware scan code for each point on the matrix before making the PCB. as for wires, you can just, well, cut them and re-wire. like I did with the blue wires there, for two keys.

Also working on the casing in the bottom so the wires would not be exposed. so far they have been holding up. I'm taking it to work for several hours of heavy typing tomorrow.
Title: Frankenstein, prototype
Post by: roadblock2thesun on Mon, 19 October 2009, 09:35:11
I'm strongly in favor of your goals... Like I said, this is one of the main causes of me finding this website, the design and construction of my own keyboard. I am wiring mine by hand as well... pcb's were too complicated for me.

I'm sorry if my last comment appeared critical, I just wanted to offer some information from my own research...
Title: Frankenstein, prototype
Post by: Shawn Stanford on Mon, 19 October 2009, 11:05:38
Quote
I have a bunch of links saved related to printing circuit boards at home...

My brother-in-law mentioned a buddy of his that came up with a method for printing circuit tracing layouts on an inkjet printer, then ironing them and etching them to make a board. Here's a link: http://techref.massmind.org/techref/pcb/etch/directinkjetresist.htm
Title: Frankenstein, prototype
Post by: cfishy on Mon, 19 October 2009, 13:24:16
Quote from: roadblock2thesun;126838
I'm strongly in favor of your goals... Like I said, this is one of the main causes of me finding this website, the design and construction of my own keyboard. I am wiring mine by hand as well... pcb's were too complicated for me.

I'm sorry if my last comment appeared critical, I just wanted to offer some information from my own research...


Sorry if I sounded mad, I am just describing the frustration that drives me, and I suspect many of us are feeling the same. The teaser website showing no stock is a great motivator.
Title: Frankenstein, prototype
Post by: JBert on Mon, 19 October 2009, 13:59:06
Quote from: ripster;126872
Speaking of Irons I like the guys that do SMT Wave Solder by putting the PCB on a upside down iron.  GeekGirl really likes that one (she just slapped me for being a sexist pig).
The state of the art method is not as much an iron but a hot skillet: Sparkfun electronics: Reflow Skillet (http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=59).
Title: Frankenstein, prototype
Post by: roadblock2thesun on Tue, 20 October 2009, 08:17:10
what controller are you using for the wireless prototype?
Title: Frankenstein, prototype
Post by: cfishy on Tue, 20 October 2009, 12:05:11
Quote from: roadblock2thesun;127143
what controller are you using for the wireless prototype?

A controller ripped from a cheap wireless keyboard branded inland. I wanted Bluetooth, but here are the issues:

Somebody told me that there's some sort of licensing issue with bluetooth and that is why I can't find a bluetooth chip separated from the controller, retail and not terribly small surface mount last time I checked. I can't find any bluetooth + USB HID controller solution that allows each key to be programmed.

On top of that, the Bluetooth specs just says it's merely a wrapper for the USB HID protocol. I don't even know what that means. I guess if I bothered to read the whole bluetooth specs, I'd have a better idea.

now, the keyboard controller that I'm using clearly has two chips, so I suppose one is the keyboard controller and the other one is the chip for 2.4 GHz communication with the dongle it came with.

There's probably some other reason that bluetooth keyboards aren't very popular with manufacturers.
Title: Frankenstein, prototype
Post by: lowpoly on Tue, 20 October 2009, 13:27:44
CodeMercenaries have a wireless eval kit:

http://www.codemercs.com/index.php?id=38&L=1

Euro 149 + VAT

I have one of their chips in my Mini right now.
Title: Frankenstein, prototype
Post by: roadblock2thesun on Tue, 20 October 2009, 13:51:11
Any Idea where to get keyWarriors stateside?

@cfishy... I thought that was going to be the answer... I have not ripped apart a wireless board yet... is the controller/battery/transmitter all on a single chip?
Title: Frankenstein, prototype
Post by: lowpoly on Tue, 20 October 2009, 14:06:44
Quote from: roadblock2thesun;127228
Any Idea where to get keyWarriors stateside?


http://www.codemercs.com/index.php?id=117&L=1
Title: Frankenstein, prototype
Post by: cfishy on Tue, 20 October 2009, 15:02:25
Quote from: lowpoly;127220
CodeMercenaries have a wireless eval kit:

http://www.codemercs.com/index.php?id=38&L=1

Euro 149 + VAT

I have one of their chips in my Mini right now.

Cool, seems like it needs a dongle. I'm not sure if this would be ok in the U.S. because the frequency may not be open? Also, FCC approval is definitely needed for such device.
Title: Frankenstein, prototype
Post by: cfishy on Tue, 20 October 2009, 15:13:41
Quote from: roadblock2thesun;127228
Any Idea where to get keyWarriors stateside?

@cfishy... I thought that was going to be the answer... I have not ripped apart a wireless board yet... is the controller/battery/transmitter all on a single chip?


The battery can't be on a chip, it's AA. the rest are on a PCB.  I will upload a video showing what it looks like when I get home.
Title: Frankenstein, prototype
Post by: lowpoly on Tue, 20 October 2009, 15:47:14
Quote from: cfishy;127252
Cool, seems like it needs a dongle. I'm not sure if this would be ok in the U.S. because the frequency may not be open? Also, FCC approval is definitely needed for such device.


I think the left pcb in the pic is the receiver. Kind of big. Their products are more aimed at the industrial market.

WRT frequencies they just say:

Quote
By utilizing the 2.4GHz ISM band a single design can be used for international markets.
Title: Frankenstein, prototype
Post by: roadblock2thesun on Tue, 20 October 2009, 15:58:15
Thanks for the link, and I look forward to seeing your video... I check the websites in the link and none of them sell the keywarrior, only the joywarriors...
Title: Frankenstein, prototype
Post by: cfishy on Tue, 20 October 2009, 22:54:59
Quote from: roadblock2thesun;127265
Thanks for the link, and I look forward to seeing your video... I check the websites in the link and none of them sell the keywarrior, only the joywarriors...


http://www.youtube.com/watch?v=6SHTdkcS2yo

sorry about my speech. I should put subtitle in but I don't know how.
Title: Frankenstein, prototype
Post by: cfishy on Thu, 19 May 2011, 06:19:50
This keyboard will be on demo at the bay area maker faire this weekend! Along with a lot of other keyboards - realforce, cherry blue, MCK-142, IBM type M. Come visit my booth to try them out! Frankenstein has been used for 9 months at work, that's heavy typing 9+ hours per day, for 9 months.