background image

Chapter 1

Overview

1.1

Introduction

Vuzix M400C is a USB-C multi-function device packaged in a smart glasses form factor. M400C

includes a display, camera, touchpad, and other components. Figure 1.1 shows the block diagram

of M400C.

Figure 1.1: M400C Block Diagram

M400C uses USB-C DisplayPort Alternate Mode to connect as a display to the host PC. The

other functions (audio, sensors, etc.) are provided over USB, and will function normally if the host

does not support USB-C DisplayPort Alternate Mode. If the host does not support USB 3.0, then

the camera frame rate will additionally be limited.

Since M400C operates as a USB-C peripheral, a host PC is required. M400C is designed to

work with the dynaEdge DE-200 as well as other PCs that support USB-C DisplayPort Alternate

Mode, in addition to select cellphones such as the LG V50.

3

Summary of Contents for M400C

Page 1: ...M400C Developer Manual ...

Page 2: ...us LED 8 2 3 Features 8 2 3 1 Auto rotation 8 2 3 2 Programmable Buttons 9 2 3 3 Non Volatile Memory 9 3 USB API 10 3 1 Vuzix USB API 10 3 1 1 Description 10 3 1 2 Supported Commands 11 3 1 3 Get Version 12 3 1 4 Restore Defaults 13 3 1 5 Brightness Set 14 3 1 6 Brightness Get 15 3 1 7 Force Left Eye Set 16 3 1 8 Force Left Eye Get 17 3 1 9 Autorotation Set 18 3 1 10 Autorotation Get 19 3 1 11 Wri...

Page 3: ...ncel Priority Control 31 3 3 5 Max Frame Rate Control 32 3 3 6 AF Mode 33 3 3 7 Noise Reduction 34 3 3 8 Scanner Mode 35 3 3 9 Color Mode 36 3 3 10 JPEG Quality 37 3 3 11 Torch On 38 3 3 12 Torch Off 39 3 3 13 Torch On Still 40 3 3 14 Flash On 41 3 3 15 Flash Auto 42 3 3 16 Flash Off 43 3 3 17 Get Parameters 44 A Block Diagram 48 B Display EDID 49 C USB Device Tree 50 D USB HID Reports 52 D 1 Butt...

Page 4: ...ect as a display to the host PC The other functions audio sensors etc are provided over USB and will function normally if the host does not support USB C DisplayPort Alternate Mode If the host does not support USB 3 0 then the camera frame rate will additionally be limited Since M400C operates as a USB C peripheral a host PC is required M400C is designed to work with the dynaEdge DE 200 as well as...

Page 5: ...ate Mode 7 for full functionality If the host has a USB 3 0 Type A connector then the display will not be functional Other functions camera sensors touchpad etc will work normally If the host has a USB 2 0 Type A connector then the display will not be functional and the camera will be limited to 1080p30 resolution and frame rate Other functions sensors touchpad etc will work normally Capable of pr...

Page 6: ...l in the eyepiece will turn on There is no separate control for turning the display on or off The display panel resolution in M400C is 640x360 and the internal video pipeline handles down scaling the input 1280x720 using a bi linear scaler Windows hosts can use the Display Settings in Control Panel to configure screen mirroring extending etc Section 2 3 1 describes the auto rotation feature which ...

Page 7: ...pending on the thickness The touchpad supports the following gestures Single finger up down left right and tap Two finger up down left right and tap Pinch to zoom in out M400C provides a control HID interface that implements the Vuzix USB API The API func tions are detailed in Section 3 1 2 2 2 5 Buttons M400C has four physical buttons three along the top edge and one on the side The buttons are p...

Page 8: ...s and the stream channel mapping per audio use case Microphones DSP Features Audio Channel Use Case Rear Middle Front AEC Array Left Right Direct Record Unused Unused Used No No Front Mic Front Mic Live Record Unused Used Used No No Middle Mic Front Mic Personal Record Used Used Unused No Yes Processed Processed Table 2 2 Audio Use Case Details Definitions of terms are as follows AEC Active echo c...

Page 9: ...e information on the specific error 2 3 Features 2 3 1 Auto rotation M400C can use the onboard orientation sensor to detect if the unit is being worn on the left or right side of the user s head and auto rotate the display accordingly Note that the autorotation algorithm may produce incorrect results if the user s head is not relatively level to the ground Table 2 4 describes the effect of the Aut...

Page 10: ...gain or reset using Restore Defaults Section 3 1 4 Button Short Press Long Press Front Right arrow 0x4F Up arrow 0x52 Middle Left arrow 0x50 Down arrow 0x51 Back Enter 0x28 Escape 0x29 Side F16 0x6B Sleep 0xF2 Table 2 5 Default Key Codes 2 3 3 Non Volatile Memory An on board non volatile memory stores certain settings so that they will be remembered even when M400C is unplugged from the host devic...

Page 11: ...t of the 64B payload depends on the specific command A detailed description of the API is documented in Vuzix USB API The following sections provide a list of the supported commands on this product per inter nal device The send and receive packet information shows the contents of the PIDCOMMANDPKT object in the following format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26...

Page 12: ...Autorotation Set 0x36 Enable autorotation Read Autorotation Get 0x37 Get autorotation Write Write Button Key Codes 0xB0 Set button function Read Read Button Key Codes 0xB1 Read button function Read Error Report 0xF6 Send error bitmap Table 3 1 Vuzix Main Microcontroller USB API Commands Secondary Microcontroller Direction Description OpCode Action Read Get Version 0x03 Get firmware version Read Wr...

Page 13: ...n Subsys_vmajor Subsys_vminor 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 Tracker_HWversion Tracker_SWversion Fields USB_vmajor Supported USB revision major version USB_vminor Supported USB revision minor version ProductID Returns 9 Subsys_HWversion Scaler FPGA hardware version versions are returned as whole numbers Subsys_vmajor Currently unused Subsys_vminor Currently unused Tracker_HWversio...

Page 14: ...ny customization to auto rotation orien tation brightness and button key codes Send Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0x02 0x10 Receive Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0x01 Status Fields Status Returns 0x10 on success 0x8B on error 13 Revision 7 Vuzix Corporation ...

Page 15: ...on volatile memory Send Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0x02 0x23 value Fields value Allowed values 0 Turn off panel 1 255 Brightness level 1 100 Receive Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0x01 0x23 14 Revision 7 Vuzix Corporation ...

Page 16: ...nel brightness level Send Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0x02 0x24 Receive Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0x01 0x24 value Fields value Return values 1 255 Brightness level 15 Revision 7 Vuzix Corporation ...

Page 17: ...is setting is overridden Saved to non volatile memory Send Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0x02 0x30 value Fields value Allowed values 0 Left eye mode is active 1 Default behavior right eye mode is active Receive Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0x01 0x30 16 Revision 7 Vuzix Corporation ...

Page 18: ...e override Send Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0x02 0x31 Receive Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0x01 0x31 value Fields value Return values 0 Left eye mode is active 1 Right eye mode is active 17 Revision 7 Vuzix Corporation ...

Page 19: ...Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0x02 0x36 value Fields value Allowed values 0 Autorotation disabled use the Force Left Eye command to set the device orientation 1 Autorotation enabled Receive Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0x01 0x36 18 Revision 7 Vuzix Corporation ...

Page 20: ...3 4 5 6 7 8 9 10 11 12 13 14 15 0x02 0x37 Receive Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0x01 0x37 value Fields value Return values 0 Autorotation disabled use the Force Left Eye command to set the device orientation 1 Autorotation enabled 19 Revision 7 Vuzix Corporation ...

Page 21: ...on Mapping Send Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 0x02 0xB0 buttonID shortPressCode longPressCode Fields buttonID Allowed values 0 Button A front 1 Button B middle 2 Button C rear 3 Button D side shortPressCode Key code to be sent on a short press event longPressCode Key code to be sent on a long press event Receive...

Page 22: ...s buttonID Allowed values 0 Button A front 1 Button B middle 2 Button C rear 3 Button D side Receive Packet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 0x01 0xB1 buttonID shortPressCode longPressCode Fields buttonID Allowed values 0 Button A front 1 Button B middle 2 Button C rear 3 Button D side shortPressCode Key code to be sent o...

Page 23: ...r Return values see Table 3 3 Value Description 0x08 Error initializing non volatile storage 0x10 Error returning display EDID to host 0x20 Error initializing DisplayPort bridge 0x2A Error initializing DisplayPort bridge 0x30 Error initializing orientation sensor 0x40 Error initializing scalar FPGA 0x50 Error initializing power supplies 0x80 Error initializing display panel Table 3 3 Error Report ...

