HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2023/08/10

キーボードの VIAや QMKのファームウェアがバージョンアップして VIAを認識しないのを解決する方法 キーボードの VIAや QMKのファームウェアがバージョンアップして VIAを認識しないのを解決する方法

(VIA and QMK firmware update occure trouble to JSON error and not detect、support version matrix)

Tags: [電子工作], [QMK]




●キーボードの VIAや QMKのファームウェアがバージョンアップして VIAを認識しないのを解決する方法

 VIA and QMK firmware update occure trouble to JSON error and not detect

 Raspberry Pi Pico RP2040で QMKのファームウェアを動かせる様になったので超久しぶりに QMKキーボードを作ろうと思いましたが、私にとっての必須機能の VIAを認識しない問題で鬱になりましたが、無事に解決したので治りました。

2023/08/04
Raspberry Pi Pico RP2040で QMKのファームウェアを動かす!
Raspberry Pi Pico RP2040で QMKのファームウェアを動かす!

  Raspberry Pi Pico RP2040でも QMKのファームウェアを公式に動かせる様になりました!


● VIAを認識しないの再現方法

 下記の BSTK100のキーボードを例に説明します。

bstk100


2022/01/09
BUFFALOの USB テンキーを Pro Microと QMKを使って VIAカスタマイズ キーボードに改造する方法
BUFFALOの USB テンキーを Pro Microと QMKを使って VIAカスタマイズ キーボードに改造する方法

  BUFFALO USB 10-Key keyboard BSTK100 modification by Pro Micro and QMK firmware VIA

●下記の組み合わせで VIAの認識可否を検証しました

・ QMKファームウェア
QMK 0.15.25 - Feb 22 2022
QMK 0.18.17 - Nov 14 2022
QMK 0.21.6 - Jul 7 2023

・ VIAアプリ
VIA v1.3.1 Dec 3 2019
VIA v2.2.0 Mar 2 2023
VIA v3.0.0 Mar 10 2023
Web VIA

 QMKと VIAの「確実に認識する」「ゴールデンパターン」の組み合わせ
QMK ver.JSON fileVIA.exe 1.3.1VIA.exe 2.2.0VIA.exe 3.0.0Web VIA 2023/08
QMK 0.15.25(Feb 22 2022)keymap_v1.jsonOKNG *2NG *2NG *2
keymap_v2.jsonOKOK
(Use V2 definitions = ON)
OKOK
keymap_v3.jsonNG *1NG *3
(Use V2 definitions = OFF)
NG *3NG *3
QMK 0.18.17(Nov 14 2022)keymap_v1.jsonNG *4NG *2NG *2NG *2
keymap_v2.jsonNG *4OK
(Use V2 definitions = ON)
OKOK
keymap_v3.jsonNG *1NG *3
(Use V2 definitions = OFF)
NG *3NG *3
QMK 0.21.6(Jul 7 2023)keymap_v1.jsonNG *4NG *2NG *2NG *2
keymap_v2.jsonNG *4NG *5
(Use V2 definitions = ON)
NG *5NG *5
keymap_v3.jsonNG *1OK
(Use V2 definitions = OFF)
OKOK
NG *1: Object: should have required property 'lighting'
NG *2: Error: '0xFEED' is not a valid vendorId. (Use V2 definitions = ON)
NG *2: Object: should NOT have additional properties (Use V2 definitions = OFF)
NG *3: Fetching v2 definition failed
NG *4: Searching for devices...
NG *5: Fetching v3 definition failed

● Conclusion、結論

 2023/08 現在の QMK 0.21.6は VIA v3だけに対応している。

 VIA v3アプリは、
 keymap_v2.jsonを使う事で v1系、v2系のデバイスに対応できる。 (Use V2 definitions = ON)
 keymap_v3.jsonを使う事で v3系のデバイスに対応できる。(Use V2 definitions = OFF)
 と言う事で、
 VIA v3アプリが有れば v1系、v2系、v3系の全てのデバイスに対応できる。

 VIA v1系のデバイスは keymap.jsonを v2形式に書き換える。 (Use V2 definitions = ON)
 (具体的には vendorIdの 0xを削除する)
 VIA v2系のデバイスは v2形式の keymap.jsonを使用する。 (Use V2 definitions = ON)
 VIA v3系のデバイスは v3形式の keymap.jsonを使用する。 (Use V2 definitions = OFF)

● VIA versionと VIA Protocolと QMKのバージョンの対応表

