What do you need help with?

Displaying Video from an external HMDI/DVI source on ODG Glasses


Video data can be displayed in the glasses, transmitted over USB or IP (WiFi or Ethernet).  The lower latency approach is to use UVC protocol over USB, mainly because data sent over IP over WiFi requires a video encode/decode; UVC can be uncompressed.  

Over USB:

One way we've found is to use a HMDI/DVI to USB Adapter, and a ODG battery pack for plugging in the adapter.  We've successfully used this adapter:


and played video using this Android App:


This works on both R-6 and R-7.  Looks like this:


Update for 4K Inogeni and Marshmallow:

The 4K HDMI / USB 3.0 Inogeni unit does work fine with the latest firmware in the Inogeni unit. I updated the firmware in the 4K Inogeni unit to v6.21 (latest as of Sept 2017). There's a tool you need to download to your development host, depending on your OS, called the INOGENI Updater App; see this software update page.

It looks like you may need a newer version of CameraFi to run on the Marshmallow OS release (ReticleOS 4.1.14). See this article to know which OS you have: what-version-of-ReticleOS-software-I-m-running?

ReticleOS 4.x, use the -2 apk that is attached.
ReticleOS 3.5.x, use the -1 apk that is attached.

When you start the App up the first time after a reboot, and plug in the USB from the Inogeni into the Power Hub, you will need to swipe thru a couple of screens (left to right on the -1 apk, top to bottom on the -2 apk) and you have to flip into selector mode to do that, and then when you get to the last page, there's a UI button to click to begin; you need to go back into cursor mode to do that. Once you've done all that, you'll get a prompt to "Allow the app CameraFi to access the USB device". There's also a check box "use by default for this USB device". Check that and click ok.

Note - on the -2 version of CameraFi, when it asks you if you want to update, hit cancel; the update doesn't appear to work, and causes the App to exit.


Over IP:

If transmitting video streams over IP, usually protocols like H.263 or H.264 are used (these have hardware based codecs on the platform).  There are many Android Apps that can play video from a standard stream.  VLC is the one we've used the most often. The latency for this approach is usually > 1/2 second, and can but up to 2-3 seconds depending on the size of the configured jitter buffer in the player.


How you measure latency depends on what your video source is.  To give an example for the USB approach, using a Laptop as a video source with a stopwatch app running on it, an HDMI to USB converter, connected to the glasses, we measured ~ 220 - 250 milliseconds delay from the Laptop display to the glasses display. We estimate that the latency of the HDMI out of the laptop is ~ 80-100 milliseconds, and that the HDMI to USB converter, USB and UVC conversion and display in the glasses is ~ 140 milliseconds.  This was 720p 60 fps video.  

3D, Audio :

The Application that plays the video can be made to display both 2D and stereoscopic 3D video.  We think that most folks who have this use case are going to want to build their own player; the ones we've looked at don't currently natively support S3D.  Also note that the audio stream is accessible as well (the Inogeni adapter shows up as 2 USB devices - a camera and an audio source), but again, we have not found a off-the-shell player that plays audio with the video. [If you know of one, let us know!].

Have more questions? Submit a request


  • Avatar

    You didn't describe how to connect the INOGENI to the power hub. I have all the equipment you described in my lab but the INOGENI does not power up from the battery pack while it works perfectly when connected to a laptop. Any ideas?

Powered by Zendesk