Author Topic: [TMK] Alps64 - 60% PCB for Alps  (Read 31383 times)

0 Members and 1 Guest are viewing this topic.

Offline hasu

  •  Moderator
  • Thread Starter
  • Posts: 3349
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
[TMK] Alps64 - 60% PCB for Alps
« on: Mon, 02 October 2017, 05:02:40 »
TMK Alps64 PCB supports Alps switches[ SKCM/SKCL, SKBL/SKBM, Matias and  Clones ] with
various layouts such as Apple Extended Keyboard, Dell/SGI 101 and more. You can harvest switches, keycaps and stabilizers from the old keyboards. And the PCB can be screwed down into de facto Poker compatible cases.

WIth this PCB you can make 60% keyboard from your favorite ALPS switches. This is my Alps64 with SKCM orange switches and AEK keycaps.

Technical discussion thread:
Old Group Buy thread:


PCB and AEK plate are in stock on regular basis at this moment.
You don't need to ask me about the availability. Status below will be updated if they are out of stock.

Currently IN STOCK. Lead time is less than a week in most cases. 2022-01-09

To place order email me( ) with "Alps64 Order" in subject and let me know number of PCB and/or plate you need.

Please check this notes on shipping under COVID-2019 pandemic before ordering.

    Alps64 PCB: $44USD,
    AEK plate: $12USD($18 when ordering without Alps64 PCB)
    $8USD per order.
    Orders will be processed and shipped within a week after payment basically.
    I'll send you PayPal invoice, you can pay with credit card or balance of PayPal account.
    Please make sure you supply correct shipping address when making payment.

Alps64 PCB
It looks like the below and curent revsion PCB color is black.
All SMT components are soldered, through-hole diodes(1N4148) come with the pcb and you have to solder them yourself. See 'Assembly' section below.

AEK layout Plate
This plate supports Apple Extended Keyboard(AEK) layout. Its material is FR-4(PCB substrate, not metal) and color is black. You can use keycaps and stabilizers from AEK(Apple Extended Keyboard) or AEKII with this plate. Note that this plate supports only AEK US layout only.

For other layouts than AEK check "Plate" section below about how to get your own plate.

Alps64 Technical Info

Supported Layouts
Physically possible combination of any part from following layouts is supported by Alps64 PCB.
You need suitable plate for your layout to assemble keyboard.

AEK(Apple Extended Keyboard):






See this for details and examples.
- Top right
  - Backspace(2)  OK
  - HHKB like Split Backspace(1+1) OK
- Bottom row
  - AEK(1.5+1.25+1.5 spc6.5 1.5+1.25+1.5) OK
  - 101/103(1.5+1+1.5 spc7 1.5+1+1.5) OK
  - 104(1.25+1.25+1.25 spc6.25 1.25+1.25+1.25+1.25) OK OK(Dell AT101W)
  - Infinity(1.5+1+1.5 spc 1.5+1+1+1.5) OK
  - Split/Erase Eaze Not supported
  - JIS Not supported
- Enter
  - US OK  OK
  - ISO NG with Matias  Fixed on Rev.B  OK(Rev.B)
  - Bigass OK
- Left Shift
  - US(2.25) OK
  - ISO(1.25+1) OK
- Right Shift
  - US(2.75) OK
  - HHKB like Shift + Fn(1.75+1) OK OK
  - JIS Shift(1+1.75) Not supported
- Caps Lock
  - Non Stepped OK
  - Stepped(Alps 1.5) OK
  - Stepped(Cherry or 1.25u)

ISO Enter Support:
    ISO Enter key can be used in Rev.B and later revision. The PCB supports three mount positions, 1u, 1.25u and 1.5u. See pictures and figure below. Matias has 1.25u mount, Dell and Alps have 1.5u mount and ISO Enter with 1u mount is not confirmed its existence yet. By the way, Cherry ISO key is also located in middle of 1.25u as Matias does. AEK ISO layout is not supported, which is different size from standard ISO layout.

    keycap from Matias
    keycap from NEC Rakuraku keyboard(Alps)
    keycap from Dell AT102W;topic=69740.0;attach=101849;image


       ------- -------
      |       |       |
      |   +   |   +   | 1u
      |       |   |   |
       ------- -------
            |     |   |
            |    +|   | 1.25u
            |    ||   |
          |      ||   |
          |     +||   | 1.5u
          |     |||   |
          .-----------, 1.5u
          |     |||   |
          |     |||   |
           `    +++   |
            |         |
            |         |
            `---------' 1.25u

