Filco tenkeyless custom ATmega32u4 controller

bpiphany

28 Aug 2012, 14:43

controller_final.png
controller_final.png (78.79 KiB) Viewed 11081 times
Update: 2012-09-11CET
PCB files have been sent for final DRC (design rule checking) at pcbwing.com.

Deadline: 2012-09-09 23:59 CET
Anyone registering their interest before the deadline will be guaranteed their units when they are done and tested.

When the deadline has passed, I think I will set some system up to do the final ordering by email to keep track of everything.

What is this all about?
Ever wanted your Filco tenkeyless to have a programmable controller? Thought it sounded a bit insane to build a Phantom only for this reason? What if you could just simply replace the stock controller daughter board in your keyboard with a programmable one? Why not I say.

With this replacement daughter board you will basically have a Teensy that plugs conveniently into your Filco tenkeyless. There are a number of different keyboard project with code running on the Teensy that should be easily adopted to work with this controller.

The ATmega32u4 chip
This is the same chip as on the Teensy2.0. It is a 16MHz 8-bit AVR from Atmel.

It has 32kB of flash to hold the bootloader, firmware code and key matrix information. The flash memory is read only during normal operation, so it can only be altered when loading code onto it through the bootloader. Both the stock bootloader from Atmel and the open source bootloader from LUFA take 4kB of the flash memory. The very basic code for the Phantom with one single layer key matrix takes almost 9kB. This leaves more than 18kB for custom layers and macros or whatever.

There is 2.5kB of SRAM memory, this is used to run the program and store variables during runtime. It is like normal RAM memory erased when the power is cut.

There is also 1kB of EEPROM memory available, this can be used to store data when the power is off. So any recorded macro or on the fly remappings should be stored here.

Flashing the firmware
Almost all code for AVRs you will find is written in c and compiled to hex files. It is these hex files that are flashed to the chip. The flashing is done through a program running on your computer, talking to the chip via the bootloader. I haven't tried this in Windows but there are applications to do this that should be easily maneuvered. I will look into this and make sure there are no problems. In Linux I've got everything under control.

The TeensyLoader that the Teensys use will unfortunately not be available since that is PJRC proprietary. This is only a slight drawback. It may be more user friendly, and their bootloader is much smaller, but all in all this doesn't make a big difference.

Compatibility
I have based this design on my "gen2" Filco tenkeyless. I believe there are no differences compared to the "gen1" keyboard except the higher quality PCB. Electrically everything is the same. I cannot guarantee that it will work for everyone though since there may be differences I don't know about. If your keyboard turns out to be incompatible this would of course be handled somehow. Passing it on to someone else for example, or in the worst case returning it for a refund.

The Filco main PCB that I have reverse engineered is a "gen2" marked "CST-F87/88/89/91-MB V1.1" 2010-11-09, and the controller is marked "Tenkeyless PCBA Rev 2.1-ESD" 2010-08-24.

There are pictures of the stock controller in this thread http://geekhack.org/index.php?topic=6557

Roadmap to HID liberation
  1. 2012-09-06 (Probably) Receive first batch of components.
  2. 2012-09-07 (Hopefully) Receive new Filco tenkeyless for final testing of breadboard setup.
  3. 2012-09-09 Interest check deadline.
  4. 2012-09-11 Ordering PCBs.
    the more expensive components. The cheap ones I already have ordered in large numbers. Delivery time to me is very fast.
  5. 2012-09-24 (Earliest) Delivery of PCBs.
  6. 2012-09-25 Testing.
  7. 2012-09-26 Building.
  8. 2012-09-27 Asking people for money. I am probably going to order components for 25 at a time. That is a good cutoff for
  9. 2012-09-28 First shipments. I will start off with a few completely subjectively selected orders, and after that asking in random order.
  10. 2012-10-04 21 days with tons of spare time.
Pricing
At a quantity of 10 a total production cost of ~$20 a piece (not including shipping from me) could probably be expected.

