2019年5月21日火曜日

自作キーボード(ErgoDash mini)のファーム書き換えでエラー


自作キーボードのErgoDash miniを使わせてもらってるんだけど、ファーム書き換え時にエラー出て気持ちが萎えたので、覚書。
因みに、キーマップをここで作って、toolboxで焼くという、お手軽版でやっております。

まず、ダメなパターンとして、リセットボタンを押してもUSB接続が認識されません。
ls /dev/tty.*
/dev/tty.Bluetooth-Incoming-Port
これは、再起動などで回復するようです。
ls /dev/tty.*
/dev/tty.Bluetooth-Incoming-Port /dev/tty.usbmodem14101
次に、リセットボタンを押した際に、Bluetoothの方を認識してしまうパターンです。
*** Caterina device connected
    Found port: /dev/cu.Bluetooth-Incoming-Port
*** Attempting to flash, please don't remove device
>>> avrdude -p atmega32u4 -c avr109 -U flash:w:xxx.hex:i -P /dev/cu.Bluetooth-Incoming-Port -C avrdude.conf
    avrdude: warning at avrdude.conf:14976: part atmega32u4 overwrites previous definition avrdude.conf:11487.
    
    Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding
*** Caterina device disconnected
これは、なんていうか、何回かやってるとUSBを認識するので、すかさずFLASHです。(なんだそれ😄
*** Caterina device connected
    Found port: /dev/cu.usbmodem14101
*** Attempting to flash, please don't remove device
>>> avrdude -p atmega32u4 -c avr109 -U flash:w:/xxx.hex:i -P /dev/cu.usbmodem14101 -C avrdude.conf
    avrdude: warning at avrdude.conf:14976: part atmega32u4 overwrites previous definition avrdude.conf:11487.
    
    Connecting to programmer: .
    Found programmer: Id = "CATERIN"; type = S
        Software Version = 1.0; No Hardware Version given.
    Programmer supports auto addr increment.
    Programmer supports buffered memory access with buffersize=128 bytes.
    
    Programmer supports the following devices:
        Device code: 0x44
    
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.00s
    
    avrdude: Device signature = 0x1e9587
    avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: reading input file "/xxx.hex"
    avrdude: writing flash (15502 bytes):
    
    Writing | ################################################## | 100% 1.21s
    
    avrdude: 15502 bytes of flash written
    avrdude: verifying flash memory against /xxx.hex:
    avrdude: load data flash data from input file /xxx.hex:
    avrdude: input file /xxx.hex contains 15502 bytes
    avrdude: reading on-chip flash data:
    
    Reading | ################################################## | 100% 0.11s
    
    avrdude: verifying ...
    avrdude: 15502 bytes of flash verified
    
    avrdude done.  Thank you.
    
*** Caterina device disconnected
ちゃんと調べればなにかあるのかもしれませんが、解決策は「数撃ちゃ当たる戦法」でした。

ついでにキーマップを残しておきます。