Skip to content

Commit

Permalink
CLI: Parse USB device version BCD
Browse files Browse the repository at this point in the history
  • Loading branch information
fauxpark committed Sep 27, 2021
1 parent 16c4550 commit ae19df4
Show file tree
Hide file tree
Showing 42 changed files with 92 additions and 56 deletions.
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 @@ -319,7 +319,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
14 changes: 8 additions & 6 deletions docs/reference_info_json.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,16 +164,18 @@ 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:

```json
{
"usb": {
"vid": "0xC1ED",
"pid": "0x23B0",
"device_ver": "0x0001"
}
"usb": {
"vid": "0xC1ED",
"pid": "0x23B0",
"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 0xFEED
#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 0xFEED
#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 0xFEED
#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 0xFEED
#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 0xFEED
#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": {
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_lite": 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
Loading

0 comments on commit ae19df4

Please sign in to comment.