自作Keyballファームウェア
GitHub - nazo6/rktk: Keyboard firmware framework built with Rust and embassy
Keyboard firmware framework built with Rust and embassy - nazo6/rktk
github.com
の電力消費を改善するため、他のファームウェアの電力消費を調べたメモ。
以下の値は全て同一のKeyball61個体で測定し、指定がない限り
- LED実装済み
- OLED接続済
- 5V(USB給電)
- 左右をTRSケーブルで接続(つまりもう片側の電力が含まれる)
という条件。
アイドル時
| RP2040 | nRF52840 | 備考 | |
|---|---|---|---|
| 本当にアイドル時(USB Boot mode) | 0mA | ||
| embassyの初期化してアイドル | 25-35mA | 動作クロックデフォルト | |
| 基板に接続しない(RP2040単品) | 41-45mA | ||
| nice!nanoのvcc cutを利用してLEDへの電流を遮断した場合(ボールなし) | 0mA |
QMK firmware
- AVR(通常のProMicro)は公式ファームウェア(にちょっと手を加えたもの)、RP2040については、こちらのファームを使わせてもらった。
| AVR | RP2040 | |
|---|---|---|
| 通常動作 | 110-120mA(通常114mA) | 90-110mA(通常111mA) |
| OLED取り外し | 95-100mA(通常94mA) | 90mA |
| 片側(ボール側)のみ | 70mA | 50-65mA (通常60-6621222mA) |
rktk (自作ファームウェア)
| RP2040 | nRF52840 | 備考 | |
|---|---|---|---|
| 通常動作(全機能ON、左右TRS接続) | 85-100mA | 50-60mA | |
| クロック周波数変更(div=2) | 75-85mA | div>=3だとUSB関連の何かが動作しない… | |
| LEDを最低輝度でON時 | 50-60mA | 上とほぼ変わらず | |
| LEDを最高輝度でON時 | 700-800mA | マイコンが結構熱くなった。TRSケーブルって一体どれくらい電流流していいんだろうか | |
| Bluetooth接続時 | 40-70mA | 気持ち電流消費量が多いがあまり変わらない…? | |
| 片手(ボール側)のみ | 55-70mA | 30-40mA | |
| 片手(非ボール側)のみ | 30-40mA | 0-20mA | 使っている測定計の電流最低値が20mAぐらいなのでnRFはおそらく10mAぐらいで推移しているのでは |
感想
- 思ったより自作ファームウェアの消費電力は悪くなさそう。(まあQMKの全ての機能を実装しているわけではないので単純比較はできないが…)
- AVRの消費電力が思ったより高い。あれだけ性能が低いから消費電力も低いかと思っていた。
- RP2040はnRFより消費電力が高い。というかnRF52840の省電力性能が際立っている。LEDを切断すれば消費電力はuAレンジになっていそう。
- LEDを切断するとどれくらい下がるかも検証したい
- →nice!nanoのVCC Cutoffを用いて検証した。これを用いてLEDへの電力供給を遮断したところボールなし側ではなんと電流値がほぼ0になった。
- つまりこれはLEDが消灯時に20mA(1つあたり0.6mA程度?)も消費していたことになる。