Here we document the final specs of the Varifocal headset.
For 6DoF and hand tracking, we’re using the Intel RealSense T261 and Ultraleap Rigel.


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

We’ll use this hall sensor (TMAG5273), I2C support, and linear.
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;
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;
https://electronics.stackexchange.com/questions/294744/mosfet-switch-using-an-optocoupler