Page 24: ...Z are disregarded 1 Set values given by X Y S P Z X Horizontal direction Allowed values 0 Default behavior forward swipe moves mouse right 1 Forward swipe moves mouse left Y Vertical direction Allowed values 0 Default behavior swipe towards buttons moves mouse up 1 Swipe toward buttons moves mouse down S Scroll direction Allowed values 0 Default behavior two finger swipe towards buttons scrolls up...

Page 25: ...Default behavior forward swipe moves mouse right 1 Forward swipe moves mouse left Y Vertical direction Return values 0 Default behavior swipe towards buttons moves mouse up 1 Swipe toward buttons moves mouse down S Scroll direction Return values 0 Default behavior two finger swipe towards buttons scrolls up 1 Two finger swipe towards buttons scrolls down P Pan direction Return values 0 Default beh...

Page 26: ...7 0x02 0x73 Reserved Reserved Enable Fields Enable Allowed values 0 Touchpad is disabled 1 Default touchpad is enabled Receive Packet 0 1 2 3 4 5 6 7 0x01 0x73 Reserved Reserved Enable Fields Enable Return values 0 Touchpad is disabled 1 Default touchpad is enabled 25 Revision 7 Vuzix Corporation ...

Page 27: ...se and the srec command changes the record use case The syntax of both commands is splay USE_CASE_NAME srec USE_CASE_NAME Table 3 4 shows the valid values of USE_CASE_NAME for each supported mode Use Case USB API Name Direct Playback direct_playback Direct Record direct_record Live Record live_record Personal Record personal_record Table 3 4 Use Case Names for Audio API If the command is successfu...

Page 28: ... cancel priority 3 Max Frame Rate Control Set maximum frame rate 4 AF Mode Set auto focus mode 5 Noise Reduction Set noise reduction mode 6 Scanner Mode Set document scanner mode 7 Color Mode Set color mode 8 JPEG Quality Set JPEG Q factor 9 Torch On Turn on LED flash 10 Torch Off Turn off LED flash 11 Torch On Still Turn on LED torch for still image capture 12 Flash On Set LED for strobe fill mod...

Page 29: ...prepares the buffer and sends it using the hid h function HidD_SetOutputReport BOOL status 0 Cx3HidDevice OutputReportBuffer 0 0 Fixed value Cx3HidDevice OutputReportBuffer 1 2 Length of following bytes Cx3HidDevice OutputReportBuffer 2 9 Torch On command Cx3HidDevice OutputReportBuffer 3 1 Torch On command status HidD_SetOutputReport Cx3HidDevice HidDevice Cx3HidDevice OutputReportBuffer Cx3HidDe...

Page 30: ...lis 1 toInt timeout The Java implementation byte bytes 2 9 1 connection controlTransfer 0x21 requestType write 0x09 request set report 0x0200 value usbInterface getId index bytes buffer bytes length length int TimeUnit SECONDS toMillis 1 timeout 29 Revision 7 Vuzix Corporation ...

Page 31: ... for the camera sensor HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Command 1 Exposure Fields Command Set to 1 Exposure Allowed values 0 6 3 1 5 3 2 4 3 3 3 3 4 2 3 5 1 3 6 0 7 1 3 8 2 3 9 3 3 10 4 3 11 5 3 12 6 3 Returns No return value 30 Revision 7 Vuzix Corporation ...

Page 32: ...iority can be shifted to auto exposure AE or to reduce flicker as much as possible HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Command 2 Priority Fields Command Set to 2 Priority Allowed values 0 Priority to AE 1 Priority to flicker cancellation Returns No return value 31 Revision 7 Vuzix Corporation ...

Page 33: ...ned by the camera over USB HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Command 3 Frame Rate Fields Command Set to 3 Frame Rate Allowed values 0 Disable frame rate control 3 60 Set maximum rate to this value Returns No return value 32 Revision 7 Vuzix Corporation ...

Page 34: ... 4 5 6 7 8 9 10 11 12 13 14 15 Command 4 AF Mode Fields Command Set to 4 AF Mode Allowed values 0 One shot contrast AF 3 Continuous contrast AF 8 One shot contrast and PDAF hybrid AF 15 Continuous contrast and PDAF hybrid AF Returns No return value 33 Revision 7 Vuzix Corporation ...

