Here we document the final specs of the Varifocal headset.

List of hardware

For 6DoF and hand tracking, we’re using the Intel RealSense T261 and Ultraleap Rigel.

image.png

image.png

They provide head poses and hand tracking out of the box.

image.png

We’ll use this hall sensor (TMAG5273), I2C support, and linear.

Headset topology

graph TD;
    Computer["Computer"] --> |"USB A to C cable"| Hub3["USB 3.0 Hub"];
    Computer --> |"DP Alt mode + USB 2.0"| DisplayDriver["Display Driver"];
    DisplayDriver --> Hub2["USB 2.0 Hub"];
    PDCharger["PD Charger (12V)"] --> VCMDriver["VCM Driver Board"];
    Hub3 --> |"USB 2 full speed"| VCMDriver;
    Hub2 --> |"USB 2 full speed"| ESP1["ESP32-S3 #1"];
    Hub2 --> |"USB 2 full speed"| ESP2["ESP32-S3 #2"];
    Hub3 --> |"USB 3"| Realsense["RealSense T261"];
    Hub3 --> |"USB 3"| Ultraleap["Ultraleap Module"];
    
    %% Power connections
    PDCharger --> |"12V"| VCMDriver;
    VCMDriver --> |"5V"| IRLED;

VCM Driver Board Topology

graph TD;
    %% Main PCB
    subgraph VCM_Driver_Board["Voice coil driver board"]
        %% USB and Power
        USB_Computer["USB-C Port <br> (Computer)"] --> RP2040["RP2040 <br> Microcontroller"];
        USB_PD["USB-C Port <br> (PD Charger)"] --> PD_Chip["PD Decoy Chip"];
        PD_Chip --> |"12V"| MOSFETs;
        
        %% Debug Interfaces
        RP2040 --> |"SWD/UART"| Debug_Serial_Port["Debug & Serial Port"];
        PD_Chip --> PD_Debug["PD Debug/Programming Interface"];
        
        %% Control Path
        RP2040 --> Opto["Optocouplers"];
        Opto --> MOSFETs["MOSFETs"];
        MOSFETs --> |"PWM"| VCM["Voice Coil Motors"];
        
        %% I2C Interfaces
        RP2040 --> |"I2C"| Qwiic12["Qwiic Port 1/2"];
    end

    %% Hall Sensor Board
    subgraph Hall_Sensor_Board["Hall sensor board"]
        Qwiic_Conn["Qwiic Connector"] --> |"I2C"| TMAG5273
    end

    %% Connection between boards
    Qwiic12 --> Qwiic_Conn;

Initial prototyping

Resources

Driving voice coil motors

https://electronics.stackexchange.com/questions/294744/mosfet-switch-using-an-optocoupler

https://electronics.stackexchange.com/questions/447595/how-does-one-position-control-a-voice-coil-actuator

https://www.ti.com/lit/ds/symlink/drv201.pdf