1"use strict";(self.webpackChunkmeshtastic=self.webpackChunkmeshtastic||[]).push([["29630"],{68424(e,t,n){n.r(t),n.d(t,{metadata:()=>o,default:()=>p,frontMatter:()=>a,contentTitle:()=>l,toc:()=>h,assets:()=>d});var o=JSON.parse('{"id":"software/mpwrd-os/provisioning","title":"mPWRD-OS provisioning","description":"Send Wi-Fi credentials to an mPWRD-OS board over Bluetooth or over a temporary hotspot during first-time setup.","source":"@site/docs/software/mpwrd-os/provisioning.mdx","sourceDirName":"software/mpwrd-os","slug":"/software/mpwrd-os/provisioning","permalink":"/docs/software/mpwrd-os/provisioning","draft":false,"unlisted":false,"editUrl":"https://github.com/meshtastic/meshtastic/edit/master/docs/software/mpwrd-os/provisioning.mdx","tags":[],"version":"current","lastUpdatedBy":"rcarteraz","sidebarPosition":2,"frontMatter":{"id":"provisioning","title":"mPWRD-OS provisioning","sidebar_label":"Provisioning","sidebar_position":2,"description":"Send Wi-Fi credentials to an mPWRD-OS board over Bluetooth or over a temporary hotspot during first-time setup."},"sidebar":"Sidebar","previous":{"title":"Board support","permalink":"/docs/software/mpwrd-os/board-support"},"next":{"title":"Rockchip flashing","permalink":"/docs/software/mpwrd-os/rockchip-flashing"}}'),r=n(91987),i=n(67008),s=n(87622);let a={id:"provisioning",title:"mPWRD-OS provisioning",sidebar_label:"Provisioning",sidebar_position:2,description:"Send Wi-Fi credentials to an mPWRD-OS board over Bluetooth or over a temporary hotspot during first-time setup."},l,d={},h=[{value:"Bluetooth provisioning",id:"bluetooth-provisioning",level:2},{value:"Web provisioning",id:"web-provisioning",level:2}];function c(e){let t={a:"a",code:"code",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["A board with no Ethernet port needs another way onto the network the first time it boots. mPWRD-OS offers two, and which one applies depends on the board. ",(0,r.jsx)(t.a,{href:"/docs/software/mpwrd-os/board-support",children:"Board support"})," lists the setup methods for each."]}),"\n",(0,r.jsx)(t.h2,{id:"bluetooth-provisioning",children:"Bluetooth provisioning"}),"\n",(0,r.jsxs)(t.p,{children:["Raspberry Pi (64-bit) boards accept Wi-Fi credentials over Bluetooth, handled on the board by ",(0,r.jsx)(t.a,{href:"https://github.com/nymea/nymea-networkmanager",children:"nymea-networkmanager"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.a,{href:"https://flasher.meshtastic.org/",children:"Meshtastic Flasher"})," sends the credentials. Its Bluetooth entry appears only in a browser that supports Web Bluetooth, which in practice means a Chromium-based browser."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"Flash the image to your board and power it on."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Open the ",(0,r.jsx)(t.a,{href:"https://flasher.meshtastic.org/",children:"Meshtastic Flasher"})," and select ",(0,r.jsx)(t.strong,{children:"mPWRD-OS Tools"}),", then ",(0,r.jsxs)(t.strong,{children:[(0,r.jsx)(s.A,{term:"BLE",definition:"The default wireless connection between a node and a phone client.",routePath:"/docs/terms/",children:"BLE"})," WiFi Provisioning"]}),"."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"The Flasher's mPWRD-OS Wi-Fi provisioning dialog, headed with a Bluetooth icon",src:n(61173).A+"",width:"332",height:"75"})}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Select ",(0,r.jsxs)(t.strong,{children:["Connect to ",(0,r.jsx)(s.A,{term:"BLE",definition:"The default wireless connection between a node and a phone client.",routePath:"/docs/terms/",children:"BLE"})," Device"]})," and choose your board."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Select ",(0,r.jsx)(t.strong,{children:"Scan for Networks"}),", choose your network under ",(0,r.jsx)(t.strong,{children:"Available Networks"}),", and enter its ",(0,r.jsx)(t.strong,{children:"Password"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Select ",(0,r.jsx)(t.strong,{children:"Apply"}
1),". The Flasher reports when the credentials have been applied."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"Connect to the board over SSH."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"web-provisioning",children:"Web provisioning"}),"\n",(0,r.jsxs)(t.p,{children:["The Luckfox Lyra Zero W and the Luckfox Lyra Ultra W start a temporary hotspot instead, served by ",(0,r.jsx)(t.a,{href:"https://github.com/Grippy98/armbian-web-config",children:"armbian-web-config"}),"."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"Flash the image to your board and power it on."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Connect a Wi-Fi capable device to the ",(0,r.jsx)(t.code,{children:"armbiansetup"})," network, using the password ",(0,r.jsx)(t.code,{children:"armbian1234"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Open ",(0,r.jsx)(t.code,{children:"http://10.42.0.1:8080"}),". The Armbian Setup wizard opens on its first step."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Armbian Setup wizard on step one, Administrator Setup, with root password fields and a progress bar reading Root, User, Locale, Network, Advanced",src:n(8940).A+"",width:"1280",height:"720"})}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Work through the wizard's five steps: ",(0,r.jsx)(t.strong,{children:"Root"}),", ",(0,r.jsx)(t.strong,{children:"User"}),", ",(0,r.jsx)(t.strong,{children:"Locale"}),", ",(0,r.jsx)(t.strong,{children:"Network"}),", and ",(0,r.jsx)(t.strong,{children:"Advanced"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"Connect to the board over SSH."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"The wizard sets the root password at its first step, so the default credentials do not apply to a board set up this way."}),"\n",(0,r.jsx)(t.p,{children:"The hotspot name and password are the same on every board, so anyone in range can open the wizard on a board that has not been set up. Whoever reaches the first step sets the root password, so power on the board only where you control physical access. Do not leave it unattended before setup is complete."})]})}function p(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},8940(e,t,n){n.d(t,{A:()=>o});let o=n.p+"assets/images/armbian-setup-1bf2b678232c7458b4219f2022b2bfd7.webp"},61173(e,t,n){n.d(t,{A:()=>o});let o="data:image/webp;base64,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"},67008(e,t,n){n.d(t,{R:()=>s,x:()=>a});var o=n(71763);let r={},i=o.createContext(r);function s(e){let t=o.useContext(i);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(i.Provider,{value:t},e.children)}},87622(e,t,n){n.d(t,{A:()=>s});var o=n(71763),r=n(37773),i=n(91987);function s({term:e,definition:t,abbreviation:n,routePath:a="/glossary",children:l}){let[d,h]=(0,o.useState)(!1),[c,p]=(0,o.useState)(null),[m,u]=(0,o.useState)("top"),g=(0,o.useRef)(null),f=(0,o.useRef)(null),x=(0,o.useCallback)(()=>{let e;if(!g.current||!f.current)return;let t=g.current.getBoundingClientRect(),n=f.current.getBoundingClientRect(),o=window.innerWidth,r=window.innerHeight,i=document.querySelector(".navbar"),s=i?i.getBoundingClientRect().bottom:0,a=t.to
1p-s>=n.height+8,l=r-t.bottom>=n.height+8,d=a||!l?"top":"bottom";e="top"===d?t.top-n.height-8:t.bottom+8;let h=t.left+t.width/2-n.width/2;h=Math.max(8,Math.min(h,o-n.width-8)),u(d),p({top:Math.max(s+4,e),left:h})},[]);(0,o.useEffect)(()=>{let e;if(!d)return;let t=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>{x()})}),n=()=>x(),o=()=>x();return window.addEventListener("scroll",n,!0),window.addEventListener("resize",o),()=>{cancelAnimationFrame(t),e&&cancelAnimationFrame(e),window.removeEventListener("scroll",n,!0),window.removeEventListener("resize",o)}},[d,x]);let w=(0,r.P_)("docusaurus-plugin-glossary"),b=(0,o.useMemo)(()=>{if(t&&"string"==typeof t&&t.length>0)return t;let n=(w&&w.terms||[]).find(t=>"string"==typeof t.term&&t.term.toLowerCase()===String(e).toLowerCase());return n&&n.definition?n.definition:void 0},[t,w,e]),j=(0,o.useMemo)(()=>{let t=n;if(!t){let n=(w&&w.terms||[]).find(t=>"string"==typeof t.term&&t.term.toLowerCase()===String(e).toLowerCase());t=n&&n.abbreviation}if("string"!=typeof t)return;let o=t.trim();if(o&&o.toLowerCase()!==String(e).toLowerCase())return o},[n,w,e]),v=(0,o.useMemo)(()=>a&&"string"==typeof a&&a.length>0?a:w&&w.routePath||"/glossary",[w,a]),A=l||e,B=e.toLowerCase().replace(/\s+/g,"-");return(0,i.jsxs)("span",{ref:g,className:"glossaryTermWrapper_ud7W",children:[(0,i.jsx)("a",{href:`${v}#${B}`,className:"glossaryTerm_x2nJ",onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),onFocus:()=>h(!0),onBlur:()=>h(!1),"aria-describedby":`tooltip-${B}`,children:A}),b&&(0,i.jsxs)("span",{ref:f,id:`tooltip-${B}`,className:`tooltip_WjgA ${d?"tooltipVisible_AjfD":""} ${"top"===m?"tooltipTop_uMN4":"tooltipBottom_U9P5"} tooltipFloating_nLk7`,role:"tooltip",style:d&&c?{top:`${c.top}px`,left:`${c.left}px`}:void 0,children:[(0,i.jsx)("strong",{children:e}),j?` (${j}). `:"",b]})]})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.