Page 35: ...ise reduction strength can be adjusted HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Command 5 Strength N R Fields Command Set to 5 NR Allowed values 0 Auto mode 1 Fixed mode Strength Only valid when NR 1 Allowed values 0 Weakest 10 Strongest Returns No return value 34 Revision 7 Vuzix Corporation ...

Page 36: ...to work better for black and white text documents HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Command 6 Scan Mode Fields Command Set to 6 Scan Mode Allowed values 0x00 Normal mode 0x20 Scanner mode Returns No return value 35 Revision 7 Vuzix Corporation ...

Page 37: ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Command 7 Color Mode Threshold Fields Command Set to 7 Mode Allowed values 0 Color 1 Mono 3 Negative 10 Black and white Threshold Only valid when Mode 10 Allowed values 0 Auto 1 255 Gray threshold value Returns No return value 36 Revision 7 Vuzix Corporation ...

Page 38: ...means a higher quality image HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Command 8 JPEG Mode Q Factor Fields Command Set to 8 JPEG Mode Allowed values 0 Manual 1 Auto Q Factor Only valid when Mode 0 Allowed values 13 100 JPEG Q factor Returns No return value 37 Revision 7 Vuzix Corporation ...

Page 39: ...D in torch flashlight mode Only to be used if the camera is off or in video mode HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Command 9 1 Fields Command Set to 9 Byte 1 Set to 1 Returns No return value 38 Revision 7 Vuzix Corporation ...

Page 40: ... from torch flashlight mode Only to be used if the camera is off or in video mode HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Command 10 1 Fields Command Set to 10 Byte 1 Set to 1 Returns No return value 39 Revision 7 Vuzix Corporation ...

Page 41: ...be continuously illuminated during cam era preview and image capture Only to be used if the camera is in still capture mode HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Command 11 1 Fields Command Set to 11 Byte 1 Set to 1 Returns No return value 40 Revision 7 Vuzix Corporation ...

Page 42: ...l be illuminated during image capture Only to be used if the camera is in still capture mode HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Command 12 1 Fields Command Set to 12 Byte 1 Set to 1 Returns No return value 41 Revision 7 Vuzix Corporation ...

Page 43: ...ated during image capture when the scene is dimly lit Only to be used if the camera is in still capture mode HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Command 13 1 Fields Command Set to 13 Byte 1 Set to 1 Returns No return value 42 Revision 7 Vuzix Corporation ...

Page 44: ...will not be used during image capture Only to be used if the camera is in still capture mode HID Report Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Command 14 1 Fields Command Set to 14 Byte 1 Set to 1 Returns No return value 43 Revision 7 Vuzix Corporation ...

Page 45: ...r cancel priority 3 Max frame rate 4 AF Mode 5 Noise Reduction Mode 6 Scan Mode 7 Color Mode 8 JPEG Quality 20 Current value of all parameters 21 Default value of all parameters 40 Firmware version and build date Returns Parameter 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Reserved Exposure Parameter 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Reserved Priority Parameter 3 0 1 2 3 4 5 6 7 8 9 10 11 12 13...

Page 46: ... 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Reserved Exposure Priority Frame Rate AF Mode Strength N R Scan Mode Color Mode Threshold JPEG Mode Q Factor Reserved Parameter 40 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Reserved CX3 Major CX3 Minor CX3 Year CX3 Month CX3 Day ISP Major ISP Minor Fields Exposure Return values 0 6 3 1 5 ...

Page 47: ...e Return values 0 Color 1 Mono 3 Negative 10 Black and white Threshold Only valid when Color Mode 10 Return values 0 Auto 1 255 Gray threshold value JPEG Mode Return values 0 Manual 1 Auto Q Factor Only valid when JPEG Mode 0 Return values 13 100 JPEG Q factor CX3 Major Major component X of CX3 firmware version in X Y format CX3 Minor Minor component Y of CX3 firmware version in X Y format CX3 Yea...

Page 48: ...ISP Major Major component X of ISP firmware version in X Y format ISP Minor Minor component Y of ISP firmware version in X Y format 47 Revision 7 Vuzix Corporation ...

Page 49: ...Appendix A Block Diagram Figure A 1 Detailed Block Diagram 48 ...