VIA versionVIA ProtocolQMK version
VIA v1.xVIA Protocol 10QMK 0.15.25 - Feb 22 2022
VIA v2.xVIA Protocol 11QMK 0.18.17 - Nov 14 2022
VIA v3.xVIA Protocol 12QMK 0.19.0 - Nov 28 2022
v10.ts - VIA Protocol 10
v11.ts - VIA Protocol 11
v12.ts - VIA Protocol 12


● QMK 0.15.25(Feb 22, 2022)
QMK 0.15.25 Feb 22 2022
cd
git clone --recursive https://github.com/qmk/qmk_firmware qmk_firmware_0.15.25 --depth 1 -b 0.15.25

cd qmk_firmware_0.15.25

sudo ./util/qmk_install.sh
qmk -V
if [ $? -ne 0 ]; then
  python3 -m pip install qmk
fi
make git-submodule

# BSTK100の VIA対応ファームウェアをビルド
make handwired/bstk100:via

# handwired_bstk100_via.hexを Pro Microに書き込む
ls -l *.hex
# -rw-r--r-- 1 user user 52566 Aug 13 13:18 handwired_bstk100_via.hex

keymap_v1.json for VIA 1.3.1
{
    "name":"bstk100",
    "vendorId":"0xFEED",
    "productId":"0xB100",
    "lighting":"none",
    "matrix":{"rows":5,"cols":5},
    "layouts":{
        "keymap":[
          [{"x":3,"h":0.5},"0,0"],
          ["3,4","0,3","0,2","1,3"],
          ["1,0","1,1","1,2","0,1"],
          ["2,0","2,1","2,2","2,3"],
          ["3,0","3,1","3,2",{"h":2},"3,3"],
          ["4,0","4,1","4,3"]
        ]
    }
}
VIA.exe 1.3.1.0 2020年6月19日、12:14:28
CRC32: 4BC7562E
MD5: 0474F56BEB38D2AF8C20BB44D66CEBCA
SHA-1: BBD0F66A20B84A70759A83D9ED43C9BE835799DE

via-1.3.1-win.exe
CRC32: C42106F4
MD5: 19A1E8AC63BD56062B2E9F0E98AE2B5E
SHA-1: F365277327324417E06EE4A4FDC4FE6E1CEE5614


● QMK 0.18.17(Nov 14, 2022)
QMK 0.18.17 Nov 14 2022
cd
git clone --recursive https://github.com/qmk/qmk_firmware qmk_firmware_0.18.17 --depth 1 -b 0.18.17

cd qmk_firmware_0.18.17

sudo ./util/qmk_install.sh
qmk -V
if [ $? -ne 0 ]; then
  python3 -m pip install qmk
fi
make git-submodule

# BSTK100の VIA対応ファームウェアをビルド
make handwired/bstk100:via

# handwired_bstk100_via.hexを Pro Microに書き込む
ls -l *.hex
# -rw-r--r-- 1 user user 53245 Aug 13 13:42 handwired_bstk100_via.hex

keymap_v2.json for VIA 2.2.0
{
    "name":"bstk100",
    "vendorId":"FEED",
    "productId":"0xB100",
    "lighting":"none",
    "matrix":{"rows":5,"cols":5},
    "layouts":{
        "keymap":[
          [{"x":3,"h":0.5},"0,0"],
          ["3,4","0,3","0,2","1,3"],
          ["1,0","1,1","1,2","0,1"],
          ["2,0","2,1","2,2","2,3"],
          ["3,0","3,1","3,2",{"h":2},"3,3"],
          ["4,0","4,1","4,3"]
        ]
    }
}
VIA.exe 2.2.0.0 2023年1月11日、0:22:54
CRC32: FDA7A47A
MD5: F8A90C992BFC711EDDC5BAEB71033F9D
SHA-1: D484F278593EE9901F122D424F8D8C801C06B547

via-2.2.0-win.exe
CRC32: 5288E2F8
MD5: 0A7C5A1D6CCD372BC121470AE700F820
SHA-1: 5815837354CF2E23EFAF670702FE607BA224DEF7


● QMK 0.21.6(Jul 7, 2023)
QMK 0.21.6 Jul 7 2023
cd
git clone --recursive https://github.com/qmk/qmk_firmware qmk_firmware_0.21.6 --depth 1 -b 0.21.6

cd qmk_firmware_0.21.6

sudo ./util/qmk_install.sh
qmk -V
if [ $? -ne 0 ]; then
  python3 -m pip install qmk
fi
make git-submodule

# BSTK100の VIA対応ファームウェアをビルド
make handwired/bstk100:via

# handwired_bstk100_via.hexを Pro Microに書き込む
ls -l *.hex
# -rw-r--r-- 1 user user 53265 Aug 13 15:36 handwired_bstk100_via.hex

