Skip to content

Commit d2c9eca

Browse files
committed
chore(osupad): update VID/PID to open-source pid.codes allocation
Updates the entire project to use VID 0x1209 and PID 0x7050, conforming to the formal allocation request pending at pidcodes/pidcodes.github.com#1258. This is required to pass QMK upstream repository validation without needing to be a member of the USB-IF.
1 parent cd21e51 commit d2c9eca

5 files changed

Lines changed: 16 additions & 11 deletions

File tree

FIRMWARE/OSUpadCloneVIA/OSUpadCloneVIA.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -741,8 +741,8 @@ void setup() {
741741
changed_at[i] = millis();
742742
}
743743

744-
USBComposite.setVendorId(0xD010);
745-
USBComposite.setProductId(0x1006);
744+
USBComposite.setVendorId(0x1209);
745+
USBComposite.setProductId(0x7050);
746746
USBComposite.setManufacturerString("OSUpad");
747747
USBComposite.setProductString("OSUpad Clone VIA");
748748
USBComposite.setSerialString("OSUPAD-C6-VIA");
@@ -796,3 +796,4 @@ void loop() {
796796
rgb_render();
797797
}
798798
}
799+

FIRMWARE/OSUpadCloneVIA/RELEASE_QA.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
final two 1 KiB settings pages.
1010
- VIA protocol handled by `via::Protocol` from VIA-Arduino; storage is
1111
dual-page single-valid-slot with OSVP→VIAA migration.
12-
- VIA definition: validated as `KeyboardDefinitionV3`; VID `0xD010`, PID
13-
`0x1006`, firmware version `1`, six matrix keys.
12+
- VIA definition: validated as `KeyboardDefinitionV3`; VID `0x1209`, PID
13+
`0x7050`, firmware version `1`, six matrix keys.
1414
- USB topology: Windows enumerates keyboard interface `MI_00` and separate
1515
QMK Raw HID interface `MI_01` (vendor page `0xFF60`, usage `0x61`).
1616
- Flash operation: ST-Link program and verify at `0x08000000`; option bytes,
@@ -64,3 +64,4 @@ Run this on each hardware revision before release:
6464
- The reserved settings pages assume the C6-compatible 32 KiB application
6565
layout. Keep release firmware below `0x08007800`; the current build leaves
6666
about 9 KiB of headroom before that boundary.
67+

FIRMWARE/OSUpadCloneVIA/via-definition.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "OSUpad Clone VIA",
3-
"vendorId": "0xD010",
4-
"productId": "0x1006",
3+
"vendorId": "0x1209",
4+
"productId": "0x7050",
55
"firmwareVersion": 1,
66
"matrix": {
77
"rows": 2,
@@ -17,3 +17,4 @@
1717
]
1818
}
1919
}
20+

FIRMWARE/positron/osupad/info.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
"url": "https://www.tokopedia.com/positronelectronic",
66
"usb": {
77
"device_version": "1.0.0",
8-
"pid": "0x1006",
9-
"vid": "0xD010"
8+
"pid": "0x7050",
9+
"vid": "0x1209"
1010
},
1111
"features": {
1212
"bootmagic": true,
@@ -58,3 +58,4 @@
5858
}
5959
}
6060
}
61+

tools/verify_osupad_clone_via.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ def main() -> None:
3636
fail(f"cannot parse {definition_path.relative_to(ROOT)}: {exc}")
3737

3838
expected_definition = {
39-
"vendorId": "0xD010",
40-
"productId": "0x1006",
39+
"vendorId": "0x1209",
40+
"productId": "0x7050",
4141
"firmwareVersion": 1,
4242
}
4343
for key, value in expected_definition.items():
@@ -102,11 +102,12 @@ def main() -> None:
102102
require(storage_h, token, storage_path)
103103

104104
print("OSUpad Clone VIA contract: PASS")
105-
print(" VIA: 0xD010:0x1006, V3 definition, 2x3 matrix")
105+
print(" VIA: 0x1209:0x7050, V3 definition, 2x3 matrix")
106106
print(" storage: application ends before 0x08007800; two 1 KiB settings pages")
107107
print(" Raw HID: vendor page 0xFF60, usage 0x61, 32-byte packets")
108108
print(" input: 8-button mouse, vertical/horizontal scroll, system controls")
109109

110110

111111
if __name__ == "__main__":
112112
main()
113+

0 commit comments

Comments
 (0)