Page 50: ...tal Active 1280 Pixels Horizontal Back Porch 178 Pixels Horizontal Front Porch 82 Pixels Horizontal Sync Width 16 Pixels Vertical Active 720 Lines Vertical Back Porch 330 Lines Vertical Front Porch 62 Lines Vertical Sync Width 62 Lines Table B 1 M400C EDID Timing Parameters 49 ...

Page 51: ...Appendix C USB Device Tree 50 ...

Page 52: ...Figure C 1 USB Device Tree 51 Revision 7 Vuzix Corporation ...

Page 53: ...2 3 4 5 6 7 E0 E1 E2 E3 E4 E5 E6 E7 Key 1 Key 2 Key 3 Key 4 Key 5 Key 6 Key Codes Figure D 1 Button HID Get_Report Input Format 0 1 2 3 4 5 6 7 Num Lock Caps Lock Scroll Lock Com pose Kana o LEDs Figure D 2 Button HID Set_Report Output Format 52 ...

Page 54: ...D 2 Touchpad 0 1 2 3 4 5 6 7 B1 B2 B3 X Y Wheel AC Pan Mouse E0 E1 E2 E3 E4 E5 E6 E7 o Key Codes Figure D 3 Touchpad HID Get_Report Input Format 53 Revision 7 Vuzix Corporation ...

Page 55: ...5 g LSB Acceleration Axis Z 2 bytes 0 005 g LSB Accelerometer 3D Report ID 3 Event Sensor State Event Sensor Event Angular Velocity about X Axis 2 bytes 131 LSB dps Angular Velocity about Y Axis 2 bytes 131 LSB dps Angular Velocity about Z Axis 2 bytes 131 LSB dps Gyrometer 3D Figure D 4 Sensor HID Get_Report Input Format 1 of 2 54 Revision 7 Vuzix Corporation ...

Page 56: ...5 μT LSB Data Field Magnetometer Accuracy Compass 3D Report ID 6 Event Sensor State Event Sensor Event Data Field Quaternion X Component 2 bytes 0 001 LSB Data Field Quaternion Y Component 2 bytes 0 001 LSB Data Field Quaternion Z Component 2 bytes 0 001 LSB Data Field Quaternion W Component 2 bytes 0 001 LSB Device Orientation Figure D 5 Sensor HID Get_Report Input Format 2 of 2 55 Revision 7 Vuz...

Page 57: ...Reserved for use as Minimum modifier range 2 bytes Accelerometer 3D Property Sensor Connection Type Property Reporting State Property Power State Event Sensor State Property Report Interval 4 bytes Reserved for use as Change Sensitivity Absolute modifier range 2 bytes Reserved for use as Maximum modifier range 2 bytes Reserved for use as Minimum modifier range 2 bytes Gyrometer 3D Figure D 6 Senso...

Page 58: ...Reserved for use as Minimum modifier range 2 bytes Compass 3D Property Sensor Connection Type Property Reporting State Property Power State Event Sensor State Property Report Interval 4 bytes Reserved for use as Change Sensitivity Absolute modifier range 2 bytes Reserved for use as Maximum modifier range 2 bytes Reserved for use as Minimum modifier range 2 bytes Device Orientation Figure D 7 Senso...

Page 59: ... enumerate properly when the host powers on Unplugging and re plugging the M400C will solve the issue 2 Artifacts in recorded video Certain hosts may not have the capability to record 2160p30 from the USB webcam with out introducing artifacts in the recorded video If this occurs reduce the capture resolution and or frame rate See the supported modes in Table 2 1 Table E 1 Device Errata 58 ...

Page 60: ...ile storage description 4 April 4 2022 Devrin Talen Corrected Touchpad Orientation packet format Corrected Touchpad Enable packet format 5 April 13 2022 Devrin Talen Updated Table 2 2 6 April 28 2022 Devrin Talen Corrected audio operation description Corrected USB device tree 7 May 20 2022 Devrin Talen Added supported camera modes and resolutions Clarified Autorotation and Force Left Eye setting i...

Page 61: ...vice Class Definition for Video Devices 1 5 edition August 2012 4 USB Implementers Forum Universal Serial Bus 3 1 Specification 1 0 edition July 2013 5 USB Implementers Forum Universal Serial Bus Type C Cable and Connector Specification 1 2 edition March 2016 6 USB Implementers Forum Universal Serial Bus Power Delivery Specification 3 0 1 2 edition June 2018 7 Video Electronics Standard Associatio...

Reviews: