Author Topic: HHKB style Mod  (Read 33276 times)

0 Members and 1 Guest are viewing this topic.

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
HHKB style Mod
« on: Mon, 04 October 2010, 10:03:50 »
This is a HHKB style compact keyboard with keymap layers and mouse keys.

The original keyboard is an old Macway TP-999KB-E which has
Mac ADB interface and black simplified ALPS(Fukka or Forward).

I cut function keys and tenkey part out from this keyboard.
I applied RO-59(Smooth Aid) to switch stems and removed leaf springs from some switches for lighter feel.


This use PJRC Teensy as keyboard controler and firmware based on PJRC
example codes. The firmware is available from:
http://github.com/tmk/tmk_keyboard


Mouse keys is not comfortable, but able to do the job without mouse. It is better
than nothing. I prefer a TrackPoint, but it is deficult to install it in an end product keyboard.
UPDATE(2010/01/03): Mouse keys work nice for me now and I'm no longer as eager for TrackPoint as I was.



Keymap Layers:
Code: [Select]

Layer 0: Default Layer
    ,-----------------------------------------------------------.
    |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp |
    |-----------------------------------------------------------|
    |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|     |
    |-----------------------------------------------------'     |
    |Contro|  A|  S|  D|  F|  G|  H|  J|  K|  L|Fn3|Fn2|Return  |
    |-----------------------------------------------------------|
    |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift |Fn1|
    |-----------------------------------------------------------|
    |Fn7|Gui |Alt  |Space                 |Fn6  |\  |`  |   |   |
    `-----------------------------------------------------------'

Layer 1: HHKB mode (HHKB Fn)
    ,-----------------------------------------------------------.
    |Pow| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
    |-----------------------------------------------------------|
    |Caps |   |   |   |   |   |   |   |Psc|Slk|Pus|Up |   |     |
    |-----------------------------------------------------'     |
    |Contro|   |   |   |   |   |  *|  /|Hom|PgU|Lef|Rig|Enter   |
    |-----------------------------------------------------------|
    |Shift   |   |   |   |   |   |  +|  -|End|PgD|Dow|Shift |xxx|
    |-----------------------------------------------------------|
    |   |Gui |Alt  |                      |Alt  |   |   |   |   |
    `-----------------------------------------------------------'

Layer 2: Vi mode (Quote/Rmeta)
    ,-----------------------------------------------------------.
    |  `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|   `   |
    |-----------------------------------------------------------|
    |  \  |Hom|PgD|Up |PgU|End|Hom|PgD|PgU|End|   |   |   |     |
    |-----------------------------------------------------'     |
    |Contro|   |Lef|Dow|Rig|   |Lef|Dow|Up |Rig|   |xxx|   \    |
    |-----------------------------------------------------------|
    |Shift   |   |   |   |   |   |Hom|PgD|PgU|End|   |Shift |   |
    |-----------------------------------------------------------|
    |   |Gui |Alt  |Space                 |xxxxx|   |   |   |   |
    `-----------------------------------------------------------'

Layer 3: Mouse mode (Semicolon)
    ,-------------------------------------------------------- --.
    |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
    |-----------------------------------------------------------|
    |Tab  |MwL|MwU|McU|MwD|MwR|MwL|MwD|MwU|MwR|   |   |   |     |
    |-----------------------------------------------------'     |
    |Contro|Mb1|Mb2|Mb3|   |   |McL|McD|McU|McR|xxx|   |Return  |
    |-----------------------------------------------------------|
    |Shift   |   |   |   |   |   |MwL|MwD|MwU|MwR|   |Shift |   |
    |-----------------------------------------------------------|
    |xxx|Gui |Alt  |Mb1                   |Alt  |   |   |   |   |
    `-----------------------------------------------------------'
    Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel;

Layer 4: Matias half keyboard style (Space)
    ,-----------------------------------------------------------.
    |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
    |-----------------------------------------------------------|
    |Backs|  P|  O|  I|  U|  Y|  T|  R|  E|  W|  Q|Tab|Tab|     |
    |-----------------------------------------------------'     |
    |Contro|  ;|  L|  K|  J|  H|  G|  F|  D|  S|  A|Con|Control |
    |-----------------------------------------------------------|
    |Shift   |  /|  .|  ,|  M|  N|  B|  V|  C|  X|  Z|Shift |   |
    |-----------------------------------------------------------|
    |   |Gui |Alt  |xxxxxxxxxxxxxxxxxxxxxx|Alt  |   |   |   |   |
    `-----------------------------------------------------------'