Shown interest:
GeekHack
  • 3-4 jdcarpe
  • 1 reaper
  • 2 alaricljs
  • 1-2 boost
  • 1 inlikeflynn
  • 2 Saviant
  • 1 damorgue
  • 1 longweight
  • 2 The_Beast
  • 2 tipo33
  • 2 WhiteFireDragon
  • 2 WRXChris
  • 1 alixinhzai
  • 1 hashbaz
  • 2 skriefal
  • 4 litster
  • 2 mickd
  • 2 tjweir
  • 1 Appeac
  • 1 nolliepoper
  • 2 Glissant
  • 1 priyadi
  • 2 Tenkey
  • 1 modulor
  • 1-2 harrison
  • 2 Nunez
  • 2 Autolyze
  • 1 metalliqaz
  • 1 strider_ani
  • 3 BossBorot
  • 2 jcrouse
  • 1 Djuzuh
  • 1 4LI4Z
  • 1 Surreal Killa
  • 1 fruktstund
  • 2 bnp70kr
  • 1-2 Game Theory
  • 1 DarkShot
  • 1 daerid
  • 1 nebo
  • 1 oneproduct
  • 1 Feints
  • 3 TheProfosist
  • 1 Icarium
  • 2 ChaoticKinesis
  • 1 Sifo
  • 1 anthropornis
  • 1 gizzard
  • 4 RiffRaff
  • 1 bisl
  • 1 fl0w3n
  • 1 esoomenona
DeskThority
  • 1 HzFaq
  • 1 maoiste
  • 1 kvad
  • 2 webwit
  • 1 csimi
  • 1 hamza_tm
  • 1 yeeeargh
  • 2 pasph
  • 1 graboy
  • 1 lapin00b
  • 1 hoggy
  • 1 blighty
  • 1 zoidbergslo
  • 1 Kurrk
  • 1 stevedreams
  • 1 dfxdx
  • 1 Daemon Raccoon
  • 1 mrdk
  • 0-2 korne
  • 2 chronos
  • 1 bone
  • 2 fossala
Last edited by bpiphany on 08 Oct 2012, 14:53, edited 40 times in total.

User avatar
dirge

28 Aug 2012, 15:26

Great idea for Filco owners!

User avatar
HzFaq

28 Aug 2012, 16:56

I'd be very interested in one,keep us posted.

bpiphany

28 Aug 2012, 17:49

I will make this happen no matter how low the interest is, but it looks like hitting 10 won't be any problem. I don't mind taking a small risk over ordering some either. I do want to know if I should order 10, 20, or 100 though =) I set up an interest check thread at geekhack as well.

mintberryminuscrunch

28 Aug 2012, 18:06

can't this be used with any keyboard (with some rewiring)

maoiste

28 Aug 2012, 18:45

i would be interested aswell

User avatar
fossala
Elite +1

28 Aug 2012, 18:50

Would soldering be needed? Or can you just plug it in?

User avatar
HzFaq

28 Aug 2012, 18:51

I'm pretty sure the daughter board just plugs in, no soldering needed. I'm sure bpiphany can clarify though.

User avatar
csimi

28 Aug 2012, 22:04

I assume this would be the same size as the original Filco one and fit in cases that are not Filco?
If it works with 1st gen TKL I'm definitely interested (or if there's no info on it I'll try myself).

bpiphany

28 Aug 2012, 22:23

mintberryminuscrunch wrote:can't this be used with any keyboard (with some rewiring)
You would probably be better off just using a regular Teensy in that case, expanding it in a suiting way if that is needed for the matrix your keyboard is using. This is more or less just a Teensy copy that is modified to work in this particular case.
fossala wrote:Would soldering be needed? Or can you just plug it in?
I am planning to order all components, solder them, load the LUFA bootloader to the chip along with some basic firmware before shipping. The controller daughter board is just push fitted into the main board. You only need to pull the old one out and insert this one in its place.
csimi wrote:I assume this would be the same size as the original Filco one and fit in cases that are not Filco?
If it works with 1st gen TKL I'm definitely interested (or if there's no info on it I'll try myself).
Yes, this is the same size as the Filco tenkeyless daughter board. (The full size Filcos use another daughter board.) I am quite confident that this will work with the "gen 1" tenkeyless as well. Someone at geekhack said his "gen 1" had the same revision of the daughter board.


The original Filco controller can be seen above the arrow keys in one of the pictures in this thread http://geekhack.org/index.php?topic=6557.0

User avatar
kvad

28 Aug 2012, 22:48

Count me in!
Would this allow, say adding a numpad on another layer activated by scroll lock?

User avatar
webwit
Wild Duck

28 Aug 2012, 22:53

2 for me please.

bpiphany

28 Aug 2012, 23:16

kvad wrote:Count me in!
Would this allow, say adding a numpad on another layer activated by scroll lock?
Yes =)



I am adding a deadline to show interest, 2012-09-09 before midnight. Anyone registering before then will be guaranteed their units. And I can sort of see already how that is going to go wrong... Let's say that when 80% of them also have paid I will do the ordering.

