Skip to content

Commit 48f7d53

Browse files
authored
Merge pull request #74 from pennam/fw-version-usb
USB/HID allow featureReport reads from browser using HID API
2 parents 4394ba0 + a7854ac commit 48f7d53

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

UNOR4USBBridge/DAP.h

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,38 @@ extern "C" {
1010

1111
extern USBHID HID;
1212

13+
#define TUD_HID_REPORT_DESC_R4_INOUT_FEATURE(report_size, ...) \
14+
HID_USAGE_PAGE_N ( HID_USAGE_PAGE_VENDOR, 2 ),\
15+
HID_USAGE ( 0x01 ),\
16+
HID_COLLECTION ( HID_COLLECTION_APPLICATION ),\
17+
/* Report ID if any */\
18+
__VA_ARGS__ \
19+
/* Input */ \
20+
HID_USAGE ( 0x02 ),\
21+
HID_LOGICAL_MIN ( 0x00 ),\
22+
HID_LOGICAL_MAX_N ( 0xff, 2 ),\
23+
HID_REPORT_SIZE ( 8 ),\
24+
HID_REPORT_COUNT( report_size ),\
25+
HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
26+
/* Output */ \
27+
HID_USAGE ( 0x03 ),\
28+
HID_LOGICAL_MIN ( 0x00 ),\
29+
HID_LOGICAL_MAX_N ( 0xff, 2 ),\
30+
HID_REPORT_SIZE ( 8 ),\
31+
HID_REPORT_COUNT( report_size ),\
32+
HID_OUTPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
33+
/* Feature */ \
34+
HID_USAGE ( 0x04),\
35+
HID_LOGICAL_MIN ( 0x00),\
36+
HID_LOGICAL_MAX_N ( 0xff, 2),\
37+
HID_REPORT_SIZE (8),\
38+
HID_REPORT_COUNT(report_size),\
39+
HID_FEATURE (HID_DATA | HID_VARIABLE | HID_ABSOLUTE),\
40+
HID_COLLECTION_END \
41+
1342
static uint8_t const report_descriptor[] =
1443
{
15-
TUD_HID_REPORT_DESC_GENERIC_INOUT(CFG_TUD_HID_EP_BUFSIZE)
44+
TUD_HID_REPORT_DESC_R4_INOUT_FEATURE(CFG_TUD_HID_EP_BUFSIZE)
1645
};
1746

1847
class DAPHIDDevice: public USBHIDDevice {

UNOR4USBBridge/UNOR4USBBridge.ino

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ void setup() {
144144
USB.PID(0x1002);
145145
USB.manufacturerName("Arduino");
146146
USB.productName("UNO WiFi R4 CMSIS-DAP");
147+
USB.firmwareVersion(U8TOBCD(FIRMWARE_MAJOR) << 8 | U8TOBCD(FIRMWARE_MINOR));
147148
//USB.enableDFU();
148149
DAP.begin();
149150
SERIAL_USER.onEvent(usbEventCallback);

UNOR4USBBridge/at_handler.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
#define FIRMWARE_MINOR 5
2121
#define FIRMWARE_PATCH 2
2222

23+
#define U8TOBCD(u) ((((u/10)%10)<<4)|(u%10))
24+
2325
#define GPIO_BOOT 9
2426
#define GPIO_RST 4
2527

0 commit comments

Comments
 (0)