mirror of
https://github.com/EyeTrackVR/EyeTrackVR-Docs.git
synced 2025-11-04 14:49:44 +08:00
docs: new XIAO prep guide
This commit is contained in:
parent
b4f505101c
commit
6fddb058b6
12
about.html
12
about.html
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{V as i,a as s,b as l,c as r}from"./chunks/theme.1e4e7418.js";import{o as u,c,H as n,w as a,l as o,a as e,k as t}from"./chunks/framework.d2e7204f.js";const h=[{name:"Prohurtz",avatar:"https://avatars.githubusercontent.com/u/48768484?v=4",title:"Creator / Lead Software Developer / Documentor / Hardware Developer",links:[{icon:"github",link:"https://github.com/RedHawk989"}]},{name:"Summer",avatar:"https://avatars.githubusercontent.com/u/115666235?v=4",title:"Machine Learning Engineer / Data Scientist / App Developer",links:[{icon:"github",link:"https://github.com/Summer404NotFound"}]},{name:"lorow",avatar:"https://avatars.githubusercontent.com/u/14099558?v=4",title:"Lead Firmware Developer / App Developer",links:[{icon:"github",link:"https://github.com/lorow"}]},{name:"DaOfficialWizard",avatar:"https://avatars.githubusercontent.com/u/45744329?v=4",title:"Firmware Developer / Documentation Manager / App Developer",links:[{icon:"github",link:"https://github.com/ZanzyTHEbar"}]}],m=[{name:"qdot",avatar:"https://avatars.githubusercontent.com/u/34539?v=4",links:[{icon:"github",link:"https://github.com/qdot"}]},{name:"dfgHiatus",avatar:"https://avatars.githubusercontent.com/u/51272212?v=4",links:[{icon:"github",link:"https://github.com/dfgHiatus"}]},{name:"PallasNeko",avatar:"https://avatars.githubusercontent.com/u/124042774?v=4",links:[{icon:"github",link:"https://github.com/PallasNeko"}]}],d=t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1),p=t("br",null,null,-1),b=t("br",null,null,-1),_=t("br",null,null,-1),g=t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),v=t("br",null,null,-1),k=t("br",null,null,-1),f=t("br",null,null,-1),w=t("br",null,null,-1),T=t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),y=t("br",null,null,-1),P=t("br",null,null,-1),x=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),D={name:"about.md"},z=Object.assign(D,{setup(V){return(S,H)=>(u(),c("div",null,[n(o(r),null,{default:a(()=>[n(o(i),null,{title:a(()=>[d]),lead:a(()=>[e(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),p,b,e(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")]),_:1}),n(o(s),{size:"medium",members:o(h)},null,8,["members"]),n(o(l),null,{title:a(()=>[e("Contributors")]),lead:a(()=>[e("Those who have actively contributed to development."),_,e(" Community Support")]),members:a(()=>[n(o(s),{size:"small",members:o(m)},null,8,["members"])]),_:1}),n(o(l),null,{title:a(()=>[e("Philosophy")]),lead:a(()=>[e(" The "),g,e(" on this website include some of our team's own notes (not all of them are polished) that we disclose for other people to use."),v,k,e(" Here, we hope you may find something useful to you."),f,w,e(" We advocate the "),T,e("."),y,P,e(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")]),_:1})]),_:1})]))}});export{x as __pageData,z as default};
|
||||
import{V as i,a as s,b as l,c as r}from"./chunks/theme.7b779f89.js";import{o as u,c,H as n,w as a,l as o,a as e,k as t}from"./chunks/framework.d2e7204f.js";const h=[{name:"Prohurtz",avatar:"https://avatars.githubusercontent.com/u/48768484?v=4",title:"Creator / Lead Software Developer / Documentor / Hardware Developer",links:[{icon:"github",link:"https://github.com/RedHawk989"}]},{name:"Summer",avatar:"https://avatars.githubusercontent.com/u/115666235?v=4",title:"Machine Learning Engineer / Data Scientist / App Developer",links:[{icon:"github",link:"https://github.com/Summer404NotFound"}]},{name:"lorow",avatar:"https://avatars.githubusercontent.com/u/14099558?v=4",title:"Lead Firmware Developer / App Developer",links:[{icon:"github",link:"https://github.com/lorow"}]},{name:"DaOfficialWizard",avatar:"https://avatars.githubusercontent.com/u/45744329?v=4",title:"Firmware Developer / Documentation Manager / App Developer",links:[{icon:"github",link:"https://github.com/ZanzyTHEbar"}]}],m=[{name:"qdot",avatar:"https://avatars.githubusercontent.com/u/34539?v=4",links:[{icon:"github",link:"https://github.com/qdot"}]},{name:"dfgHiatus",avatar:"https://avatars.githubusercontent.com/u/51272212?v=4",links:[{icon:"github",link:"https://github.com/dfgHiatus"}]},{name:"PallasNeko",avatar:"https://avatars.githubusercontent.com/u/124042774?v=4",links:[{icon:"github",link:"https://github.com/PallasNeko"}]}],d=t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1),p=t("br",null,null,-1),b=t("br",null,null,-1),_=t("br",null,null,-1),g=t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),v=t("br",null,null,-1),k=t("br",null,null,-1),f=t("br",null,null,-1),w=t("br",null,null,-1),T=t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),y=t("br",null,null,-1),P=t("br",null,null,-1),x=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),D={name:"about.md"},z=Object.assign(D,{setup(V){return(S,H)=>(u(),c("div",null,[n(o(r),null,{default:a(()=>[n(o(i),null,{title:a(()=>[d]),lead:a(()=>[e(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),p,b,e(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")]),_:1}),n(o(s),{size:"medium",members:o(h)},null,8,["members"]),n(o(l),null,{title:a(()=>[e("Contributors")]),lead:a(()=>[e("Those who have actively contributed to development."),_,e(" Community Support")]),members:a(()=>[n(o(s),{size:"small",members:o(m)},null,8,["members"])]),_:1}),n(o(l),null,{title:a(()=>[e("Philosophy")]),lead:a(()=>[e(" The "),g,e(" on this website include some of our team's own notes (not all of them are polished) that we disclose for other people to use."),v,k,e(" Here, we hope you may find something useful to you."),f,w,e(" We advocate the "),T,e("."),y,P,e(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")]),_:1})]),_:1})]))}});export{x as __pageData,z as default};
|
||||
@ -1 +1 @@
|
||||
import{V as i,a as s,b as l,c as r}from"./chunks/theme.1e4e7418.js";import{o as u,c,H as n,w as a,l as o,a as e,k as t}from"./chunks/framework.d2e7204f.js";const h=[{name:"Prohurtz",avatar:"https://avatars.githubusercontent.com/u/48768484?v=4",title:"Creator / Lead Software Developer / Documentor / Hardware Developer",links:[{icon:"github",link:"https://github.com/RedHawk989"}]},{name:"Summer",avatar:"https://avatars.githubusercontent.com/u/115666235?v=4",title:"Machine Learning Engineer / Data Scientist / App Developer",links:[{icon:"github",link:"https://github.com/Summer404NotFound"}]},{name:"lorow",avatar:"https://avatars.githubusercontent.com/u/14099558?v=4",title:"Lead Firmware Developer / App Developer",links:[{icon:"github",link:"https://github.com/lorow"}]},{name:"DaOfficialWizard",avatar:"https://avatars.githubusercontent.com/u/45744329?v=4",title:"Firmware Developer / Documentation Manager / App Developer",links:[{icon:"github",link:"https://github.com/ZanzyTHEbar"}]}],m=[{name:"qdot",avatar:"https://avatars.githubusercontent.com/u/34539?v=4",links:[{icon:"github",link:"https://github.com/qdot"}]},{name:"dfgHiatus",avatar:"https://avatars.githubusercontent.com/u/51272212?v=4",links:[{icon:"github",link:"https://github.com/dfgHiatus"}]},{name:"PallasNeko",avatar:"https://avatars.githubusercontent.com/u/124042774?v=4",links:[{icon:"github",link:"https://github.com/PallasNeko"}]}],d=t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1),p=t("br",null,null,-1),b=t("br",null,null,-1),_=t("br",null,null,-1),g=t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),v=t("br",null,null,-1),k=t("br",null,null,-1),f=t("br",null,null,-1),w=t("br",null,null,-1),T=t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),y=t("br",null,null,-1),P=t("br",null,null,-1),x=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),D={name:"about.md"},z=Object.assign(D,{setup(V){return(S,H)=>(u(),c("div",null,[n(o(r),null,{default:a(()=>[n(o(i),null,{title:a(()=>[d]),lead:a(()=>[e(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),p,b,e(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")]),_:1}),n(o(s),{size:"medium",members:o(h)},null,8,["members"]),n(o(l),null,{title:a(()=>[e("Contributors")]),lead:a(()=>[e("Those who have actively contributed to development."),_,e(" Community Support")]),members:a(()=>[n(o(s),{size:"small",members:o(m)},null,8,["members"])]),_:1}),n(o(l),null,{title:a(()=>[e("Philosophy")]),lead:a(()=>[e(" The "),g,e(" on this website include some of our team's own notes (not all of them are polished) that we disclose for other people to use."),v,k,e(" Here, we hope you may find something useful to you."),f,w,e(" We advocate the "),T,e("."),y,P,e(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")]),_:1})]),_:1})]))}});export{x as __pageData,z as default};
|
||||
import{V as i,a as s,b as l,c as r}from"./chunks/theme.7b779f89.js";import{o as u,c,H as n,w as a,l as o,a as e,k as t}from"./chunks/framework.d2e7204f.js";const h=[{name:"Prohurtz",avatar:"https://avatars.githubusercontent.com/u/48768484?v=4",title:"Creator / Lead Software Developer / Documentor / Hardware Developer",links:[{icon:"github",link:"https://github.com/RedHawk989"}]},{name:"Summer",avatar:"https://avatars.githubusercontent.com/u/115666235?v=4",title:"Machine Learning Engineer / Data Scientist / App Developer",links:[{icon:"github",link:"https://github.com/Summer404NotFound"}]},{name:"lorow",avatar:"https://avatars.githubusercontent.com/u/14099558?v=4",title:"Lead Firmware Developer / App Developer",links:[{icon:"github",link:"https://github.com/lorow"}]},{name:"DaOfficialWizard",avatar:"https://avatars.githubusercontent.com/u/45744329?v=4",title:"Firmware Developer / Documentation Manager / App Developer",links:[{icon:"github",link:"https://github.com/ZanzyTHEbar"}]}],m=[{name:"qdot",avatar:"https://avatars.githubusercontent.com/u/34539?v=4",links:[{icon:"github",link:"https://github.com/qdot"}]},{name:"dfgHiatus",avatar:"https://avatars.githubusercontent.com/u/51272212?v=4",links:[{icon:"github",link:"https://github.com/dfgHiatus"}]},{name:"PallasNeko",avatar:"https://avatars.githubusercontent.com/u/124042774?v=4",links:[{icon:"github",link:"https://github.com/PallasNeko"}]}],d=t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1),p=t("br",null,null,-1),b=t("br",null,null,-1),_=t("br",null,null,-1),g=t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),v=t("br",null,null,-1),k=t("br",null,null,-1),f=t("br",null,null,-1),w=t("br",null,null,-1),T=t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),y=t("br",null,null,-1),P=t("br",null,null,-1),x=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),D={name:"about.md"},z=Object.assign(D,{setup(V){return(S,H)=>(u(),c("div",null,[n(o(r),null,{default:a(()=>[n(o(i),null,{title:a(()=>[d]),lead:a(()=>[e(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),p,b,e(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")]),_:1}),n(o(s),{size:"medium",members:o(h)},null,8,["members"]),n(o(l),null,{title:a(()=>[e("Contributors")]),lead:a(()=>[e("Those who have actively contributed to development."),_,e(" Community Support")]),members:a(()=>[n(o(s),{size:"small",members:o(m)},null,8,["members"])]),_:1}),n(o(l),null,{title:a(()=>[e("Philosophy")]),lead:a(()=>[e(" The "),g,e(" on this website include some of our team's own notes (not all of them are polished) that we disclose for other people to use."),v,k,e(" Here, we hope you may find something useful to you."),f,w,e(" We advocate the "),T,e("."),y,P,e(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")]),_:1})]),_:1})]))}});export{x as __pageData,z as default};
|
||||
@ -1 +1 @@
|
||||
import{u as p,y as i,s,a3 as c,a4 as l,a5 as f,a6 as d,a7 as m,a8 as h,a9 as g,aa as A,ab as v,ac as C,V as P,d as y,j as _,ad as w,ae as T,af as b,ag as E}from"./chunks/framework.d2e7204f.js";import{t as R}from"./chunks/theme.1e4e7418.js";const D={};const S={...R,setup(){const{lang:e}=p();i(()=>{s&&(document.cookie=`nf_lang=${e.value}; expires=Mon, 1 Jan 2024 00:00:00 UTC; path=/`)})},...D};function u(e){if(e.extends){const t=u(e.extends);return{...t,...e,async enhanceApp(a){t.enhanceApp&&await t.enhanceApp(a),e.enhanceApp&&await e.enhanceApp(a)}}}return e}const o=u(S),j=y({name:"VitePressApp",setup(){const{site:e}=p();return _(()=>{i(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),w(),T(),b(),o.setup&&o.setup(),()=>E(o.Layout)}});async function x(){const e=V(),t=O();t.provide(l,e);const a=f(e.route);return t.provide(d,a),t.component("Content",m),t.component("ClientOnly",h),Object.defineProperties(t.config.globalProperties,{$frontmatter:{get(){return a.frontmatter.value}},$params:{get(){return a.page.value.params}}}),o.enhanceApp&&await o.enhanceApp({app:t,router:e,siteData:g}),{app:t,router:e,data:a}}function O(){return A(j)}function V(){let e=s,t;return v(a=>{let n=C(a),r=null;return n&&(e&&(t=n),(e||t===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),[])),s&&(e=!1),r},o.NotFound)}s&&x().then(({app:e,router:t,data:a})=>{t.go().then(()=>{c(t.route,a.site),e.mount("#app")})});export{x as createApp};
|
||||
import{u as p,y as i,s,a3 as c,a4 as l,a5 as f,a6 as d,a7 as m,a8 as h,a9 as g,aa as A,ab as v,ac as C,V as P,d as y,j as _,ad as w,ae as T,af as b,ag as E}from"./chunks/framework.d2e7204f.js";import{t as R}from"./chunks/theme.7b779f89.js";const D={};const S={...R,setup(){const{lang:e}=p();i(()=>{s&&(document.cookie=`nf_lang=${e.value}; expires=Mon, 1 Jan 2024 00:00:00 UTC; path=/`)})},...D};function u(e){if(e.extends){const t=u(e.extends);return{...t,...e,async enhanceApp(a){t.enhanceApp&&await t.enhanceApp(a),e.enhanceApp&&await e.enhanceApp(a)}}}return e}const o=u(S),j=y({name:"VitePressApp",setup(){const{site:e}=p();return _(()=>{i(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),w(),T(),b(),o.setup&&o.setup(),()=>E(o.Layout)}});async function x(){const e=V(),t=O();t.provide(l,e);const a=f(e.route);return t.provide(d,a),t.component("Content",m),t.component("ClientOnly",h),Object.defineProperties(t.config.globalProperties,{$frontmatter:{get(){return a.frontmatter.value}},$params:{get(){return a.page.value.params}}}),o.enhanceApp&&await o.enhanceApp({app:t,router:e,siteData:g}),{app:t,router:e,data:a}}function O(){return A(j)}function V(){let e=s,t;return v(a=>{let n=C(a),r=null;return n&&(e&&(t=n),(e||t===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),[])),s&&(e=!1),r},o.NotFound)}s&&x().then(({app:e,router:t,data:a})=>{t.go().then(()=>{c(t.route,a.site),e.mount("#app")})});export{x as createApp};
|
||||
@ -1 +1 @@
|
||||
import{_ as o,i as t}from"./chunks/index.1ee321cb.js";import{o as r,c as l,H as s,l as i,k as e,a as n,Q as a}from"./chunks/framework.d2e7204f.js";const d=e("h1",{class:"text-[var(--font-accent)]",id:"fox-ir-v2-buil-dinstructions",tabindex:"-1"},[n("Fox IR V2 Buil dInstructions "),e("a",{class:"header-anchor",href:"#fox-ir-v2-buil-dinstructions","aria-label":'Permalink to "Fox IR V2 Buil dInstructions {.text-[var(--font-accent)]}"'},"")],-1),_=e("h2",{id:"step-15-prepare-to-solder-ir-led-pcb-v2s",tabindex:"-1"},[n("Step 15: Prepare to solder IR LED PCB V2s "),e("a",{class:"header-anchor",href:"#step-15-prepare-to-solder-ir-led-pcb-v2s","aria-label":'Permalink to "Step 15: Prepare to solder IR LED PCB V2s"'},"")],-1),p=e("p",null,"Get your magnifying glass out, it's time to solder very smol things.",-1),c=e("p",null,"Gather 4 PCBs, 4 IR LEDs, and 2 ~700ohm resistors.",-1),h=e("p",null,"Here are the PCB pin-out labels:",-1),u=e("p",null,"LED labels:",-1),f=a('<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 <em><strong>only 1</strong></em> <code>~700ohm</code> resistor on V3 boards <em><strong>(not recommended)</strong></em>.</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-17-solder-resistors-on-pcb-v2" tabindex="-1">Step 17: Solder resistors on PCB V2 <a class="header-anchor" href="#step-17-solder-resistors-on-pcb-v2" aria-label="Permalink to "Step 17: Solder resistors on PCB V2""></a></h2><p>You only need 1 PCB to have a resistor per eye.</p>',10),m=e("p",null,"Tin the resistor pads.",-1),b=e("p",null,"Hold the resistor in place.",-1),v=e("p",null,"Solder one end.",-1),x=e("p",null,"Flip to the other side of the resistor and solder it.",-1),P=e("h2",{id:"solder-leds-on-pcb-v2",tabindex:"-1"},[n("Solder LEDs on PCB V2 "),e("a",{class:"header-anchor",href:"#solder-leds-on-pcb-v2","aria-label":'Permalink to "Solder LEDs on PCB V2"'},"")],-1),g=e("p",null,"Tin the pads",-1),B=e("p",null,"Place the resistor on the pads in the correct orientation.",-1),V=e("p",null,[n("Solder each side of the resistor. Be careful not to solder at too high of a temp, recommended soldering temp is "),e("code",null,"230C with a max of 245C"),n(".")],-1),C=e("h2",{id:"wire-up-the-pcbs-v2",tabindex:"-1"},[n("Wire up the PCBs V2 "),e("a",{class:"header-anchor",href:"#wire-up-the-pcbs-v2","aria-label":'Permalink to "Wire up the PCBs V2"'},"")],-1),S=e("p",null,"Basic full wiring diagram of IR PCBs V2.",-1),w=e("p",null,"The PCB that receives the 5V power is the one with the resistor. The second one, which gets its power from the ground pin of the first, does not have a resistor on it and its power input pin is the AR pin (After-Resistor). The 2nd PCBs ground pin goes to the ground of the system, in the diagram it is the ESPs ground pin.",-1),k=JSON.parse('{"title":"Fox IR V2 Buil dInstructions","description":"","frontmatter":{},"headers":[],"relativePath":"archive/fox_ir_v2_build_instructions.md","filePath":"archive/fox_ir_v2_build_instructions.md","lastUpdated":1676223729000}'),T={name:"archive/fox_ir_v2_build_instructions.md"},L=Object.assign(T,{setup(I){return(D,E)=>(r(),l("div",null,[d,_,p,c,s(o,{options:i(t).fox_ir_build_instructions_one},null,8,["options"]),h,s(o,{options:i(t).fox_ir_build_instructions_two},null,8,["options"]),u,s(o,{options:i(t).fox_ir_build_instructions_three},null,8,["options"]),f,s(o,{options:i(t).fox_ir_build_instructions_four},null,8,["options"]),m,s(o,{options:i(t).fox_ir_build_instructions_five},null,8,["options"]),b,s(o,{options:i(t).fox_ir_build_instructions_six},null,8,["options"]),v,s(o,{options:i(t).fox_ir_build_instructions_seven},null,8,["options"]),x,s(o,{options:i(t).fox_ir_build_instructions_eight},null,8,["options"]),P,s(o,{options:i(t).fox_ir_build_instructions_nine},null,8,["options"]),g,s(o,{options:i(t).fox_ir_build_instructions_ten},null,8,["options"]),B,s(o,{options:i(t).fox_ir_build_instructions_eleven},null,8,["options"]),V,s(o,{options:i(t).fox_ir_build_instructions_twelve},null,8,["options"]),C,S,s(o,{options:i(t).fox_ir_build_instructions_thirteen},null,8,["options"]),w]))}});export{k as __pageData,L as default};
|
||||
import{_ as o,i as t}from"./chunks/index.27ffaee7.js";import{o as r,c as l,H as s,l as i,k as e,a as n,Q as a}from"./chunks/framework.d2e7204f.js";const d=e("h1",{class:"text-[var(--font-accent)]",id:"fox-ir-v2-buil-dinstructions",tabindex:"-1"},[n("Fox IR V2 Buil dInstructions "),e("a",{class:"header-anchor",href:"#fox-ir-v2-buil-dinstructions","aria-label":'Permalink to "Fox IR V2 Buil dInstructions {.text-[var(--font-accent)]}"'},"")],-1),_=e("h2",{id:"step-15-prepare-to-solder-ir-led-pcb-v2s",tabindex:"-1"},[n("Step 15: Prepare to solder IR LED PCB V2s "),e("a",{class:"header-anchor",href:"#step-15-prepare-to-solder-ir-led-pcb-v2s","aria-label":'Permalink to "Step 15: Prepare to solder IR LED PCB V2s"'},"")],-1),p=e("p",null,"Get your magnifying glass out, it's time to solder very smol things.",-1),c=e("p",null,"Gather 4 PCBs, 4 IR LEDs, and 2 ~700ohm resistors.",-1),h=e("p",null,"Here are the PCB pin-out labels:",-1),u=e("p",null,"LED labels:",-1),f=a('<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 <em><strong>only 1</strong></em> <code>~700ohm</code> resistor on V3 boards <em><strong>(not recommended)</strong></em>.</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-17-solder-resistors-on-pcb-v2" tabindex="-1">Step 17: Solder resistors on PCB V2 <a class="header-anchor" href="#step-17-solder-resistors-on-pcb-v2" aria-label="Permalink to "Step 17: Solder resistors on PCB V2""></a></h2><p>You only need 1 PCB to have a resistor per eye.</p>',10),m=e("p",null,"Tin the resistor pads.",-1),b=e("p",null,"Hold the resistor in place.",-1),v=e("p",null,"Solder one end.",-1),x=e("p",null,"Flip to the other side of the resistor and solder it.",-1),P=e("h2",{id:"solder-leds-on-pcb-v2",tabindex:"-1"},[n("Solder LEDs on PCB V2 "),e("a",{class:"header-anchor",href:"#solder-leds-on-pcb-v2","aria-label":'Permalink to "Solder LEDs on PCB V2"'},"")],-1),g=e("p",null,"Tin the pads",-1),B=e("p",null,"Place the resistor on the pads in the correct orientation.",-1),V=e("p",null,[n("Solder each side of the resistor. Be careful not to solder at too high of a temp, recommended soldering temp is "),e("code",null,"230C with a max of 245C"),n(".")],-1),C=e("h2",{id:"wire-up-the-pcbs-v2",tabindex:"-1"},[n("Wire up the PCBs V2 "),e("a",{class:"header-anchor",href:"#wire-up-the-pcbs-v2","aria-label":'Permalink to "Wire up the PCBs V2"'},"")],-1),S=e("p",null,"Basic full wiring diagram of IR PCBs V2.",-1),w=e("p",null,"The PCB that receives the 5V power is the one with the resistor. The second one, which gets its power from the ground pin of the first, does not have a resistor on it and its power input pin is the AR pin (After-Resistor). The 2nd PCBs ground pin goes to the ground of the system, in the diagram it is the ESPs ground pin.",-1),k=JSON.parse('{"title":"Fox IR V2 Buil dInstructions","description":"","frontmatter":{},"headers":[],"relativePath":"archive/fox_ir_v2_build_instructions.md","filePath":"archive/fox_ir_v2_build_instructions.md","lastUpdated":1676223729000}'),T={name:"archive/fox_ir_v2_build_instructions.md"},L=Object.assign(T,{setup(I){return(D,E)=>(r(),l("div",null,[d,_,p,c,s(o,{options:i(t).fox_ir_build_instructions_one},null,8,["options"]),h,s(o,{options:i(t).fox_ir_build_instructions_two},null,8,["options"]),u,s(o,{options:i(t).fox_ir_build_instructions_three},null,8,["options"]),f,s(o,{options:i(t).fox_ir_build_instructions_four},null,8,["options"]),m,s(o,{options:i(t).fox_ir_build_instructions_five},null,8,["options"]),b,s(o,{options:i(t).fox_ir_build_instructions_six},null,8,["options"]),v,s(o,{options:i(t).fox_ir_build_instructions_seven},null,8,["options"]),x,s(o,{options:i(t).fox_ir_build_instructions_eight},null,8,["options"]),P,s(o,{options:i(t).fox_ir_build_instructions_nine},null,8,["options"]),g,s(o,{options:i(t).fox_ir_build_instructions_ten},null,8,["options"]),B,s(o,{options:i(t).fox_ir_build_instructions_eleven},null,8,["options"]),V,s(o,{options:i(t).fox_ir_build_instructions_twelve},null,8,["options"]),C,S,s(o,{options:i(t).fox_ir_build_instructions_thirteen},null,8,["options"]),w]))}});export{k as __pageData,L as default};
|
||||
@ -1 +1 @@
|
||||
import{_ as o,i as t}from"./chunks/index.1ee321cb.js";import{o as r,c as l,H as s,l as i,k as e,a as n,Q as a}from"./chunks/framework.d2e7204f.js";const d=e("h1",{class:"text-[var(--font-accent)]",id:"fox-ir-v2-buil-dinstructions",tabindex:"-1"},[n("Fox IR V2 Buil dInstructions "),e("a",{class:"header-anchor",href:"#fox-ir-v2-buil-dinstructions","aria-label":'Permalink to "Fox IR V2 Buil dInstructions {.text-[var(--font-accent)]}"'},"")],-1),_=e("h2",{id:"step-15-prepare-to-solder-ir-led-pcb-v2s",tabindex:"-1"},[n("Step 15: Prepare to solder IR LED PCB V2s "),e("a",{class:"header-anchor",href:"#step-15-prepare-to-solder-ir-led-pcb-v2s","aria-label":'Permalink to "Step 15: Prepare to solder IR LED PCB V2s"'},"")],-1),p=e("p",null,"Get your magnifying glass out, it's time to solder very smol things.",-1),c=e("p",null,"Gather 4 PCBs, 4 IR LEDs, and 2 ~700ohm resistors.",-1),h=e("p",null,"Here are the PCB pin-out labels:",-1),u=e("p",null,"LED labels:",-1),f=a("",10),m=e("p",null,"Tin the resistor pads.",-1),b=e("p",null,"Hold the resistor in place.",-1),v=e("p",null,"Solder one end.",-1),x=e("p",null,"Flip to the other side of the resistor and solder it.",-1),P=e("h2",{id:"solder-leds-on-pcb-v2",tabindex:"-1"},[n("Solder LEDs on PCB V2 "),e("a",{class:"header-anchor",href:"#solder-leds-on-pcb-v2","aria-label":'Permalink to "Solder LEDs on PCB V2"'},"")],-1),g=e("p",null,"Tin the pads",-1),B=e("p",null,"Place the resistor on the pads in the correct orientation.",-1),V=e("p",null,[n("Solder each side of the resistor. Be careful not to solder at too high of a temp, recommended soldering temp is "),e("code",null,"230C with a max of 245C"),n(".")],-1),C=e("h2",{id:"wire-up-the-pcbs-v2",tabindex:"-1"},[n("Wire up the PCBs V2 "),e("a",{class:"header-anchor",href:"#wire-up-the-pcbs-v2","aria-label":'Permalink to "Wire up the PCBs V2"'},"")],-1),S=e("p",null,"Basic full wiring diagram of IR PCBs V2.",-1),w=e("p",null,"The PCB that receives the 5V power is the one with the resistor. The second one, which gets its power from the ground pin of the first, does not have a resistor on it and its power input pin is the AR pin (After-Resistor). The 2nd PCBs ground pin goes to the ground of the system, in the diagram it is the ESPs ground pin.",-1),k=JSON.parse('{"title":"Fox IR V2 Buil dInstructions","description":"","frontmatter":{},"headers":[],"relativePath":"archive/fox_ir_v2_build_instructions.md","filePath":"archive/fox_ir_v2_build_instructions.md","lastUpdated":1676223729000}'),T={name:"archive/fox_ir_v2_build_instructions.md"},L=Object.assign(T,{setup(I){return(D,E)=>(r(),l("div",null,[d,_,p,c,s(o,{options:i(t).fox_ir_build_instructions_one},null,8,["options"]),h,s(o,{options:i(t).fox_ir_build_instructions_two},null,8,["options"]),u,s(o,{options:i(t).fox_ir_build_instructions_three},null,8,["options"]),f,s(o,{options:i(t).fox_ir_build_instructions_four},null,8,["options"]),m,s(o,{options:i(t).fox_ir_build_instructions_five},null,8,["options"]),b,s(o,{options:i(t).fox_ir_build_instructions_six},null,8,["options"]),v,s(o,{options:i(t).fox_ir_build_instructions_seven},null,8,["options"]),x,s(o,{options:i(t).fox_ir_build_instructions_eight},null,8,["options"]),P,s(o,{options:i(t).fox_ir_build_instructions_nine},null,8,["options"]),g,s(o,{options:i(t).fox_ir_build_instructions_ten},null,8,["options"]),B,s(o,{options:i(t).fox_ir_build_instructions_eleven},null,8,["options"]),V,s(o,{options:i(t).fox_ir_build_instructions_twelve},null,8,["options"]),C,S,s(o,{options:i(t).fox_ir_build_instructions_thirteen},null,8,["options"]),w]))}});export{k as __pageData,L as default};
|
||||
import{_ as o,i as t}from"./chunks/index.27ffaee7.js";import{o as r,c as l,H as s,l as i,k as e,a as n,Q as a}from"./chunks/framework.d2e7204f.js";const d=e("h1",{class:"text-[var(--font-accent)]",id:"fox-ir-v2-buil-dinstructions",tabindex:"-1"},[n("Fox IR V2 Buil dInstructions "),e("a",{class:"header-anchor",href:"#fox-ir-v2-buil-dinstructions","aria-label":'Permalink to "Fox IR V2 Buil dInstructions {.text-[var(--font-accent)]}"'},"")],-1),_=e("h2",{id:"step-15-prepare-to-solder-ir-led-pcb-v2s",tabindex:"-1"},[n("Step 15: Prepare to solder IR LED PCB V2s "),e("a",{class:"header-anchor",href:"#step-15-prepare-to-solder-ir-led-pcb-v2s","aria-label":'Permalink to "Step 15: Prepare to solder IR LED PCB V2s"'},"")],-1),p=e("p",null,"Get your magnifying glass out, it's time to solder very smol things.",-1),c=e("p",null,"Gather 4 PCBs, 4 IR LEDs, and 2 ~700ohm resistors.",-1),h=e("p",null,"Here are the PCB pin-out labels:",-1),u=e("p",null,"LED labels:",-1),f=a("",10),m=e("p",null,"Tin the resistor pads.",-1),b=e("p",null,"Hold the resistor in place.",-1),v=e("p",null,"Solder one end.",-1),x=e("p",null,"Flip to the other side of the resistor and solder it.",-1),P=e("h2",{id:"solder-leds-on-pcb-v2",tabindex:"-1"},[n("Solder LEDs on PCB V2 "),e("a",{class:"header-anchor",href:"#solder-leds-on-pcb-v2","aria-label":'Permalink to "Solder LEDs on PCB V2"'},"")],-1),g=e("p",null,"Tin the pads",-1),B=e("p",null,"Place the resistor on the pads in the correct orientation.",-1),V=e("p",null,[n("Solder each side of the resistor. Be careful not to solder at too high of a temp, recommended soldering temp is "),e("code",null,"230C with a max of 245C"),n(".")],-1),C=e("h2",{id:"wire-up-the-pcbs-v2",tabindex:"-1"},[n("Wire up the PCBs V2 "),e("a",{class:"header-anchor",href:"#wire-up-the-pcbs-v2","aria-label":'Permalink to "Wire up the PCBs V2"'},"")],-1),S=e("p",null,"Basic full wiring diagram of IR PCBs V2.",-1),w=e("p",null,"The PCB that receives the 5V power is the one with the resistor. The second one, which gets its power from the ground pin of the first, does not have a resistor on it and its power input pin is the AR pin (After-Resistor). The 2nd PCBs ground pin goes to the ground of the system, in the diagram it is the ESPs ground pin.",-1),k=JSON.parse('{"title":"Fox IR V2 Buil dInstructions","description":"","frontmatter":{},"headers":[],"relativePath":"archive/fox_ir_v2_build_instructions.md","filePath":"archive/fox_ir_v2_build_instructions.md","lastUpdated":1676223729000}'),T={name:"archive/fox_ir_v2_build_instructions.md"},L=Object.assign(T,{setup(I){return(D,E)=>(r(),l("div",null,[d,_,p,c,s(o,{options:i(t).fox_ir_build_instructions_one},null,8,["options"]),h,s(o,{options:i(t).fox_ir_build_instructions_two},null,8,["options"]),u,s(o,{options:i(t).fox_ir_build_instructions_three},null,8,["options"]),f,s(o,{options:i(t).fox_ir_build_instructions_four},null,8,["options"]),m,s(o,{options:i(t).fox_ir_build_instructions_five},null,8,["options"]),b,s(o,{options:i(t).fox_ir_build_instructions_six},null,8,["options"]),v,s(o,{options:i(t).fox_ir_build_instructions_seven},null,8,["options"]),x,s(o,{options:i(t).fox_ir_build_instructions_eight},null,8,["options"]),P,s(o,{options:i(t).fox_ir_build_instructions_nine},null,8,["options"]),g,s(o,{options:i(t).fox_ir_build_instructions_ten},null,8,["options"]),B,s(o,{options:i(t).fox_ir_build_instructions_eleven},null,8,["options"]),V,s(o,{options:i(t).fox_ir_build_instructions_twelve},null,8,["options"]),C,S,s(o,{options:i(t).fox_ir_build_instructions_thirteen},null,8,["options"]),w]))}});export{k as __pageData,L as default};
|
||||
File diff suppressed because one or more lines are too long
1
assets/chunks/@localSearchIndexroot.7643f9a4.js
Normal file
1
assets/chunks/@localSearchIndexroot.7643f9a4.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
assets/chunks/index.27ffaee7.js
Normal file
1
assets/chunks/index.27ffaee7.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{_ as s,a as d}from"./chunks/index.1debbbaa.js";import{_ as n,i}from"./chunks/index.1ee321cb.js";import{o as h,c,H as t,l as a,w as l,k as e,a as o,Q as r}from"./chunks/framework.d2e7204f.js";const u=e("h1",{class:"text-[var(--font-accent)]",id:"configuring-the-firmware",tabindex:"-1"},[o("Configuring the firmware "),e("a",{class:"header-anchor",href:"#configuring-the-firmware","aria-label":'Permalink to "Configuring the firmware {.text-[var(--font-accent)]}"'},"")],-1),p=e("h2",{id:"once-you-have-opened-the-project-you-should-see-something-on-the-left-side-like-this",tabindex:"-1"},[o("Once you have opened the project, you should see something on the left side like this "),e("a",{class:"header-anchor",href:"#once-you-have-opened-the-project-you-should-see-something-on-the-left-side-like-this","aria-label":'Permalink to "Once you have opened the project, you should see something on the left side like this"'},"")],-1),f=e("h2",{id:"open-the-ini-user-config-ini-file",tabindex:"-1"},[o("Open the "),e("code",null,"ini/user_config.ini"),o(" file "),e("a",{class:"header-anchor",href:"#open-the-ini-user-config-ini-file","aria-label":'Permalink to "Open the `ini/user_config.ini` file"'},"")],-1),m=r("",3),w=e("p",null," Make sure your WiFi router has a 2.4 GHz band. While most do, this is not always the case. Setting each band (5GHz, and 2.4GHz) to different SSIDs is recommended, though not required. ",-1),_=r("",16),E=JSON.parse('{"title":"Configuring the firmware","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/configure_firmware.md","filePath":"firmware_guide/configure_firmware.md","lastUpdated":1700510338000}'),y={name:"firmware_guide/configure_firmware.md"},k=Object.assign(y,{setup(g){return(P,b)=>(h(),c("div",null,[u,p,t(n,{options:a(i).configure_firmware_one},null,8,["options"]),f,t(n,{options:a(i).configure_firmware_two},null,8,["options"]),m,t(s,{options:a(d).parts_list_one},{content:l(()=>[w]),_:1},8,["options"]),_]))}});export{E as __pageData,k as default};
|
||||
import{_ as s,a as d}from"./chunks/index.1debbbaa.js";import{_ as n,i}from"./chunks/index.27ffaee7.js";import{o as h,c,H as t,l as a,w as l,k as e,a as o,Q as r}from"./chunks/framework.d2e7204f.js";const u=e("h1",{class:"text-[var(--font-accent)]",id:"configuring-the-firmware",tabindex:"-1"},[o("Configuring the firmware "),e("a",{class:"header-anchor",href:"#configuring-the-firmware","aria-label":'Permalink to "Configuring the firmware {.text-[var(--font-accent)]}"'},"")],-1),p=e("h2",{id:"once-you-have-opened-the-project-you-should-see-something-on-the-left-side-like-this",tabindex:"-1"},[o("Once you have opened the project, you should see something on the left side like this "),e("a",{class:"header-anchor",href:"#once-you-have-opened-the-project-you-should-see-something-on-the-left-side-like-this","aria-label":'Permalink to "Once you have opened the project, you should see something on the left side like this"'},"")],-1),f=e("h2",{id:"open-the-ini-user-config-ini-file",tabindex:"-1"},[o("Open the "),e("code",null,"ini/user_config.ini"),o(" file "),e("a",{class:"header-anchor",href:"#open-the-ini-user-config-ini-file","aria-label":'Permalink to "Open the `ini/user_config.ini` file"'},"")],-1),m=r("",3),w=e("p",null," Make sure your WiFi router has a 2.4 GHz band. While most do, this is not always the case. Setting each band (5GHz, and 2.4GHz) to different SSIDs is recommended, though not required. ",-1),_=r("",16),E=JSON.parse('{"title":"Configuring the firmware","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/configure_firmware.md","filePath":"firmware_guide/configure_firmware.md","lastUpdated":1700510338000}'),y={name:"firmware_guide/configure_firmware.md"},k=Object.assign(y,{setup(g){return(P,b)=>(h(),c("div",null,[u,p,t(n,{options:a(i).configure_firmware_one},null,8,["options"]),f,t(n,{options:a(i).configure_firmware_two},null,8,["options"]),m,t(s,{options:a(d).parts_list_one},{content:l(()=>[w]),_:1},8,["options"]),_]))}});export{E as __pageData,k as default};
|
||||
@ -1 +1 @@
|
||||
import{_ as e,i as o}from"./chunks/index.1ee321cb.js";import{o as i,c as t,H as s,l as n,Q as a}from"./chunks/framework.d2e7204f.js";const r=a('<h1 class="text-[var(--font-accent)]" id="firmware-environments" tabindex="-1">Firmware Environments <a class="header-anchor" href="#firmware-environments" aria-label="Permalink to "Firmware Environments {.text-[var(--font-accent)]}""></a></h1><h2 id="what-is-it" tabindex="-1">What is it? <a class="header-anchor" href="#what-is-it" aria-label="Permalink to "What is it?""></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 "Build Types""></a></h2><p>We now have a couple of options letting us decide how we want to build the firmware.</p><ul><li><p><code>Debug</code> - The debug environment is the default environment and does not need to be specified. It has a lot of logging so it is useful for getting everything setup for the first time and to see what is going on.</p></li><li><p><code>_release</code> - Has a lot less debugging, may also be missing some things available only in debug for debug purposes, this should be flashed when everything is working.</p></li></ul><p>Examples:<br><code>xiaosenses3</code> - This is the debug environment.<br><code>xiaosenses3_release</code> - This is the release environment for daily use.</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. A debug environnement should not be used permanently.</p></div><h2 id="board-types" tabindex="-1">Board Types <a class="header-anchor" href="#board-types" aria-label="Permalink to "Board Types""></a></h2><p>We currently support for several 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. Only switch your environment if you have another board or an environment is not working.</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> - This is the default environment. This is for the ESP32-AI-THINKER and generic alibaba/aliexpress/amazon esp cam boards.</li><li><code>esp32Cam</code> - This is for the special ESP32-CAM, it is unlikely that you will need to use this environment.</li><li><code>esp32M5Stack</code> - This is for ESP32M5Stack.</li><li><code>esp32WRover</code> - This is for the ESP32WRover.</li><li><code>esp-eye</code> - This is for the ESP-EYE (not the S3 variant).</li><li><code>wrooms3</code> - For FREENOVE-ESP32-S3 (<em>wireless mode</em>)</li><li><code>wrooms3QIO</code> - For FREENOVE-ESP32-S3 (<em>wireless mode</em>, for boards with octal flash)</li><li><code>wrooms3USB</code> - For FREENOVE-ESP32-S3 (<em>wired mode</em>)</li><li><code>wrooms3QIOUSB</code> - For FREENOVE-ESP32-S3 (<em>wired mode</em>, for boards with octal flash)</li><li><code>xiaosenses3</code> - For SeedStudio's XAIO ESP32-S3 Sense (<em>wireless mode</em>)</li><li><code>xiaosenses3_USB</code> - For SeedStudio's XAIO ESP32-S3 Sense (<em>wired mode</em>)</li></ul><p>You can change the board enviroment by changing the <code>default_envs</code> argument in <code>platformio.ini</code> to a supported board like shown:</p>',17),u=JSON.parse('{"title":"Firmware Environments","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/environments.md","filePath":"firmware_guide/environments.md","lastUpdated":1698315393000}'),d={name:"firmware_guide/environments.md"},f=Object.assign(d,{setup(l){return(c,m)=>(i(),t("div",null,[r,s(e,{options:n(o).esp_board_env},null,8,["options"])]))}});export{u as __pageData,f as default};
|
||||
import{_ as e,i as o}from"./chunks/index.27ffaee7.js";import{o as i,c as t,H as s,l as n,Q as a}from"./chunks/framework.d2e7204f.js";const r=a('<h1 class="text-[var(--font-accent)]" id="firmware-environments" tabindex="-1">Firmware Environments <a class="header-anchor" href="#firmware-environments" aria-label="Permalink to "Firmware Environments {.text-[var(--font-accent)]}""></a></h1><h2 id="what-is-it" tabindex="-1">What is it? <a class="header-anchor" href="#what-is-it" aria-label="Permalink to "What is it?""></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 "Build Types""></a></h2><p>We now have a couple of options letting us decide how we want to build the firmware.</p><ul><li><p><code>Debug</code> - The debug environment is the default environment and does not need to be specified. It has a lot of logging so it is useful for getting everything setup for the first time and to see what is going on.</p></li><li><p><code>_release</code> - Has a lot less debugging, may also be missing some things available only in debug for debug purposes, this should be flashed when everything is working.</p></li></ul><p>Examples:<br><code>xiaosenses3</code> - This is the debug environment.<br><code>xiaosenses3_release</code> - This is the release environment for daily use.</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. A debug environnement should not be used permanently.</p></div><h2 id="board-types" tabindex="-1">Board Types <a class="header-anchor" href="#board-types" aria-label="Permalink to "Board Types""></a></h2><p>We currently support for several 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. Only switch your environment if you have another board or an environment is not working.</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> - This is the default environment. This is for the ESP32-AI-THINKER and generic alibaba/aliexpress/amazon esp cam boards.</li><li><code>esp32Cam</code> - This is for the special ESP32-CAM, it is unlikely that you will need to use this environment.</li><li><code>esp32M5Stack</code> - This is for ESP32M5Stack.</li><li><code>esp32WRover</code> - This is for the ESP32WRover.</li><li><code>esp-eye</code> - This is for the ESP-EYE (not the S3 variant).</li><li><code>wrooms3</code> - For FREENOVE-ESP32-S3 (<em>wireless mode</em>)</li><li><code>wrooms3QIO</code> - For FREENOVE-ESP32-S3 (<em>wireless mode</em>, for boards with octal flash)</li><li><code>wrooms3USB</code> - For FREENOVE-ESP32-S3 (<em>wired mode</em>)</li><li><code>wrooms3QIOUSB</code> - For FREENOVE-ESP32-S3 (<em>wired mode</em>, for boards with octal flash)</li><li><code>xiaosenses3</code> - For SeedStudio's XAIO ESP32-S3 Sense (<em>wireless mode</em>)</li><li><code>xiaosenses3_USB</code> - For SeedStudio's XAIO ESP32-S3 Sense (<em>wired mode</em>)</li></ul><p>You can change the board enviroment by changing the <code>default_envs</code> argument in <code>platformio.ini</code> to a supported board like shown:</p>',17),u=JSON.parse('{"title":"Firmware Environments","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/environments.md","filePath":"firmware_guide/environments.md","lastUpdated":1698315393000}'),d={name:"firmware_guide/environments.md"},f=Object.assign(d,{setup(l){return(c,m)=>(i(),t("div",null,[r,s(e,{options:n(o).esp_board_env},null,8,["options"])]))}});export{u as __pageData,f as default};
|
||||
@ -1 +1 @@
|
||||
import{_ as e,i as o}from"./chunks/index.1ee321cb.js";import{o as i,c as t,H as s,l as n,Q as a}from"./chunks/framework.d2e7204f.js";const r=a("",17),u=JSON.parse('{"title":"Firmware Environments","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/environments.md","filePath":"firmware_guide/environments.md","lastUpdated":1698315393000}'),d={name:"firmware_guide/environments.md"},f=Object.assign(d,{setup(l){return(c,m)=>(i(),t("div",null,[r,s(e,{options:n(o).esp_board_env},null,8,["options"])]))}});export{u as __pageData,f as default};
|
||||
import{_ as e,i as o}from"./chunks/index.27ffaee7.js";import{o as i,c as t,H as s,l as n,Q as a}from"./chunks/framework.d2e7204f.js";const r=a("",17),u=JSON.parse('{"title":"Firmware Environments","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/environments.md","filePath":"firmware_guide/environments.md","lastUpdated":1698315393000}'),d={name:"firmware_guide/environments.md"},f=Object.assign(d,{setup(l){return(c,m)=>(i(),t("div",null,[r,s(e,{options:n(o).esp_board_env},null,8,["options"])]))}});export{u as __pageData,f as default};
|
||||
@ -1 +1 @@
|
||||
import{_ as o,i as t}from"./chunks/index.1ee321cb.js";import{o as n,c as s,H as a,l as i,Q as r,k as e,a as l}from"./chunks/framework.d2e7204f.js";const h=r('<h1 class="text-[var(--font-accent)]" id="firmware-flashing-tool" tabindex="-1">Firmware Flashing Tool <a class="header-anchor" href="#firmware-flashing-tool" aria-label="Permalink to "Firmware Flashing Tool {.text-[var(--font-accent)]}""></a></h1><h2 id="what-is-this" tabindex="-1"><code>What is this?</code> <a class="header-anchor" href="#what-is-this" aria-label="Permalink to "`What is this?`""></a></h2><p>The Firmware Flashing Tool allows you to flash the firmware to your ESPs without requiring VScode. It is a GUI tool that is built using <a href="https://tauri.app/" target="_blank" rel="noreferrer">Tauri</a> and <a href="https://www.solidjs.com/" target="_blank" rel="noreferrer">SolidJS</a>.</p><p>Features include:</p><ul><li>download pre-built firmware binaries</li><li>configure firmware settings</li><li>flash firmware to ESPs</li><li>open a serial monitor to view the ESPs output for debugging</li></ul><div class="info custom-block"><p class="custom-block-title">Note</p><p>This tool is currently in beta, and we are working on adding support for OTA and configuring network settings. If you have any issues, please let us know by opening an issue on the repository.</p></div><h2 id="how-to-use" tabindex="-1"><code>How To Use</code> <a class="header-anchor" href="#how-to-use" aria-label="Permalink to "`How To Use`""></a></h2><h3 id="download-the-tool" tabindex="-1"><code>Download the tool</code> <a class="header-anchor" href="#download-the-tool" aria-label="Permalink to "`Download the tool`""></a></h3><p>You can download the tool from the <a href="https://github.com/EyeTrackVR/FirmwareFlashingTool/releases" target="_blank" rel="noreferrer">releases page</a>.</p><h3 id="flash-the-firmware" tabindex="-1"><code>Flash the firmware</code> <a class="header-anchor" href="#flash-the-firmware" aria-label="Permalink to "`Flash the firmware`""></a></h3><ol><li>Connect your ESP to your computer</li><li>Open the tool</li><li>Select the correct firmware for your board and setup.</li><li>Download the firmware</li><li>Connect to the Esp</li><li>Flash the firmware</li></ol><p>For the USB version, this is all you need to do! Well done.</p>',12),c=e("h3",{id:"wifi-setup",tabindex:"-1"},[e("code",null,"WiFi Setup"),l(),e("a",{class:"header-anchor",href:"#wifi-setup","aria-label":'Permalink to "`WiFi Setup`"'},"")],-1),d=r('<p>If you are using the WiFi version, you will need to configure the WiFi settings. After you have flashed the firmware you will need to connect to the ESPs WiFi network. The network name will be <code>EyeTrackVR</code>. The password will be <code>12345678</code>. Once you have connected to the network, you can open the Firmware Flashing tool and configure the WiFi settings. You will need to enter the SSID and password for your WiFi network. Once you have done this, you can click the <code>Save</code> button to save the settings to the ESP. The ESP will then restart and connect to your WiFi network. You can then connect to the ESPs IP address to view the web interface.</p><p>To find the ESP's IP address you can either use the serial monitor or look at your routers list of connected devices.</p><p>To open the serial monitor, you will need to connect to the esp, just as you did for flashing. Once you have connected, you can click the <code>Monitor</code> button to open the serial monitor. You should then see the ESPs output in the serial monitor.</p><h2 id="environments" tabindex="-1"><code>Environments</code> <a class="header-anchor" href="#environments" aria-label="Permalink to "`Environments`""></a></h2><p>The firmware supports multiple environments. This means that we have full support for multiple types of ESPs. Each ESP is configured to be in a different environment. If you are using a different ESP, you will need to change the environment to the correct one.</p><p>Please reference the <a href="./../firmware_guide/environments">Firmware Environments Page</a> for more information.</p>',6),g=JSON.parse('{"title":"Firmware Flashing Tool","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/flashing_tool.md","filePath":"firmware_guide/flashing_tool.md","lastUpdated":1703359454000}'),u={name:"firmware_guide/flashing_tool.md"},b=Object.assign(u,{setup(f){return(p,m)=>(n(),s("div",null,[h,a(o,{options:i(t).flashing_tool},null,8,["options"]),c,a(o,{options:i(t).flashing_tool_1},null,8,["options"]),d]))}});export{g as __pageData,b as default};
|
||||
import{_ as o,i as t}from"./chunks/index.27ffaee7.js";import{o as n,c as s,H as a,l as i,Q as r,k as e,a as l}from"./chunks/framework.d2e7204f.js";const h=r('<h1 class="text-[var(--font-accent)]" id="firmware-flashing-tool" tabindex="-1">Firmware Flashing Tool <a class="header-anchor" href="#firmware-flashing-tool" aria-label="Permalink to "Firmware Flashing Tool {.text-[var(--font-accent)]}""></a></h1><h2 id="what-is-this" tabindex="-1"><code>What is this?</code> <a class="header-anchor" href="#what-is-this" aria-label="Permalink to "`What is this?`""></a></h2><p>The Firmware Flashing Tool allows you to flash the firmware to your ESPs without requiring VScode. It is a GUI tool that is built using <a href="https://tauri.app/" target="_blank" rel="noreferrer">Tauri</a> and <a href="https://www.solidjs.com/" target="_blank" rel="noreferrer">SolidJS</a>.</p><p>Features include:</p><ul><li>download pre-built firmware binaries</li><li>configure firmware settings</li><li>flash firmware to ESPs</li><li>open a serial monitor to view the ESPs output for debugging</li></ul><div class="info custom-block"><p class="custom-block-title">Note</p><p>This tool is currently in beta, and we are working on adding support for OTA and configuring network settings. If you have any issues, please let us know by opening an issue on the repository.</p></div><h2 id="how-to-use" tabindex="-1"><code>How To Use</code> <a class="header-anchor" href="#how-to-use" aria-label="Permalink to "`How To Use`""></a></h2><h3 id="download-the-tool" tabindex="-1"><code>Download the tool</code> <a class="header-anchor" href="#download-the-tool" aria-label="Permalink to "`Download the tool`""></a></h3><p>You can download the tool from the <a href="https://github.com/EyeTrackVR/FirmwareFlashingTool/releases" target="_blank" rel="noreferrer">releases page</a>.</p><h3 id="flash-the-firmware" tabindex="-1"><code>Flash the firmware</code> <a class="header-anchor" href="#flash-the-firmware" aria-label="Permalink to "`Flash the firmware`""></a></h3><ol><li>Connect your ESP to your computer</li><li>Open the tool</li><li>Select the correct firmware for your board and setup.</li><li>Download the firmware</li><li>Connect to the Esp</li><li>Flash the firmware</li></ol><p>For the USB version, this is all you need to do! Well done.</p>',12),c=e("h3",{id:"wifi-setup",tabindex:"-1"},[e("code",null,"WiFi Setup"),l(),e("a",{class:"header-anchor",href:"#wifi-setup","aria-label":'Permalink to "`WiFi Setup`"'},"")],-1),d=r('<p>If you are using the WiFi version, you will need to configure the WiFi settings. After you have flashed the firmware you will need to connect to the ESPs WiFi network. The network name will be <code>EyeTrackVR</code>. The password will be <code>12345678</code>. Once you have connected to the network, you can open the Firmware Flashing tool and configure the WiFi settings. You will need to enter the SSID and password for your WiFi network. Once you have done this, you can click the <code>Save</code> button to save the settings to the ESP. The ESP will then restart and connect to your WiFi network. You can then connect to the ESPs IP address to view the web interface.</p><p>To find the ESP's IP address you can either use the serial monitor or look at your routers list of connected devices.</p><p>To open the serial monitor, you will need to connect to the esp, just as you did for flashing. Once you have connected, you can click the <code>Monitor</code> button to open the serial monitor. You should then see the ESPs output in the serial monitor.</p><h2 id="environments" tabindex="-1"><code>Environments</code> <a class="header-anchor" href="#environments" aria-label="Permalink to "`Environments`""></a></h2><p>The firmware supports multiple environments. This means that we have full support for multiple types of ESPs. Each ESP is configured to be in a different environment. If you are using a different ESP, you will need to change the environment to the correct one.</p><p>Please reference the <a href="./../firmware_guide/environments">Firmware Environments Page</a> for more information.</p>',6),g=JSON.parse('{"title":"Firmware Flashing Tool","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/flashing_tool.md","filePath":"firmware_guide/flashing_tool.md","lastUpdated":1703359454000}'),u={name:"firmware_guide/flashing_tool.md"},b=Object.assign(u,{setup(f){return(p,m)=>(n(),s("div",null,[h,a(o,{options:i(t).flashing_tool},null,8,["options"]),c,a(o,{options:i(t).flashing_tool_1},null,8,["options"]),d]))}});export{g as __pageData,b as default};
|
||||
@ -1 +1 @@
|
||||
import{_ as o,i as t}from"./chunks/index.1ee321cb.js";import{o as n,c as s,H as a,l as i,Q as r,k as e,a as l}from"./chunks/framework.d2e7204f.js";const h=r("",12),c=e("h3",{id:"wifi-setup",tabindex:"-1"},[e("code",null,"WiFi Setup"),l(),e("a",{class:"header-anchor",href:"#wifi-setup","aria-label":'Permalink to "`WiFi Setup`"'},"")],-1),d=r("",6),g=JSON.parse('{"title":"Firmware Flashing Tool","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/flashing_tool.md","filePath":"firmware_guide/flashing_tool.md","lastUpdated":1703359454000}'),u={name:"firmware_guide/flashing_tool.md"},b=Object.assign(u,{setup(f){return(p,m)=>(n(),s("div",null,[h,a(o,{options:i(t).flashing_tool},null,8,["options"]),c,a(o,{options:i(t).flashing_tool_1},null,8,["options"]),d]))}});export{g as __pageData,b as default};
|
||||
import{_ as o,i as t}from"./chunks/index.27ffaee7.js";import{o as n,c as s,H as a,l as i,Q as r,k as e,a as l}from"./chunks/framework.d2e7204f.js";const h=r("",12),c=e("h3",{id:"wifi-setup",tabindex:"-1"},[e("code",null,"WiFi Setup"),l(),e("a",{class:"header-anchor",href:"#wifi-setup","aria-label":'Permalink to "`WiFi Setup`"'},"")],-1),d=r("",6),g=JSON.parse('{"title":"Firmware Flashing Tool","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/flashing_tool.md","filePath":"firmware_guide/flashing_tool.md","lastUpdated":1703359454000}'),u={name:"firmware_guide/flashing_tool.md"},b=Object.assign(u,{setup(f){return(p,m)=>(n(),s("div",null,[h,a(o,{options:i(t).flashing_tool},null,8,["options"]),c,a(o,{options:i(t).flashing_tool_1},null,8,["options"]),d]))}});export{g as __pageData,b as default};
|
||||
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{_ as o,i as a}from"./chunks/index.1ee321cb.js";import{o as i,c as s,H as l,l as n,Q as r,k as e,a as t}from"./chunks/framework.d2e7204f.js";const d=r("",6),h=e("h3",{id:"install",tabindex:"-1"},[t("Install "),e("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "Install"'},"")],-1),c=e("br",null,null,-1),_=r("",5),p=r("",3),u=e("ol",null,[e("li",null,[t("Change the directory to the directory that you want the firmware to be cloned. Ex: "),e("code",null,"cd C:/")])],-1),m=e("ol",null,[e("li",null,[t("Clone the repository by entering the command: "),e("code",null,"git clone https://github.com/EyeTrackVR/OpenIris.git")])],-1),f=e("p",null,[t("For more info about cloning please refer to "),e("a",{href:"https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository",target:"_blank",rel:"noreferrer"},"this documentation")],-1),g=e("p",null,[e("em",null,[e("strong",null,"Do not download as a zip")]),t(" - please only properly clone the project, take note of the path you run the clone command in, this is where the files will be downloaded. When we open it in PlatformIO later, this path will be needed.")],-1),w=e("ol",null,[e("li",null,[t("Open the firmware in VSCode by going to PlatformIO, selecting open, then navigating to "),e("code",null,"OpenIris/ESP"),t(" folder and opening it.")])],-1),v=e("p",null,[e("em",null,[t("This is an adaptation from SlimeVR. Some Credit goes to the SlimeVR team "),e("a",{href:"https://docs.slimevr.dev/firmware/setup-and-install.html",target:"_blank",rel:"noreferrer"},"adapted from here")])],-1),P=JSON.parse('{"title":"Setting up the environment","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/setup_vscode.md","filePath":"firmware_guide/setup_vscode.md","lastUpdated":1689532703000}'),b={name:"firmware_guide/setup_vscode.md"},V=Object.assign(b,{setup(I){return(k,S)=>(i(),s("div",null,[d,l(o,{options:n(a).setup_vscode_image_one},null,8,["options"]),h,c,l(o,{options:n(a).setup_vscode_image_two},null,8,["options"]),_,l(o,{options:n(a).setup_vscode_image_three},null,8,["options"]),p,l(o,{options:n(a).setup_vscode_image_four},null,8,["options"]),u,l(o,{options:n(a).setup_vscode_image_five},null,8,["options"]),m,l(o,{options:n(a).setup_vscode_image_six},null,8,["options"]),f,g,w,l(o,{options:n(a).setup_vscode_image_seven},null,8,["options"]),v]))}});export{P as __pageData,V as default};
|
||||
import{_ as o,i as a}from"./chunks/index.27ffaee7.js";import{o as i,c as s,H as l,l as n,Q as r,k as e,a as t}from"./chunks/framework.d2e7204f.js";const d=r("",6),h=e("h3",{id:"install",tabindex:"-1"},[t("Install "),e("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "Install"'},"")],-1),c=e("br",null,null,-1),_=r("",5),p=r("",3),u=e("ol",null,[e("li",null,[t("Change the directory to the directory that you want the firmware to be cloned. Ex: "),e("code",null,"cd C:/")])],-1),m=e("ol",null,[e("li",null,[t("Clone the repository by entering the command: "),e("code",null,"git clone https://github.com/EyeTrackVR/OpenIris.git")])],-1),f=e("p",null,[t("For more info about cloning please refer to "),e("a",{href:"https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository",target:"_blank",rel:"noreferrer"},"this documentation")],-1),g=e("p",null,[e("em",null,[e("strong",null,"Do not download as a zip")]),t(" - please only properly clone the project, take note of the path you run the clone command in, this is where the files will be downloaded. When we open it in PlatformIO later, this path will be needed.")],-1),w=e("ol",null,[e("li",null,[t("Open the firmware in VSCode by going to PlatformIO, selecting open, then navigating to "),e("code",null,"OpenIris/ESP"),t(" folder and opening it.")])],-1),v=e("p",null,[e("em",null,[t("This is an adaptation from SlimeVR. Some Credit goes to the SlimeVR team "),e("a",{href:"https://docs.slimevr.dev/firmware/setup-and-install.html",target:"_blank",rel:"noreferrer"},"adapted from here")])],-1),P=JSON.parse('{"title":"Setting up the environment","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/setup_vscode.md","filePath":"firmware_guide/setup_vscode.md","lastUpdated":1689532703000}'),b={name:"firmware_guide/setup_vscode.md"},V=Object.assign(b,{setup(I){return(k,S)=>(i(),s("div",null,[d,l(o,{options:n(a).setup_vscode_image_one},null,8,["options"]),h,c,l(o,{options:n(a).setup_vscode_image_two},null,8,["options"]),_,l(o,{options:n(a).setup_vscode_image_three},null,8,["options"]),p,l(o,{options:n(a).setup_vscode_image_four},null,8,["options"]),u,l(o,{options:n(a).setup_vscode_image_five},null,8,["options"]),m,l(o,{options:n(a).setup_vscode_image_six},null,8,["options"]),f,g,w,l(o,{options:n(a).setup_vscode_image_seven},null,8,["options"]),v]))}});export{P as __pageData,V as default};
|
||||
@ -1 +1 @@
|
||||
import{_ as a,i as e}from"./chunks/index.1ee321cb.js";import{o as s,c as r,H as i,l,Q as n,k as o,a as t}from"./chunks/framework.d2e7204f.js";const d=n('<h1 class="text-[var(--font-accent)]" id="updating-platformio" tabindex="-1">Updating Platformio <a class="header-anchor" href="#updating-platformio" aria-label="Permalink to "Updating Platformio {.text-[var(--font-accent)]}""></a></h1><p>Sometimes, when building and uploading the firmware, you may run into bizarre, even-though the code is correct - platformio will refuse to build and instead will complain with some weird error.</p><p>It usually means that either PlatformIO, or ArduinoSDK got and update and that's the moment when this guide may come in handy.</p><h2 id="updating-platformio-itself" tabindex="-1">Updating PlatformIO itself <a class="header-anchor" href="#updating-platformio-itself" aria-label="Permalink to "Updating PlatformIO itself""></a></h2><p>There are two ways to update your platformio installation</p><h3 id="via-cli" tabindex="-1">Via CLI <a class="header-anchor" href="#via-cli" aria-label="Permalink to "Via CLI""></a></h3><p>You can update it easily by simply typing in one command into your terminal.</p>',7),c=n('<ol><li>Open a terminal / command prompt</li><li>Type <code>pio upgrade</code> and press enter</li><li>Wait for it to finish</li><li>Done</li></ol><h3 id="via-platformio-in-visual-studio-code" tabindex="-1">Via PlatformIO in Visual Studio Code <a class="header-anchor" href="#via-platformio-in-visual-studio-code" aria-label="Permalink to "Via PlatformIO in Visual Studio Code""></a></h3><p>You can also update it using the platformio tab in your Visual Studio Code.</p><ol><li>Open VSC</li><li>Click on that little and icon on the sidebar</li></ol>',4),p=o("ol",{start:"3"},[o("li",null,[t("A side panel will open, there will be a couple of sections, one of them called "),o("code",null,"Quick Access"),t(", open it.")])],-1),u=o("ol",{start:"4"},[o("li",null,[t("In "),o("code",null,"Quick Access"),t(" section, click on the "),o("code",null,"Miscelleneous"),t(" tab")])],-1),_=o("ol",{start:"5"},[o("li",null,[t("Then, click on the "),o("code",null,"Upgrade PlatformIO Core")])],-1),h=n('<ol start="6"><li>Wait for it to finnish and done!</li></ol><h2 id="upgrading-the-sdk" tabindex="-1">Upgrading the SDK <a class="header-anchor" href="#upgrading-the-sdk" aria-label="Permalink to "Upgrading the SDK""></a></h2><p>You'll also need to upgrade the SDK from timem to do this</p><h3 id="upgrading-the-sdk-via-vsc" tabindex="-1">Upgrading the SDK via VSC <a class="header-anchor" href="#upgrading-the-sdk-via-vsc" aria-label="Permalink to "Upgrading the SDK via VSC""></a></h3><ol><li>Follow the guide above up until clicking on the <code>Quick Access</code> section.</li><li>Instead, open the <code>PIO Home</code> and select <code>Open</code></li></ol>',5),m=o("ol",{start:"3"},[o("li",null,[t("This will open a window for PlatformIO dashboard, in there, click on a "),o("code",null,"Platforms"),t(" button on the sidebar")])],-1),f=o("ol",{start:"4"},[o("li",null,[t("Once there, you should see a couple of tabs next to the side bard, things like "),o("code",null,"Installed"),t(" or "),o("code",null,"Embedded"),t(". Click on "),o("code",null,"Updates")])],-1),g=o("ol",{start:"5"},[o("li",null,[t("Locate a platform called "),o("code",null,"Espressif 32"),t(" and click on "),o("code",null,"Update to <version>")])],-1),b=o("ol",{start:"6"},[o("li",null,"Wait until it is done and that's it!")],-1),v=JSON.parse('{"title":"Updating Platformio","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/update_platformio.md","filePath":"firmware_guide/update_platformio.md","lastUpdated":1678402493000}'),k={name:"firmware_guide/update_platformio.md"},w=Object.assign(k,{setup(P){return(S,T)=>(s(),r("div",null,[d,i(a,{options:l(e).pio_upgrade_command},null,8,["options"]),c,i(a,{options:l(e).ant_logo_platformio},null,8,["options"]),p,i(a,{options:l(e).platformio_quick_access},null,8,["options"]),u,i(a,{options:l(e).platformio_quick_access_miscellaneous},null,8,["options"]),_,i(a,{options:l(e).platformio_quick_access_upgrade_core},null,8,["options"]),h,i(a,{options:l(e).platformio_pio_home},null,8,["options"]),m,i(a,{options:l(e).platformio_pio_sidebar_platforms},null,8,["options"]),f,i(a,{options:l(e).platformio_pio_sidebar_platforms_updates},null,8,["options"]),g,i(a,{options:l(e).platformio_pio_espressif32},null,8,["options"]),b]))}});export{v as __pageData,w as default};
|
||||
import{_ as a,i as e}from"./chunks/index.27ffaee7.js";import{o as s,c as r,H as i,l,Q as n,k as o,a as t}from"./chunks/framework.d2e7204f.js";const d=n('<h1 class="text-[var(--font-accent)]" id="updating-platformio" tabindex="-1">Updating Platformio <a class="header-anchor" href="#updating-platformio" aria-label="Permalink to "Updating Platformio {.text-[var(--font-accent)]}""></a></h1><p>Sometimes, when building and uploading the firmware, you may run into bizarre, even-though the code is correct - platformio will refuse to build and instead will complain with some weird error.</p><p>It usually means that either PlatformIO, or ArduinoSDK got and update and that's the moment when this guide may come in handy.</p><h2 id="updating-platformio-itself" tabindex="-1">Updating PlatformIO itself <a class="header-anchor" href="#updating-platformio-itself" aria-label="Permalink to "Updating PlatformIO itself""></a></h2><p>There are two ways to update your platformio installation</p><h3 id="via-cli" tabindex="-1">Via CLI <a class="header-anchor" href="#via-cli" aria-label="Permalink to "Via CLI""></a></h3><p>You can update it easily by simply typing in one command into your terminal.</p>',7),c=n('<ol><li>Open a terminal / command prompt</li><li>Type <code>pio upgrade</code> and press enter</li><li>Wait for it to finish</li><li>Done</li></ol><h3 id="via-platformio-in-visual-studio-code" tabindex="-1">Via PlatformIO in Visual Studio Code <a class="header-anchor" href="#via-platformio-in-visual-studio-code" aria-label="Permalink to "Via PlatformIO in Visual Studio Code""></a></h3><p>You can also update it using the platformio tab in your Visual Studio Code.</p><ol><li>Open VSC</li><li>Click on that little and icon on the sidebar</li></ol>',4),p=o("ol",{start:"3"},[o("li",null,[t("A side panel will open, there will be a couple of sections, one of them called "),o("code",null,"Quick Access"),t(", open it.")])],-1),u=o("ol",{start:"4"},[o("li",null,[t("In "),o("code",null,"Quick Access"),t(" section, click on the "),o("code",null,"Miscelleneous"),t(" tab")])],-1),_=o("ol",{start:"5"},[o("li",null,[t("Then, click on the "),o("code",null,"Upgrade PlatformIO Core")])],-1),h=n('<ol start="6"><li>Wait for it to finnish and done!</li></ol><h2 id="upgrading-the-sdk" tabindex="-1">Upgrading the SDK <a class="header-anchor" href="#upgrading-the-sdk" aria-label="Permalink to "Upgrading the SDK""></a></h2><p>You'll also need to upgrade the SDK from timem to do this</p><h3 id="upgrading-the-sdk-via-vsc" tabindex="-1">Upgrading the SDK via VSC <a class="header-anchor" href="#upgrading-the-sdk-via-vsc" aria-label="Permalink to "Upgrading the SDK via VSC""></a></h3><ol><li>Follow the guide above up until clicking on the <code>Quick Access</code> section.</li><li>Instead, open the <code>PIO Home</code> and select <code>Open</code></li></ol>',5),m=o("ol",{start:"3"},[o("li",null,[t("This will open a window for PlatformIO dashboard, in there, click on a "),o("code",null,"Platforms"),t(" button on the sidebar")])],-1),f=o("ol",{start:"4"},[o("li",null,[t("Once there, you should see a couple of tabs next to the side bard, things like "),o("code",null,"Installed"),t(" or "),o("code",null,"Embedded"),t(". Click on "),o("code",null,"Updates")])],-1),g=o("ol",{start:"5"},[o("li",null,[t("Locate a platform called "),o("code",null,"Espressif 32"),t(" and click on "),o("code",null,"Update to <version>")])],-1),b=o("ol",{start:"6"},[o("li",null,"Wait until it is done and that's it!")],-1),v=JSON.parse('{"title":"Updating Platformio","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/update_platformio.md","filePath":"firmware_guide/update_platformio.md","lastUpdated":1678402493000}'),k={name:"firmware_guide/update_platformio.md"},w=Object.assign(k,{setup(P){return(S,T)=>(s(),r("div",null,[d,i(a,{options:l(e).pio_upgrade_command},null,8,["options"]),c,i(a,{options:l(e).ant_logo_platformio},null,8,["options"]),p,i(a,{options:l(e).platformio_quick_access},null,8,["options"]),u,i(a,{options:l(e).platformio_quick_access_miscellaneous},null,8,["options"]),_,i(a,{options:l(e).platformio_quick_access_upgrade_core},null,8,["options"]),h,i(a,{options:l(e).platformio_pio_home},null,8,["options"]),m,i(a,{options:l(e).platformio_pio_sidebar_platforms},null,8,["options"]),f,i(a,{options:l(e).platformio_pio_sidebar_platforms_updates},null,8,["options"]),g,i(a,{options:l(e).platformio_pio_espressif32},null,8,["options"]),b]))}});export{v as __pageData,w as default};
|
||||
@ -1 +1 @@
|
||||
import{_ as a,i as e}from"./chunks/index.1ee321cb.js";import{o as s,c as r,H as i,l,Q as n,k as o,a as t}from"./chunks/framework.d2e7204f.js";const d=n("",7),c=n("",4),p=o("ol",{start:"3"},[o("li",null,[t("A side panel will open, there will be a couple of sections, one of them called "),o("code",null,"Quick Access"),t(", open it.")])],-1),u=o("ol",{start:"4"},[o("li",null,[t("In "),o("code",null,"Quick Access"),t(" section, click on the "),o("code",null,"Miscelleneous"),t(" tab")])],-1),_=o("ol",{start:"5"},[o("li",null,[t("Then, click on the "),o("code",null,"Upgrade PlatformIO Core")])],-1),h=n("",5),m=o("ol",{start:"3"},[o("li",null,[t("This will open a window for PlatformIO dashboard, in there, click on a "),o("code",null,"Platforms"),t(" button on the sidebar")])],-1),f=o("ol",{start:"4"},[o("li",null,[t("Once there, you should see a couple of tabs next to the side bard, things like "),o("code",null,"Installed"),t(" or "),o("code",null,"Embedded"),t(". Click on "),o("code",null,"Updates")])],-1),g=o("ol",{start:"5"},[o("li",null,[t("Locate a platform called "),o("code",null,"Espressif 32"),t(" and click on "),o("code",null,"Update to <version>")])],-1),b=o("ol",{start:"6"},[o("li",null,"Wait until it is done and that's it!")],-1),v=JSON.parse('{"title":"Updating Platformio","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/update_platformio.md","filePath":"firmware_guide/update_platformio.md","lastUpdated":1678402493000}'),k={name:"firmware_guide/update_platformio.md"},w=Object.assign(k,{setup(P){return(S,T)=>(s(),r("div",null,[d,i(a,{options:l(e).pio_upgrade_command},null,8,["options"]),c,i(a,{options:l(e).ant_logo_platformio},null,8,["options"]),p,i(a,{options:l(e).platformio_quick_access},null,8,["options"]),u,i(a,{options:l(e).platformio_quick_access_miscellaneous},null,8,["options"]),_,i(a,{options:l(e).platformio_quick_access_upgrade_core},null,8,["options"]),h,i(a,{options:l(e).platformio_pio_home},null,8,["options"]),m,i(a,{options:l(e).platformio_pio_sidebar_platforms},null,8,["options"]),f,i(a,{options:l(e).platformio_pio_sidebar_platforms_updates},null,8,["options"]),g,i(a,{options:l(e).platformio_pio_espressif32},null,8,["options"]),b]))}});export{v as __pageData,w as default};
|
||||
import{_ as a,i as e}from"./chunks/index.27ffaee7.js";import{o as s,c as r,H as i,l,Q as n,k as o,a as t}from"./chunks/framework.d2e7204f.js";const d=n("",7),c=n("",4),p=o("ol",{start:"3"},[o("li",null,[t("A side panel will open, there will be a couple of sections, one of them called "),o("code",null,"Quick Access"),t(", open it.")])],-1),u=o("ol",{start:"4"},[o("li",null,[t("In "),o("code",null,"Quick Access"),t(" section, click on the "),o("code",null,"Miscelleneous"),t(" tab")])],-1),_=o("ol",{start:"5"},[o("li",null,[t("Then, click on the "),o("code",null,"Upgrade PlatformIO Core")])],-1),h=n("",5),m=o("ol",{start:"3"},[o("li",null,[t("This will open a window for PlatformIO dashboard, in there, click on a "),o("code",null,"Platforms"),t(" button on the sidebar")])],-1),f=o("ol",{start:"4"},[o("li",null,[t("Once there, you should see a couple of tabs next to the side bard, things like "),o("code",null,"Installed"),t(" or "),o("code",null,"Embedded"),t(". Click on "),o("code",null,"Updates")])],-1),g=o("ol",{start:"5"},[o("li",null,[t("Locate a platform called "),o("code",null,"Espressif 32"),t(" and click on "),o("code",null,"Update to <version>")])],-1),b=o("ol",{start:"6"},[o("li",null,"Wait until it is done and that's it!")],-1),v=JSON.parse('{"title":"Updating Platformio","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/update_platformio.md","filePath":"firmware_guide/update_platformio.md","lastUpdated":1678402493000}'),k={name:"firmware_guide/update_platformio.md"},w=Object.assign(k,{setup(P){return(S,T)=>(s(),r("div",null,[d,i(a,{options:l(e).pio_upgrade_command},null,8,["options"]),c,i(a,{options:l(e).ant_logo_platformio},null,8,["options"]),p,i(a,{options:l(e).platformio_quick_access},null,8,["options"]),u,i(a,{options:l(e).platformio_quick_access_miscellaneous},null,8,["options"]),_,i(a,{options:l(e).platformio_quick_access_upgrade_core},null,8,["options"]),h,i(a,{options:l(e).platformio_pio_home},null,8,["options"]),m,i(a,{options:l(e).platformio_pio_sidebar_platforms},null,8,["options"]),f,i(a,{options:l(e).platformio_pio_sidebar_platforms_updates},null,8,["options"]),g,i(a,{options:l(e).platformio_pio_espressif32},null,8,["options"]),b]))}});export{v as __pageData,w as default};
|
||||
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{_ as s,a as l}from"./chunks/index.1debbbaa.js";import{_ as a,i as r}from"./chunks/index.1ee321cb.js";import{o as u,c as d,H as o,w as p,l as t,Q as i,k as e,a as n}from"./chunks/framework.d2e7204f.js";const h=i("",17),c=e("p",null," The MB board does the resetting for you. If you're using the FTDI programmer, follow the guide linked above (the one from randomnerdtutorials) ",-1),m=i("",14),f=e("p",null," You don't have to have the trackers connected to your pc for any of these steps, just powered on and connected to the Wi-Fi. ",-1),_=e("ol",null,[e("li",null,[n("Build the firmware using your current environment, if you've switched to an OTA env in the past - repeat those steps but select the environment without the "),e("code",null,"_OTA"),n(" suffix. Next, press the checkmark button to build it without uploading.")])],-1),g=i("",3),y=e("p",null,[n("Click on the select file button, and navigate to where you cloned the project and then to the "),e("code",null,"ESP/"),n(" directory.")],-1),w=e("p",null,[n("Once there, open "),e("code",null,".pio\\build\\your-environment"),n(" like so:")],-1),b=e("blockquote",null,[e("p",null,[n("By default, windows treats files and directories with a dot in front of their name as hidden. To change that - "),e("a",{href:"https://support.microsoft.com/en-us/windows/view-hidden-files-and-folders-in-windows-97fbc472-c603-9d90-91d0-1166d1d9f4b5",target:"_blank",rel:"noreferrer"},"see here")])],-1),v=e("p",null,[n("You'll find a couple files in there, select the one named "),e("code",null,"your-environment-vVersion-feature"),n(".")],-1),k=e("p",null,"like this one:",-1),T=e("ol",{start:"5"},[e("li",null,"Press upload and wait for it to finish. Done!")],-1),S=i("",8),P=e("p",null,"This will open a list of all available environments, select the one that matches your board and has a _OTA suffix",-1),A=i("",3),C=e("p",null,"Now, press the restart button on the esp itself. watch the monitor for output like this:",-1),D=i("",5),I=e("p",null," Skip this step if the update message denotes that the config had changed. If it does so, retype your credentials in the updated files. ",-1),F=i("",6),U=JSON.parse('{"title":"Building and uploading the firmware manually","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/upload_and_update_firmware.md","filePath":"firmware_guide/upload_and_update_firmware.md","lastUpdated":1682366995000}'),B={name:"firmware_guide/upload_and_update_firmware.md"},R=Object.assign(B,{setup(O){return(E,q)=>(u(),d("div",null,[h,o(s,{options:t(l).upload_firmware_one},{content:p(()=>[c]),_:1},8,["options"]),m,o(s,{options:t(l).upload_firmware_one},{content:p(()=>[f]),_:1},8,["options"]),_,o(a,{options:t(r).upload_firmware_build_button},null,8,["options"]),g,o(a,{options:t(r).upload_firmware_webpage},null,8,["options"]),y,w,b,o(a,{options:t(r).upload_firmware_webpage_directory},null,8,["options"]),v,k,o(a,{options:t(r).upload_firmware_webpage_directory_file},null,8,["options"]),T,o(a,{options:t(r).upload_firmware_webpage_upload_finished},null,8,["options"]),S,o(a,{options:t(r).upload_firmware_select_env},null,8,["options"]),P,o(a,{options:t(r).upload_firmware_select_env_dropdown},null,8,["options"]),A,o(a,{options:t(r).upload_firmware_image_one},null,8,["options"]),C,o(a,{options:t(r).upload_firmware_image_two},null,8,["options"]),D,o(s,{options:t(l).user_warning},{content:p(()=>[I]),_:1},8,["options"]),F]))}});export{U as __pageData,R as default};
|
||||
import{_ as s,a as l}from"./chunks/index.1debbbaa.js";import{_ as a,i as r}from"./chunks/index.27ffaee7.js";import{o as u,c as d,H as o,w as p,l as t,Q as i,k as e,a as n}from"./chunks/framework.d2e7204f.js";const h=i("",17),c=e("p",null," The MB board does the resetting for you. If you're using the FTDI programmer, follow the guide linked above (the one from randomnerdtutorials) ",-1),m=i("",14),f=e("p",null," You don't have to have the trackers connected to your pc for any of these steps, just powered on and connected to the Wi-Fi. ",-1),_=e("ol",null,[e("li",null,[n("Build the firmware using your current environment, if you've switched to an OTA env in the past - repeat those steps but select the environment without the "),e("code",null,"_OTA"),n(" suffix. Next, press the checkmark button to build it without uploading.")])],-1),g=i("",3),y=e("p",null,[n("Click on the select file button, and navigate to where you cloned the project and then to the "),e("code",null,"ESP/"),n(" directory.")],-1),w=e("p",null,[n("Once there, open "),e("code",null,".pio\\build\\your-environment"),n(" like so:")],-1),b=e("blockquote",null,[e("p",null,[n("By default, windows treats files and directories with a dot in front of their name as hidden. To change that - "),e("a",{href:"https://support.microsoft.com/en-us/windows/view-hidden-files-and-folders-in-windows-97fbc472-c603-9d90-91d0-1166d1d9f4b5",target:"_blank",rel:"noreferrer"},"see here")])],-1),v=e("p",null,[n("You'll find a couple files in there, select the one named "),e("code",null,"your-environment-vVersion-feature"),n(".")],-1),k=e("p",null,"like this one:",-1),T=e("ol",{start:"5"},[e("li",null,"Press upload and wait for it to finish. Done!")],-1),S=i("",8),P=e("p",null,"This will open a list of all available environments, select the one that matches your board and has a _OTA suffix",-1),A=i("",3),C=e("p",null,"Now, press the restart button on the esp itself. watch the monitor for output like this:",-1),D=i("",5),I=e("p",null," Skip this step if the update message denotes that the config had changed. If it does so, retype your credentials in the updated files. ",-1),F=i("",6),U=JSON.parse('{"title":"Building and uploading the firmware manually","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/upload_and_update_firmware.md","filePath":"firmware_guide/upload_and_update_firmware.md","lastUpdated":1682366995000}'),B={name:"firmware_guide/upload_and_update_firmware.md"},R=Object.assign(B,{setup(O){return(E,q)=>(u(),d("div",null,[h,o(s,{options:t(l).upload_firmware_one},{content:p(()=>[c]),_:1},8,["options"]),m,o(s,{options:t(l).upload_firmware_one},{content:p(()=>[f]),_:1},8,["options"]),_,o(a,{options:t(r).upload_firmware_build_button},null,8,["options"]),g,o(a,{options:t(r).upload_firmware_webpage},null,8,["options"]),y,w,b,o(a,{options:t(r).upload_firmware_webpage_directory},null,8,["options"]),v,k,o(a,{options:t(r).upload_firmware_webpage_directory_file},null,8,["options"]),T,o(a,{options:t(r).upload_firmware_webpage_upload_finished},null,8,["options"]),S,o(a,{options:t(r).upload_firmware_select_env},null,8,["options"]),P,o(a,{options:t(r).upload_firmware_select_env_dropdown},null,8,["options"]),A,o(a,{options:t(r).upload_firmware_image_one},null,8,["options"]),C,o(a,{options:t(r).upload_firmware_image_two},null,8,["options"]),D,o(s,{options:t(l).user_warning},{content:p(()=>[I]),_:1},8,["options"]),F]))}});export{U as __pageData,R as default};
|
||||
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{_ as i,a as s}from"./chunks/index.1debbbaa.js";import{_ as l,i as d}from"./chunks/index.1ee321cb.js";import{o as c,c as h,H as a,w as n,l as r,Q as t,k as e,a as o}from"./chunks/framework.d2e7204f.js";const u=t("",4),_=e("p",null," This project is in active development. However, it is working for most users. ",-1),p=t("",5),m=e("p",null,[o(" Make sure you are using "),e("ins",{class:"text-red-400 dark:text-red-500"},"non-focused"),o(" emitters and no more than "),e("ins",{class:"font-bold"},"5 mW/sr"),o(" total power. ")],-1),f=t("",9),b=t("",3),R=JSON.parse('{"title":"EyeTrackVR","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/intro.md","filePath":"getting_started/intro.md","lastUpdated":1700510338000}'),y={name:"getting_started/intro.md"},I=Object.assign(y,{setup(g){return(k,w)=>(c(),h("div",null,[u,a(i,{options:r(s).user_warning},{content:n(()=>[_]),_:1},8,["options"]),p,a(i,{options:r(s).led_power_warning},{content:n(()=>[m]),_:1},8,["options"]),f,a(l,{options:r(d).discord_content},null,8,["options"]),b]))}});export{R as __pageData,I as default};
|
||||
import{_ as i,a as s}from"./chunks/index.1debbbaa.js";import{_ as l,i as d}from"./chunks/index.27ffaee7.js";import{o as c,c as h,H as a,w as n,l as r,Q as t,k as e,a as o}from"./chunks/framework.d2e7204f.js";const u=t("",4),_=e("p",null," This project is in active development. However, it is working for most users. ",-1),p=t("",5),m=e("p",null,[o(" Make sure you are using "),e("ins",{class:"text-red-400 dark:text-red-500"},"non-focused"),o(" emitters and no more than "),e("ins",{class:"font-bold"},"5 mW/sr"),o(" total power. ")],-1),f=t("",9),b=t("",3),R=JSON.parse('{"title":"EyeTrackVR","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/intro.md","filePath":"getting_started/intro.md","lastUpdated":1700510338000}'),y={name:"getting_started/intro.md"},I=Object.assign(y,{setup(g){return(k,w)=>(c(),h("div",null,[u,a(i,{options:r(s).user_warning},{content:n(()=>[_]),_:1},8,["options"]),p,a(i,{options:r(s).led_power_warning},{content:n(()=>[m]),_:1},8,["options"]),f,a(l,{options:r(d).discord_content},null,8,["options"]),b]))}});export{R as __pageData,I as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
assets/how_to_build_preparing_xiao.md.1a90b580.js
Normal file
1
assets/how_to_build_preparing_xiao.md.1a90b580.js
Normal file
File diff suppressed because one or more lines are too long
1
assets/how_to_build_preparing_xiao.md.1a90b580.lean.js
Normal file
1
assets/how_to_build_preparing_xiao.md.1a90b580.lean.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{_ as s,a as l}from"./chunks/index.1debbbaa.js";import{_ as o,i as r}from"./chunks/index.1ee321cb.js";import{o as d,c as h,H as t,l as a,w as c,Q as n,k as e,a as i}from"./chunks/framework.d2e7204f.js";const p=n("",7),u=n("",36),y=e("p",null,[i("Now press the "),e("code",null,"Cropping Mode"),i(" button. You should see a feed of your camera.")],-1),_=e("p",null,"Put your headset on and use an application to see your desktop. (Virtual desktop, SteamVR desktop, etc.)",-1),g=e("p",null,"You should see something like this:",-1),f=e("p",null,"Now, draw a rectangle that selects your eye.",-1),m=e("p",null,"A good example of an ROI",-1),b=e("p",null,[i("Head back over to the "),e("code",null,"Tracking mode"),i(".")],-1),k=e("p",null,[i("We will now adjust our rotation by moving the "),e("code",null,"Rotation"),i(" slider.")],-1),w=e("p",null,"From this:",-1),T=e("p",null,"To this:",-1),v=e("p",null,"Now we will adjust our threshold.",-1),P=e("p",null,"Continuing with your headset on, move the slider all the way up. start slowly backing it off until mainly only your pupil is being visualized in the threshold viewer.",-1),q=e("p",null,"Example of a threshold being too low:",-1),x=e("p",null,"Example of too high of a threshold:",-1),R=e("p",null,"Example of a good threshold:",-1),S=n("",8),C=e("p",null," To best center both eyes, look at one spot and hit the 'Recenter Eye' button for each eye without moving your eyes. ",-1),E=e("h2",{id:"see-anything-outdated-on-this-guide-let-me-know-prohurtz-0001",tabindex:"-1"},[i("See anything outdated on this guide? Let me know! "),e("code",null,"Prohurtz#0001"),i(),e("a",{class:"header-anchor",href:"#see-anything-outdated-on-this-guide-let-me-know-prohurtz-0001","aria-label":'Permalink to "See anything outdated on this guide? Let me know! `Prohurtz#0001`"'},"")],-1),j=JSON.parse('{"title":"How to install, run and adjust the EyeTrackVR app.","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/eyetrackvr_app_guide.md","filePath":"software_guide/eyetrackvr_app_guide.md","lastUpdated":1700510338000}'),V={name:"software_guide/eyetrackvr_app_guide.md"},B=Object.assign(V,{setup(I){return(A,N)=>(d(),h("div",null,[p,t(o,{options:a(r).eyetrack_vr_guide_three},null,8,["options"]),u,t(o,{options:a(r).eyetrack_vr_guide_four},null,8,["options"]),y,_,g,t(o,{options:a(r).eyetrack_vr_guide_five},null,8,["options"]),f,m,t(o,{options:a(r).eyetrack_vr_guide_six},null,8,["options"]),b,k,w,t(o,{options:a(r).eyetrack_vr_guide_seven},null,8,["options"]),T,t(o,{options:a(r).eyetrack_vr_guide_eight},null,8,["options"]),v,P,q,t(o,{options:a(r).eyetrack_vr_guide_nine},null,8,["options"]),x,t(o,{options:a(r).eyetrack_vr_guide_ten},null,8,["options"]),R,t(o,{options:a(r).eyetrack_vr_guide_eleven},null,8,["options"]),S,t(s,{options:a(l).eyetrack_vr_guide_two},{content:c(()=>[C]),_:1},8,["options"]),E]))}});export{j as __pageData,B as default};
|
||||
import{_ as s,a as l}from"./chunks/index.1debbbaa.js";import{_ as o,i as r}from"./chunks/index.27ffaee7.js";import{o as d,c as h,H as t,l as a,w as c,Q as n,k as e,a as i}from"./chunks/framework.d2e7204f.js";const p=n("",7),u=n("",36),y=e("p",null,[i("Now press the "),e("code",null,"Cropping Mode"),i(" button. You should see a feed of your camera.")],-1),_=e("p",null,"Put your headset on and use an application to see your desktop. (Virtual desktop, SteamVR desktop, etc.)",-1),g=e("p",null,"You should see something like this:",-1),f=e("p",null,"Now, draw a rectangle that selects your eye.",-1),m=e("p",null,"A good example of an ROI",-1),b=e("p",null,[i("Head back over to the "),e("code",null,"Tracking mode"),i(".")],-1),k=e("p",null,[i("We will now adjust our rotation by moving the "),e("code",null,"Rotation"),i(" slider.")],-1),w=e("p",null,"From this:",-1),T=e("p",null,"To this:",-1),v=e("p",null,"Now we will adjust our threshold.",-1),P=e("p",null,"Continuing with your headset on, move the slider all the way up. start slowly backing it off until mainly only your pupil is being visualized in the threshold viewer.",-1),q=e("p",null,"Example of a threshold being too low:",-1),x=e("p",null,"Example of too high of a threshold:",-1),R=e("p",null,"Example of a good threshold:",-1),S=n("",8),C=e("p",null," To best center both eyes, look at one spot and hit the 'Recenter Eye' button for each eye without moving your eyes. ",-1),E=e("h2",{id:"see-anything-outdated-on-this-guide-let-me-know-prohurtz-0001",tabindex:"-1"},[i("See anything outdated on this guide? Let me know! "),e("code",null,"Prohurtz#0001"),i(),e("a",{class:"header-anchor",href:"#see-anything-outdated-on-this-guide-let-me-know-prohurtz-0001","aria-label":'Permalink to "See anything outdated on this guide? Let me know! `Prohurtz#0001`"'},"")],-1),j=JSON.parse('{"title":"How to install, run and adjust the EyeTrackVR app.","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/eyetrackvr_app_guide.md","filePath":"software_guide/eyetrackvr_app_guide.md","lastUpdated":1700510338000}'),V={name:"software_guide/eyetrackvr_app_guide.md"},B=Object.assign(V,{setup(I){return(A,N)=>(d(),h("div",null,[p,t(o,{options:a(r).eyetrack_vr_guide_three},null,8,["options"]),u,t(o,{options:a(r).eyetrack_vr_guide_four},null,8,["options"]),y,_,g,t(o,{options:a(r).eyetrack_vr_guide_five},null,8,["options"]),f,m,t(o,{options:a(r).eyetrack_vr_guide_six},null,8,["options"]),b,k,w,t(o,{options:a(r).eyetrack_vr_guide_seven},null,8,["options"]),T,t(o,{options:a(r).eyetrack_vr_guide_eight},null,8,["options"]),v,P,q,t(o,{options:a(r).eyetrack_vr_guide_nine},null,8,["options"]),x,t(o,{options:a(r).eyetrack_vr_guide_ten},null,8,["options"]),R,t(o,{options:a(r).eyetrack_vr_guide_eleven},null,8,["options"]),S,t(s,{options:a(l).eyetrack_vr_guide_two},{content:c(()=>[C]),_:1},8,["options"]),E]))}});export{j as __pageData,B as default};
|
||||
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{_ as r,a as l}from"./chunks/index.1debbbaa.js";import{_ as a,i as n}from"./chunks/index.1ee321cb.js";import{o as d,c,H as t,w as h,l as o,k as e,a as i,Q as s}from"./chunks/framework.d2e7204f.js";const p=e("h1",{id:"setting-up-recalibration-and-recentering-from-vrchat",tabindex:"-1"},[i("Setting up recalibration and recentering from VRChat. "),e("a",{class:"header-anchor",href:"#setting-up-recalibration-and-recentering-from-vrchat","aria-label":'Permalink to "Setting up recalibration and recentering from VRChat."'},"")],-1),u=e("p",null,"ETVR has a mechanism that allows you to recalibrate and recenter your tracking without the need to interact with the app directly, here's how to set up your avatar to make use of OSC to trigger this from within VRC itself.",-1),_=e("p",null," Note, while this page explains how to do it from the point of view of vrchat, it can be done in Neos and CVR too, all the app listens to are two OSC messages. ",-1),m=s("",6),f=e("p",null,[i("Clicking on it will highlight the associated asset in the asset browser. Click on the highlighted file to get its content to show in the inspector panel. Now, in the inspector, click on the "),e("code",null,"Add"),i(" button to add the parameters mentioned above. Both of them need to be of type Bool, but they don't need to be synced nor saved.")],-1),g=e("p",null,"That's it for the parameters.",-1),b=e("h3",{id:"adding-buttons-to-the-menu",tabindex:"-1"},[i("Adding buttons to the menu "),e("a",{class:"header-anchor",href:"#adding-buttons-to-the-menu","aria-label":'Permalink to "Adding buttons to the menu"'},"")],-1),y=e("p",null,"Now, you will need to add actual buttons for them in your gesture menu.",-1),v=e("p",null,"The expressions section mentioned above also contains the menu, you can use that to either add the buttons there directly or create a small submenu to make it less cluttered, here we will add them directly.",-1),w=e("p",null,'Once you have the menu file opened in the inspector, click on the "add control" button. This will add an empty action slot, expand it.',-1),k=e("p",null,`You'll see a bunch of fields, like name, icon, type and parameter. Firstly, let's give it a friendly name like "recalibrate eyes" or "recenter tracking" depending on the action you want to assign to them.`,-1),C=e("p",null,"Leave the type as is - as a button, it's more convenient as it bounces back into the off state by itself.",-1),T=e("p",null,[i("Now, in the parameter section, click on the "),e("code",null,"[None]"),i(" and select one of the parameters you have created in the previous section.")],-1),x=s("",14),O=JSON.parse('{"title":"Setting up recalibration and recentering from VRChat.","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/osc_setup.md","filePath":"software_guide/osc_setup.md","lastUpdated":1700510338000}'),S={name:"software_guide/osc_setup.md"},B=Object.assign(S,{setup(V){return(R,A)=>(d(),c("div",null,[p,u,t(r,{options:o(l).parts_list_two},{content:h(()=>[_]),_:1},8,["options"]),m,t(a,{options:o(n).unity_vrc_expressions},null,8,["options"]),f,t(a,{options:o(n).unity_vrc_expressions_add_fields},null,8,["options"]),t(a,{options:o(n).unity_vrc_expressions_fields},null,8,["options"]),g,b,y,v,t(a,{options:o(n).unity_vrc_expressions},null,8,["options"]),w,t(a,{options:o(n).unity_vrc_empty_control},null,8,["options"]),k,C,T,t(a,{options:o(n).unity_vrc_control_setup},null,8,["options"]),x]))}});export{O as __pageData,B as default};
|
||||
import{_ as r,a as l}from"./chunks/index.1debbbaa.js";import{_ as a,i as n}from"./chunks/index.27ffaee7.js";import{o as d,c,H as t,w as h,l as o,k as e,a as i,Q as s}from"./chunks/framework.d2e7204f.js";const p=e("h1",{id:"setting-up-recalibration-and-recentering-from-vrchat",tabindex:"-1"},[i("Setting up recalibration and recentering from VRChat. "),e("a",{class:"header-anchor",href:"#setting-up-recalibration-and-recentering-from-vrchat","aria-label":'Permalink to "Setting up recalibration and recentering from VRChat."'},"")],-1),u=e("p",null,"ETVR has a mechanism that allows you to recalibrate and recenter your tracking without the need to interact with the app directly, here's how to set up your avatar to make use of OSC to trigger this from within VRC itself.",-1),_=e("p",null," Note, while this page explains how to do it from the point of view of vrchat, it can be done in Neos and CVR too, all the app listens to are two OSC messages. ",-1),m=s("",6),f=e("p",null,[i("Clicking on it will highlight the associated asset in the asset browser. Click on the highlighted file to get its content to show in the inspector panel. Now, in the inspector, click on the "),e("code",null,"Add"),i(" button to add the parameters mentioned above. Both of them need to be of type Bool, but they don't need to be synced nor saved.")],-1),g=e("p",null,"That's it for the parameters.",-1),b=e("h3",{id:"adding-buttons-to-the-menu",tabindex:"-1"},[i("Adding buttons to the menu "),e("a",{class:"header-anchor",href:"#adding-buttons-to-the-menu","aria-label":'Permalink to "Adding buttons to the menu"'},"")],-1),y=e("p",null,"Now, you will need to add actual buttons for them in your gesture menu.",-1),v=e("p",null,"The expressions section mentioned above also contains the menu, you can use that to either add the buttons there directly or create a small submenu to make it less cluttered, here we will add them directly.",-1),w=e("p",null,'Once you have the menu file opened in the inspector, click on the "add control" button. This will add an empty action slot, expand it.',-1),k=e("p",null,`You'll see a bunch of fields, like name, icon, type and parameter. Firstly, let's give it a friendly name like "recalibrate eyes" or "recenter tracking" depending on the action you want to assign to them.`,-1),C=e("p",null,"Leave the type as is - as a button, it's more convenient as it bounces back into the off state by itself.",-1),T=e("p",null,[i("Now, in the parameter section, click on the "),e("code",null,"[None]"),i(" and select one of the parameters you have created in the previous section.")],-1),x=s("",14),O=JSON.parse('{"title":"Setting up recalibration and recentering from VRChat.","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/osc_setup.md","filePath":"software_guide/osc_setup.md","lastUpdated":1700510338000}'),S={name:"software_guide/osc_setup.md"},B=Object.assign(S,{setup(V){return(R,A)=>(d(),c("div",null,[p,u,t(r,{options:o(l).parts_list_two},{content:h(()=>[_]),_:1},8,["options"]),m,t(a,{options:o(n).unity_vrc_expressions},null,8,["options"]),f,t(a,{options:o(n).unity_vrc_expressions_add_fields},null,8,["options"]),t(a,{options:o(n).unity_vrc_expressions_fields},null,8,["options"]),g,b,y,v,t(a,{options:o(n).unity_vrc_expressions},null,8,["options"]),w,t(a,{options:o(n).unity_vrc_empty_control},null,8,["options"]),k,C,T,t(a,{options:o(n).unity_vrc_control_setup},null,8,["options"]),x]))}});export{O as __pageData,B as default};
|
||||
File diff suppressed because one or more lines are too long
10
contact.html
10
contact.html
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
{"firmware_guide_firmware.md":"236e1ed2","dev_roadmap.md":"bf78c865","how_to_build_full_build.md":"2dab8f1f","software_guide_eyetrackvr_app_guide.md":"0a0dcc88","firmware_guide_environments.md":"89b5c0a1","misc_faq.md":"dad1935b","misc_vrc_avatar_setup.md":"750bf4f0","firmware_guide_upload_and_update_firmware.md":"2a0067cc","firmware_guide_setup_vscode.md":"c8a3be97","firmware_guide_update_platformio.md":"f1a29b9d","getting_started_intro.md":"8a821b94","software_guide_build_software.md":"88690d52","development_docs_pages.md":"5e5db5b8","firmware_guide_flashing_tool.md":"ccf9522c","development_docs_standards.md":"7693f114","how_to_build_parts_list.md":"fd6f794a","getting_started_things_to_know.md":"91643a58","contact.md":"04dce2e6","firmware_guide_mdns.md":"e7086866","archive_fox_ir_v2_build_instructions.md":"1151ffdb","development_docs_dev_docs.md":"286f759e","getting_started_led_safety.md":"3fcd5467","firmware_guide_configure_firmware.md":"ee1080ef","software_guide_osc_setup.md":"9b89363c","how_to_build_creating_your_own_mount.md":"bfa0b62a","firmware_guide_rest_api.md":"47ea22a7","index.md":"de7bfa79","about.md":"9e7cf679"}
|
||||
{"firmware_guide_flashing_tool.md":"1d8e32b5","development_docs_pages.md":"5e5db5b8","development_docs_dev_docs.md":"286f759e","dev_roadmap.md":"bf78c865","firmware_guide_configure_firmware.md":"651e7ae8","firmware_guide_environments.md":"ab2bd291","firmware_guide_mdns.md":"e7086866","getting_started_things_to_know.md":"91643a58","firmware_guide_update_platformio.md":"3f306fe5","firmware_guide_upload_and_update_firmware.md":"e263ebe5","how_to_build_creating_your_own_mount.md":"bfa0b62a","how_to_build_preparing_xiao.md":"1a90b580","contact.md":"04dce2e6","misc_vrc_avatar_setup.md":"750bf4f0","archive_fox_ir_v2_build_instructions.md":"85085392","software_guide_build_software.md":"88690d52","about.md":"8b466b44","how_to_build_full_build.md":"8febbea7","development_docs_standards.md":"7693f114","software_guide_eyetrackvr_app_guide.md":"9c38d291","getting_started_intro.md":"476b5a50","firmware_guide_rest_api.md":"47ea22a7","getting_started_led_safety.md":"3fcd5467","how_to_build_parts_list.md":"fd6f794a","software_guide_osc_setup.md":"65faf1bb","firmware_guide_setup_vscode.md":"30981f11","firmware_guide_firmware.md":"236e1ed2","index.md":"de7bfa79","misc_faq.md":"dad1935b"}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
24
how_to_build/preparing_xiao.html
Normal file
24
how_to_build/preparing_xiao.html
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user