« Last Edit: Mon, 03 January 2011, 03:43:52 by hasu »

Offline ironman31

  • Posts: 834
HHKB style Mod
« Reply #1 on: Mon, 04 October 2010, 10:52:43 »
Nice looking keyboard. Was this just a one time deal, or were you hoping to try and sell these?

I figure the community is craving something like this after the mini Guru failed to follow through
Keyboards:
IBM Model M Space Saving Keyboard (Used), HHKB Pro 2 (White, Lettered), Realforce 87U all-45g in White, Filco Majestouch 2 TKL with Cherry MX Browns, Model F PC/ATNoppoo Choc Mini (MX Browns), Model F XT, IBM Model M 1397735 (bought NIB), (2) Siig Minitouch (GHSS) one with XM, one with complicated ALPs (modded),2 Dell AT101W, Cherry G80-11900HRMUS (modded with MX browns)



Pointing Devices:
Logitech G500, Evoluent VerticalMouse 3, Logitech G5, CST 2545W, Microsoft IntelliMouse Trackball, Logitech M570, Logitech MX revolution


Offline itlnstln

  • Posts: 7048
HHKB style Mod
« Reply #2 on: Mon, 04 October 2010, 11:01:52 »
Do that with a brown Cherry keyboard, and you will have one sold to me for sure.


Offline kriminal

  • Posts: 424
HHKB style Mod
« Reply #3 on: Mon, 04 October 2010, 11:17:27 »
is it possible to post a pic of the innards?
Geekhacked Filco FKBN87M/EB modified with Brown, black and blue cherries, doubleshot keycaps
Deck KBA-BL82 with Black cherries
Cherry G84-4100LCMDK-0 Cherry ML switches
Cherry G80-8200hpdus-2 Brown cherries
IBM Lexmark 51G8572 Model M Keyboard
Geekhacked Siig Minitouch KB1948
IBM Model M Mini 1397681

Offline didjamatic

  • Posts: 1352
HHKB style Mod
« Reply #4 on: Mon, 04 October 2010, 11:48:10 »
Love this mod!  Well done!
IBM F :: IBM M :: Northgate :: Cherry G80 :: Realforce :: DAS 4

Offline Rajagra

  • Posts: 1930
HHKB style Mod
« Reply #5 on: Mon, 04 October 2010, 15:25:02 »
I think PFU need to up their game, they're starting to look like a bunch of amateurs!