keymap_v3.json for VIA 3.0.0
{
    "name":"bstk100",
    "vendorId":"FEED",
    "productId":"0xB100",
    "matrix":{"rows":5,"cols":5},
    "layouts":{
        "keymap":[
          [{"x":3,"h":0.5},"0,0"],
          ["3,4","0,3","0,2","1,3"],
          ["1,0","1,1","1,2","0,1"],
          ["2,0","2,1","2,2","2,3"],
          ["3,0","3,1","3,2",{"h":2},"3,3"],
          ["4,0","4,1","4,3"]
        ]
    }
}
VIA.exe 3.0.0.0 2023年3月8日、10:08:28
CRC32: 62168071
MD5: 94A1214489EBC848A77AA0ACACADBDCA
SHA-1: F1AC5294FA1B9AF6D86BAFE81E2F71CFD357073C

via-3.0.0-win.exe
CRC32: E5A748EA
MD5: 784E2F3135EA5E3B3CC6EA73D1D582D4
SHA-1: A61F2F651CE459757D8CEFA0E0AA4762C31EC72A


● VIAの各バージョンと keymap.jsonの仕様の差異の一覧

 VIAのプログラム側でバージョン違いも含めて「何が悪いのかエラーの詳細」を表示して欲しい。

VIA公式
What's New VIA Nº3
 「New UI 3D Mode」って何が嬉しいんだろうか?

VIA Version 3 Changes

VIA1.3.12.2.03.0.0Error
'vendorId' value"0xFEED""FEED""FEED"Error: '0xFEED' is not a valid vendorId.
'lighting' propertyrequiredrequiredNOTObject: should have required property 'lighting'
 or Object: should NOT have additional properties

● Error: '0xFEED' is not a valid vendorId.

 VIAの V2以降は vendorIdの値の '0x'が不要です。

 例:"vendorId":"0xFEED"の場合、"vendorId":"FEED"に書き換える。
 productIdには '0x'が有っても無くても大丈夫。
 これって VIAのバグ?

● keymap.json Object: should have required property 'lighting'

 VIAの V2までは 'lighting'が必須です。

● keymap.json Object: should NOT have additional properties

 VIAの V3以降は 'lighting'が不要です。

Keyboard Definition Changes for VIA V2 to V3 - Lighting
 The lighting element is deprecated and replaced by specifying one or more of the following in the menus element

● VIA - SETTINGS - Show Design tab - ON

 自作キーボードで VIAがキーボードを自動認識しない場合は SETTINGSタブの Show Design tabを ONにすると DESIGNタブが出てくるので JSONファイルを読み込ませる事ができます。

 ・SETTINGS tab - Show Design tab ON
 ・DESIGN tab - JSON file Drag and Drop

・VIA SETTINGSタブの Show Design tabを ONにする
VIA SETTINGSタブの Show Design tabを ONにする


VIA SETTINGSタブの Show Design tabを ONにする


VIA SETTINGSタブの Show Design tabを ONにする


VIA SETTINGSタブの Show Design tabを ONにする





● The device is forgotten.
● Received invalid protocol version from device
● The device must be opened first.

 接続しているデバイスが変な状態。

解決方法:デバイスの USBを抜き差しする。

 VIA Web app.の場合 Chromeブラウザの URL欄に
chrome://device-log/
 を入力するとデバイスのログが確認できる。

 接続しているデバイスが VIAアプリのバージョンに対応していない。

解決方法:VIAアプリのバージョンに対応したファームウェアに更新する。

● Fetching v2 definition failed

 接続しているデバイスが VIA v2に対応していない。

解決方法:VIA v2に対応のファームウェアに更新する。

● Fetching v3 definition failed

 接続しているデバイスが VIA v3に対応していない。

解決方法:VIA v3に対応のファームウェアに更新する。

