Full-Face Tracking System Implementation

For Bigscreen Beyond

Hardware implementation of a face tracking system leveraging ETVR, Babble, and Beymod. Repackaging in a way that makes sense to me. This project is in-progress and will take some time to complete


Incomplete CAD Mockup

USB Hub

The first thing we need is a way to connect multiple devices to the HMD. The Beyond provides us with a single USB 2.0 Type-C accessory port on the right side of the HMD. The primary limitation of this USB port is its output power. It cuts us off around 500mA to prevent the HMD from browning-out. We will design the hub to provide an easy alternate power source to bypass this constraint, though this means a second wire must be run to the user.

Primary Features

  1. CH334F 4-port USB 2.0 Hub
    • Data arrives from Beyond HMD
  2. TPS2117 2-channel power multiplexer
    • Low-power standalone mode powered by HMD only
    • High-power mode available when using EXT_PWR
    • Mode select via on-board DIP switch
  3. 2x USB Type-C outputs
    • Audio Port attached to USB 2 hub
    • VFT port provides USB 3 pass though from EXT_PWR port
    • Optional USB 2 reroute attaches VFT port to JST #1 if EXT_PWR port is not used for data input
  4. 4x JST SUR outputs
    • 3x USB 2
    • 1x power only
  5. LED status indicators
    • Hub connectivity
    • USB port activity
    • Power path selection

Ports & Layout Decisions

The USB IN port will attach to the HMD via a short USB-C to C cable, I use a 6″ USB 2.0 Type-C cable for this connection.

The top-most port, dubbed the “Vive Facial Tracker” or “VFT” port is intended for use with, you guessed it, a Vive Facial Tracker. The port is facing up so the cable can easily reach the front of the HMD. On the V2 hub, this port provides USB 3 pass-through from the EXT_PWR port. This should prevent the VFT from misbehaving and opens the door for more kinds of accessories if you do not use this port for a VFT.

The EXT_PWR port is a secondary power ingress location to help compensate for the Beyond’s limited 500mA power budget. You can select this power input by flipping the DIP switch to the “ON” position, at which point you should see the southern-most LED turn on.

More to write here later 🙂

Hardware Configurations

A simplified power path diagram is shown on the left.

The green arrow shows the power input from the Beyond & the blue arrow shows the power input from EXT_PWR

The user can select which path they want to utilize via the on-board dip switch. “ON” = EXT_PWR in use. The bottom-most LED indicates power mux status. Illuminated = EXT_PWR in use.

The selected power source is distributed to all downstream-facing ports.

The default USB data configuration is shown on the left. Note that the VFT port is directly connected to the EXT_PWR port.

The intention here is that the user has already run a second USB cable to provide their hub with extra power. This provides the user with an additional USB connection which can be used for more demanding accessories & improve compatibility with a Vive Face Tracker

I suggest this configuration if you plan to run an extra USB cable to your HMD & have the ability to plug that cable in to a hub or computer.

An alternate data configuration is shown on the left. The EXT_PWR USB DM/DP pair is disconnected and the DM/DP pair from JST #1 is routed up to the VFT port.

NOTE: JST #1 and VFT Ports cannot be used at the same time in this configuration.

If the user does not intend to run an extra USB cable and requires an extra USB-C connection to the hub, a rework can be applied which connects the VFT port to the hub directly.

Power can still be provided by the EXT_PWR port in this configuration. Only USB data is impacted. However, if you are running a USB cable to EXT_PWR, I suggest utilizing the default data paths.


LED Driver & Distribution Board Design

More to be written here soon


Future Plans

I still need to develop IR LED rings & finish the 3D design to hold everything on the HMD
If you have any questions feel free to reach out via email: mmimodular@gmail.com or discord: matt_owo