Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLI: Parse USB device version BCD #14580

Merged
merged 4 commits into from
Jan 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions data/mappings/info_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
"COMBO_TERM": {"info_key": "combo.term", "value_type": "int"},
"DEBOUNCE": {"info_key": "debounce", "value_type": "int"},
"DEVICE_VER": {"info_key": "usb.device_ver", "value_type": "hex"},
# TODO: Replace ^^^ with vvv
#"DEVICE_VER": {"info_key": "usb.device_version", "value_type": "bcd_version"},
"DESCRIPTION": {"info_key": "keyboard_folder", "to_json": false},
"DIODE_DIRECTION": {"info_key": "diode_direction"},
"FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "bool"},
Expand Down
10 changes: 7 additions & 3 deletions data/schemas/definitions.jsonschema
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@
"type": "string",
"pattern": "^0x[0-9A-F]{4}$"
},
"bcd_version": {
"type": "string",
"pattern": "^[0-9]{1,2}\\.[0-9]\\.[0-9]$"
},
"text_identifier": {
"type": "string",
"minLength": 1,
Expand Down Expand Up @@ -70,13 +74,13 @@
"signed_int": {
"type": "number",
"multipleOf": 1
}
},
"signed_int_8": {
"type": "number",
"min": -127,
"max": 127,
"multipleOf": 1
}
},
"string_array": {
"type": "array",
"items": {
Expand All @@ -97,7 +101,7 @@
"type": "number",
"min": 0,
"multipleOf": 1
}
},
"unsigned_int_8": {
"type": "number",
"min": 0,
Expand Down
3 changes: 2 additions & 1 deletion data/schemas/keyboard.jsonschema
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,8 @@
"type": "object",
"additionalProperties": false,
"properties": {
"device_ver": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"device_ver": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, # Deprecated
"device_version": {"$ref": "qmk.definitions.v1#/bcd_version"},
"force_nkro": {"type": "boolean"},
"pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
Expand Down
6 changes: 4 additions & 2 deletions docs/reference_info_json.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ The following animations can be enabled:

### USB

Every USB keyboard needs to have its USB parmaters defined. At a minimum you need to set vid, pid, and device version.
Every USB keyboard needs to have its USB parameters defined. At a minimum you need to set the Vendor ID, Product ID, and device version.

Example:

Expand All @@ -181,7 +181,9 @@ Example:
"usb": {
"vid": "0xC1ED",
"pid": "0x23B0",
"device_ver": "0x0001"
"device_version": "1.0.0"
}
}
```

The device version is a BCD (binary coded decimal) value, in the format `MMmr`, so the below value would look like `0x0100` in the generated code. This also means the maximum valid values for each part are `99.9.9`, despite it being a hexadecimal value under the hood.
6 changes: 3 additions & 3 deletions keyboards/40percentclub/25/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025
#define PRODUCT_ID 0x0A0C
#define DEVICE_VER 0x0F25
#define VENDOR_ID 0x4025 // 40%
#define PRODUCT_ID 0x0F25
#define DEVICE_VER 0x0100
#define MANUFACTURER di0ib
#define PRODUCT The 5x5 Keyboard

Expand Down
6 changes: 3 additions & 3 deletions keyboards/40percentclub/5x5/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025
#define PRODUCT_ID 0x0A0C
#define DEVICE_VER 0x05B5
#define VENDOR_ID 0x4025 // 40%
#define PRODUCT_ID 0x05B5
#define DEVICE_VER 0x0100
#define MANUFACTURER di0ib
#define PRODUCT The 5x5 Keyboard

Expand Down
6 changes: 3 additions & 3 deletions keyboards/40percentclub/6lit/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025
#define PRODUCT_ID 0x0A0C
#define DEVICE_VER 0x0F61
#define VENDOR_ID 0x4025 // 40%
#define PRODUCT_ID 0x0F61
#define DEVICE_VER 0x0100
#define MANUFACTURER di0ib
#define PRODUCT The 6lit Macropad

Expand Down
6 changes: 3 additions & 3 deletions keyboards/40percentclub/foobar/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025
#define PRODUCT_ID 0x0A0C
#define DEVICE_VER 0x0F00
#define VENDOR_ID 0x4025 // 40%
#define PRODUCT_ID 0x0F00
#define DEVICE_VER 0x0100
#define MANUFACTURER di0ib
#define PRODUCT The foobar Keyboard

Expand Down
6 changes: 3 additions & 3 deletions keyboards/40percentclub/half_n_half/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025
#define PRODUCT_ID 0x0A0C
#define DEVICE_VER 0x4A1F
#define VENDOR_ID 0x4025 // 40%
#define PRODUCT_ID 0x4A1F
#define DEVICE_VER 0x0100
#define MANUFACTURER di0ib
#define PRODUCT half_n_half

Expand Down
2 changes: 1 addition & 1 deletion keyboards/boston_meetup/2019/config.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#pragma once

/* USB Device descriptor parameter */
#define DEVICE_VER 0x07E3
#define DEVICE_VER 0x2019

#undef MATRIX_ROWS
#undef MATRIX_COLS
Expand Down
2 changes: 1 addition & 1 deletion keyboards/capsunlocked/cu80/v2_ansi/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
},
"url": "https://caps-unlocked.com/cu80-round-2/",
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x0081",
"vid": "0x4355"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/capsunlocked/cu80/v2_iso/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
},
"url": "https://caps-unlocked.com/cu80-round-2/",
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x0080",
"vid": "0x4355"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/clueboard/17/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
},
"url": "",
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2312",
"vid": "0xC1ED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/clueboard/2x1800/2019/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"rows": ["C0", "C1", "C2", "C3", "C7", "F7", "B1", "F2", "F3", "F4", "F5", "F6", "C6"]
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x23A0",
"vid": "0xC1ED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/clueboard/60/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"rows": ["B0", "B1", "B2", "A15", "A10"]
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2350",
"vid": "0xC1ED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/clueboard/66/rev1/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"saturation_steps": 17
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2301",
"vid": "0xC1ED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/clueboard/66/rev2/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"saturation_steps": 17
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2320",
"vid": "0xC1ED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/clueboard/66/rev3/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"saturation_steps": 17
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2370",
"vid": "0xC1ED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/clueboard/66/rev4/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"saturation_steps": 17
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2390",
"vid": "0xC1ED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/clueboard/66_hotswap/gen1/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"rows": ["B11", "A6", "A3", "A2", "A1", "B5", "B6", "C15", "C14", "C13"]
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2391",
"vid": "0xC1ED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/clueboard/66_hotswap/prototype/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"saturation_steps": 17
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2390",
"vid": "0xC1ED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/clueboard/card/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"saturation_steps": 17
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2330",
"vid": "0xC1ED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/clueboard/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"manufacturer": "Clueboard",
"maintainer": "skullydazed",
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"vid": "0xC1ED"
}
}
2 changes: 1 addition & 1 deletion keyboards/coarse/ixora/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0C61
#define DEVICE_VER 0x00C6
#define DEVICE_VER 0x0100
#define MANUFACTURER PeiorisBoards
#define PRODUCT Ixora Rev1

Expand Down
2 changes: 1 addition & 1 deletion keyboards/coarse/vinta/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0C61
#define DEVICE_VER 0x00C6
#define DEVICE_VER 0x0100
#define MANUFACTURER PeiorisBoards
#define PRODUCT Vinta R1

Expand Down
2 changes: 1 addition & 1 deletion keyboards/cybergear/macro25/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"usb": {
"vid": "0x1209",
"pid": "0x69A1",
"device_ver": "0x0001"
"device_version": "0.0.1",
},
"diode_direction": "COL2ROW",
"layouts": {
Expand Down
2 changes: 1 addition & 1 deletion keyboards/dyz/dyz60/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"usb": {
"vid": "0xD772",
"pid": "0x000A",
"device_ver": "0x0001"
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_all": {
Expand Down
2 changes: 1 addition & 1 deletion keyboards/ez_maker/directpins/promicro/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
},
"processor": "atmega32u4",
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2320",
"vid": "0xFEED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/ez_maker/directpins/proton_c/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
]
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2321",
"vid": "0xFEED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/ez_maker/directpins/teensy_2/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
]
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2322",
"vid": "0xFEED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/ez_maker/directpins/teensy_2pp/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
]
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2323",
"vid": "0xFEED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/ez_maker/directpins/teensy_32/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
]
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2324",
"vid": "0xFEED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/ez_maker/directpins/teensy_lc/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
]
},
"usb": {
"device_ver": "0x0001",
"device_version": "0.0.1",
"pid": "0x2325",
"vid": "0xFEED"
},
Expand Down
2 changes: 1 addition & 1 deletion keyboards/forever65/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"usb": {
"vid": "0x4E53",
"pid": "0x0F65",
"device_ver": "0x0001"
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
Expand Down
2 changes: 1 addition & 1 deletion keyboards/frooastboard/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@
"usb": {
"vid": "0x4642",
"pid": "0x6F21",
"device_ver": "0x0001"
"device_version": "0.0.1"
}
}
2 changes: 1 addition & 1 deletion keyboards/handwired/qc60/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0C60
#define DEVICE_VER 0x00C6
#define DEVICE_VER 0x0100
#define MANUFACTURER PeiorisBoards
#define PRODUCT QC60

Expand Down
2 changes: 1 addition & 1 deletion keyboards/lets_split_eh/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0xE401
#define DEVICE_VER 0x0E41
#define DEVICE_VER 0x0100
#define MANUFACTURER That-Canadian
#define PRODUCT Lets Split Eh?

Expand Down
2 changes: 1 addition & 1 deletion keyboards/ramonimbao/squishytkl/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* USB Device descriptor parameter */
#define VENDOR_ID 0xB16B
#define PRODUCT_ID 0x00B1
#define DEVICE_VER 0xE500
#define DEVICE_VER 0x0100
#define MANUFACTURER Ramon Imbao
#define PRODUCT SquishyTKL

Expand Down