User avatar
csimi

28 Aug 2012, 23:24

bpiphany wrote:Yes, this is the same size as the Filco tenkeyless daughter board. (The full size Filcos use another daughter board.) I am quite confident that this will work with the "gen 1" tenkeyless as well. Someone at geekhack said his "gen 1" had the same revision of the daughter board.


The original Filco controller can be seen above the arrow keys in one of the pictures in this thread http://geekhack.org/index.php?topic=6557.0
In that case please sign me up for one.

User avatar
hamza_tm

28 Aug 2012, 23:47

I have a Filco TKL MJ1 with board-wide chattering, will this fix that problem?
Either way I'm in for one please!

bpiphany

29 Aug 2012, 00:29

hamza_tm wrote:I have a Filco TKL MJ1 with board-wide chattering, will this fix that problem?
Either way I'm in for one please!
If the problem is controller related it should possibly make the problem go away. Otherwise you may be able to increase the de-bouncing parameters to have the chattering go away. No promises on that though.

yeeeargh

29 Aug 2012, 01:08

I'm also interested in one of these :D

pasph

29 Aug 2012, 04:58

Interested in 2

User avatar
graboy

29 Aug 2012, 05:55

Possible interest in one... what would shipping cost to the US?

User avatar
hamza_tm

29 Aug 2012, 07:33

bpiphany wrote:
hamza_tm wrote:I have a Filco TKL MJ1 with board-wide chattering, will this fix that problem?
Either way I'm in for one please!
If the problem is controller related it should possibly make the problem go away. Otherwise you may be able to increase the de-bouncing parameters to have the chattering go away. No promises on that though.
Thanks for the reply! It is indeed controller related (completely randomly happens over any key at any time), but is it possible to mess about with the de-bouncing parameters on the stock Filco controller?

bpiphany

29 Aug 2012, 08:02

graboy wrote:Possible interest in one... what would shipping cost to the US?
If I ship them myself a 100g letter is $4, or a 250g letter is $8, I should have left over material to pack them in.. And there may be someone wanting to help out with distributing US orders.
hamza_tm wrote:
bpiphany wrote:Thanks for the reply! It is indeed controller related (completely randomly happens over any key at any time), but is it possible to mess about with the de-bouncing parameters on the stock Filco controller?
I don't think so, I was talking about the new controller. If you would still have had chattering you could have down clocked it until it went away =)

User avatar
hamza_tm

29 Aug 2012, 09:18

OK thanks, I do indeed want one please!

User avatar
Acanthophis

29 Aug 2012, 15:20

Just a quick noob question:
Why would/should I buy this controller and replace the Filco's one with it?

User avatar
7bit

29 Aug 2012, 15:25

Is this also useful for other keyboards?

Does it support larger PCB matrices?

User avatar
Icarium

29 Aug 2012, 15:36

It's basically a Teensy on a different PCB.

So DeathAdder: It allows you to remap keys if you want to do that. That's all.

7bit: No, for everything else a Teensy makes more sense.

bpiphany

29 Aug 2012, 17:00

Icarium wrote:It's basically a Teensy on a different PCB.

So DeathAdder: It allows you to remap keys if you want to do that. That's all.
Well,.. honestly that is quite narrow minded ;D You could make it do a number of things like extra layers, macros, anything you are able to program into it really. All that can be done on the OS side as well, so in that regard you are correct that it doesn't add anything else than hard-remapping keys.

User avatar
Icarium

30 Aug 2012, 08:36

Sorry, I didn't mean to belittle your project. I'd actually buy one if I had a Filco, I think hardware remapping is great. :) Especially to another layer. And macros I just totally forgot about. :)

User avatar
lapin00b

30 Aug 2012, 08:45

Great idea to set up a group buy for this !

I'm in for one.

mintberryminuscrunch

30 Aug 2012, 15:03

Can you give an update on pricing

bpiphany

30 Aug 2012, 18:09

mintberryminuscrunch wrote:Can you give an update on pricing
I was hooking everything up on a breadboard, and realised that the diodes on the board are actually mounted backwards to what I thought. No big problem with that except I will need to use pull-down resistors instead of pull-up resistors. Pull-up resistors are built into the ATmega, pull down resistors I will need to solder myself, all 18 of them... They are very cheap, but it is probably going to double the time to solder one board =P

Also $20 was probably on the low side to start with, so I think it is still a reasonable figure.

Post Reply

Return to “Group buys”