Caveat: AEK ISO layout is not supported, which is different size from standard ISO layout.

Supported Cases
KBC Poker compatible cases

    - Poker X original plastic case OK OK
    - Pure CNC metal OK
    - Poker II OK
    - Pok3r OK? OK
    - KBP V60(Not supported) OK NG NG PCB tab under USB connector interferes

    - Other custome cases
        - Hammer Alu OK
        - TEX aluminum case OK OK but some diodes may interfere with thick PCB supports of the case, perhaps you need this trick in that case.
        - TEX acrylic case OK
        - IQUNIX LAMBO OK but it may make short circuit.
        - Mekanisk Fjell and Klippe

Plate desing files
You can order keyboard switch plate at laser cutting service using CAD design file available. Plate thickness for Alps switch should be 1.0-1.2mm according to its spec.

My latest AEK layout plate design files are available here.
Use 'alps64_plate_aek_flip_spacebar.dxf'. The dimensions is 95x285mm and total length of all paths is 4492mm for reference.

You can find design file for other layouts in "Open Source 60% Alps Plates" thread.
Note that the first post of the thread won't be updated anymore and the AEK design files there is not the latest.

Laser Cutting Shops
You can locate some shops on the net, where you can get plate at reasonable cost. of Spain can do laser job for around 50USD(2019-09-07). See this post. (70USD for AEK plate) should work.
sendcutsend of USA is also available.

However, any other laser cut service will work. This lists many other shops for keyboard things.

How to design your own plate
Layouts on
AEK layout

Swill's Plate tool builder

How to assemble

Check your PCB
Test your PCB before you start assembling. If you assemble it without this test and it doesn't work it could be very difficult to discrimitate between PCB's fault and yours.
1. Plug into USB port
You will see LED on bottom side flashes at startup. And it will be enumerated as a keyboard device by your OS.
In Windows you will find a entry like 'HID Keyboard Device' whose hardware id is like 'VID_FEED&PID_6464' in Device Manager.

In Linux you will find a line like below in output of 'lsusb'

    $ lsusb
    Bus 001 Device 050: ID feed:6464
and lines like below in log file such as /var/log/kern.log(ubuntu).

    Jan  4 23:05:28 desk kernel: [305237.996043] usb 1-1.3.1: new full-speed USB device number 52 using ehci-pci
    Jan  4 23:05:28 desk kernel: [305238.090594] usb 1-1.3.1: New USB device found, idVendor=feed, idProduct=6464
    Jan  4 23:05:28 desk kernel: [305238.090607] usb 1-1.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    Jan  4 23:05:28 desk kernel: [305238.090613] usb 1-1.3.1: Product: Alps64
    Jan  4 23:05:28 desk kernel: [305238.090619] usb 1-1.3.1: Manufacturer: TMK
    Jan  4 23:05:28 desk kernel: [305238.093405] input: TMK Alps64 as /devices/pci0000:00/0000:00:02.1/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0/0003:FEED:6464.008F/input/input121
    Jan  4 23:05:28 desk kernel: [305238.148208] hid-generic 0003:FEED:6464.008F: input,hidraw0: USB HID v1.11 Keyboard [TMK Alps64] on usb-0000:00:02.1-1.3.1/input0
    Jan  4 23:05:28 desk kernel: [305238.150044] input: TMK Alps64 as /devices/pci0000:00/0000:00:02.1/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.1/0003:FEED:6464.0090/input/input122
    Jan  4 23:05:28 desk kernel: [305238.204289] hid-generic 0003:FEED:6464.0090: input,hidraw1: USB HID v1.11 Mouse [TMK Alps64] on usb-0000:00:02.1-1.3.1/input1
    Jan  4 23:05:28 desk kernel: [305238.206226] input: TMK Alps64 as /devices/pci0000:00/0000:00:02.1/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.2/0003:FEED:6464.0091/input/input123
    Jan  4 23:05:28 desk kernel: [305238.260781] hid-generic 0003:FEED:6464.0091: input,hidraw2: USB HID v1.11 Device [TMK Alps64] on usb-0000:00:02.1-1.3.1/input2
    Jan  4 23:05:28 desk kernel: [305238.263008] hid-generic 0003:FEED:6464.0092: hiddev0,hidraw3: USBHID v1.11 Device [TMK Alps64] on usb-0000:00:02.1-1.3.1/input3

