1"use strict";(self.webpackChunkmeshtastic=self.webpackChunkmeshtastic||[]).push([["31366"],{78339(e,t,i){i.r(t),i.d(t,{metadata:()=>n,default:()=>u,frontMatter:()=>d,contentTitle:()=>c,toc:()=>h,assets:()=>l});var n=JSON.parse('{"id":"getting-started/flashing-firmware/esp32/external-serial-adapter","title":"Flashing with an External Serial Adapter","description":"Instructions for using an external serial adapter to flash Meshtastic firmware to an ESP32 chipset device.","source":"@site/versioned_docs/version-2.7/getting-started/flashing-firmware/esp32/external-serial-adapter.mdx","sourceDirName":"getting-started/flashing-firmware/esp32","slug":"/getting-started/flashing-firmware/esp32/external-serial-adapter","permalink":"/docs/2.7/getting-started/flashing-firmware/esp32/external-serial-adapter","draft":false,"unlisted":false,"tags":[],"version":"2.7","lastUpdatedBy":"rcarteraz","sidebarPosition":4,"frontMatter":{"id":"external-serial-adapter","title":"Flashing with an External Serial Adapter","sidebar_label":"External Serial Adapter (Advanced Users)","sidebar_position":4,"description":"Instructions for using an external serial adapter to flash Meshtastic firmware to an ESP32 chipset device."},"sidebar":"Sidebar","previous":{"title":"CLI Script (Advanced Users)","permalink":"/docs/2.7/getting-started/flashing-firmware/esp32/cli-script"},"next":{"title":"nRF52/RP2040/RP2350 Device","permalink":"/docs/2.7/getting-started/flashing-firmware/nrf52/"}}'),a=i(91987),r=i(67008),s=i(87622);i(42506),i(69671);var o=i(57121);let d={id:"external-serial-adapter",title:"Flashing with an External Serial Adapter",sidebar_label:"External Serial Adapter (Advanced Users)",sidebar_position:4,description:"Instructions for using an external serial adapter to flash Meshtastic firmware to an ESP32 chipset device."},c,l={},h=[{value:"Background",id:"background",level:2},{value:"USB Serial Adapters",id:"usb-serial-adapters",level:3},{value:"Connecting Adapter to the Device",id:"connecting-adapter-to-the-device",level:3},{value:"Flashing",id:"flashing",level:3},{value:"Troubleshooting",id:"troubleshooting",level:3},{value:"Connect and Configure Device",id:"connect-and-configure-device",level:2}];function p(e){let t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.admonition,{type:"info",children:(0,a.jsxs)(t.p,{children:["This information will likely only be helpful if you've already attempted to go through the prerequisites and processes outlined in ",(0,a.jsx)(t.a,{href:"/docs/2.7/getting-started/flashing-firmware/esp32/cli-script",children:"manually flashing"})]})}),"\n",(0,a.jsx)(t.admonition,{type:"caution",children:(0,a.jsx)(t.p,{children:"Make sure not to power the radio on without first attaching the antenna! You could damage the radio chip!"})}
1),"\n",(0,a.jsx)(t.h2,{id:"background",children:"Background"}),"\n",(0,a.jsxs)(t.p,{children:["Situations that may require using an external ",(0,a.jsx)(s.A,{term:"USB",definition:"The wired connection used to power a device, flash firmware onto it, and communicate with it over serial.",routePath:"/docs/terms/",children:"USB"})," to Serial Adapter:"]}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["Due to the chip shortage, recently purchased devices such as the TTGO T-Beam may come with legacy or non-standard ",(0,a.jsx)(s.A,{term:"USB",definition:"The wired connection used to power a device, flash firmware onto it, and communicate with it over serial.",routePath:"/docs/terms/",children:"USB"})," to Serial adapter chips that are unreliable in some cases."]}),"\n",(0,a.jsxs)(t.li,{children:["Certain devices might have defective ",(0,a.jsx)(s.A,{term:"USB",definition:"The wired connection used to power a device, flash firmware onto it, and communicate with it over serial.",routePath:"/docs/terms/",children:"USB"})," to Serial chip."]}),"\n",(0,a.jsxs)(t.li,{children:["Certain devices, such as the ",(0,a.jsx)(t.a,{href:"https://github.com/Hydra-Designs/project-hydra-meshtastic-pcb",children:"Hydra"})," (Meshtastic-DIY target)."]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"usb-serial-adapters",children:"USB Serial Adapters"}),"\n",(0,a.jsx)(t.p,{children:"There are many options on the marketplace. It is recommended to purchase an adapter featuring the Silicon Labs CP2102 chip, as it is a reliable industry standard."}),"\n",(0,a.jsxs)(t.p,{children:["The adapter featured in this document can be purchased from:\n",(0,a.jsx)(t.a,{href:"https://www.amazon.com/gp/product/B078W5L8W1/",children:"https://www.amazon.com/gp/product/B078W5L8W1/"})]}),"\n",(0,a.jsxs)(t.p,{children:["Plug the adapter into your computer without connecting it to any devices yet. Ensure that your computer has drivers installed for the adapter. On Windows, the correct drivers should install automatically.\n",(0,a.jsx)(t.img,{src:"https://user-images.githubusercontent.com/9000580/168445869-f73667f5-0169-46fd-ae13-15c3abad31aa.png",alt:"USB-to-serial adapter plugged into a computer"})]}),"\n",(0,a.jsx)(t.h3,{id:"connecting-adapter-to-the-device",children:"Connecting Adapter to the Device"}),"\n",(0,a.jsx)(t.admonition,{type:"info",children:(0,a.jsxs)(t.p,{children:["There are multiple ways to connect the pins of the adapter to the target device: pressing jumpers against contacts, using pogo pin jigs, etc. This tutorial features offset dupont headers soldered onto the operative ",(0,a.jsx)(s.A,{term:"GPIO",definition:"An uncommitted digital signal pin on a device.",routePath:"/docs/terms/",children:"GPIO"})," pins and connected via jumpers."]})}),"\n",(0,a.jsxs)(t.p,{children:["Disconnect your ",(0,a.jsx)(s.A,{term:"USB",definition:"The wired connection used to power a device, flash firmware onto it, and communicate with it over serial.",routePath:"/docs/terms/",children:"USB"})," to Serial Adapter from the computer before starting this process."]}),"\n",(0,a.jsxs)(t.ol,{children:["\n",(0,a.jsxs)(t.li,{children:["Connect the ",(0,a.jsx)(s.A,{term:"RX",definition:"The receiving of data over the radio link.",routePath:"/docs/terms/",children:"RX"})," pin of the adapter to the ",(0,a.jsx)(s.A,{term:"TX",definition:"The transmitting of data over the radio link.",routePath:"/docs/terms/",children:"TX"})," pin of the devices"]}),"\n",(0,a.jsxs)(t.li,{children:["Connect the ",(0,a.jsx)(s.A,{term:"TX",definition:"The transmitting of data over the radio link.",routePath:"/docs/terms/",children:"TX"})," pin of the adapter to the ",(0,a.jsx)(s.A,{term:"RX",definition:"The receiving of data over the radio link.",routePath:"/docs/terms/",children:"RX"})," pin of the device"]}),"\n",(0,a.jsx)(t.li,{children:"Connect a GND pin of the adapter to the GND pin of the device"}),"\n",(0,a.jsx)(t.li,{children:"Connect either the 5V pin of the adapter to the 5V pin of the device (illustrated) or the 3.3V pin of the adapter to the 3.3V pin of device."}),"\n",(0,a.jsxs)(t.li,{children:["Bridge ",(0,a.jsx)(s.A,{term:"GPIO",definition:"An uncommitted digital signal pin on a device.",routePath:"/docs/terms/",children:"GPIO"})," 0 to GND on the device with a jumper. (This places the device into flash mode when the device is powered up)\nExample wiring featuring a T-Beam\n",(0,a.jsx)(t.img,{src:"https://user-images.githubusercontent.com/9000580/168446438-d14f34a0-b92d-4716-87fd-e0c2927a35fd.png",alt:"Serial adapter wired to a T-Beam for flashing"})]}),"\n",(0,a.jsxs)(t.li,{children:["Connect the device to a ",(0,a.jsx)(s.A,{term:"USB",definition:"The wired connection used to power a device, flash firmware onto it, and communicate with it over serial.",routePath:"/docs/terms/",children:"USB"})," port on the computer"]}),"\n",(0,a.jsxs)(t.li,{children:["Remove the jumper bridging ",(0,a.jsx)(s.A,{term:"GPIO",definition:"An uncommitted digital signal pin on a device.",routePath:"/docs/terms/",children:"GPIO"})," 0 to GND\n",(0,a.jsx)(t.img,{src:"https://user-images.githubusercontent.com/9000580/168446974-c31d3e9c-3397-4cb1-90a4-91ef2e4d5fac.gif",alt:"enter-flash-mode"})]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"flashing",children:"Flashing"}),"\n",(0,a.jsxs)(t.p,{children:["After following the steps above, your device should be in flash mode. You can flash your device using the ",(0,a.jsx)(t.a,{href:"/docs/2.7/getting-started/flashing-firmware/esp32/cli-script",children:"manual method"})]}),"\n",(0,a.jsxs)(t.p,{children:["After flashing the device is complete, reset your device (via the RST button if available).\nIf you have the Meshtastic Python ",(0,a.jsx)(s.A,{term:"CLI",definition:"A text-based interface used for interacting with software or devices like Meshtastic.",routePath:"/docs/terms/",children:"CLI"})," installed, you can run ",(0,a.jsx)(t.code,{children:"meshtastic --noproto"})," to connect the device again over the adapter and view the serial output to confirm Meshtastic installed correctly.\n",(0,a.jsx)(t.img,{src:"https://user-images.githubusercontent.com/9000580/168447159-71a6546a-f487-4bc2-86c1-4c489b2a8975.png",alt:"Serial terminal output confirming Meshtastic installed correctly"})]}),"\n",(0,a.jsx)(t.h3,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,a.jsx)(t.p,{children:"You might receive an error for COM port permission in the manual device install scripts, this can be caused by a number of different issues."}),"\n",(0,a.jsx)(t.p,{children:"You might need to run the process as an administrator, check to ensure software like Cura isn't monopolizing COM ports, or reboot."}),"\n",(0,a.jsx)(t.h2,{id:"connect-and-configure-device",children:"Connect and Configure Device"}),"\n",(0,a.jsx)(t.p,{children:"After flashing the Meshtastic firmware to the device, you can proceed with the initial configuration."}),"\n",(0,a.jsx)("div",{className:"indexCtasBody",children:(0,a.jsx)(o.A,{className:"button button--outline button--lg cta--button",to:"/docs/2.7/getting-started/initial-config",children:(0,a.jsx)(t.p,{children:"Connect and Configure Device"})})})]})}function u(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}}}]);
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.