{"id":18862703,"url":"https://github.com/zk-phi/affinity-keyboard","last_synced_at":"2025-10-07T00:22:46.827Z","repository":{"id":152679592,"uuid":"272423692","full_name":"zk-phi/affinity-keyboard","owner":"zk-phi","description":"A 4x4 macro-pad with a spectrum analyzer IC","archived":false,"fork":false,"pushed_at":"2020-06-19T07:47:16.000Z","size":5524,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-30T21:16:10.938Z","etag":null,"topics":["keyboard"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zk-phi.png","metadata":{"files":{"readme":"Readme.markdown","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-15T11:44:26.000Z","updated_at":"2021-08-05T10:58:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"8f15d160-a2c0-4cae-9639-71865dbf755e","html_url":"https://github.com/zk-phi/affinity-keyboard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zk-phi%2Faffinity-keyboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zk-phi%2Faffinity-keyboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zk-phi%2Faffinity-keyboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zk-phi%2Faffinity-keyboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zk-phi","download_url":"https://codeload.github.com/zk-phi/affinity-keyboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239808133,"owners_count":19700440,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["keyboard"],"created_at":"2024-11-08T04:35:32.734Z","updated_at":"2025-10-07T00:22:41.797Z","avatar_url":"https://github.com/zk-phi.png","language":"Shell","readme":"# AFFINITY Keyboard\n\n※試作品です (TODO 参照)\n\n![front](images/front.jpg)\n\n![components](images/components.jpg)\n\n7 バンドスペアナ IC を搭載し、音声入力に応じて LED のパターンを変化させるなどのギミックを実装できるサブキーボードです。\n\nTRRS ジャックが２つ生えているので、片方に音楽プレーヤーなどの出力を、他方にイヤホンなどを接続して使用します。\n\nMX スイッチ、 Choc スイッチに対応しています。\n\n## 動画\n\nレベルメーター風\n\n- https://twitter.com/zk_phi/status/1271797216508669954\n\nパリピモード (ビートに合わせて演出)\n\n- https://twitter.com/zk_phi/status/1272497990968565760\n\n## パーツ\n\n- メイン基板\n- ボトムプレート\n- ProMicro カバー\n- いつもの\n  - ダイオード 1N4148w x16\n  - 2 ピンタクトスイッチ x1\n  - コンスルー付き ProMicro x1\n- LED\n  - SK6812mini x16\n  - チップコンデンサ 0.1uF (2012 Metrics) x16\n- スペアナ周辺回路\n  - スペアナ IC MSGEQ7 x1\n  - チップコンデンサ 0.1uF (2012 Metrics) x3\n  - コンデンサ 33pF (2.5mm ピッチ) x1\n  - チップ抵抗 220K (2012 Metrics) x1\n  - チップ抵抗 22K (2012 Metrics) x2\n  - TRRS ジャック MJ-4PP-9 x2\n- キースイッチ\n  - 5-pin MX 互換 or Choc x16\n    - 初期の Choc クリッキーにあった追加のピンは刺さりません\n- ネジ類\n  - M2 スペーサ 5mm x5\n  - M2 スペーサ 7mm x2\n    - コンスルーの足を切れば 5mm でも ok (その方が個人的には好き)\n  - M2 ネジ 3~4mm x14\n  - ゴム足 4 個\n\n### 入手先の例\n\n- スペアナ IC\n\nhttp://akizukidenshi.com/catalog/g/gI-12887/\n\n- チップコンデンサ\n\nhttp://akizukidenshi.com/catalog/g/gP-14572/\n\n- コンデンサ\n\nhttp://akizukidenshi.com/catalog/g/gP-13317/\n\n- チップ抵抗\n\nhttps://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-57CU (220K)\n\nhttps://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-57CG (22K)\n\n## TODO\n\n今のバージョンにはいくつか改善の余地があります。\n\n### 凡ミス系\n\n- PCB マウントのピンが若干ゆるく、 choc スイッチの位置決めがやや難しい\n  - 個体差かも？\n\n- ２つの TRRS ジャックの間が思ったより狭く、太いプラグは２本刺さらない\n  - 写真参照\n\n- Pro Micro カバーをつけてしまうとリセットスイッチが押せない (!!)\n  - キーの組み合わせでリセットをかけられるようにして対応\n\n### 音量調節問題\n\nどれくらいの音量に反応させるかはファームウェア側でも設定できますが、とはいえ入力が小さいと精度がかなり落ちます。そのため、キーボードに入力する音声は一般的なポータブルプレーヤーの MAX 近い音量が推奨になります (「レベルメーター」モードで、一番上の行がたまーに光るくらい)。\n\n実用するには、\n\n```\nプレーヤー\n| (音量大)\nこのキーボード\n|\n減衰器\n| (音量小)\nイヤホン\n```\n\nのようにイヤホンへの入力だけを減衰するか、逆に\n\n```\nプレーヤー\n|\n+-- アンプ --- (音量大) このキーボード\n|\n+-- (音量小) イヤホン\n```\n\nのようにこのキーボードへの入力だけを増幅する感じになると思います。\n\n減衰器は適当な (どれくらい減衰させたいかによる) 大きさの抵抗を探してくるだけで簡単に作れるほか、市販でも「抵抗入りケーブル」「ボリューム付きケーブル」などの名前で売られています。\n\n私は以下のような回路をブレッドボードに仮組みして使っています。\n\n```\nKeyboard         -\u003e         Earphone\n\nLout --- 30 Ohm ---+------- Lin\n                   |\n                 10 Ohm\n                   |\nRout --- 30 Ohm ---|---+--- Rin\n                   |   |\n                   | 10 Ohm\n                   |   |\n GND --------------+---+--- GND\n```\n\n詳しいことはわかりませんが、普通のカーボン抵抗よりも金属皮膜抵抗の方が音質がよかったです (特に 30 Ohm の方)。\n\nゆくゆくはこのキーボードに簡単なアンプ回路を内蔵するべきなのかなあと思っています。\n\n### ノイズ問題\n\nLED がたくさん光っていると、音声に謎のノイズが乗ります。\n\n現状では LED をノイズが気にならない程度の光量に抑えて対応しています。\n\n今までにわかっていること：\n\n- 以前近いコンセプトの試作品を作った時は LED にパスコンがなかったのでパスコンをつけた、マシにはなったのかもしれない (?) けど解決にはならず\n- 相手のデバイス (オーディオプレーヤーなど) と繋いでいる時だけ問題の音が出ることを確認\n- LED 光らせている時だけ問題の音が出ることを確認\n- イヤホン出力の GND やオーディオ入力の GND にフェライトビーズを挟んで無理やり分離しようとしてみたが解決にはならず\n\nフィードバック・アドバイス・プルリク歓迎です。むしろ誰か助けて。\n\n----\n\n追記\n\n- PC からではなく別電源から給電するとノイズが乗らないことがわかったので、単純に電源のパワーが足りないだけの可能性が出てきました\n\n----\n\n追記２\n\n- 電源と音声を両方とも PC から入力した場合だけ不安定になることがわかってきました。キーボードは PC に接続しつつ、音声は別のプレーヤー入力すると問題なさそうです\n\n## 組み立て\n\n![back](images/back.jpg)\n\n- 裏面に実装する表面実装部品 (ダイオード、チップコンデンサ、 LED) を実装します\n  - チップコンを最初につけるのが個人的にはらくでした\n  - ダイオードはコの字の印がカソード、 LED はコの字の印が Vcc です\n  - LED の実装順は最上段の Pro Micro 側から反対側へ (写真では左から右)\n  - ２段目以降も同様\n\n- ファームを焼いた Pro Micro をコンスルーで差し込み動作テストをします\n  - LED のテストには Helix の `led_test` キーマップが便利です (`make helix/rev2:led_test:avrdude`)\n    - (音を検知しないと光らないので)\n  - このキーボードのキーマップは `zk-phi/qmk_firmware` にあります: `make handwired/affinity:default:avrdude`\n\n- おもて面に実装する部品を背の低いものから実装します\n  - チップ抵抗、チップコンデンサ、スペアナ IC、リセットスイッチ、コンデンサ、 TRRS ジャック\n\n- キースイッチを実装します\n\n![spacers](images/spacers.jpg)\n\n- ボトムプレートに５つ、メイン基板に２つスペーサーを立てます\n\n- ボトムプレートにメイン基板を取り付け、メイン基板に Pro Micro カバーを取り付けます\n  - この順でないと取り付けられません (これも要改善かも)\n\n- ゴム足を貼れば完成\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzk-phi%2Faffinity-keyboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzk-phi%2Faffinity-keyboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzk-phi%2Faffinity-keyboard/lists"}