User Tools

Site Tools


wiki:projects:vfo_knob

VFO Knob Standard proposal

This project aims at suggesting a standard HID report format for VFO Knob and keyboard in order to help software integrating dedicated interface.

Suggested basic Layout

Static key value:

  • 10 numbers (0-9)
  • 1 point/comma
  • 1 Validate/Enter
  • 1 Escape/Cancel
  • 1 Up arrow
  • 1 Down arrow
  • 1 Mode Change

Dynamic value:

  • 1 Smooth encoder (hundreds of point per rotation): 16bit
  • 1 Step Encoder: 8bit

Feedback:

  • Led Array: 8bit
  • LCD/Oled Text: 64byte

HID Report format

    0x05, 0x01,       // USAGE_PAGE (Generic Desktop)
    0x09, 0x08,       // USAGE (Multi-Axis Controller)
    0xa1, 0x01,       // COLLECTION (Application)
    0x85, HID_REPORTID_VFODIAL,       //   REPORT_ID (Custom ID)
    0x05, 0x0d,       //   USAGE_PAGE (Digitizers)
    0x09, 0x21,       //   USAGE (Puck)
    0xa1, 0x00,       //   COLLECTION (Physical)
 
    0x05, 0x09,       //     USAGE_PAGE (Buttons)
    0x09, 0x01,       //     USAGE (Button 1)
    0x95, 0x01,       //     REPORT_COUNT (1)
    0x75, 0x10,       //     REPORT_SIZE (16)
    0x15, 0x00,       //     LOGICAL_MINIMUM (0)
    0x25, 0x01,       //     LOGICAL_MAXIMUM (1)
    0x81, 0x02,       //     INPUT (Data,Var,Abs)
 
    0x05, 0x01,       //     USAGE_PAGE (Generic Desktop)
    0x09, 0x37,       //     USAGE (Dial)
    0x95, 0x01,       //     REPORT_COUNT (1)
    0x75, 0x10,       //     REPORT_SIZE (16)
    0x16, 0xf0, 0xf1, //     LOGICAL_MINIMUM (-3600)
    0x26, 0x10, 0x0e, //     LOGICAL_MAXIMUM (3600)
    0x81, 0x06,       //     INPUT (Data,Var,Rel)
 
    0x05, 0x01,       //     USAGE_PAGE (Generic Desktop)
    0x09, 0x37,       //     USAGE (Dial)
    0x95, 0x01,       //     REPORT_COUNT (1)
    0x75, 0x08,       //     REPORT_SIZE (8)
    0x15, 0x81,       //     LOGICAL_MINIMUM (-127)
    0x25, 0x7f,       //     LOGICAL_MAXIMUM (127)
    0x81, 0x06,       //     INPUT (Data,Var,Rel)
 
    0xc0,             //   END_COLLECTION
    0xc0              // END_COLLECTION

Discussing usage field

Since the controller has 2 rotary encoder and many control it seems reasonable to choose a “Multi-axis Controller”. Microsoft Surface Dial use “System Multi-Axis Controller” as requested by Microsoft this one is made to be handled at Operating System scale and not being available to application directly.

Design data

Tools

wiki/projects/vfo_knob.txt · Last modified: 2021/09/18 09:56 by f4ihx