ProMicroのブートローダーをQMK-DFUにする

動機

4x4_hotswapには物理リセットボタンがないためキー操作でブートローダーに入れるようにしたいが, (ProMicroに初めから入っている)CaterinaブートローダーではRESETキーを押しても反応しなかった(今は対応しているかもしれない。試していない。)

追記 2018/11/19

config.h#define CATERINA_BOOTLOADERと書くことでCaterinaのままでRESETキーに対応することがわかった。FatProMicroの死が無駄だったことがわかって完全に虚無。

方法

  1. 余っているProMicro(Caterina)にArduinoISPを書き込む
  2. QMK Firmwareを書き換え, makeする
  3. ISP化したProMicroにブートローダーを書き換えるProMicroを繋ぐ
  4. 書き込む

余っているProMicroにArduinoISPを書き込む

Arduino IDEから ファイル>スケッチ例>11.ArduinoISP>ArduinoISP を選択し, そのままProMicroに書き込む。ArduinoにあるピンがProMicroにはないと言われているが, 動くものは動く。既にQMK Firmwareを書き込んでいる場合はリセットする必要があるかもしれない。

QMK Firmwareを書き換え, makeする

config.h

#define QMK_ESC_OUTPUT F1 // usually COL
#define QMK_ESC_INPUT D5 // usually ROW
#define QMK_LED B0

を書き足す。

rules.mkBOOTLOADER = qmk-dfuと書く。

make keyboard:keymap:productionを実行する。

ProMicroをつなぐ

ArduinoISPを書き込んだProMicroとブートローダーを書き換えるProMicroのVCC, GND, 14番, 15番, 16番 を繋ぐ。ISP側の10番は書き換える側のRESETに繋ぐ。

Pro Micro(クローン)を文鎮化から復活 - Qiita

書き込む

ArduinoISPを書き込んだProMicroのポートが/dev/ttyACM0の場合,

avrdude -c avrisp -p m32u4 -P /dev/ttyACM0 -U flash:w:"keyboard_keymap_production.hex":a -U lfuse:w:0x5E:m -U hfuse:w:0xD9:m -U efuse:w:0xC3:m -U lock:w:0x3F:m

を実行する。メモリ全域を書き換えるため, やや時間がかかる。

動作

リセットしたときにTX LEDが点滅するようになった。

ファームウェア書き込み時には make keyboard:keymap:avrdudeではなくmake keyboard:keymap:dfuとする必要がある。

分割キーボードで使うとRESETキーを押したときに両手ともリセットされ, そのままコンピュータでファームウェアを書き込むとmicroUSBケーブルが挿さっているほうにだけファームウェアが書き込まれる。挿さっていないほうはTX LEDが点滅したままになる。

QMK_ESC_OUTPUTQMK_ESC_INPUTが何なのかはわからない。

続き

本来の目的である4x4_hotswap用のFatProMicroに書き込もうとしたところ, 接触不良でFuse bitが全て0に書き換えられ, 何もできなくなった。買い直す必要がある。ブートローダーが壊れても同様にArduinoISPで直せるし, モゲMicroもArduinoISP経由でファームウェアを書き換えれば(分割キーボードの右手側であれば)使えるが, こうなってしまうと全くダメだ。(高電圧を掛ける装置を使えば直せると聞いたこともあるが, そんな装置は手元にない。) 接触不良には注意しよう!

なお, 文鎮化したFatProMicroは強いと言われるmicroUSB端子の耐久試験に使うつもりだ。

参考

Replace Pro Micro bootloader with QMK DFU : olkb

qmk_firmware/flashing.md at master · qmk/qmk_firmware · GitHub

現在進行中の自作キーボードプロジェクト

EndGameを求めるだけが自作キーボードじゃないなんて言ったら沼の人に怒られそう

hogefuga keyboard

設計理念

  • 100mm×100mmに収めることで製造費を抑える
  • フルキーキャップセットをROWを違えることなく使えるようにする
  • 280gキースイッチを使うためにALPSマウント
  • ProMicroを交換できることと薄さを両立するために隣に置く

できたもの

github.com

4x4x3

設計理念

  • 基板を1枚あたり100mm×100mmに収め, 3枚繋げて使う
  • モゲ対策のためFatProMicroを使う
  • Kailhホットスワップソケット対応

できたもの

未公開

予定

  • アクリルでボトムプレートを, アルミ基板でトッププレートを作る

KBDfansで買い物した

買ったもの

  • XDAV2キーキャップ
  • Kailh Speed Copperスイッチ

R2 XDA 40V2 dye sub keycaps setkbdfans.cn

KAILH SPEED SWITCHES (10 switches)kbdfans.cn

クーポンを使って合計49ドル。

配送

国慶節最終日の10月6日に注文して, 7日に発送, 18日に川崎港に到着して, 20日に配達。手渡しではなくポストに投函された。家で待ってなくてもよかったんやな……

ProMicroをArduinoISPとして用い, Attiny85を動かすときに参考にしたサイト

PinOut

これがないと始まらない

ATTinyCore/ATtiny_x5.md at master · SpenceKonde/ATTinyCore · GitHub

ProMicroをArduinoISPにする

標準のArduinoISPで指定されたピンはProMicroにはないので

umtkm.github.io

8MHz駆動にする

1MHzだと音のざらつきが気になったので

roshiago.blog.so-net.ne.jp

結果

Rails入門で引っかかったところとその対策

bundle installしたときにAn error occurred while installing sqlite3

sudo apt install sqlite3
sudo apt install libsqlite3-dev

rails serverしたときにThere was an error while trying to load the gem 'uglifier'

Gemfilegem 'mini_racer'コメントアウトを外してbundle install

一番安いキーボードの自作方法

材料

()内は実際に使用した個数

  • キースイッチ(24個) 2000円 Massdrop
  • ダイオード(24個) 100円 秋月
  • 細ピンソケット(10) 80円 秋月
  • 細ピンヘッダ() 秋月
  • ProMicro 700円 aitendo
  • 色紙(しきし)(1枚) 100円 Seria
  • 銅線(2m) 257円 コーナン

工具

  • はんだごて
  • ラジオペンチ

方法

  1. 色紙にキースイッチをはめる穴を開ける
  2. ダイオードを空中配線する
  3. ROWを配線する
  4. いい感じに配線をまとめてProMicroにつなぐ
  5. 配線に応じた設定をしたQMKファームウェアを焼く

結果

24キーでは使い物にならない。

テンキーとして使いましょう。はい。

教訓

空中配線では1点にはんだを積んで複数の線を繋いでいるところがあり, キースイッチが配線と密結合するから, キースイッチの交換が大変そう。

XD75reを買おう!!

この記事はMagicforce 49keyで書かれました

Nexus7(2012)のROM焼きをした (1年ぶり)

y-sni.hatenablog.com

動機

Nexus7が電源を入れっぱなしにしていると24時間以内に無応答(電源は入っているのでバッテリーは消費する)になってしまうようになった

ハードウェアの故障だと思うが, 悪あがきでROMを入れ替えてみた。

参考ページ

forum.xda-developers.com

方法

過去記事を見て

引っかかったところ

参考ページに載っていた BeansGapps ではなく OpenGApps を使ったら Google開発者サービス が落ちて使い物にならなくなった

知見

  • TWRPさえ起動すればコンピュータとの接続なしに内蔵ストレージやOTGメモリからインストールできるらしい
  • よくわからないが, クリーンインストールではなくあらゆるデータを引き継いだ状態でインストールされた。よくわからない。