EyeTrackVR-Docs/firmware_guide/environments.html

22 lines
37 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>Firmware Environments | 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.45f5666c.css" as="style">
<script type="module" src="/assets/app.918b19fe.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.de5c44cb.js">
<link rel="modulepreload" href="/assets/chunks/theme.60247e71.js">
<link rel="modulepreload" href="/assets/firmware_guide_environments.md.77be1b53.lean.js">
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-bd8710d4><!--[--><!--]--><!--[--><span tabindex="-1" data-v-994b33bc></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-994b33bc> Skip to content </a><!--]--><!----><header class="VPNav" data-v-bd8710d4 data-v-b1949460><div class="VPNavBar has-sidebar" data-v-b1949460 data-v-884e8224><div class="container" data-v-884e8224><div class="title" data-v-884e8224><div class="VPNavBarTitle has-sidebar" data-v-884e8224 data-v-2f5df328><a class="title" href="/" data-v-2f5df328><!--[--><!--]--><!--[--><!--[--><!--[--><img class="VPImage dark logo" src="/logo.svg" alt="EyeTrackVR Logo" data-v-74766fef><!--]--><!--[--><img class="VPImage light logo" src="/logo_light.png" alt="EyeTrackVR Logo" data-v-74766fef><!--]--><!--]--><!--]--><!--[-->EyeTrackVR Docs<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-884e8224><div class="curtain" data-v-884e8224></div><div class="content-body" data-v-884e8224><!--[--><!--]--><div class="VPNavBarSearch search" data-v-884e8224><!----><div id="docsearch"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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"><span class="DocSearch-Button-Key">Meta</span><span class="DocSearch-Button-Key">K</span></span></button></div></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-884e8224 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-64c29883><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-64c29883><span class="text" data-v-64c29883><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-64c29883><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-64c29883><div class="VPMenu" data-v-64c29883 data-v-7bffa9cd><div class="items" data-v-7bffa9cd><!--[--><!--[--><div class="VPMenuLink" data-v-7bffa9cd data-v-be8d031a><a class="VPLink link" href="/about" data-v-be8d031a data-v-87683ad2><!--[-->About Us<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-7bffa9cd data-v-be8d031a><a class="VPLink link" href="/dev_roadmap" data-v-be8d031a data-v-87683ad2><!--[-->Development Road Map<!--]--><!----></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/contact" tabindex="0" data-v-c6c3e6d4 data-v-f652bfb4 data-v-87683ad2><!--[-->Contact<!--]--><!----></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-884e8224 data-v-88042fc7><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-88042fc7 data-v-019e2ece data-v-0a2eba70><span class="check" data-v-0a2eba70><span class="icon" data-v-0a2eba70><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-019e2ece><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-019e2ece><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-884e8224 data-v-08b35e6f data-v-ffd34ab1><!--[--><a class="VPSocialLink" href="https://github.com/RedHawk989/EyeTrackVR" aria-label="github" target="_blank" rel="noopener" data-v-ffd34ab1 data-v-ca994af5><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" href="https://discord.gg/kkXYbVykZX" aria-label="discord" target="_blank" rel="noopener" data-v-ffd34ab1 data-v-ca994af5><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-884e8224 data-v-47bb42ad data-v-64c29883><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-64c29883><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-64c29883><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-64c29883><div class="VPMenu" data-v-64c29883 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-019e2ece data-v-0a2eba70><span class="check" data-v-0a2eba70><span class="icon" data-v-0a2eba70><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-019e2ece><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-019e2ece><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-ffd34ab1><!--[--><a class="VPSocialLink" href="https://github.com/RedHawk989/EyeTrackVR" aria-label="github" target="_blank" rel="noopener" data-v-ffd34ab1 data-v-ca994af5><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" href="https://discord.gg/kkXYbVykZX" aria-label="discord" target="_blank" rel="noopener" data-v-ffd34ab1 data-v-ca994af5><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-884e8224 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" data-v-bd8710d4 data-v-9a33564b><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-9a33564b><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-9a33564b><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-9a33564b>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-9a33564b data-v-07aca99e><button data-v-07aca99e>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-bd8710d4 data-v-a2c0de1b><div class="curtain" data-v-a2c0de1b></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-a2c0de1b><span class="visually-hidden" id="sidebar-aria-label" data-v-a2c0de1b> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Getting Started</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/getting_started/intro" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Introduction</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/getting_started/things_to_know" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Things to know before you start</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>How to Build</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/how_to_build/full_build" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Full Build Guide</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/how_to_build/parts_list" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Part List</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/how_to_build/creating_your_own_mount" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>How to Create your own Camera Mount</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0 has-active" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Firmware Guide</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/firmware" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Introduction</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/setup_vscode" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Setup Visual Studio Code environment</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/configure_firmware" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Configuring Firmware</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/upload_and_update_firmware" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Uploading and Updating the Firmware</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/update_platformio" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Updating PlatformIO</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/environments" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Firmware Environments</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/mdns" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>MDNS</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/rest_api" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>REST API</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Software Guide</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/software_guide/eyetrackvr_app_guide" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Installing and setting up the ETVR App</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/software_guide/build_software" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Building the app from source</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/software_guide/osc_setup" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Setting up OSC recenter/recalibrate</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Miscellaneous</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/misc/vrc_avatar_setup" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>VR Chat Avatar Setup</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/misc/faq" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>FAQ</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Development</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/development/docs/dev_docs" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Docs</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/development/docs/pages" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Edit Docs</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/development/docs/standards" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Standards</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Archive</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/archive/fox_ir_v2_build_instructions" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Prepare to solder IR LED PCB V2's</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-bd8710d4 data-v-7f38fbbe><div class="VPDoc has-sidebar has-aside" data-v-7f38fbbe data-v-5aafa2ac><!--[--><!--]--><div class="container" data-v-5aafa2ac><div class="aside" data-v-5aafa2ac><div class="aside-curtain" data-v-5aafa2ac></div><div class="aside-container" data-v-5aafa2ac><div class="aside-content" data-v-5aafa2ac><div class="VPDocAside" data-v-5aafa2ac data-v-79cae1a0><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-79cae1a0 data-v-c3ff47cc><div class="content" data-v-c3ff47cc><div class="outline-marker" data-v-c3ff47cc></div><div class="outline-title" data-v-c3ff47cc>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-c3ff47cc><span class="visually-hidden" id="doc-outline-aria-label" data-v-c3ff47cc> Table of Contents for current page </span><ul class="root" data-v-c3ff47cc data-v-efc119ee><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-79cae1a0></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-5aafa2ac><div class="content-container" data-v-5aafa2ac><!--[--><!--]--><!----><main class="main" data-v-5aafa2ac><div style="position:relative;" class="vp-doc _firmware_guide_environments" data-v-5aafa2ac><div><h1 class="text-[var(--font-accent)]" id="firmware-environments" tabindex="-1">Firmware Environments <a class="header-anchor" href="#firmware-environments" aria-label="Permalink to &quot;Firmware Environments {.text-[var(--font-accent)]}&quot;"></a></h1><h2 id="what-is-it" tabindex="-1">What is it? <a class="header-anchor" href="#what-is-it" aria-label="Permalink to &quot;What is it?&quot;"></a></h2><p>A firmware environment is a way to store the custom firmware config for a specific device. This is useful if you want to have multiple devices with different firmware configs.</p><p>We use environments to store the firmware config for each device, so that you can easily switch between them.</p><p>Environments are broken up into two distinct parts:</p><ul><li>The <code>build type</code> (e.g. <code>debug</code>, <code>release</code>)</li><li>The <code>board type</code> (e.g. <code>espaithinker</code>, <code>esp32cam</code>)</li></ul><h2 id="build-types" tabindex="-1">Build Types <a class="header-anchor" href="#build-types" aria-label="Permalink to &quot;Build Types&quot;"></a></h2><p>We now have a couple of options letting us decide how we want to build the firmaware.</p><ul><li><code>Debug</code> - Has a lot of logging, useful for getting everything setup for the first time and to see what is going on.</li></ul><p>The debug environment is the default environment, so you don&#39;t need to specify it when building.</p><p>All debug environments are the default board environments, only <code>OTA</code> and <code>release</code> are specified in the name.</p><div class="tip custom-block"><p class="custom-block-title">Tip</p><p>We recommend starting with a debug environment, and then switching to release once everything is working.</p></div><ul><li><p><code>Release</code> - Has a lot less debugging, may also be missing some things availible only in debug for debug purposes, this should be flashed when everything is working.</p></li><li><p><code>OTA</code> - Just like release, but it will upload your firmware to your esp wirelessly.</p></li></ul><div class="warning custom-block"><p class="custom-block-title">Warning</p><p>You need to change the IP to which board we should upload to, the setting is called the <code>otaserverip</code> and can be found in the <code>user_config.ini</code> file.</p><p>The <code>otaserverip</code> setting supports both <code>IPv4</code> and <code>mDNS</code> names, as long as the <code>mDNS</code> name is resolvable on your network (i.e: you have bonjour installed on your computer).</p><p>You can also change the port and password, but it&#39;s not recommended.</p></div><h2 id="board-types" tabindex="-1">Board Types <a class="header-anchor" href="#board-types" aria-label="Permalink to &quot;Board Types&quot;"></a></h2><p>We currently support a few different boards, and we are working on adding more.</p><div class="warning custom-block"><p class="custom-block-title">Warning</p><p>It is important to note that the <code>esp32AIThinker</code> environment is the default environment, and will work for the vast majority of users. Do not switch your environment unless you know what you are doing, and have tested the default environment first, and verified that it does not work for you.</p><p>Most esp32Cams from Aliexpress will work with the <code>esp32AIThinker</code> environment, but some may require the <code>esp32cam</code> environment. Test the default environment first, and if it does not work, try the <code>esp32cam</code> environment.</p></div><p>Currently supported boards:</p><ul><li><code>esp32AIThinker</code> - The ESP32 Ai Thinker.</li><li><code>esp32cam</code> - The ESP32 Camera.</li><li><code>esp_eye</code> - The Non-Esp32S3 version of the ESP-EYE camera.</li><li><code>esp32M5Stack</code> - The ESP32 M5Stack camera.</li><li><code>wrover</code> - The ESP32 WRover (Non-ESP32-S3 variant).</li></ul><div class="tip custom-block"><p class="custom-block-title">Coming Soon</p><ul><li><code>esp32s3cam</code> - The ESP32-S3 Camera boards.</li></ul></div></div></div></main><footer class="VPDocFooter" data-v-5aafa2ac data-v-31cb5067><!--[--><!--]--><div class="edit-info" data-v-31cb5067><!----><div class="last-updated" data-v-31cb5067><p class="VPLastUpdated" data-v-31cb5067 data-v-f00606ba>Last updated: <time datetime="2023-03-09T22:54:53.000Z" data-v-f00606ba></time></p></div></div><div class="prev-next" data-v-31cb5067><div class="pager" data-v-31cb5067><a class="pager-link prev" href="/firmware_guide/update_platformio" data-v-31cb5067><span class="desc" data-v-31cb5067>Previous page</span><span class="title" data-v-31cb5067>Updating PlatformIO</span></a></div><div class="has-prev pager" data-v-31cb5067><a class="pager-link next" href="/firmware_guide/mdns" data-v-31cb5067><span class="desc" data-v-31cb5067>Next page</span><span class="title" data-v-31cb5067>MDNS</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-bd8710d4 data-v-2425ede7><div class="container" data-v-2425ede7><p class="message" data-v-2425ede7>Released under the MIT License.</p><p class="copyright" data-v-2425ede7>Copyright © 2022-present ETVR</p></div></footer><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"firmware_guide_firmware.md\":\"00e46b69\",\"dev_roadmap.md\":\"bc160f14\",\"development_docs_dev_docs.md\":\"e4314c28\",\"development_docs_standards.md\":\"a6760ac5\",\"firmware_guide_configure_firmware.md\":\"0c180b5d\",\"firmware_guide_environments.md\":\"77be1b53\",\"archive_fox_ir_v2_build_instructions.md\":\"0c97927f\",\"contact.md\":\"07392400\",\"development_docs_pages.md\":\"540b7171\",\"about.md\":\"3b7388b7\",\"firmware_guide_mdns.md\":\"6cca74be\",\"firmware_guide_setup_vscode.md\":\"195cd80d\",\"index.md\":\"a5adffe2\",\"software_guide_build_software.md\":\"48b2228b\",\"misc_vrc_avatar_setup.md\":\"1b3fc64a\",\"firmware_guide_upload_and_update_firmware.md\":\"06510429\",\"getting_started_intro.md\":\"3a1e5a1f\",\"getting_started_things_to_know.md\":\"b737c8ce\",\"how_to_build_parts_list.md\":\"366b8fd3\",\"misc_faq.md\":\"6e89ee87\",\"firmware_guide_rest_api.md\":\"42530742\",\"firmware_guide_update_platformio.md\":\"bafebbd6\",\"how_to_build_creating_your_own_mount.md\":\"90cedbf5\",\"how_to_build_full_build.md\":\"1fe3cbde\",\"software_guide_eyetrackvr_app_guide.md\":\"4d2e1fb9\",\"software_guide_osc_setup.md\":\"424f7d96\"}")
__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\",\"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\":\"How to Build\",\"collapsible\":true,\"items\":[{\"text\":\"Full Build Guide\",\"link\":\"/how_to_build/full_build\"},{\"text\":\"Part List\",\"link\":\"/how_to_build/parts_list\"},{\"text\":\"How to Create your own Camera Mount\",\"link\":\"/how_to_build/creating_your_own_mount\"}]},{\"text\":\"Firmware Guide\",\"collapsible\":true,\"items\":[{\"text\":\"Introduction\",\"link\":\"/firmware_guide/firmware\"},{\"text\":\"Setup Visual Studio Code environment\",\"link\":\"/firmware_guide/setup_vscode\"},{\"text\":\"Configuring Firmware\",\"link\":\"/firmware_guide/configure_firmware\"},{\"text\":\"Uploading and Updating the Firmware\",\"link\":\"/firmware_guide/upload_and_update_firmware\"},{\"text\":\"Updating PlatformIO\",\"link\":\"/firmware_guide/update_platformio\"},{\"text\":\"Firmware Environments\",\"link\":\"/firmware_guide/environments\"},{\"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\":\"Miscellaneous\",\"collapsible\":true,\"items\":[{\"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\":\"Prepare to solder IR LED PCB V2's\",\"link\":\"/archive/fox_ir_v2_build_instructions\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/RedHawk989/EyeTrackVR\"},{\"icon\":\"discord\",\"link\":\"https://discord.gg/kkXYbVykZX\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":true}")</script>
</body>
</html>