Axiom Keyboard 開坑啦

認識我的人都知道我對鍵盤有着相當的執着。在經過將近一年時間的構思和積累後,我決定正式開坑做鍵盤了。我將它命名爲 Axiom Keyboard,它滿足以下條件:

  1. 便攜且實用,70% Layout
  2. 無線+有線,支持多設備藍牙快速切換
  3. 內置 USB 充電電池,有效續航
  4. 有線供電下運載 16M 色域 RGB LED
  5. PBT 雙色注塑定製透光鍵帽,採用 HHKB 曲面 Profile
  6. 支援全新 Cherry MX RGB 系列軸體(要等 Corsair 獨占解禁)
  7. 全鍵盤無衝(N-Key Rollover + USB 6-Key Workaround)

70% Layout

Axiom Keyboard Layout 基於 60% 的 HHKB,增加了一些常用功能鍵,包括方向鍵、Home、End、Page Up、Page Down,一共有 68 鍵,所以大概是一個 70% 的 Layout。

Axiom Keyboard Layout

可以跟 HHKB Layout 對比一下:

HHKB Keyboard Layout

可以看到 Axiom Keyboard 對最底部一行的空間利用得更加充分,並且對不習慣 Caps-Ctrl Exchange 的人保留了傳統的左下角 Ctrl 鍵位。增加的方向鍵同樣能提升用戶友好度。最右邊增設的一列功能鍵可以由用戶設定成自定義功能鍵,能給經常使用 IDE 環境工作的開發者帶來很多便利。

藍牙連接

我之前成功將 HHKB 改裝成了藍牙鍵盤,用的都是一些比較零散的模塊,而且對底層的控制也不是很深。經過一段時間的探索,我已經找到了一個大致的方向,這次我將選用 Texas Instruments 的 CC2564 藍牙芯片,它能提供完全符合 Bluetooth 4.0 標準的 HCI 控制接口,對底層的控制將更加靈活,希望在近期內能用它做出多藍牙設備快速切換的原型。

CC2564

RGB LED

受最近 Corsair RGB 系列鍵盤的啓發,我打算給我的鍵盤也加上 16M 色域的 RGB LED 支持。對於電子電路來說,LED 的電壓控制是通過 PWM 實現的,一般的 MCU 只會配備很少的甚至完全沒有硬件支持的 PWM 模塊,如果要靠軟件模擬 PWM 將會消耗巨大的計算資源,幾乎無法實現。所以我們只能選擇外部的 LED Matrix PWM Driver IC 來完成這項工作。事實證明,Corsair 在它們的新產品中也選用了這種芯片:

AN32181B

可以看到 Corsair 使用了三塊 Panasonic AN32181B 芯片來控制多達 122 個 RGB LED。通過查看這塊芯片的 Data Sheet 我們可以看到,一塊這樣的芯片能輸出 144 個 PWM 信號,而一個 RGB LED 需要紅、黃、藍三個 PWM 信號,所以一塊芯片能控制 48 個 RGB LED。因此 Corsair 必須貼三塊這樣的芯片才能滿足控制 122 個 RGB LED,也就是 366 個 PWM Channels 的需求。

RGB LED

如果把 AN32181B 應用到 Axiom Keyboard 上,我們需要貼兩片才能控制 68 個 RGB LED。然而在我進一步的調查中發現,儘管在電子市場上沒有出售,但是 Panasonic 在它的一篇廣告文案中提到:

The AN3x Series is a single chip solution which can drive from 3 to 288 single color LEDs or from 1 to 96 RGB LEDs.

說明 Panasonic 有可能有未公開銷售的芯片模組擁有控制 96 個 RGB LED 的能力。對此我也在向松下的銷售人員求證,如果能夠搞到這樣的芯片,我們可能只需要一塊貼片就足以。

Oct 20 更新:松下的 Rep 回覆

Our product group advised:

It looks like this is misprint. Maximum number of LEDs with this series driver is 144.

所以這個系列芯片最多只支持 144 通道。不過也是,如果有更多通道的芯片的話 Corsair 沒理由不用呀。於是我們目前看來需要兩塊 AN32181B 芯片驅動我們的鍵盤 LED 矩陣。好在這款芯片支持 400kHz I2C 通訊協議,而且能選擇 4 個物理地址,也就是說我的 MCU 只需要用一個 I2C 接口就能同時控制最多 4 塊並聯在一起的 AN32181B 芯片,以及更多不同物理地址的其他 I2C 設備。

鍵帽

鍵帽的質量直接決定了鍵盤的使用舒適程度。我覺得做得最好的鍵帽當屬 HHKB。如果你仔細對比過 Cherry 原廠的鍵帽和 HHKB 的鍵帽你會發現,原廠鍵帽的每個側面都是平面,而 HHKB 的左右兩面其實是曲面。仔細觀察下面這個 HHKB R2 鍵帽模型的右側面:

HHKB Curved Surface View

你可以看到後面的一角是突出來的,說明這一面並不是平面。HHKB 這樣設計的目的是爲了讓頂部的觸摸面在不同的行高和斜度下都能保持同樣的規格,所以 HHKB 鍵帽整體看起來十分美觀,而且高度和斜度的變化也十分適合打字的手指運動。因此我打算以 HHKB Profile 爲基礎重新設計一套適用於 Cherry MX 的鍵帽。

R1-R4

鍵帽的製作工藝我打算使用 PBT 雙色注塑(Two-Shot Injection Molding),透光的圖案部分採用 ABS 材質,這兩種材質的粘合性非常好,國內有很多雙色注塑鍵帽用的也是這種工藝:

Two Shot Material Compatibility Chart

Two-Shot Injection Keycaps 1

Two-Shot Injection Keycaps 2

因爲是定製的模型,所以需要製作模具,中國東莞有很多注塑和模具的生產廠家,預計製作這樣一套模具將花費一萬到三萬人民幣不等。所以能否做出來還要看這套鍵盤能不能衆籌到相應的價錢。

鍵盤矩陣掃描芯片

熟悉鍵盤固件的人應該都知道矩陣掃描的工作原理。目前市面上絕大多數的鍵盤都是採用運載於 MCU 的軟件驅動的掃描程序來檢測按鍵事件的。然而 MCU 輪詢矩陣的過程中還要處理別的事情,比如 USB 通訊等等,所以需要分配計算資源,所以軟件驅動的矩陣掃描的頻率非常低,是跟着處理器頻率走的,MCU 的資源緊張的時候響應速度往往都在 5-10ms 級別。一般人難以察覺,但是像我這種對延遲異常敏感的人還是能察覺得到的。

爲了加快按鍵響應速度,我打算採用 Texas Instruments 的 TCA8418E 鍵盤矩陣掃描芯片。這款芯片能夠在 25μs 內掃描一個 8x10 的矩陣並做出響應。通過 I2C 端口通信,MCU 只需要在有按鍵事件的時候處理 Interrupt 就行了,並不需要分配資源進行矩陣掃描,效率將大大提高。這樣一來 MCU 甚至能夠進入完全休眠的節能狀態,只留下這塊芯片不停地掃描 Matrix,直到產出一個按鍵事件的 Interrupt 才進行 Wake Up,能大大節省休眠時期的能耗。

TCA8418E-EVM

主控 MCU

大部分的 DIY 鍵盤爲了方便,都是用的 Hasu 的 AVR 固件,然而 AVR 在各方面來說都比較弱,當鍵盤的功能變多的時候,我們希望能有速度更快、內存更多、功耗不大的選擇。現在很多商業鍵盤裏面都是用的 NXP 的 ARM Cortex-M 系列 MCU。然而就個人而言,我覺得 ARM 架構對於一個 USB 設備而言太過複雜了,開發環境不容易搭建,代碼也比較複雜,很多功能都用不到,而且功耗也比較大。因此這次我想嘗試使用 Texas Instruments 專門爲 USB 產品設計的 MSP430 系列 MCU。

MSP430F5529 LaunchPad

MSP430 雖然沒有 ARM 那麼強大,但是作爲鍵盤的主控芯片是綽綽有餘了,而且價格便宜功耗小。再加上 TI 豐富的開發資源跟開源的軟硬件工具鏈,開發過程相當容易。

總結

Axiom Keyboard 將是一款從頭到尾重新設計過的鍵盤,所有的部件都是以商業產品爲目標進行設計的。它的價格也同樣不會便宜,我預計它將會成爲高端玩家的新寵。讓我們拭目以待。

Rix

Read more posts by this author.