2. Open Notepad and make short circuit on a key
Connect pads of K01 and D01 with tweezer or papler clip like pic below. You will see 'm' is registered on Notepad. This indicates your PCB is likely to work well.

If your PCB doesn't work as described above it may have fault, post your problem in this thread.

See BlueNalgene's this post also.

1. Diode polarity
Diode has polarity and won't work if you solder it reversely. Diode has two leads, cathode and anode,  you can discrimitate them by cathode mark on it. Black marking side of diode is cathode lead and cathode should be soldered on square land while anode on round land.

2. Soldering diodes
Don't solder diodes all at once, you should assemble some and test them at first to avoid losing your time in vain.
Solder just a few diodes and check if they work correctly by short circuit like pic below. You will see the key only is registered on your OS, use Notepad, or tools like AquaKeyTest, EK SwitchHitter or xev.

EK SwitchHitter:

Of course, you should plug off PCB before soldering :D

SMT diode
This is optionally and you don't need this in most cases.
You can use SMT(SMD) diodes instead of through hole(TH) devices. Its footprint is SOD123, I tested PCB with DIODES inc. 1N4148W.

Some cases have thick PCB supports(standoffs and beams?) which interfere with some of TH diodes and make short circuit. To avoid this you can use SMT diodes for them(D00, D10, D20, D22, D23, D24, D25, D26, D27, D30, D31, D36, D55, D63, D65, D70, D73). And you will have to tape on TH pads to prevent from shortcircuit.

3. Soldering switches
Again, don't solder switches all at once, you should test them occasionally during assembly. At this point testing is easy, just plug in, press a switch and see with one of softwares above.

4. Test all swtiches
After assembly is completed check if all switches work correctly with default firmware. Don't program controller with your firmware and don't change keymap until this test is finished. Your own firmware or keymap will make test/debug process difficult.

How to remap


TMK keymap editor for Alps64
You can edit keymap and download firmware here.

For example keymap like HHKB:

Mechanical Locking Switch Support:
For Caps Lock key just use 'KC_LCAP' instead of 'KC_CAPS' in Keymap Editor or your keymap code.

Source code
You can also build firmware yourself from souce code, of course.

To comipile your firmware consult with TMK documentations and resources. See this for building firmware from source code first.

Flash firmware
Alps64 pcb uses ATmega32u2 chip as microcontroller. To enter programming mode(start bootloader) hook up to USB port and press tiny push button on bottom side of PCB.

Consult with this wiki page about tools and how to flash firmware.

03/23 Placed order ten PCBs 03/24 My order was accepted by PCB fab(In production)
03/24 Changed assembly fee $10 to $12
03/24 Sent Invoices to top nine of the list
03/25 Paid for all of nine slots!
04/05 Confimed AEK layout and Poker case work
04/05 Wrote firmware
04/16 invoiced for the rest of costs
05/25 Started second run
05/27 Found defect with ISO enter on Rev.A. Fixed on Rev.B.
06/02 Closed second run
06/16 Rev.B PCB arrived
06/25 Confirmed Infinity layout
06/26 Attached compiled binary of firmware
10/14 Rev.C PCB: adds support for Cherry stepped Capslock and moves some SMT diodes
11/08 TMK keymap editor for Alps64

01/05 Update Assembly and add Check your PCB section
04/24 4th run
06/15 USB wakeup fix
06/06 5th run open
06/25 5th run close
07/15 6th run open
10/01 7th run open
11/17 7th run close

01/07 8th run open
05/05 9th run
08/03 10th run
08/06 PCB Rev.F added pinouts for unused IO pins
09/03 PCB Rev.G
10/16 11th run
11/10 12th run
12/20 12th run: all orders were shipped

01/13 13th round: open
02/16 13th round: close & shipped
03/19 Leftover sale
06/20 PCB Rev.H
09/04 PCB Rev.I
11/11 Revised prices

01-09 Changed price and shipping cost(6 to 8usd)

01-09 Re-organized sale page

- Fix USB connector position a bit?(pending)
- Get feedback from revision A/B users and fix if needed
- Confirm case fitness
- Confirmed Layouts
« Last Edit: Sun, 09 January 2022, 02:41:00 by hasu »