● Loading device failed - retrying
● Command Name: DYNAMIC_KEYMAP_MACRO_GET_BUFFER
Command: 14 1 248 28
Response: 1 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
● Error: Receiving incorrect response for command
at KeyboardAPI._hidCommand (https://usevia.app/assets/index-8650462d.js:3:9407)
at async KeyboardAPI.flushQueue (https://usevia.app/assets/index-8650462d.js:3:8661)

 接続しているデバイスが変な状態。

解決方法:デバイスの USBを抜き差しする。
 それでも駄目な場合はパソコンを再起動する。


● VIA Protocol 12 VIA Version 3 Changes

VIA Nº3 - What's New - VIA

VIA Version 3 Changes

VIA Protocol 12 #19697

VIA Protocol 12 + fixes #19916

breakpoint_2023_05_28


● VIA互換のキーボード設定 Webアプリの Remap

Remap for latest QMK Firmware version

Remap for QMK Firmware 0.18.17 or lower

Remap supports QMK Firmware 0.22.2 or higher

現在のRemapと今後のRemapについて
内部キーコード体系が大きく変わってしまった



Tags: [電子工作], [QMK]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

Raspberry Pi Pico RP2040で QMKのファームウェアを動かす!
Raspberry Pi Pico RP2040で QMKのファームウェアを動かす!

  Raspberry Pi Pico RP2040でも QMKのファームウェアを公式に動かせる様になりました!

【ソースコード有り】QMKキーボードに PC98起動時のピポ音を実装する方法
【ソースコード有り】QMKキーボードに PC98起動時のピポ音を実装する方法

  PC98起動時のピポ音を QMKに実装する方法

【ソースコード有り】QMKキーボードに Caps Lockや Scroll Lock等の LEDインジケータ機能を追加する方法
【ソースコード有り】QMKキーボードに Caps Lockや Scroll Lock等の LEDインジケータ機能を追加する方法

  How to add Caps Lock Scroll Lock LED indicators to QMK Keyboard

QMKで動的にキーボードマクロを定義できる Dynamic Macrosを有効にする方法
QMKで動的にキーボードマクロを定義できる Dynamic Macrosを有効にする方法

  QMK 動的マクロ機能でランタイムでのマクロの記録および再生を行なう方法

【2023年】QMK firmwareの開発環境を Windows WSLにセットアップする方法
【2023年】QMK firmwareの開発環境を Windows WSLにセットアップする方法

  Windows WSL環境でカスタマイズ キーボードのファームウェア QMK firmwareの開発環境を構築する方法

Raspberry Piで QMK firmware キーボード設定用の VIAを動かす方法、Remapも動かすよ!
Raspberry Piで QMK firmware キーボード設定用の VIAを動かす方法、Remapも動かすよ!

  Raspberry Pi and VIA configure a keyboard、Remap keyboard customization app

【自由工作】市販のキーボードを無改造で VIA QMK化する Keyboard Quantizerを自作する【夏休み】
【自由工作】市販のキーボードを無改造で VIA QMK化する Keyboard Quantizerを自作する【夏休み】

  夏休みが明けたら 僕のキーボードが最強になって クラスのみんなから MMK 大作戦

QMK firmwareで I/Oピンが足りない場合にデコーダ、デマルチプレクサを使用して IOを拡張する解決方法
QMK firmwareで I/Oピンが足りない場合にデコーダ、デマルチプレクサを使用して IOを拡張する解決方法

  QMK firmware expand I/O for many matrix keyboard、How to use IO Expander Multiplexer / Demultiplexer / Decoder

QMK firmwareで I/Oピンが足りない場合に I2Cの GPIOエキスパンダを使用して IOを拡張する解決方法
QMK firmwareで I/Oピンが足りない場合に I2Cの GPIOエキスパンダを使用して IOを拡張する解決方法

  QMK firmware expand I/O for many matrix keyboard、How to use I2C GPIO Expander PCF8574 and PCF8575

QMK firmwareで Audio機能を試してみる
QMK firmwareで Audio機能を試してみる

  QMK firmware test Audio function with Piezo buzzer

QMK firmwareで OLED機能で SSD1306を試してみる
QMK firmwareで OLED機能で SSD1306を試してみる

  QMK firmware test OLED Driver with SSD1306

QMK firmwareで Analog Stick機能で PSP2000用アナログ ジョイスティックを試してみる
QMK firmwareで Analog Stick機能で PSP2000用アナログ ジョイスティックを試してみる

  QMK firmware test Analog Joystick function with PSP2000 Analog Stick

中華製の格安なプログラマブル USBキーボードを買ってみた QMK VIAとは別物
中華製の格安なプログラマブル USBキーボードを買ってみた QMK VIAとは別物

  中華製のプログラマブル USBキーボード KeyboardSetter.exe

ロータリーエンコーダ付きの中華製の格安なプログラマブル USBキーボードを買ってみた QMK VIAとは別物
ロータリーエンコーダ付きの中華製の格安なプログラマブル USBキーボードを買ってみた QMK VIAとは別物

  中華製のプログラマブル USBキーボード MINI Keyboard.exe

社畜のキーボード「新入社員の同期」を購入してみた!! VIA、QMK、Remapでのカスタマイズに対応
社畜のキーボード「新入社員の同期」を購入してみた!! VIA、QMK、Remapでのカスタマイズに対応

  キー内容が Remap等でカスタマイズ可能な社畜のキーボード「新入社員の同期」を 3500円で購入




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2023 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/hardware/qmk_via_protocol_update_trouble/