EyeTrackVR-Docs/how_to_build/full_build.html
2025-04-19 20:35:01 +00:00

27 lines
68 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>V3 Build Guide | EyeTrackVR Docs</title>
<meta name="description" content="Official documentation for EyeTrackVR. Fully open-source and affordable VR eye tracking platform.">
<link rel="preload stylesheet" href="/assets/style.78a19c9c.css" as="style">
<script type="module" src="/assets/app.7dd739f4.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/framework.47aa8d5b.js">
<link rel="modulepreload" href="/assets/chunks/theme.60186560.js">
<link rel="modulepreload" href="/assets/chunks/index.339f98d7.js">
<link rel="modulepreload" href="/assets/chunks/CheckBoxList.80273cd9.js">
<link rel="modulepreload" href="/assets/chunks/index.c1fed1bd.js">
<link rel="modulepreload" href="/assets/how_to_build_full_build.md.f324b1f6.lean.js">
<script async src="/src/assets/diy.js"></script>
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-527a0310><!--[--><!--]--><!--[--><span tabindex="-1" data-v-b22defb4></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-b22defb4> Skip to content </a><!--]--><!----><header class="VPNav" data-v-527a0310 data-v-a46e73f0><div class="VPNavBar" data-v-a46e73f0 data-v-dfeca417><div class="container" data-v-dfeca417><div class="title" data-v-dfeca417><div class="VPNavBarTitle has-sidebar" data-v-dfeca417 data-v-2d6ff155><a class="title" href="/" data-v-2d6ff155><!--[--><!--]--><!--[--><!--[--><!--[--><img class="VPImage dark logo" src="/logo.svg" alt="EyeTrackVR Logo" data-v-4d414b82><!--]--><!--[--><img class="VPImage light logo" src="/logo_light.png" alt="EyeTrackVR Logo" data-v-4d414b82><!--]--><!--]--><!--]--><!--[-->EyeTrackVR Docs<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-dfeca417><div class="curtain" data-v-dfeca417></div><div class="content-body" data-v-dfeca417><!--[--><!--]--><div class="VPNavBarSearch search" data-v-dfeca417><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg class="DocSearch-Search-Icon" width="20" height="20" viewBox="0 0 20 20" aria-label="search icon"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-dfeca417 data-v-c6c3e6d4><span id="main-nav-aria-label" class="visually-hidden" data-v-c6c3e6d4>Main Navigation</span><!--[--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-c6c3e6d4 data-v-1a2ceba0><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-1a2ceba0><span class="text" data-v-1a2ceba0><!----><span data-v-1a2ceba0>About</span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-1a2ceba0><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-1a2ceba0><div class="VPMenu" data-v-1a2ceba0 data-v-7bffa9cd><div class="items" data-v-7bffa9cd><!--[--><!--[--><div class="VPMenuLink" data-v-7bffa9cd data-v-71c5411b><a class="VPLink link" href="/about" data-v-71c5411b><!--[-->About Us<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-7bffa9cd data-v-71c5411b><a class="VPLink link" href="/dev_roadmap" data-v-71c5411b><!--[-->Development Road Map<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/contact" tabindex="0" data-v-c6c3e6d4 data-v-97d30ef6><!--[--><span data-v-97d30ef6>Contact</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-dfeca417 data-v-f774fc1d><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f774fc1d data-v-fdee46ce data-v-0b5e260c><span class="check" data-v-0b5e260c><span class="icon" data-v-0b5e260c><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-fdee46ce><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-fdee46ce><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-dfeca417 data-v-08b35e6f data-v-f2234a39><!--[--><a class="VPSocialLink no-icon" href="https://github.com/EyeTrackVR" aria-label="github" target="_blank" rel="noopener" data-v-f2234a39 data-v-efc53bd4><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink no-icon" href="https://discord.gg/kkXYbVykZX" aria-label="discord" target="_blank" rel="noopener" data-v-f2234a39 data-v-efc53bd4><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Discord</title><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-dfeca417 data-v-47bb42ad data-v-1a2ceba0><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-1a2ceba0><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-1a2ceba0><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-1a2ceba0><div class="VPMenu" data-v-1a2ceba0 data-v-7bffa9cd><!----><!--[--><!--[--><!----><div class="group" data-v-47bb42ad><div class="item appearance" data-v-47bb42ad><p class="label" data-v-47bb42ad>Appearance</p><div class="appearance-action" data-v-47bb42ad><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-47bb42ad data-v-fdee46ce data-v-0b5e260c><span class="check" data-v-0b5e260c><span class="icon" data-v-0b5e260c><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-fdee46ce><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-fdee46ce><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-47bb42ad><div class="item social-links" data-v-47bb42ad><div class="VPSocialLinks social-links-list" data-v-47bb42ad data-v-f2234a39><!--[--><a class="VPSocialLink no-icon" href="https://github.com/EyeTrackVR" aria-label="github" target="_blank" rel="noopener" data-v-f2234a39 data-v-efc53bd4><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink no-icon" href="https://discord.gg/kkXYbVykZX" aria-label="discord" target="_blank" rel="noopener" data-v-f2234a39 data-v-efc53bd4><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Discord</title><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-dfeca417 data-v-670493dd><span class="container" data-v-670493dd><span class="top" data-v-670493dd></span><span class="middle" data-v-670493dd></span><span class="bottom" data-v-670493dd></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav reached-top" data-v-527a0310 data-v-3c3d80ab><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-3c3d80ab><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-3c3d80ab><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-3c3d80ab>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-3c3d80ab data-v-2c1007a4><button data-v-2c1007a4>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-527a0310 data-v-45ef976a><div class="curtain" data-v-45ef976a></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-45ef976a><span class="visually-hidden" id="sidebar-aria-label" data-v-45ef976a> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Getting Started</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/getting_started/intro" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Introduction</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/getting_started/things_to_know" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Things to know before you start</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/getting_started/led_safety" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>LED Safety</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>How to Build</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/part_list" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Parts List</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/preparing_cameras" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Preparing Cameras</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/preparing_xiao" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Preparing XIAO Sense ESP32</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/led_setup" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Preparing V4 LEDs</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/3d_printed_mounts" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>3D Printed Mounts</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/creating_your_own_mount" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>How to Create your own Camera Mount</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Headset Guides</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/headset_guides/what_is_this" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>What is This?</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/headset_guides/valve_index" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Valve Index</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Firmware Guide</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/firmware" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Introduction</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/flashing_tool" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Flashing Tool</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/mdns" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>MDNS</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/rest_api" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>REST API</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Software Guide</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/software_guide/eyetrackvr_app_guide" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Installing and setting up the ETVR App</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/software_guide/build_software" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Building the app from source</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/software_guide/osc_setup" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Setting up OSC recenter/recalibrate</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/software_guide/VRCFT_tracking_module" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Setting up VRCFT - VRCFT Module</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Miscellaneous</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/misc/jlc3dp" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>JLC3DP 3D Printing Service</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/misc/vrc_avatar_setup" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>VR Chat Avatar Setup</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/misc/faq" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>FAQ</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Development</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/development/docs/dev_docs" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Docs</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/development/docs/pages" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Edit Docs</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/development/docs/standards" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Standards</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0 has-active" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Archive</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/setup_vscode" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Setup Visual Studio Code environment</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/configure_firmware" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Configuring Firmware</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/environments" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Firmware Environments</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/upload_and_update_firmware" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Uploading and Updating the Firmware</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/update_platformio" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Updating PlatformIO</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/archive/fox_ir_v2_build_instructions" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Prepare to solder IR LED PCB V2's</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/full_build" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>V3 Full Build Guide</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/parts_list" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Part List (legacy)</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-527a0310 data-v-b7946bfc><div class="VPDoc has-sidebar has-aside" data-v-b7946bfc data-v-281cfc61><!--[--><!--]--><div class="container" data-v-281cfc61><div class="aside" data-v-281cfc61><div class="aside-curtain" data-v-281cfc61></div><div class="aside-container" data-v-281cfc61><div class="aside-content" data-v-281cfc61><div class="VPDocAside" data-v-281cfc61 data-v-79cae1a0><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" role="navigation" data-v-79cae1a0 data-v-d8517c5e><div class="content" data-v-d8517c5e><div class="outline-marker" data-v-d8517c5e></div><div class="outline-title" role="heading" aria-level="2" data-v-d8517c5e>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-d8517c5e><span class="visually-hidden" id="doc-outline-aria-label" data-v-d8517c5e> Table of Contents for current page </span><ul class="root" data-v-d8517c5e data-v-74479eb5><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-79cae1a0></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-281cfc61><div class="content-container" data-v-281cfc61><!--[--><!--]--><!----><main class="main" data-v-281cfc61><div style="position:relative;" class="vp-doc _how_to_build_full_build" data-v-281cfc61><div><h1 class="text-[var(--font-accent)]" id="v3-build-guide" tabindex="-1">V3 Build Guide <a class="header-anchor" href="#v3-build-guide" aria-label="Permalink to &quot;V3 Build Guide {.text-[var(--font-accent)]}&quot;"></a></h1><h2 id="this-page-will-contain-a-step-by-step-assembly-guide" tabindex="-1">This page will contain a step-by-step assembly guide. <a class="header-anchor" href="#this-page-will-contain-a-step-by-step-assembly-guide" aria-label="Permalink to &quot;This page will contain a step-by-step assembly guide.&quot;"></a></h2><h2 id="updated-documentation-for-v4-is-still-in-progress-and-not-updated-here-please-be-patient" tabindex="-1">Updated documentation for V4 is still in progress and not updated here, please be patient. <a class="header-anchor" href="#updated-documentation-for-v4-is-still-in-progress-and-not-updated-here-please-be-patient" aria-label="Permalink to &quot;Updated documentation for V4 is still in progress and not updated here, please be patient.&quot;"></a></h2><p>This guide provides a walkthrough on the assembly of a <strong>wireless</strong> V3 eye tracking. V4 specific final docs are Work In Progress: <a href="https://www.youtube.com/watch?v=AVUbDNe7uNU" target="_blank" rel="noreferrer">V4 LED Solderless assemblly rough edit:</a></p><iframe width="500" height="300" src="https://www.youtube.com/embed/AVUbDNe7uNU" title="EyeTrackVR V4 Solder-less Assembly ROUGH EDIT" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe><p>Sketch of V4 solderless wiring:</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://imgur.com/zdj9WUu.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://imgur.com/zdj9WUu.png" alt="Sketch of V4 wiring" style="max-width: 600px;"></a><!----></figure></div><p>Credit: @balty via <a href="https://discord.gg/kkXYbVykZX" target="_blank" rel="noreferrer">Discord</a></p><p>Sketch of solder assembly of V4:</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/yB9e92o.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/yB9e92o.jpg" alt="Sketch of V4 wire" style="max-width: 400px;"></a><!----></figure></div><p>Nevertheless, it&#39;s worth noting that these instructions are also mostly applicable to those who are using wired or V4 trackers.</p><h2 id="step-1-make-sure-your-have-read-the-things-to-know-before-you-start-guide" tabindex="-1">Step 1: Make sure your have read the <a href="./../getting_started/things_to_know">Things to know before you start</a> guide <a class="header-anchor" href="#step-1-make-sure-your-have-read-the-things-to-know-before-you-start-guide" aria-label="Permalink to &quot;Step 1: Make sure your have read the [Things to know before you start](../getting_started/things_to_know) guide&quot;"></a></h2><p>This will give you a basic overview of the project&#39;s status and what to expect currently.</p><h2 id="step-2-order-all-the-parts-listed-on-our-parts-list" tabindex="-1">Step 2: Order all the parts listed on our <a href="./../how_to_build/parts_list">Parts list</a> <a class="header-anchor" href="#step-2-order-all-the-parts-listed-on-our-parts-list" aria-label="Permalink to &quot;Step 2: Order all the parts listed on our [Parts list](../how_to_build/parts_list)&quot;"></a></h2><p>Please take note of the fact that hardware still may change, although with more developments it seems like we are going to stick with current hardware.</p><h2 id="step-3-wait-for-things-to-arrive" tabindex="-1">Step 3: Wait for things to arrive <a class="header-anchor" href="#step-3-wait-for-things-to-arrive" aria-label="Permalink to &quot;Step 3: Wait for things to arrive&quot;"></a></h2><p>Long shipping times from China are <em>f u n</em>. Please allow anywhere from 2 weeks to 2 months for everything to arrive.</p><h2 id="step-4-gather-up-all-of-your-hardware" tabindex="-1">Step 4: Gather up all of your hardware <a class="header-anchor" href="#step-4-gather-up-all-of-your-hardware" aria-label="Permalink to &quot;Step 4: Gather up all of your hardware&quot;"></a></h2><p>Make sure you have at least the following:</p><div class="checkboxes"><ul style="list-style:none;"><!--[--><li><div><input type="checkbox" checked><label><a target="_blank">2 ESP 32 CAM boards</a></label></div></li><li><div><input type="checkbox" checked><label><a target="_blank">2 160 degree cameras</a></label></div></li><li><div><input type="checkbox" checked><label><a target="_blank">1 USB board to power your ESPs</a></label></div></li><li><div><input type="checkbox" checked><label><a target="_blank">1 Programmer board(buying an extra is reccomended)</a></label></div></li><li><div><input type="checkbox" checked><label><a target="_blank">IR emitters, resistors, and preferably PCBs</a></label></div></li><li><div><input type="checkbox" checked><label><a target="_blank">Lower gauge wire to power ESPs</a></label></div></li><li><div><input type="checkbox" checked><label><a target="_blank">Higher gauge wire to power IR LEDs</a></label></div></li><li><div><input type="checkbox" checked><label><a target="_blank">3d printer to print mounts. (Buying them from some place like JLCPCB is also an option)</a></label></div></li><li><div><input type="checkbox" checked><label><a target="_blank">Glue of some form, hot glue highly recommended.</a></label></div></li><!--]--></ul></div><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/j18rRI7.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/j18rRI7.jpg" alt="&#39;img of components&#39;" style="max-width: 400px;"></a><figcaption><br> &#39;ESPs, cams, a programmer and a USB connector&#39; <!----></figcaption></figure></div><h2 id="step-5-install-external-antennas-or-shield-esp-antenna-with-an-antistatic-bag" tabindex="-1">Step 5: Install external antennas or shield ESP antenna with an antistatic bag <a class="header-anchor" href="#step-5-install-external-antennas-or-shield-esp-antenna-with-an-antistatic-bag" aria-label="Permalink to &quot;Step 5: Install external antennas or shield ESP antenna with an antistatic bag&quot;"></a></h2><p>Some ESP-CAM boards have issues with signal integrity, there are 2 things you can do to help/solve the issues.</p><p>The first option is to use an external antenna.</p><p>This is the best solution when it comes to the final result. If you have Vive/Tundra trackers, this is a <strong>REQUIRED</strong> step. The interference from the trackers will make your ESP stream unusable. An antistatic bag does not help in this case. Unfortunately, removing the antenna is not super easy, you have to either move a resistor or, remove it and bridge 2 solder pads. The attached image below shows the orientation of the pads that need to be connected, depending on the mode You can not bridge all connections and have both antennas active at the same time. The 0-ohm resistor does not need to be on the board, you can simply bridge the connections.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/OzpxFMD.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/OzpxFMD.png" alt="&#39;img of external antenna&#39;" style="max-width: 400px;"></a><figcaption><br> Image from: <a href="https://randomnerdtutorials.com/esp32-cam-connect-external-antenna" target="_blank"><span class="iconify" data-icon="mdi:open-in-new" data-inline="false">https://randomnerdtutorials.com/esp32-cam-connect-external-antenna</span></a></figcaption></figure></div><p>Below is an example of bridging the connections and attaching an antenna.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/RIFpNqW.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/RIFpNqW.jpg" alt="&#39;img of external antenna resistors&#39;" style="max-width: 400px;"></a><!----></figure></div><div align="center"><iframe width="500" height="300" src="https://www.youtube.com/embed/aBTZuvg5sM8" title="How to add an external antenna to an ESP32-CAM (2 methods)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div><p>The second option is to cover the ESP&#39;s antenna with an antistatic bag. This can help aid problems, and can completely solve them in some cases. Best of all, it is completely free! However, it should be noted that it performs worse than an external antenna and in certain cases will not solve the issue like if you have Vive trackers.</p><div align="center"><iframe width="500" height="300" src="https://www.youtube.com/embed/wS4PS3Mw250" title="Covering an ESP32-CAM&#39;s antenna with anti-static bag" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div><h2 id="step-6-attach-cameras-to-esps" tabindex="-1">Step 6: Attach cameras to ESPs <a class="header-anchor" href="#step-6-attach-cameras-to-esps" aria-label="Permalink to &quot;Step 6: Attach cameras to ESPs&quot;"></a></h2><p>Look at your ESP and locate the camera ribbon cable connector as circled below.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/T5asLGN.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/T5asLGN.jpg" alt="&#39;img of camera socket&#39;" style="max-width: 400px;"></a><!----></figure></div><p>Flip the gray part up to allow the cameras to be connected. Do not force it, or shove objects into it to open, fingernails are fine.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/Z8b8Sin.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/Z8b8Sin.jpg" alt="&#39;img of camera clip&#39;" style="max-width: 400px;"></a><!----></figure></div><p>Now slide in a camera, please note that the pins are facing down, you should only see the black part.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/dDBIi9j.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/dDBIi9j.jpg" alt="&#39;img of camera cable&#39;" style="max-width: 400px;"></a><!----></figure></div><p>Once the camera has been slid in, press the gray part of the connector back down. There will be a small amount of force but still be gentle. Note the ammount of black coming out of the connector.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/VnFi5XS.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/VnFi5XS.jpg" alt="&#39;img of camera cable&#39;" style="max-width: 400px;"></a><!----></figure></div><h2 id="step-7-connect-esp-to-the-programmer-to-flash" tabindex="-1">Step 7: Connect ESP to the programmer to flash <a class="header-anchor" href="#step-7-connect-esp-to-the-programmer-to-flash" aria-label="Permalink to &quot;Step 7: Connect ESP to the programmer to flash&quot;"></a></h2><p>Why flash before you have it assembled? It&#39;s simple, to make sure they actually work before you spend time soldering to them.</p><p>Slide your ESP into the programmer, and note the USB port goes away from the ESP&#39;s camera.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/LsLPAcd.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/LsLPAcd.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><h2 id="step-8-configure-visual-studio-code-and-prepare-to-flash-the-firmware" tabindex="-1">Step 8: Configure Visual Studio Code and prepare to flash the firmware <a class="header-anchor" href="#step-8-configure-visual-studio-code-and-prepare-to-flash-the-firmware" aria-label="Permalink to &quot;Step 8: Configure Visual Studio Code and prepare to flash the firmware&quot;"></a></h2><p>Check out our guide on <a href="./../firmware_guide/setup_vscode">Setting up VS Code</a></p><p>Once VS Code is set up, move on to the next step.</p><h2 id="step-9-plug-in-your-esp-and-flash-the-firmware" tabindex="-1">Step 9: Plug in your ESP and flash the firmware <a class="header-anchor" href="#step-9-plug-in-your-esp-and-flash-the-firmware" aria-label="Permalink to &quot;Step 9: Plug in your ESP and flash the firmware&quot;"></a></h2><p>Our guide, <a href="./../firmware_guide/upload_and_update_firmware">Building and uploading the firmware manually</a> has steps on how to do this. After it has flashed, make sure you get a video stream in your browser, then power it down and flash your next ESP.</p><h2 id="step-10-connect-your-power-wires-to-a-usb-type-a-board" tabindex="-1">Step 10: Connect your power wires to a USB Type-A board <a class="header-anchor" href="#step-10-connect-your-power-wires-to-a-usb-type-a-board" aria-label="Permalink to &quot;Step 10: Connect your power wires to a USB Type-A board&quot;"></a></h2><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Powering from the programmer board <strong>will not work correctly</strong>. This delivers a lower voltage which results in dim LEDs and video artifacts. These are highly likely to mess up tracking.</p></div><p>Get two pairs of wire, preferably two different colors, Cut them to length (56mm in my case) and twist together two for ground and two for 5V. Here I used speaker wire where the copper denotes positive and silver negative. Then, strip the wires to about 3mm of exposed wire.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/Cdu9lSN.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/Cdu9lSN.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><h2 id="step-11-cut-wires-for-ir-leds" tabindex="-1">Step 11: Cut wires for IR LEDs <a class="header-anchor" href="#step-11-cut-wires-for-ir-leds" aria-label="Permalink to &quot;Step 11: Cut wires for IR LEDs&quot;"></a></h2><p>To find the optimal length, take a piece of wire and a marker and mock up your wire route, and mark the wire, cut it, then make another at the same size for the other eye. You will need 3 different cuts of wire. 2 short ones for connecting the 2 PCBs per eye together, 2 Longer ones for power, or ground and 2 slightly longer ones for power or ground for the LED near the camera at the bottom.</p><p>Once cut, strip them to around 4mm of exposed wire.</p><h2 id="step-12-twist-the-positive-usb-wire-and-positive-ir-led-wires-together-and-tin-them" tabindex="-1">Step 12: Twist the positive USB wire and positive IR LED wires together and tin them <a class="header-anchor" href="#step-12-twist-the-positive-usb-wire-and-positive-ir-led-wires-together-and-tin-them" aria-label="Permalink to &quot;Step 12: Twist the positive USB wire and positive IR LED wires together and tin them&quot;"></a></h2><p>Once twisted together add solder to keep them together. This makes the connection much easier.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/QlRrWNn.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/QlRrWNn.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><h2 id="step-13-solder-the-positive-wire-to-esp" tabindex="-1">Step 13: Solder the positive wire to ESP <a class="header-anchor" href="#step-13-solder-the-positive-wire-to-esp" aria-label="Permalink to &quot;Step 13: Solder the positive wire to ESP&quot;"></a></h2><p>Lay the wire on the outside of the 5V pin and apply solder.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/DhnmLBG.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/DhnmLBG.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><h2 id="step-14-solder-the-negative-wire-to-esp" tabindex="-1">Step 14: Solder the negative wire to ESP <a class="header-anchor" href="#step-14-solder-the-negative-wire-to-esp" aria-label="Permalink to &quot;Step 14: Solder the negative wire to ESP&quot;"></a></h2><p>Repeat <a href="#step-12-twist-the-positive-usb-wire-and-positive-ir-led-wires-together-and-tin-them">Step 12</a> but with the negative wires.</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>As a user in our discord has learned, you can short the <code>IO12</code> pin with the ground pin <code>(GND)</code> without issues.</p></div><p>In the below example I put it on the top of the pin, It will be a weak-ish joint but that&#39;s where glue comes in handy.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/PWA0gtq.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/PWA0gtq.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><h2 id="step-15-wire-up-the-2nd-esp" tabindex="-1">Step 15: Wire up the 2nd ESP <a class="header-anchor" href="#step-15-wire-up-the-2nd-esp" aria-label="Permalink to &quot;Step 15: Wire up the 2nd ESP&quot;"></a></h2><p>Repeat steps <a href="#step-12-twist-the-positive-usb-wire-and-positive-ir-led-wires-together-and-tin-them">12</a>-<a href="#step-14-solder-the-negative-wire-to-esp">14</a> with the 2nd ESP.</p><h2 id="step-16-prepare-to-solder-ir-led-pcbs" tabindex="-1">Step 16: Prepare to solder IR LED PCBs <a class="header-anchor" href="#step-16-prepare-to-solder-ir-led-pcbs" aria-label="Permalink to &quot;Step 16: Prepare to solder IR LED PCBs&quot;"></a></h2><p>Get your magnifying glass out, it&#39;s time to solder very smol things.</p><p>Gather 4 PCBs, 4 IR LEDs, and either 4 ~350ohm.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/0zXY79j.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/0zXY79j.jpg" alt="" style="max-width: 400px;"></a><figcaption><br> 357ohm resistors and V3 PCBs <!----></figcaption></figure></div><p>Here are the PCB pin-out labels:</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/n1noWKq.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/n1noWKq.png" alt="" style="max-width: 400px;"></a><figcaption><br> V3 <!----></figcaption></figure></div><p>LED labels:</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/Ap8OAWY.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/Ap8OAWY.png" alt="" style="max-width: 400px;"></a><figcaption><br> The green markings and notched corners mark the positive sides of the LEDs pictured above. <!----></figcaption></figure></div><p>If you have different LEDs, please consult their datasheet.</p><p>Some terminology related to them:</p><p><code>5V</code>: 5-volt power in.</p><p><code>GND</code>: Ground or power out.</p><p><code>AR</code>: After-Resistor this is to be used as the power in on the 2nd PCB in series as resistors are not needed on the 2nd PCB since they are on the 1st one.</p><p><code>SNG</code>: Single resistor, use this as 5V in if you are using only <strong>1</strong> <code>~700ohm</code> resistor on V3 boards (not recommended).</p><p><code>Negative</code>: This marks the negative side of the LED.</p><p><code>Positive</code>: This marks the positive side of the LED.</p><h2 id="step-18-solder-resistors-on-pcb-v3" tabindex="-1">Step 18: Solder resistors on PCB V3 <a class="header-anchor" href="#step-18-solder-resistors-on-pcb-v3" aria-label="Permalink to &quot;Step 18: Solder resistors on PCB V3&quot;"></a></h2><p>You only need 1 PCB to have resistors per eye.</p><p>Tin the resistor pads. Note: in this example, I use too much solder, it should only be enough to lightly cover the pad.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/gb4etdB.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/gb4etdB.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><p>Next, grab a resistor and hold it on the pads.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/ev5QFch.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/ev5QFch.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><p>While holding the resistor add solder to your soldering iron and apply it to the resistor.</p><p>I like to do this by having a piece of my solder stick up in the air and then put it on my iron that way.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/8jCQOHw.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/8jCQOHw.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><p>Flip the PCB and solder the other end.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/CHUb7Iv.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/CHUb7Iv.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><p>Now repeat for the other one.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/jZYAm5O.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/jZYAm5O.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><h2 id="solder-leds-on-pcb-v3" tabindex="-1">Solder LEDs on PCB V3 <a class="header-anchor" href="#solder-leds-on-pcb-v3" aria-label="Permalink to &quot;Solder LEDs on PCB V3&quot;"></a></h2><p>Tin the LED pads.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/pjvLHJL.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/pjvLHJL.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><p>Orientate the LED and hold it in place.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/RbHZQhl.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/RbHZQhl.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><p>Solder one end.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/VyClWvp.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/VyClWvp.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><p>Flip around and solder the other end.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/tFCQTqE.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/tFCQTqE.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><h2 id="wire-up-the-pcbs-v3" tabindex="-1">Wire up the PCBs V3 <a class="header-anchor" href="#wire-up-the-pcbs-v3" aria-label="Permalink to &quot;Wire up the PCBs V3&quot;"></a></h2><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Pay attention to the direction of the LEDs on the PCBs.</p></div><p>If the green dot is facing inwards toward the text like in the picture below:</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/tFCQTqE.jpeg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/tFCQTqE.jpeg" alt="" style="max-width: 400px;"></a><!----></figure></div><p>Use the following diagram:</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/pqDgpYP.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/pqDgpYP.png" alt="" style="max-width: 500px;"></a><!----></figure></div><p>If the green dot is facing away from the text like the picture below:</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/bEq6Ww0.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/bEq6Ww0.jpg" alt="" style="max-width: 400px;"></a><!----></figure></div><p>Use the following diagram:</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/r2Jo45t.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/r2Jo45t.png" alt="" style="max-width: 400px;"></a><!----></figure></div><h2 id="step-19-3d-print-mounts" tabindex="-1">Step 19: 3D print mounts <a class="header-anchor" href="#step-19-3d-print-mounts" aria-label="Permalink to &quot;Step 19: 3D print mounts&quot;"></a></h2><p>Head to the 3D printed parts section of the parts list <a href="./../how_to_build/parts_list#_3d-printed-mounts">here.</a></p><p>Find which parts are for your headset and print them. Some may work better or worse, it is recommended to test all of them if there are multiple, print one of each kind. If none work, try making an edit yourself if you have the skills. If you have made a mount make sure to ping me, <code>Prohurtz#0001</code>, so I can add them to the list.</p><p>Having trouble getting them to fit? Try resizing the mounts up, or down a little to ensure a good fit.</p><p>There are 2 different types of mounts, how to secure the camera to each type will be documented below.</p><h3 id="type-1" tabindex="-1">Type 1 <a class="header-anchor" href="#type-1" aria-label="Permalink to &quot;Type 1&quot;"></a></h3><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/a6ERUFx.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/a6ERUFx.png" alt="" style="max-width: 500px;"></a><!----></figure></div><p>This uses a method of sliding in the camera. Generally, this is the recommended mounting method as it generally requires no glue.</p><p>Place the camera into the mount</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/Wy89UWy.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/Wy89UWy.jpg" alt="" style="max-width: 500px;"></a><!----></figure></div><p>Slowly apply pressure inwards until the camera snaps into place.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/LtKOLWo.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/LtKOLWo.jpg" alt="" style="max-width: 500px;"></a><!----></figure></div><div align="center"><div class="my-2 max-w-xs rounded-lg bg-white px-4 py-4 shadow-xl ring-1 ring-slate-900/5 dark:bg-slate-800"><div><span class="drop-shadow-lg"><span class="VPBadge info" data-v-4415f8bd><!--[-->NOTE<!--]--></span></span></div><div class="text-[blue] mt-2 pl-1 text-2xl font-bold tracking-tight text-slate-900"></div><p class="text-slate-500 dark:text-slate-400 mt-2 pl-1 text-sm"><!--[--><p> There is a good chance of breaking the mount when putting in the camera. If this happens you may be able to save the mount depending on where the break was. A small dab of hot glue around the camera is likely all that is needed. </p><!--]--></p></div></div><h3 id="type-2" tabindex="-1">Type 2 <a class="header-anchor" href="#type-2" aria-label="Permalink to &quot;Type 2&quot;"></a></h3><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/9mty1bv.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/9mty1bv.png" alt="" style="max-width: 500px;"></a><!----></figure></div><p>This method involves gluing the camera in place.</p><p>Apply a bit of glue to the bottom of the camera mount.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/ArLO1ls.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/ArLO1ls.jpg" alt="" style="max-width: 500px;"></a><!----></figure></div><p>Place the camera on the mount.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/ZIecsMM.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/ZIecsMM.jpg" alt="" style="max-width: 500px;"></a><!----></figure></div><h2 id="ir-led-mounting" tabindex="-1">IR LED mounting <a class="header-anchor" href="#ir-led-mounting" aria-label="Permalink to &quot;IR LED mounting&quot;"></a></h2><p>This again differs from mount to mount.</p><p>In some cases, there are designated spots for the LEDs to go.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/tYD1KKe.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/tYD1KKe.png" alt="" style="max-width: 500px;"></a><!----></figure></div><p>In others there are no specified spots, you will have to mess around to find what works best. This image shows the optimal/near-optimal position for the LEDs. Hot glue is your friend with this.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/3rCRU5A.jpg"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/3rCRU5A.jpg" alt="" style="max-width: 500px;"></a><!----></figure></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>Use rubbing alcohol to easily remove hot glue.</p></div></div></div></main><footer class="VPDocFooter" data-v-281cfc61 data-v-67de71aa><!--[--><!--]--><div class="edit-info" data-v-67de71aa><!----><div class="last-updated" data-v-67de71aa><p class="VPLastUpdated" data-v-67de71aa data-v-5be60f87>Last updated: <time datetime="2024-10-06T18:41:03.000Z" data-v-5be60f87></time></p></div></div><nav class="prev-next" data-v-67de71aa><div class="pager" data-v-67de71aa><a class="pager-link prev" href="/archive/fox_ir_v2_build_instructions" data-v-67de71aa><span class="desc" data-v-67de71aa>Previous page</span><span class="title" data-v-67de71aa>Prepare to solder IR LED PCB V2's</span></a></div><div class="pager" data-v-67de71aa><a class="pager-link next" href="/how_to_build/parts_list" data-v-67de71aa><span class="desc" data-v-67de71aa>Next page</span><span class="title" data-v-67de71aa>Part List (legacy)</span></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-527a0310 data-v-04a39284><div class="container" data-v-04a39284><p class="message" data-v-04a39284>Released under the MIT License.</p><p class="copyright" data-v-04a39284>Copyright © 2022-present ETVR</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"how_to_build_3d_printed_mounts.md\":\"5d2aa5cb\",\"getting_started_intro.md\":\"5e08361f\",\"how_to_build_creating_your_own_mount.md\":\"70ac1088\",\"firmware_guide_upload_and_update_firmware.md\":\"0806ea0f\",\"getting_started_things_to_know.md\":\"d09a6393\",\"headset_guides_what_is_this.md\":\"60052a7d\",\"how_to_build_led_setup.md\":\"6d99addb\",\"firmware_guide_rest_api.md\":\"8a0ea54a\",\"how_to_build_full_build.md\":\"f324b1f6\",\"index.md\":\"b1e77ab7\",\"archive_fox_ir_v2_build_instructions.md\":\"ebf3c880\",\"firmware_guide_environments.md\":\"6b0604e7\",\"headset_guides_valve_index.md\":\"891da17f\",\"development_docs_standards.md\":\"f9558435\",\"how_to_build_part_list.md\":\"3640f4dd\",\"firmware_guide_update_platformio.md\":\"d52a99e0\",\"misc_jlc3dp.md\":\"5e8875c4\",\"development_docs_dev_docs.md\":\"b7b0d76e\",\"firmware_guide_firmware.md\":\"6c8e1ae6\",\"firmware_guide_setup_vscode.md\":\"fefbbc55\",\"contact.md\":\"034a53d4\",\"firmware_guide_configure_firmware.md\":\"4eb536cf\",\"firmware_guide_mdns.md\":\"8a95e855\",\"getting_started_led_safety.md\":\"8b15f1c0\",\"misc_vrc_avatar_setup.md\":\"2d1bc492\",\"software_guide_build_software.md\":\"b0d1c681\",\"software_guide_vrcft_tracking_module.md\":\"d148b9dc\",\"misc_faq.md\":\"8d641c6c\",\"dev_roadmap.md\":\"2f96c918\",\"software_guide_osc_setup.md\":\"af1d1fce\",\"firmware_guide_flashing_tool.md\":\"c180a2ca\",\"about.md\":\"7e64af19\",\"how_to_build_preparing_xiao.md\":\"fcacda59\",\"how_to_build_preparing_cameras.md\":\"0a4aab5a\",\"development_docs_pages.md\":\"85e22694\",\"how_to_build_parts_list.md\":\"d57cd54a\",\"software_guide_eyetrackvr_app_guide.md\":\"dce4a9fb\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"EyeTrackVR Docs\",\"description\":\"Official documentation for EyeTrackVR. Fully open-source and affordable VR eye tracking platform.\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":{\"light\":\"/logo_light.png\",\"dark\":\"/logo.svg\",\"alt\":\"EyeTrackVR Logo\"},\"siteTitle\":\"EyeTrackVR Docs\",\"search\":{\"provider\":\"local\"},\"outline\":\"deep\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2022-present ETVR\"},\"nav\":[{\"text\":\"About\",\"items\":[{\"text\":\"About Us\",\"link\":\"/about\"},{\"text\":\"Development Road Map\",\"link\":\"/dev_roadmap\"}]},{\"text\":\"Contact\",\"link\":\"/contact\"}],\"sidebar\":[{\"text\":\"Getting Started\",\"collapsible\":true,\"items\":[{\"text\":\"Introduction\",\"link\":\"/getting_started/intro\"},{\"text\":\"Things to know before you start\",\"link\":\"/getting_started/things_to_know\"},{\"text\":\"LED Safety\",\"link\":\"/getting_started/led_safety\"}]},{\"text\":\"How to Build\",\"collapsible\":true,\"items\":[{\"text\":\"Parts List\",\"link\":\"/how_to_build/part_list\"},{\"text\":\"Preparing Cameras\",\"link\":\"/how_to_build/preparing_cameras\"},{\"text\":\"Preparing XIAO Sense ESP32\",\"link\":\"/how_to_build/preparing_xiao\"},{\"text\":\"Preparing V4 LEDs\",\"link\":\"/how_to_build/led_setup\"},{\"text\":\"3D Printed Mounts\",\"link\":\"/how_to_build/3d_printed_mounts\"},{\"text\":\"How to Create your own Camera Mount\",\"link\":\"/how_to_build/creating_your_own_mount\"}]},{\"text\":\"Headset Guides\",\"collapsible\":true,\"items\":[{\"text\":\"What is This?\",\"link\":\"/headset_guides/what_is_this.md\"},{\"text\":\"Valve Index\",\"link\":\"/headset_guides/valve_index.md\"}]},{\"text\":\"Firmware Guide\",\"collapsible\":true,\"items\":[{\"text\":\"Introduction\",\"link\":\"/firmware_guide/firmware\"},{\"text\":\"Flashing Tool\",\"link\":\"/firmware_guide/flashing_tool.md\"},{\"text\":\"MDNS\",\"link\":\"/firmware_guide/mdns\"},{\"text\":\"REST API\",\"link\":\"/firmware_guide/rest_api\"}]},{\"text\":\"Software Guide\",\"collapsible\":true,\"items\":[{\"text\":\"Installing and setting up the ETVR App\",\"link\":\"/software_guide/eyetrackvr_app_guide\"},{\"text\":\"Building the app from source\",\"link\":\"/software_guide/build_software\"},{\"text\":\"Setting up OSC recenter/recalibrate\",\"link\":\"/software_guide/osc_setup\"},{\"text\":\"Setting up VRCFT - VRCFT Module\",\"link\":\"/software_guide/VRCFT_tracking_module\"}]},{\"text\":\"Miscellaneous\",\"collapsible\":true,\"items\":[{\"text\":\"JLC3DP 3D Printing Service\",\"link\":\"/misc/jlc3dp\"},{\"text\":\"VR Chat Avatar Setup\",\"link\":\"/misc/vrc_avatar_setup\"},{\"text\":\"FAQ\",\"link\":\"/misc/faq\"}]},{\"text\":\"Development\",\"collapsible\":true,\"items\":[{\"text\":\"Docs\",\"link\":\"/development/docs/dev_docs\"},{\"text\":\"Edit Docs\",\"link\":\"/development/docs/pages\"},{\"text\":\"Standards\",\"link\":\"/development/docs/standards\"}]},{\"text\":\"Archive\",\"collapsible\":true,\"items\":[{\"text\":\"Setup Visual Studio Code environment\",\"link\":\"/firmware_guide/setup_vscode\"},{\"text\":\"Configuring Firmware\",\"link\":\"/firmware_guide/configure_firmware\"},{\"text\":\"Firmware Environments\",\"link\":\"/firmware_guide/environments\"},{\"text\":\"Uploading and Updating the Firmware\",\"link\":\"/firmware_guide/upload_and_update_firmware\"},{\"text\":\"Updating PlatformIO\",\"link\":\"/firmware_guide/update_platformio\"},{\"text\":\"Prepare to solder IR LED PCB V2's\",\"link\":\"/archive/fox_ir_v2_build_instructions\"},{\"text\":\"V3 Full Build Guide\",\"link\":\"/how_to_build/full_build\"},{\"text\":\"Part List (legacy)\",\"link\":\"/how_to_build/parts_list\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/EyeTrackVR\"},{\"icon\":\"discord\",\"link\":\"https://discord.gg/kkXYbVykZX\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":true}");</script>
</body>
</html>