(I'll assume you swapped the JK keys as a kind of watermark for the photo. :smile:)

Offline Findecanor

  • Posts: 5034
  • Location: Koriko
HHKB style Mod
« Reply #6 on: Mon, 04 October 2010, 15:45:47 »
Nice mod! The layout is not my cup of tea, but I applaud people who are daring enough to start a mod like this and follow it through all the way.

Ripster: Nice pic! Notice that all of the keyboards in the picture have Cherry switches of one type or another ...

Offline elbowglue

  • Posts: 583
HHKB style Mod
« Reply #7 on: Mon, 04 October 2010, 16:38:46 »


That's hot.
My keyboards: Filco Cherry Blue Tenkeyless(daily home), Compaq MX11800 (modded to blacks), Compaq "MX 84u",  Wellington\'s Dampened Endurapro, Pinkalicious Filco Blue Cherry, Chicony KB-5191, Chicony KB-5181, Desko MOS 5023 UP "elbowglue" spos (modded to blues), Siig Minitouch (monterey blue), SMK-88 (blue cherries), Ricercar SPOS
Smallest to biggest keyboards in inches (Length X Height) - Length is most important for a midline mouse position

KBC Poker: 11.6 x 3.9 - HHKB: 11.6 x 4.3 - Siig Minitouch (Geekhack Space Saver): 11.6 x 6 - Deck/Tg3 82: 12 x 6 - Noppoo Choc Mini 12.4 x 5.3 - Compaq "MX 84u": 13.1 x 7.5 - Filco Tenkeyless: 14 x 5.3 - Cherry "ricercar spos" G86-62410EUAGSA: 14 x 7.75 - Topre Realforce 86u: 14.4 x 6.65 - Desko "elbowglue spos" MOS 5023 UP: 14.5 x 8.4 - IBM Model M Spacesaver: 15.3 x 7 - G80-1800: 15.9 x 7.1 - Adesso MKB-125B: 16 x 7.3 - Compaq Mx11800, Cherry G80-11900: 16.25 x 7.5 - Filco Standard: 17.3 x 5.4 - Unicomp Endurapro: 17.9 x 7.1 - Adesso MKB-135B: 18.3 x 6.0 - Cherry G80-3000: 18.5 x 7.6 - IBM Model M, Unicomp Customizer: 19.3 x 8.27

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
HHKB style Mod
« Reply #8 on: Mon, 04 October 2010, 19:35:51 »
Thanks for responses, all.

ironman31: I would buy a mini Guru.if it was available. I hope that a compact KB with TrackPoint and Topre/CHERRY switch will be availble from some corp.

kriminal: Some photos of inside is attached at bottom of the article. It is a dirty work of cut and paste.
« Last Edit: Mon, 04 October 2010, 19:39:11 by hasu »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Added TrackPoint(PS/2) support to firmware
« Reply #9 on: Mon, 03 January 2011, 05:24:17 »
I added PS/2 mouse support to my firmware.
And TrackPoint unit used in Thinkad keyboard is just a 3buttonsPS/2 mouse.

This means it is ready to install the unit into my keyboard,
but I found my keyboard doesn't have enough room for the unit. :(
(The TrackPoint is working well outside the keyboard.)

If you are interested in PS/2 mouse or TrackPoint support, see ps2.c and ps2_mouse.c.  
(Trackpoint specific enhanced PS/2 commands are not supported so far.)
https://github.com/tmk/tmk_keyboard


Offline arieswu

  • Posts: 21
    • A`s Log
HHKB style Mod
« Reply #10 on: Mon, 03 January 2011, 07:21:13 »
the Mac keyboard looks so beautiful and stylish

i am keen to see it with trackpoint  :D
愛用小紅點

Offline sixty

  • Posts: 984
    • http://deskthority.net
HHKB style Mod
« Reply #11 on: Mon, 03 January 2011, 12:47:50 »
Great job hasu. You truly are an inspiring member to geekhack!

Offline lowpoly

  • Posts: 1749
HHKB style Mod
« Reply #12 on: Mon, 03 January 2011, 16:12:07 »
Quote from: hasu;272281
I added PS/2 mouse support to my firmware.

So awesome.

Quote from: hasu;272281
And TrackPoint unit used in Thinkad keyboard is just a 3buttonsPS/2 mouse.

I think most pointing stick units are.

Quote from: hasu;272281
This means it is ready to install the unit into my keyboard,
but I found my keyboard doesn't have enough room for the unit. :(
(The TrackPoint is working well outside the keyboard.)

Sticks from scissor keyboards are too short, you need an adapter. If you can't make it yourself, PM me.

Miniguru thread at GH // The Apple M0110 Today

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
HHKB style Mod
« Reply #13 on: Mon, 03 January 2011, 18:59:57 »
Quote from: lowpoly;272559

Sticks from scissor keyboards are too short, you need an adapter. If you can't make it yourself, PM me.


I made an adapter from a drink straw and hot glue. like this:


But it was too thick to install between three ALPS switches :(
I need a bit thinner post.
I have to read zmurf's TrackPoint mod again to know how he did.

I am very curious about your adapter option. I'll PM you later.

Offline j_r

  • Posts: 29
HHKB style Mod
« Reply #14 on: Mon, 03 January 2011, 22:44:43 »
Superb work!  I also appreciate your driver documentation on github; I have been scouring the internet for how one goes about developing such a thing (I have limited experience with programming... entry-level C++ and program specific languages, i.e. Maxscript and Rhinoscript).  Thank you, I now have some homework.

HID
Keyboard: Leopold FC200RC/AB; horrible ASUS rubber dome keyboard; (3) vintage AT keyboards: Tandy 2000 with horrible switches (Fujitsu), NMB RT2257TW, Fujitsu FKB 4800 (need drivers...)
Mouse: RAT5 mouse

Offline arieswu

  • Posts: 21
    • A`s Log
HHKB style Mod
« Reply #15 on: Sat, 02 April 2011, 09:38:22 »
Quote from: hasu;272281
I added PS/2 mouse support to my firmware.

If you are interested in PS/2 mouse or TrackPoint support, see ps2.c and ps2_mouse.c.  
(Trackpoint specific enhanced PS/2 commands are not supported so far.)
https://github.com/tmk/tmk_keyboard

Show Image


Hi, hasu
You really did a super mod!!!

Can you tell me board pinout of this trackpoint unit??
I have one looks like yours....
愛用小紅點

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
HHKB style Mod
« Reply #16 on: Sat, 02 April 2011, 10:26:25 »
arieswu,
I don't have this board in hand now, so I'm not sure but it was Type A.
I have seen only two type of Trackpoint board: Type A board is common and B is rare.

And see this thread for pinouts and some pic of TP board.
 http://geekhack.org/showthread.php?t=8971


Type A:
Code: [Select]
Board pinout    TPM754            
---------------------------------  
1   BUTTON2     P3.2(27)          
2   BUTTON1     P3.1(26)          
3   BUTTON0     P3.0(25)          
4   TP_CLK      INT0(24)          
5   VCC                            
6   GND                            
7   EX.CKL      INT1(4)            
8   TP_DATA     TXD(2)            
9   EX.DATA     RXD(1)            
10  RST         RST(5)
Type B:
Code: [Select]
Board pinout    TPM754            
---------------------------------  
1   RST         RST(5)            
2   EX.DATA     RXD(1)            
3   TP_DATA     TXD(2)            
4   VCC                            
5   TP_CLK      INT0(24)          
6   EX.CKL      INT1(4)            
7   GND                            
8   BUTTON0     P3.0(25)            
9   BUTTON1     P3.1(26)          
10  BUTTON2     P3.2(27)

Offline arieswu

  • Posts: 21
    • A`s Log
HHKB style Mod
« Reply #17 on: Sat, 02 April 2011, 12:22:24 »
Quote from: hasu;323297
arieswu,
I don't have this board in hand now, so I'm not sure but it was Type A.
I have seen only two type of Trackpoint board: Type A board is common and B is rare.

[/CODE]

Thank you so much

I read the thread and have one another question..

the 4.7k Ω resistor has 1/4w, 1/2w, 1w...which one should I use?
« Last Edit: Sat, 02 April 2011, 13:29:34 by arieswu »
愛用小紅點

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
HHKB style Mod
« Reply #18 on: Sat, 02 April 2011, 19:39:57 »
arieswu,
You can use any resistor wattage, even 1/8w is enough.
And the resistor value is not important in most case too, you can choose from 1k-10k ohm.

I saw your 40% keyboard with Trackpoint. Nice mod!
You should post its article on GH :)
« Last Edit: Sat, 02 April 2011, 19:43:08 by hasu »

Offline arieswu

  • Posts: 21
    • A`s Log
HHKB style Mod
« Reply #19 on: Sun, 03 April 2011, 10:54:11 »
hasu,

It really works,
thank you very much
I have done the part of trackpoint unit of my new 60% keyboard
It will use the frame of KBC poker


and happy to know that you like my last 60% with trackpoint mod
but my English is not good enough to post it on there XD
« Last Edit: Sun, 03 April 2011, 10:57:31 by arieswu »
愛用小紅點

Offline sordna

  • Posts: 2248
HHKB style Mod
« Reply #20 on: Sat, 17 September 2011, 20:11:54 »
Quote from: arieswu;323751
I have done the part of trackpoint unit of my new 60% keyboard
It will use the frame of KBC poker
and happy to know that you like my last 60% with trackpoint mod
but my English is not good enough to post it on there XD

Nice work with the trackpoint, where are the mouse buttons though?
Kinesis Contoured Advantage & Advantage2 LF with Cherry MX Red switches / Extra keys mod / O-ring dampening mod / Dvorak layout. ErgoDox with buzzer and LED mod.
Also: Kinesis Advantage Classic, Kinesis Advantage2, Data911 TG3, Fingerworks Touchstream LP, IBM SSK (Buckling spring), Goldtouch GTU-0077 keyboard

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
HHKB style Mod
« Reply #21 on: Sat, 17 September 2011, 23:59:00 »
Quote from: sordna;417894
Nice work with the trackpoint, where are the mouse buttons though?


He assigned the buttons on thumb row keys.
http://geekhack.org/showwiki.php?title=Island:9542&viewfull=1&page=15&do=comments#post268612

He is a great modder of compact keyboard with trackpoint as lowpoly be.
http://aries.armake.com/1229.html

Offline Dox

  • Posts: 312
HHKB style Mod
« Reply #22 on: Mon, 26 September 2011, 20:45:45 »
Hey hasu, I've just finished adapting your firmware for my doxkb! It was quite a challenge to  figure everything out but it all seem to be running smooth now. The mouse keys and the windows volume control is very nice!
I discovered a couple of bouncing switches with your firmware that were not a issue with my last one. any ideas what could cause this?
An other little question, there seem to be quite a bit of delay between when you press a function key and when you can use the function layer. Any way of reducing this delay?
Thanks for sharing this!
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
HHKB style Mod
« Reply #23 on: Mon, 26 September 2011, 21:45:32 »
Hi Dox, I'm happy hearing this!

Basically mechanical switches need debouncing to cancel chattering, but my firmware has no debouncing code yet. Fortunately I've not experienced bouncing on my keyboard so far :)
You can add debouncing code into matrix.c to solve your bouncing.I will add the code some time soon but I have no testing keyboard for now. I will post it in this thread when finished.


Yes, layer switching has some delay intentionally for some situations, if you don't need it you can reduce it with defining LAYER_ENTER_DELAY to smaller number in layer.c

Offline Dox

  • Posts: 312
HHKB style Mod
« Reply #24 on: Mon, 26 September 2011, 22:12:05 »
Thanks, now that I think about it, I can see why you would sometimes need the delay to engage the function layer. I'll play with it and see how it goes.
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
HHKB style Mod
« Reply #25 on: Thu, 29 September 2011, 03:27:14 »
Dox,

I added debouncing code to my firmware.
http://github.com/tmk/tmk_keyboard/commit/6284b147c23aa32a9e65138b1eb8ee908ece4941

The code locates in macway/matrix.c and you can found setting in macway/config.h like:
#define DEBOUNCE 5
You can use 0 if you don't need.

Plz try it and let met know this cures your problem.

Thanks.

Offline Dox

  • Posts: 312
HHKB style Mod
« Reply #26 on: Thu, 29 September 2011, 09:35:48 »
Thanks hasu! This seem to have fix the problem. I'm currently at work on my ergo clear version and the bounce was rare on this one. I'll try it on my cherry blue one tonight as it was bouncing all over the place.
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2