import{_ as f,o as r,c as o,k as t,F as m,B as p,t as l,e as w,a as u,E as k,O as g}from"./chunks/framework.79850ceb.js";const y={data(){return{tracker:2,components:[{name:"ESP Microcontroller",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:1.85,costAll:()=>this.tracker*0,links:"If you already have a supported camera capable ESP32 or sourced elsewhere."},{name:"Seeed Studio XIAO Sense ESP32-S3",amount:()=>this.tracker,cost:12.87,costAll:()=>this.tracker*12.87+3.18,links:'AliExpress XIAO Sense Recommended'},{name:"ESP32-CAM",amount:()=>this.tracker,cost:12.87,costAll:()=>this.tracker*4.69+3.18,links:'AliExpress ESP32 CAM Requires additional programmer'},{name:"FREENOVE ESP32-S3-WROOM",amount:()=>this.tracker,cost:19.95,costAll:()=>this.tracker*19.95,links:'Amazon Large, more expensive than XIAO'}],selectedChoice:1,isOpen:!1},{name:"Camera",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you already have a supported camera or sourced elsewhere."},{name:"130 Degree NO-IR",amount:()=>this.tracker,cost:5.41,costAll:()=>this.tracker*5.41,links:'AliExpress Select "Color: 75MM-130 Degree" Must manually remove IR filter'},{name:"160 Degree IR",amount:()=>this.tracker,cost:4.26,costAll:()=>this.tracker*4.26,links:'AliExpress Select "Color: 75MM-160 850nm"'}],selectedChoice:1,isOpen:!1},{name:"IR LEDs",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:'IR LED Safety If you already have safe IR LED hardware and know what you are doing.'},{name:"Official V4 mini No-Solder",amount:()=>1,cost:30,costAll:()=>this.tracker+30+5,links:'ETVR Store Length depending on HMD'},{name:"Official V4 mini Solder-Required",amount:()=>1,cost:25,costAll:()=>this.tracker+25+3,links:'ETVR Store Must solder up your own wires'},{name:"Official V4 lite Assemble Yourself",amount:()=>1,cost:7,costAll:()=>this.tracker+7+3,links:'ETVR Store Must assemble yourself'}],selectedChoice:1,isOpen:!1},{name:"USB Hub",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you already have safe IR LED hardware and know what you are doing."},{name:"4 port USB 3.2 LDLrui (MTT Usually)",amount:()=>1,cost:17.99,costAll:()=>this.tracker+17.99,links:'Amazon Usually these are MTT, but sometimes not'},{name:"4 port USB 3.2 Sitecom CN-385 Hub (MTT)",amount:()=>1,cost:40.53,costAll:()=>this.tracker+17.99,links:'Amazon Known good MTT hub, but expensive'},{name:"4 port USB 2.0 Breakout (Not MTT)",amount:()=>1,cost:1.41,costAll:()=>this.tracker+1.41+1.99,links:'AliExpress Small but non MTT hub breakout'},{name:"3 port USB 3.0 Hub With Power Passthrough (MTT)",amount:()=>1,cost:17.99,costAll:()=>this.tracker+1.41,links:'Amazon Great for Quest due to power passthrough'}],selectedChoice:1,isOpen:!1},{name:"3D Printed Mounts",choices:[{name:"Print Yourself",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you have a 3d printer or have access to one somewhere."},{name:"JLCPCB Print Service, JLC3DP",amount:()=>this.tracker,cost:2,costAll:()=>this.tracker*2+5,links:'JLC3DP '}],selectedChoice:0,isOpen:!1}],total:0}},methods:{updatePrices(){let s=0;this.components.forEach(a=>{if(a.choices.length>1){const i=a.choices[a.selectedChoice];s+=i.costAll(this.tracker)}else a.choices.length===1&&(s+=a.choices[0].costAll(this.tracker))}),this.total=s},toggleDropdown(s){this.components.forEach(a=>{a!==s&&(a.isOpen=!1)}),s.isOpen=!s.isOpen},isOptionsAbove(s){if(this.$refs[`select-${s.name}`]){const a=this.$refs[`select-${s.name}`].getBoundingClientRect();return window.innerHeight-a.bottom<200&&a.top>200}return!1},selectOption(s,a){s.selectedChoice=a,s.isOpen=!1,this.updatePrices()},closeAllDropdowns(){this.components.forEach(s=>{s.isOpen=!1})},handleOutsideClick(s){s.target.closest(".custom-select")||this.closeAllDropdowns()}},mounted(){this.updatePrices(),document.addEventListener("click",this.handleOutsideClick)},beforeUnmount(){document.removeEventListener("click",this.handleOutsideClick)}},b={class:"table-container"},S={class:"component-col"},_={class:"choice-col"},v=["onClick"],E={class:"selected-option"},O={key:0,class:"options"},x=["onClick"],B={key:1},P=["innerHTML"];function T(s,a,i,A,n,c){return r(),o("div",b,[t("table",null,[a[0]||(a[0]=t("thead",null,[t("tr",null,[t("th",{class:"component-col"},"Component"),t("th",{class:"choice-col"},"Choice"),t("th",{class:"amount-col"},"Amount"),t("th",{class:"cost-col"},"Cost"),t("th",{class:"cost-all-col"},"Cost All"),t("th",{class:"links-col"},"Links")])],-1)),t("tbody",null,[(r(!0),o(m,null,p(n.components,e=>(r(),o("tr",{key:e.name},[t("th",S,l(e.name),1),t("td",_,[e.choices.length>1?(r(),o("div",{key:0,class:"custom-select",onClick:h=>c.toggleDropdown(e)},[t("div",E,l(e.choices[e.selectedChoice].name),1),e.isOpen?(r(),o("div",O,[(r(!0),o(m,null,p(e.choices,(h,d)=>(r(),o("div",{key:d,onClick:C=>c.selectOption(e,d),class:"option"},l(h.name),9,x))),128))])):w("",!0)],8,v)):(r(),o("span",B,l(e.choices[0].name),1))]),t("td",null,l(e.selectedChoice?e.choices[e.selectedChoice].amount(n.tracker):0),1),t("td",null,l(e.selectedChoice?"$"+e.choices[e.selectedChoice].cost.toFixed(2):0),1),t("td",null,l(e.selectedChoice?"~$"+e.choices[e.selectedChoice].costAll().toFixed(2):0),1),t("td",{innerHTML:e.selectedChoice?e.choices[e.selectedChoice].links:""},null,8,P)]))),128))])]),t("p",null,"Total: $"+l(n.total.toFixed(2)),1)])}const D=f(y,[["render",T],["__scopeId","data-v-ff07ae5d"]]);const R={data(){return{tracker:2,components:[{name:"Type A USB Breakout",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:1.85,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"Type A USB Breakout Bare (AliExpress)",amount:()=>1,cost:1.18,costAll:()=>this.tracker+1.18,links:'AliExpress'},{name:"Type A USB Breakout Bare (Amazon)",amount:()=>1,cost:6.49,costAll:()=>this.tracker+5.49,links:'Amazon'},{name:"Type A USB Breakout With Cover (AliExpress)",amount:()=>1,cost:2.2,costAll:()=>this.tracker+1.2+1.99,links:'AliExpress'},{name:"Type A USB Breakout With Wire and Cover (Amazon)",amount:()=>1,cost:9.6,costAll:()=>this.tracker+8.6,links:'Amazon'}],selectedChoice:0,isOpen:!1},{name:"USB-C Breakout",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"AliExpress Male & Female",amount:()=>1,cost:1.19,costAll:()=>this.tracker+1.19+1.37,links:'AliExpress Choose: "Color: 5Set".'},{name:"AliExpress Vertical Male",amount:()=>1,cost:2.37,costAll:()=>this.tracker+.37+1.99,links:'AliExpress'}],selectedChoice:0,isOpen:!1},{name:"Wire for ESPs",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need wire or already have."},{name:"Silicone Wire Kit",amount:()=>1,cost:5.96,costAll:()=>this.tracker+5.96+.99,links:'AliExpress 30 AWG or lower'},{name:"Generic Wire",amount:()=>1,cost:.7,costAll:()=>this.tracker+.7+1.24,links:'AliExpress Select "Specification: 30 AWG or lower"'}],selectedChoice:0,isOpen:!1},{name:"Wire for LEDs",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need wire or already have."},{name:"Silicone Wire Kit",amount:()=>1,cost:5.96,costAll:()=>this.tracker+5.96+.99,links:'AliExpress 30 AWG or higher'},{name:"Generic Wire",amount:()=>1,cost:.7,costAll:()=>this.tracker+.7+1.24,links:'AliExpress Select "Specification: 30 AWG or higher"'}],selectedChoice:0,isOpen:!1},{name:"Camera Extension Cables",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"AliExpress 24pin 0.5mm Pitch",amount:()=>1,cost:1.33,costAll:()=>this.tracker+.33+1.99,links:'AliExpress Choose: "Insert Type: 24p 0.5mm pitch" and Type A. Length depends on HMD, usually 150mm or 200mm.'},{name:"Adafruit 24 pin 0.5mm pitch",amount:()=>this.tracker,cost:1.35,costAll:()=>this.tracker*1.35+6,links:'Adafruit 250mm'}],selectedChoice:0,isOpen:!1},{name:"Camera Extension Connectors",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"AliExpress 24 pin",amount:()=>1,cost:1.32,costAll:()=>this.tracker+.32+1.99,links:'AliExpress Choose: "Pins: 24P".'},{name:"Adafruit 24 pin",amount:()=>this.tracker,cost:.86,costAll:()=>this.tracker*.865+6,links:'Adafruit'}],selectedChoice:0,isOpen:!1},{name:"External Antennas",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"AliExpress Small",amount:()=>1,cost:.16,costAll:()=>this.tracker*.16+3.48,links:'AliExpress Choose: "Color: 2.4G Antenna".'},{name:"Amazon Large",amount:()=>1,cost:9.99,costAll:()=>this.tracker+7.99,links:'Amazon'}],selectedChoice:0,isOpen:!1},{name:"USB-C Cables",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"Short USB-C to USB-C Amazon",amount:()=>1,cost:6.29,costAll:()=>this.tracker+5.29,links:'Amazon'},{name:"Short USB-A to USB-C Amazon",amount:()=>1,cost:7.99,costAll:()=>this.tracker+5.99,links:'Amazon'}],selectedChoice:0,isOpen:!1},{name:"V4 LED Wire Extensions/Replacements",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"110mm Extension/Replacement",amount:()=>1,cost:1.5,costAll:()=>this.tracker+1.5+5,links:'ETVR Store'},{name:"200mm Extension/Replacement",amount:()=>1,cost:1.5,costAll:()=>this.tracker+1.5+5,links:'ETVR Store'}],selectedChoice:0,isOpen:!1}],total:0}},methods:{updatePrices(){let s=0;this.components.forEach(a=>{if(a.choices.length>1){const i=a.choices[a.selectedChoice];s+=i.costAll(this.tracker)}else a.choices.length===1&&(s+=a.choices[0].costAll(this.tracker))}),this.total=s},toggleDropdown(s){this.components.forEach(a=>{a!==s&&(a.isOpen=!1)}),s.isOpen=!s.isOpen},isOptionsAbove(s){if(this.$refs[`select-${s.name}`]){const a=this.$refs[`select-${s.name}`].getBoundingClientRect();return window.innerHeight-a.bottom<200&&a.top>200}return!1},selectOption(s,a){s.selectedChoice=a,s.isOpen=!1,this.updatePrices()},closeAllDropdowns(){this.components.forEach(s=>{s.isOpen=!1})},handleOutsideClick(s){s.target.closest(".custom-select")||this.closeAllDropdowns()}},mounted(){this.updatePrices(),document.addEventListener("click",this.handleOutsideClick)},beforeUnmount(){document.removeEventListener("click",this.handleOutsideClick)}},M={class:"table-container"},W={class:"component-col"},I={class:"choice-col"},L=["onClick"],z={class:"selected-option"},U={key:0,class:"options"},$=["onClick"],V={key:1},q=["innerHTML"];function F(s,a,i,A,n,c){return r(),o("div",M,[t("table",null,[a[0]||(a[0]=t("thead",null,[t("tr",null,[t("th",{class:"component-col"},"Component"),t("th",{class:"choice-col"},"Choice"),t("th",{class:"amount-col"},"Amount"),t("th",{class:"cost-col"},"Cost"),t("th",{class:"cost-all-col"},"Cost All"),t("th",{class:"links-col"},"Links")])],-1)),t("tbody",null,[(r(!0),o(m,null,p(n.components,e=>(r(),o("tr",{key:e.name},[t("th",W,l(e.name),1),t("td",I,[e.choices.length>1?(r(),o("div",{key:0,class:"custom-select",onClick:h=>c.toggleDropdown(e)},[t("div",z,l(e.choices[e.selectedChoice].name),1),e.isOpen?(r(),o("div",U,[(r(!0),o(m,null,p(e.choices,(h,d)=>(r(),o("div",{key:d,onClick:C=>c.selectOption(e,d),class:"option"},l(h.name),9,$))),128))])):w("",!0)],8,L)):(r(),o("span",V,l(e.choices[0].name),1))]),t("td",null,l(e.selectedChoice?e.choices[e.selectedChoice].amount(n.tracker):0),1),t("td",null,l(e.selectedChoice?"$"+e.choices[e.selectedChoice].cost.toFixed(2):0),1),t("td",null,l(e.selectedChoice?"~$"+e.choices[e.selectedChoice].costAll().toFixed(2):0),1),t("td",{innerHTML:e.selectedChoice?e.choices[e.selectedChoice].links:""},null,8,q)]))),128))])]),t("p",null,"Total: $"+l(n.total.toFixed(2)),1)])}const N=f(R,[["render",F],["__scopeId","data-v-3f9fd8fa"]]),G=JSON.parse('{"title":"Required Parts:","description":"","frontmatter":{},"headers":[],"relativePath":"how_to_build/part_list.md","filePath":"how_to_build/part_list.md","lastUpdated":1719882555000}'),H={name:"how_to_build/part_list.md"},J=Object.assign(H,{setup(s){return(a,i)=>(r(),o("div",null,[i[0]||(i[0]=t("p",null,"WIP new parts list. 3D printed parts will live on their own page.",-1)),i[1]||(i[1]=t("p",null,[u("Use the "),t("strong",null,"interactive"),u(" tables below to select parts!")],-1)),i[2]||(i[2]=t("h1",{id:"required-parts",tabindex:"-1"},[u("Required Parts: "),t("a",{class:"header-anchor",href:"#required-parts","aria-label":'Permalink to "Required Parts:"'},"")],-1)),k(D),i[3]||(i[3]=t("h1",{id:"additional-parts",tabindex:"-1"},[u("Additional Parts: "),t("a",{class:"header-anchor",href:"#additional-parts","aria-label":'Permalink to "Additional Parts:"'},"")],-1)),k(N),i[4]||(i[4]=g('
Table modified greatly from the table on SlimeVR's Docs which was created by Carl
DANGER
There are two primary categories of trackers supported: wireless and wired. It's super important that you really look at all your options and consider your use case before making a decision.
This offers a good starting point as the ESP32 CAM boards are cheaper than wired capable trackers. However, they can be a bit more temperamental and if you are using a wired headset, they don't really make sense.
Pros:
Cons:
This is our latest setup recommended for users with wired headsets such as the Valve Index.
Pros:
Cons: