Filco MiniLa + Teensy

alfa147x

09 May 2013, 13:21

I have a Filco MiniLa on the way and I would like to swap the Alt and Win keys. I would just remap them using an application but I don't have admin permissions on some machines that it will be used with. Also eventually I would like to further customize the layout.

I wonder if I could somehow rewire it to work with the Filco tenkeyless custom ATmega32u4 controller?

Here is what the board on the Filco MiniLa looks like: Image
Image


I'm hoping if this works out I could make a similar plug in play board like the Filco tenkeyless custom ATmega32u4 controller.

Any ideas?
Last edited by alfa147x on 11 May 2013, 04:01, edited 1 time in total.

User avatar
Muirium
µ

09 May 2013, 13:31

Isn't that what one of the DIP switches is for? Alt<>Win switcheroo is standard operating procedure for use on Macs. And Ctrl<>Caps is SOP for anyone still retaining their sanity.

User avatar
BimboBB

09 May 2013, 13:37

It seems you cannot swap Alt/Win via DIP. According keyboardco these are the functions:

5 dip switch settings:-

Switch off Windows and App keys
Swap left CTRL and CapsLock (key caps included)
Change left FN key into space
Change right FN key into space
Swap ESC / [`¦¬] function (key cap included)

User avatar
Muirium
µ

09 May 2013, 13:47

<Grumble.>

I'd like to like the Minila, but it is definitely one strange keyboard. Teensy required.

alfa147x

09 May 2013, 21:07

Muirium wrote:Isn't that what one of the DIP switches is for? Alt<>Win switcheroo is standard operating procedure for use on Macs. And Ctrl<>Caps is SOP for anyone still retaining their sanity.
I was hoping for the same but having a custom controller and being able to map the two fn keys to two different layers would be cool. That way I could have a keypad if needed.
Muirium wrote:<Grumble.>

I'd like to like the Minila, but it is definitely one strange keyboard. Teensy required.
Question about keyboard matrix circuit. On the multipin connector above would a single pin represent a row or column?
And would each LED use two pins? I'm pretty sure once I get the board I can answer the questions my self but was just wondering what was standard procedure.

Last question. Would the Teensy 2.0 suffice for this project or should I go with the Teensy++ 2.0 ? I have a friend who has a Teensy 2.0 which he never used and is offering it for free.

Thanks!

User avatar
matt3o
-[°_°]-

10 May 2013, 08:57

It seems that only 18/19 pins are actually connected. If that is the case you can use a teensy 2. Such small matrix will hardly need more than that.

Each pin represents a column OR a row. You have to figure that out when you receive the board. Also the LEDs need their pins.

User avatar
Grond

10 May 2013, 09:29

I believe you could swap them by software. I did something similar on my filco tenkeyless by swapping right menu and alt. This was made with KeyRemap4MacBook (on OS-X of course).

http://deskthority.net/workshop-f7/a-li ... t=keyremap

User avatar
Muirium
µ

10 May 2013, 11:06

Yes, software is enough for the simple key swap described. But a hardware hack makes more sense every time you plug in to another computer; especially those you can't administer. Not a problem with Macs, but this sounds like a corporate and therefore Microsoft environment.

matt3o knows a lot more about matrices and teensies than I do. Fortunately, the Minila's minimal layout sounds quite compatible with the smaller chip.

alfa147x

10 May 2013, 15:49

matt3o wrote:It seems that only 18/19 pins are actually connected. If that is the case you can use a teensy 2. Such small matrix will hardly need more than that.

Each pin represents a column OR a row. You have to figure that out when you receive the board. Also the LEDs need their pins.
Great. I should receive it today so I'll be able to start tracing the coloums and rows to pins. I'm really pumped about this project!
Grond wrote:I believe you could swap them by software. I did something similar on my filco tenkeyless by swapping right menu and alt. This was made with KeyRemap4MacBook (on OS-X of course).

http://deskthority.net/workshop-f7/a-li ... t=keyremap
I could just have the IT guys at work install what ever keymapping software I want but I don't really want to bother them. Plus I don't always use the same machine so it would be too much to ask them to install the keymapping software on multiple machines. Thanks for the link. I'm sure that will come in handy at some point.
Muirium wrote:Yes, software is enough for the simple key swap described. But a hardware hack makes more sense every time you plug in to another computer; especially those you can't administer. Not a problem with Macs, but this sounds like a corporate and therefore Microsoft environment.

matt3o knows a lot more about matrices and teensies than I do. Fortunately, the Minila's minimal layout sounds quite compatible with the smaller chip.
Thanks for the help!


I wonder if the dip switches on the bottom are mounted to the controller or another card. It would be cool to use it to switch between a Mac friendly, Windows friendly, or iPad friendly layout. But that's a project for another day. Seeing as I haven't even embedded the teensy the switch seems complicated.

alfa147x

10 May 2013, 23:05

Image

Image
Tried to take a panorama to show more detail.

Image

Click the images for a larger version.

User avatar
Muirium
µ

10 May 2013, 23:19

Looks pretty complex, doesn't it? The joy of PCB's…

Each switch has a central stub(?) where it slots into the PCB. Around that there's either 2 or 4 solder joints. 2 are for the switch (the others are things like diodes or connects to other parts of the board, and whatever LEDs it has). The Cherry MX switches always have the same pattern of joints because their legs are all the same. Though sometimes a switch is rotated for whatever reason.

And so ends what I know about this. Learned from watching WhiteFireDragon's switch-swapping tutorial.
What you're after is the matrix. What's the way people go about mapping that? I suspect it involves a bleepy continuity tester, some pins, and a lot of patience.

alfa147x

10 May 2013, 23:26

Muirium wrote:Looks pretty complex, doesn't it? The joy of PCB's…

Each switch has a central stub(?) where it slots into the PCB. Around that there's either 2 or 4 solder joints. 2 are for the switch (the others are things like diodes or connects to other parts of the board, and whatever LEDs it has). The Cherry MX switches always have the same pattern of joints because their legs are all the same. Though sometimes a switch is rotated for whatever reason.

And so ends what I know about this. Learned from watching WhiteFireDragon's switch-swapping tutorial.


What you're after is the matrix. What's the way people go about mapping that? I suspect it involves a bleepy continuity tester, some pins, and a lot of patience.
Thanks for the info. I was planning on taking a multimeter to the pins that connect the controller and then going key by key and figuring out which key reacts to which pin. Then ask for help on creating the matrix from that.

Good thing this weekend I have no work left over from the week and my girlfriend is out of town. Plenty of time.

User avatar
Muirium
µ

10 May 2013, 23:31

Yeah, I think you'll need it!

You know about anti-ghosting diodes in the matrix, right? That could affect the polarity your measurements need to take. Other than that, it's all just going through combinations.

Unless of course there's a sneaky way the old hands know.

alfa147x

10 May 2013, 23:35

Muirium wrote:Yeah, I think you'll need it!

You know about anti-ghosting diodes in the matrix, right? That could affect the polarity your measurements need to take. Other than that, it's all just going through combinations.

Unless of course there's a sneaky way the old hands know.
I didn't realize the would mess with the polarity. I thought if you tried to feed power in from the "wrong" side of a diode nothing / very little would make it through.

I think the easiest route is to hook it up to a Teensy and then spam button and figure out which wire is carrying which switch. Lol

User avatar
Soarer

10 May 2013, 23:46

The main thing is just to separate the connections into 'rows' and 'columns' - after that you can just change the firmware to cope with the key mappings.

(I put rows and columns in quotes because it's better to think of strobes and senses, in other words, outputs and inputs on the controller).

Start with finding a pin on the connector that connects to a switch pin. Then find all of the other switch pins that connect to that line. Then for each of those switches, find the connector pin that is connected to the other pin of each switch you've just identified. That should give you most if not all of either the strobes or the senses.

To find the other group, you just do a similar thing with one of the lines you found in the first group - find the switches, find the connections for the other pin of those switches.

If you're lucky there will be a pattern, such as strobes being on the left hand pin of each switch, and senses being on the right, which will give some confimation that you got it right, and let you spot any gaps you might still have in your collection of strobes and senses.

As just said, what's missing from that procedure is dealing with the diodes. If you first work out which diode goes with which switch, and which end of it is connected to the switch, you can then treat the switch + diode as just a switch with one pin on the switch, and one on the diode (as in, the two pins of the switch+diode that aren't joined together).
Last edited by Soarer on 11 May 2013, 00:28, edited 1 time in total.

User avatar
kbdfr
The Tiproman

10 May 2013, 23:48

alfa147x wrote:[…] Good thing this weekend […] my girlfriend is out of town. Plenty of time.
Words of a keyboard addict :lol:

alfa147x

11 May 2013, 00:13

Soarer wrote:The main thing is just to separate the connections into 'rows' and 'columns' - after that you can just change the firmware to cope with the key mappings.

(I put rows and columns in quotes because it's better to think of strobes and senses, in other words, outputs and inputs on the controller).

Start with finding a pin on the connector that connects to a switch pin. Then find all of the other switch pins that connect to that line. Then for each of those switches, find the connector pin that is connected to the other pin of each switch you've just identified. That should give you most if not all of either the strobes or the senses.

To find the other group, you just do a similar thing with one of the lines you found in the first group - find the switches, find the connections for the other pin of those switches.

If you're lucky there will be a pattern, such as strobes being on the left hand pin of each switch, and senses being on the right, which will give some confimation that you got it right, and let you spot and gaps you might still have in your collection of strobes and senses.

As just said, what's missing from that procedure is dealing with the diodes. If you first work out which diode goes with which switch, and which end of it is connected to the switch, you can then treat the switch + diode as just a switch with one pin on the switch, and one on the diode (as in, the two pins of the switch+diode that aren't joined together).
Wow. Thanks for taking the time to write all that out! How can I figure out which end is connected to the switch using a multimeter?

kbdfr wrote:
alfa147x wrote:[…] Good thing this weekend […] my girlfriend is out of town. Plenty of time.
Words of a keyboard addict :lol:
Just got my 1st mechanical keyboard! No longer using a Apple chiclet keyboard!

Also the Filco works with my iPad :D

User avatar
Soarer

11 May 2013, 00:19

alfa147x wrote:How can I figure out which end is connected to the switch using a multimeter?
Just by looking at the PCB pic, I'd say it's the square pad and the right hand switch pin, at least for quite a few of them!

Multimeter on resistance range, or continuity test if it has one. Touch the probes together and you'll see it go to 0, or close to it. That's what you're looking for when probing - pads that are shorted together :D

alfa147x

11 May 2013, 00:21

ImageUploadedByTapatalk 21368224490.879623.jpg
ImageUploadedByTapatalk 21368224490.879623.jpg (115.46 KiB) Viewed 11753 times
Here we go!

alfa147x

11 May 2013, 00:41

Image

So it looks like most diodes are directly below the switches and some are next to their switch. I tried the red probe on C6 and the black probe on the ninja turtles green dot and vice versa. I got nothing. Any idea what that means? Should the Diodes + read 0 or the - side?


Image

User avatar
Muirium
µ

11 May 2013, 00:49

Try pressing the switch that the diode is connected to. If you can see the diode itself, the stripe marks the cathode: the end that points down on this diagram.
Image
The diodes are hooked up to isolate each switch from the rest it shares a row and column with.

They block out the extra paths that open up when you press multiple keys. You want to have your polarity the same way around as the keyboard's controller scans the matrix. Otherwise you'll see ghosting and masking going on in the unintentional new circuits. You'll find out when you press multiple keys.

Or I guess just be careful to press one switch at a time…

alfa147x

11 May 2013, 00:58

Ah makes more sense now. Thanks. I think they're alternating through out too:

Image

User avatar
Soarer

11 May 2013, 01:07

Try measuring across the diode the other way round, you should find it's different. But really, it's not important to work that connection out precisely :D Also, try the R2 pin to the square diode pin in both directions - should be 0 both ways (0.8 ohms is close enough to call 0).

Haha... they're all labelled anyway... C6 = column 6, R2 = row 2, etc.

So I reckon the R pin of a switch connects to the square pin of its diode, and the round diode pins connect to somewhere on the connector. The C pin of each switch connects to the connector too.

alfa147x

11 May 2013, 01:11

Also each switch is labeled on the PCB with a C# and R#

like the esc key is C1 and R3 while right arrow key has C12 and R5.

Yup every R pin is connects to the square pad. Which means the square pad = - on the diode.

Sweet. Progress.

User avatar
Soarer

11 May 2013, 01:16

Yay! So now running through each C#, find which pin it is on the connector. Easy. For each R#, slightly more trouble, but just pick a switch where it's obvious which diode is used, then find the connector pin joined to the round diode pad.

BTW, how many Rs and Cs? I'm guessing more Cs than Rs...

alfa147x

11 May 2013, 01:23

Soarer wrote:Yay! So now running through each C#, find which pin it is on the connector. Easy. For each R#, slightly more trouble, but just pick a switch where it's obvious which diode is used, then find the connector pin joined to the round diode pad.

BTW, how many Rs and Cs? I'm guessing more Cs than Rs...
8 R's and 15 C's

Should I continue filling this out or is it useless?
Image

Edit: I'll go ahead and finish it. I'm 2/5 of the way done.

Haha I love how I still have yet to pull a keycap off of a board but I'm here prancing around the pcb with a multimeter
Last edited by alfa147x on 11 May 2013, 01:29, edited 2 times in total.

User avatar
Muirium
µ

11 May 2013, 01:29

Fill it out. Gotta catch 'em all. Soarer will show you what to do with it.
Haha I love how I still have yet to pull a keycap off of a board yet I'm here prancing around the pcb with a multimeter
Playing with caps can wait. This is the business end!
Last edited by Muirium on 11 May 2013, 01:30, edited 1 time in total.

User avatar
Soarer

11 May 2013, 01:30

Sure, that'll be useful later, once the Teensy is connected... finding those 8 Rs and 15 Cs on the connector comes first ;)

Handy tip for filling out that map - take a picture of the keys and mirror it :ugeek:

alfa147x

11 May 2013, 01:45

Soarer wrote:Sure, that'll be useful later, once the Teensy is connected... finding those 8 Rs and 15 Cs on the connector comes first ;)

Handy tip for filling out that map - take a picture of the keys and mirror it :ugeek:
I should have read this thread before finishing off the table! Oh well all done!

Image

also what's the deal with the column named "OC13" ?

Time to find where those pins connect and possibly get some food

Thanks again for all the help you guys have been!


Edit: Successful map making!
Image

User avatar
Muirium
µ

11 May 2013, 01:55

Great stuff. Perhaps OC13 means the Other Column 13.

Post Reply

Return to “Workshop”