Files
Meshtastic-Android/main/ca-rES/user/connections.html
T

2 lines
42 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <link rel="stylesheet" href="/Meshtastic-Android/main/assets/css/just-the-docs-default.css"> <link rel="stylesheet" href="/Meshtastic-Android/main/assets/css/just-the-docs-head-nav.css" id="jtd-head-nav-stylesheet"> <style id="jtd-nav-activation"> .site-nav ul li a { background-image: none; } </style> <script src="/Meshtastic-Android/main/assets/js/vendor/lunr.min.js"></script> <script src="/Meshtastic-Android/main/assets/js/just-the-docs.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Begin Jekyll SEO tag v2.9.0 --> <title>Connections | Meshtastic Android</title> <meta name="generator" content="Jekyll v4.4.1" /> <meta property="og:title" content="Connections" /> <meta property="og:locale" content="ca_rES" /> <meta name="description" content="Connect your phone or desktop to a Meshtastic radio via Bluetooth, USB, or TCP/IP." /> <meta name="twitter:description" property="og:description" content="Connect your phone or desktop to a Meshtastic radio via Bluetooth, USB, or TCP/IP." /> <link rel="canonical" href="/Meshtastic-Android/main/ca-rES/user/connections.html" /> <meta property="og:url" content="/Meshtastic-Android/main/ca-rES/user/connections.html" /> <meta property="og:site_name" content="Meshtastic Android" /> <meta property="og:type" content="website" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:title" content="Connections" /> <script type="application/ld+json"> {"@context":"https://schema.org","@type":"WebPage","description":"Connect your phone or desktop to a Meshtastic radio via Bluetooth, USB, or TCP/IP.","headline":"Connections","url":"/Meshtastic-Android/main/ca-rES/user/connections.html"}</script> <!-- End Jekyll SEO tag --> <!-- Inter font from Google Fonts --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"> <style> /* M3-inspired typography */ :root { --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; --font-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', ui-monospace, monospace; } body, .site-title, .search-input { font-family: var(--font-sans) !important; } code, pre, .highlight { font-family: var(--font-mono) !important; font-size: 0.875em; } /* M3 surface elevation & rounding */ .main-content table { border-radius: 12px; overflow: hidden; } .main-content blockquote { border-radius: 12px; padding: 1rem 1.25rem; border-left-width: 4px; } .main-content pre { border-radius: 12px; } .main-content code { border-radius: 6px; padding: 0.15em 0.4em; } /* Smooth transitions for theme switching */ body, .side-bar, .main, .main-content, .site-header, .search-input, .search-results, a { transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease; } /* Theme toggle button styling */ .theme-toggle { background: none; border: 1px solid var(--border-color, #D5D6E0); border-radius: 20px; padding: 6px 12px; cursor: pointer; font-family: var(--font-sans); font-size: 0.75rem; font-weight: 500; display: inline-flex; align-items: center; gap: 6px; color: inherit; margin: 0 auto; transition: background-color 0.2s ease, border-color 0.2s ease; } .theme-toggle:hover { background-color: rgba(128, 128, 128, 0.1); } .theme-toggle-wrap { text-align: center; padding: 12px 0 4px; } /* Heading weight refinement */ h1, h2, h3, h4, h5, h6 { font-weight: 600; letter-spacing: -0.01em; } h1 { font-weight: 700; letter-spacing: -0.02em; } /* Smooth anchor scroll */ html { scroll-behavior: smooth; } /* Language switcher */ .language-switcher { display: inline-block; position: relative; margin-left: 8px; } .language-switcher-btn { cursor: pointer; font-size: 0.8rem; font-weight: 500; font-family: var(--font-sans); list-style: none; padding: 4px 10px; border: 1px solid var(--border-color, #D5D6E0); border-radius: 16px; display: inline-flex; align-items: center; gap: 4px; transition: background-color 0.2s ease; } .language-switcher-btn:hover { background-color: rgba(128, 128, 128, 0.1); } .language-switcher[open] .language-switcher-list { display: block; } .language-switcher-list { position: absolute; top: 100%; right: 0; left: auto; z-index: 100; list-style: none; padding: 8px 0; margin: 4px 0 0; min-width: 140px; background: var(--body-background-color, #fff); border: 1px solid var(--border-color, #D5D6E0); border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); } .language-switcher-list li { padding: 0; } .language-switcher-list a { display: block; padding: 6px 16px; text-decoration: none; font-size: 0.85rem; color: inherit; } .language-switcher-list a:hover { background-color: rgba(103, 234, 148, 0.15); } /* Version switcher (shares the language-switcher dropdown styling) */ .version-switcher { margin-left: 8px; } .version-switcher[hidden] { display: none; } /* Link out to the upstream meshtastic.org docs */ .upstream-docs-link { display: inline-flex; align-items: center; margin-left: 8px; padding: 4px 10px; border: 1px solid var(--border-color, #D5D6E0); border-radius: 16px; font-size: 0.8rem; font-weight: 500; font-family: var(--font-sans); text-decoration: none; color: inherit; transition: background-color 0.2s ease; } .upstream-docs-link:hover { background-color: rgba(128, 128, 128, 0.1); } </style> <script> // Respect OS preference on first visit, then remember user choice (function() { var stored = localStorage.getItem('jtd-theme'); if (stored) return; // will be applied by jtd.setTheme below if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { localStorage.setItem('jtd-theme', 'meshtastic-dark'); } })(); </script> </head> <body> <a class="skip-to-main" href="#main-content">Skip to main content</a> <svg xmlns="http://www.w3.org/2000/svg" class="d-none"> <symbol id="svg-link" viewBox="0 0 24 24"> <title>Link</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"> <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path> </svg> </symbol> <symbol id="svg-menu" viewBox="0 0 24 24"> <title>Menu</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"> <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line> </svg> </symbol> <symbol id="svg-arrow-right" viewBox="0 0 24 24"> <title>Expand</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"> <polyline points="9 18 15 12 9 6"></polyline> </svg> </symbol> <!-- Feather. MIT License: https://github.com/feathericons/feather/blob/master/LICENSE --> <symbol id="svg-external-link" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link"> <title id="svg-external-link-title">(external link)</title> <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line> </symbol> <symbol id="svg-doc" viewBox="0 0 24 24"> <title>Document</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file"> <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline> </svg> </symbol> <symbol id="svg-search" viewBox="0 0 24 24"> <title>Search</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"> <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg> </symbol> <!-- Bootstrap Icons. MIT License: https://github.com/twbs/icons/blob/main/LICENSE.md --> <symbol id="svg-copy" viewBox="0 0 16 16"> <title>Copy</title> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16"> <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/> <path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/> </svg> </symbol> <symbol id="svg-copied" viewBox="0 0 16 16"> <title>Copied</title> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard-check-fill" viewBox="0 0 16 16"> <path d="M6.5 0A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3Zm3 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3Z"/> <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1A2.5 2.5 0 0 1 9.5 5h-3A2.5 2.5 0 0 1 4 2.5v-1Zm6.854 7.354-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 0 1 .708-.708L7.5 10.793l2.646-2.647a.5.5 0 0 1 .708.708Z"/> </svg> </symbol> </svg> <header class="side-bar"> <div class="site-header"> <a href="/Meshtastic-Android/main/" class="site-title lh-tight"> Meshtastic Android </a> <button id="menu-button" class="site-button btn-reset" aria-label="Menu" aria-expanded="false"> <svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg> </button> </div> <nav aria-label="Main" id="site-nav" class="site-nav"> <ul class="nav-list"><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/" class="nav-list-link">Home</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/" class="nav-list-link">Home</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="User Guide submenu" aria-expanded="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/Meshtastic-Android/main/en/user.html" class="nav-list-link">User Guide</a><ul class="nav-list"><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/onboarding.html" class="nav-list-link">Getting Started</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/onboarding.html" class="nav-list-link">Getting Started</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/connections.html" class="nav-list-link">Connexions</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/connections.html" class="nav-list-link">Connections</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/messages-and-channels.html" class="nav-list-link">Messages & Channels</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/messages-and-channels.html" class="nav-list-link">Messages & Channels</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/nodes.html" class="nav-list-link">Nœuds</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/nodes.html" class="nav-list-link">Nodes</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/node-metrics.html" class="nav-list-link">Node Metrics</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/node-metrics.html" class="nav-list-link">Node Metrics</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/map-and-waypoints.html" class="nav-list-link">Map & Waypoints</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/map-and-waypoints.html" class="nav-list-link">Map & Waypoints</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/settings-radio-user.html" class="nav-list-link">Settings — Radio & User</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/settings-radio-user.html" class="nav-list-link">Settings — Radio & User</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/settings-module-admin.html" class="nav-list-link">Settings — Modules & Admin</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/settings-module-admin.html" class="nav-list-link">Settings — Modules & Admin</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/tak.html" class="nav-list-link">TAK Integration</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/tak.html" class="nav-list-link">TAK Integration</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/mqtt.html" class="nav-list-link">MQTT</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/mqtt.html" class="nav-list-link">MQTT</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/discovery.html" class="nav-list-link">Découverte de maille locale</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/discovery.html" class="nav-list-link">Local Mesh Discovery</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/firmware.html" class="nav-list-link">Firmware Updates</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/firmware.html" class="nav-list-link">Firmware Updates</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/desktop.html" class="nav-list-link">Desktop App</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/desktop.html" class="nav-list-link">Desktop App</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/signal-meter.html" class="nav-list-link">How the Meshtastic Signal Meter Works</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/signal-meter.html" class="nav-list-link">How the Meshtastic Signal Meter Works</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/units-and-locale.html" class="nav-list-link">Units, Measurement & Locale</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/units-and-locale.html" class="nav-list-link">Units, Measurement & Locale</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/translate.html" class="nav-list-link">Translate the App</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/translate.html" class="nav-list-link">Translate the App</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/app-functions.html" class="nav-list-link">App Functions</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/widget.html" class="nav-list-link">Home Screen Widget</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/help-and-docs.html" class="nav-list-link">Help & In-App Docs</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/debug-logs.html" class="nav-list-link">Debug Logs</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Developer Guide submenu" aria-expanded="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/Meshtastic-Android/main/en/developer.html" class="nav-list-link">Developer Guide</a><ul class="nav-list"><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/architecture.html" class="nav-list-link">Architecture</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/codebase.html" class="nav-list-link">Codebase</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/adding-a-feature-module.html" class="nav-list-link">Adding a Feature Module</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/navigation-and-deep-links.html" class="nav-list-link">Navigation & Deep Links</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/transport.html" class="nav-list-link">Transport</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/persistence.html" class="nav-list-link">Persistence</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/testing.html" class="nav-list-link">Testing</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/contributing.html" class="nav-list-link">Contributing</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/measurement.html" class="nav-list-link">Measurement & Formatting</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/test-builds.html" class="nav-list-link">Test Builds & Obtainium</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/documentation-style.html" class="nav-list-link">Documentation Style</a></li></ul></li></ul> </nav> <div class="d-md-block d-sm-none"> <div class="site-footer"> This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll. </div> </div> </header> <div class="main" id="top"> <div id="main-header" class="main-header"> <div class="search" role="search"> <div class="search-input-wrap"> <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search Meshtastic Android" autocomplete="off"> <label for="search-input" class="search-label"> <span class="sr-only">Search Meshtastic Android</span> <svg viewBox="0 0 24 24" class="search-icon" aria-hidden="true"><use xlink:href="#svg-search"></use></svg> </label> </div> <div id="search-results" class="search-results"></div> </div> <div class="theme-toggle-wrap"> <button class="theme-toggle" id="theme-toggle" aria-label="Toggle dark mode" title="Toggle light/dark theme" onclick="toggleMeshtasticTheme()"> <span id="theme-icon">🌙</span> <span id="theme-label">Dark</span> </button> <details class="language-switcher version-switcher" id="version-switcher" aria-label="Documentation version" hidden> <summary class="language-switcher-btn" title="Switch documentation version"> 🏷️ <span id="version-current"></span> </summary> <ul class="language-switcher-list" id="version-switcher-list"></ul> </details> <script> (function() { var baseurl = '/Meshtastic-Android/main'; var root = baseurl; var channel = 'latest'; // /main/, /vX.Y.Z/ or a prerelease snapshot like /v2.8.0-open.1/. var match = baseurl.match(/^(.*)\/(main|v\d+\.\d+\.\d+(?:-(?:open|closed)\.\d+)?)$/); if (match) { root = match[1]; channel = match[2]; } fetch(root + '/versions.json') .then(function(res) { return res.ok ? res.json() : Promise.reject(); }) .then(function(data) { var switcher = document.getElementById('version-switcher'); var list = document.getElementById('version-switcher-list'); var current = document.getElementById('version-current'); if (!switcher || !list || !current) return; // Keep the reader on the same page when switching channels; a page // that doesn't exist in the target version lands on the 404 page. var relativePath = location.pathname.slice(baseurl.length) + location.hash; var entries = []; if (data.latest) { entries.push({ id: 'latest', label: 'latest (v' + data.latest + ')', base: root }); } // Prereleases are documented ahead of general availability, so the track // is always spelled out — a reader must not mistake a closed-testing // snapshot for a shipped release. (data.prereleases || []).forEach(function(p) { entries.push({ id: p.dir, label: p.dir.replace(/^v/, 'v') + ' — ' + p.track + ' testing', base: root + '/' + p.dir }); }); if (data.hasMain) { entries.push({ id: 'main', label: 'main (unreleased snapshot)', base: root + '/main' }); } (data.versions || []).forEach(function(v) { entries.push({ id: 'v' + v, label: 'v' + v, base: root + '/v' + v }); }); var currentEntry = entries.filter(function(e) { return e.id === channel; })[0]; current.textContent = currentEntry ? currentEntry.label : channel; var others = entries.filter(function(e) { return e.id !== channel; }); if (others.length === 0) return; others.forEach(function(e) { var li = document.createElement('li'); var a = document.createElement('a'); a.href = e.base + relativePath; a.textContent = e.label; li.appendChild(a); list.appendChild(li); }); switcher.hidden = false; }) .catch(function() { /* no manifest (local build) — leave switcher hidden */ }); })(); </script> <details class="language-switcher" aria-label="Language options"> <summary class="language-switcher-btn" title="View in another language"> 🌐 <span class="lang-current">Català</span> </summary> <ul class="language-switcher-list"> <li><a href="/Meshtastic-Android/main/en/user/connections" lang="en">English</a></li> <li><a href="/Meshtastic-Android/main/ar-rSA/user/connections" lang="ar-rSA" dir="rtl">العربية</a></li> <li><a href="/Meshtastic-Android/main/be-rBY/user/connections" lang="be-rBY" >Беларуская</a></li> <li><a href="/Meshtastic-Android/main/bg-rBG/user/connections" lang="bg-rBG" >Български</a></li> <li><a href="/Meshtastic-Android/main/cs-rCZ/user/connections" lang="cs-rCZ" >Čeština</a></li> <li><a href="/Meshtastic-Android/main/de-rDE/user/connections" lang="de-rDE" >Deutsch</a></li> <li><a href="/Meshtastic-Android/main/el-rGR/user/connections" lang="el-rGR" >Ελληνικά</a></li> <li><a href="/Meshtastic-Android/main/es-rES/user/connections" lang="es-rES" >Español</a></li> <li><a href="/Meshtastic-Android/main/et-rEE/user/connections" lang="et-rEE" >Eesti</a></li> <li><a href="/Meshtastic-Android/main/fi-rFI/user/connections" lang="fi-rFI" >Suomi</a></li> <li><a href="/Meshtastic-Android/main/fr-rFR/user/connections" lang="fr-rFR" >Français</a></li> <li><a href="/Meshtastic-Android/main/ga-rIE/user/connections" lang="ga-rIE" >Gaeilge</a></li> <li><a href="/Meshtastic-Android/main/gl-rES/user/connections" lang="gl-rES" >Galego</a></li> <li><a href="/Meshtastic-Android/main/iw-rIL/user/connections" lang="iw-rIL" dir="rtl">עברית</a></li> <li><a href="/Meshtastic-Android/main/hr-rHR/user/connections" lang="hr-rHR" >Hrvatski</a></li> <li><a href="/Meshtastic-Android/main/ht-rHT/user/connections" lang="ht-rHT" >Kreyòl Ayisyen</a></li> <li><a href="/Meshtastic-Android/main/hu-rHU/user/connections" lang="hu-rHU" >Magyar</a></li> <li><a href="/Meshtastic-Android/main/is-rIS/user/connections" lang="is-rIS" >Íslenska</a></li> <li><a href="/Meshtastic-Android/main/it-rIT/user/connections" lang="it-rIT" >Italiano</a></li> <li><a href="/Meshtastic-Android/main/ja-rJP/user/connections" lang="ja-rJP" >日本語</a></li> <li><a href="/Meshtastic-Android/main/ko-rKR/user/connections" lang="ko-rKR" >한국어</a></li> <li><a href="/Meshtastic-Android/main/lt-rLT/user/connections" lang="lt-rLT" >Lietuvių</a></li> <li><a href="/Meshtastic-Android/main/nl-rNL/user/connections" lang="nl-rNL" >Nederlands</a></li> <li><a href="/Meshtastic-Android/main/no-rNO/user/connections" lang="no-rNO" >Norsk</a></li> <li><a href="/Meshtastic-Android/main/pl-rPL/user/connections" lang="pl-rPL" >Polski</a></li> <li><a href="/Meshtastic-Android/main/pt-rBR/user/connections" lang="pt-rBR" >Português (Brasil)</a></li> <li><a href="/Meshtastic-Android/main/pt-rPT/user/connections" lang="pt-rPT" >Português</a></li> <li><a href="/Meshtastic-Android/main/ro-rRO/user/connections" lang="ro-rRO" >Română</a></li> <li><a href="/Meshtastic-Android/main/ru-rRU/user/connections" lang="ru-rRU" >Русский</a></li> <li><a href="/Meshtastic-Android/main/sk-rSK/user/connections" lang="sk-rSK" >Slovenčina</a></li> <li><a href="/Meshtastic-Android/main/sl-rSI/user/connections" lang="sl-rSI" >Slovenščina</a></li> <li><a href="/Meshtastic-Android/main/sq-rAL/user/connections" lang="sq-rAL" >Shqip</a></li> <li><a href="/Meshtastic-Android/main/sr-rLatn/user/connections" lang="sr-rLatn" >Српски (Latinica)</a></li> <li><a href="/Meshtastic-Android/main/srp/user/connections" lang="srp" >Српски (Ћирилица)</a></li> <li><a href="/Meshtastic-Android/main/sv-rSE/user/connections" lang="sv-rSE" >Svenska</a></li> <li><a href="/Meshtastic-Android/main/tr-rTR/user/connections" lang="tr-rTR" >Türkçe</a></li> <li><a href="/Meshtastic-Android/main/uk-rUA/user/connections" lang="uk-rUA" >Українська</a></li> <li><a href="/Meshtastic-Android/main/zh-rCN/user/connections" lang="zh-rCN" >中文 (简体)</a></li> <li><a href="/Meshtastic-Android/main/zh-rTW/user/connections" lang="zh-rTW" >中文 (繁體)</a></li> </ul> </details> <a class="upstream-docs-link" href="https://meshtastic.org/docs/" title="Official Meshtastic documentation (meshtastic.org)">Meshtastic Docs ↗</a> </div> <script> function toggleMeshtasticTheme() { var current = localStorage.getItem('jtd-theme') || 'meshtastic'; var next = (current === 'meshtastic-dark') ? 'meshtastic' : 'meshtastic-dark'; if (typeof jtd !== 'undefined' && typeof jtd.setTheme === 'function') { jtd.setTheme(next); } localStorage.setItem('jtd-theme', next); var icon = document.getElementById('theme-icon'); var label = document.getElementById('theme-label'); if (icon && label) { icon.textContent = (next === 'meshtastic-dark') ? '☀️' : '🌙'; label.textContent = (next === 'meshtastic-dark') ? 'Light' : 'Dark'; } } // Apply stored/OS theme on page load (function() { var theme = localStorage.getItem('jtd-theme') || 'meshtastic'; // Sync toggle label immediately var icon = document.getElementById('theme-icon'); var label = document.getElementById('theme-label'); if (icon && label) { icon.textContent = (theme === 'meshtastic-dark') ? '☀️' : '🌙'; label.textContent = (theme === 'meshtastic-dark') ? 'Light' : 'Dark'; } // Apply theme once jtd is ready function tryApply() { if (typeof jtd !== 'undefined' && typeof jtd.setTheme === 'function') { jtd.setTheme(theme); } else { setTimeout(tryApply, 50); } } tryApply(); })(); </script> </div> <div class="main-content-wrap"> <nav aria-label="Breadcrumb" class="breadcrumb-nav"> <ol class="breadcrumb-nav-list"> <li class="breadcrumb-nav-list-item"><a href="/Meshtastic-Android/main/en/user.html">User Guide</a></li> <li class="breadcrumb-nav-list-item"><span>Connections</span></li> </ol> </nav> <div id="main-content" class="main-content"> <main> <div class="locale-page-banner" > <p class="locale-notice"> 🌐 <strong>Català</strong> — Community translation <a href="/Meshtastic-Android/main/en/user/connections">View in English</a> </p> </div> <div lang="ca-rES"> <h1 id="connections"> <a href="#connections" class="anchor-heading" aria-labelledby="connections"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Connections </h1> <p>Meshtastic supports multiple transport methods to communicate between your phone or desktop and a radio.</p> <h2 id="bluetooth-ble"> <a href="#bluetooth-ble" class="anchor-heading" aria-labelledby="bluetooth-ble"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Bluetooth (BLE) </h2> <p>Bluetooth Low Energy is the default and most common connection method on Android.</p> <h3 id="pairing-a-radio"> <a href="#pairing-a-radio" class="anchor-heading" aria-labelledby="pairing-a-radio"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Pairing a Radio </h3> <ol> <li>Power on your radio. Most radios advertise over Bluetooth as soon as they boot — there is no pairing mode to enter. Radios with a color touchscreen ship with Bluetooth switched off, so turn it on from the radio’s own on-screen menu first.</li> <li>Open the app and navigate to the <strong>Connect</strong> tab.</li> <li>Tap <strong>Scan for Bluetooth devices</strong> — nearby Meshtastic radios will appear.</li> <li>Select your radio from the list.</li> <li>Android asks you to pair. If your radio has a screen, it shows a six-digit PIN — type that into the Android dialog. If your radio has no screen, the PIN is <code class="language-plaintext highlighter-rouge">123456</code>.</li> </ol> <p><img src="../../assets/screenshots/connections_bluetooth_scan.png" alt="Scanning for Bluetooth devices, with a discovered radio in the list" /></p> <p>You can change the pairing method, or turn Bluetooth on for a radio that ships with it off, under <strong>Settings → Device configuration → Bluetooth</strong> — see <a href="settings-radio-user">Settings — Radio &amp; User</a>. For more information, see <a href="https://meshtastic.org/docs/configuration/radio/bluetooth">Bluetooth configuration</a> on meshtastic.org.</p> <p>Use the transport selector — a segmented button row below the connection card — to switch between the Bluetooth, Network, and USB transports (one is active at a time):</p> <p><img src="../../assets/screenshots/connections_transport_filters.png" alt="Connections screen with the transport selector showing Bluetooth, Network, and USB" /></p> <blockquote> <p>💡 <strong>Tip:</strong> If your radio doesn’t appear, check that it isn’t already connected to another phone, or out of range.</p> </blockquote> <p>The screen names anything on the app’s side that is blocking a scan, with the fix attached:</p> <div class="table-wrapper"><table> <thead> <tr> <th>What you see</th> <th>What it means</th> </tr> </thead> <tbody> <tr> <td>A card asking for <strong>Nearby devices</strong></td> <td>The permission has not been granted. <strong>Grant permission</strong> requests it; once Android stops prompting, the button becomes <strong>Open settings</strong>.</td> </tr> <tr> <td><strong>Bluetooth is off</strong></td> <td>The adapter is disabled — the card opens Bluetooth settings.</td> </tr> <tr> <td><strong>Bluetooth scanning also needs location services</strong></td> <td>Android 11 and older only: the permission is held but the system location toggle is off.</td> </tr> <tr> <td>No card, empty list</td> <td>Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere.</td> </tr> </tbody> </table></div> <p>The explanation lives in that card, not in the scan control: tapping <strong>Scan for Bluetooth devices</strong> after you have declined once asks Android again directly.</p> <h3 id="connection-status"> <a href="#connection-status" class="anchor-heading" aria-labelledby="connection-status"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Connection Status </h3> <div class="table-wrapper"><table> <thead> <tr> <th>Icon</th> <th>State</th> <th>Descripció</th> </tr> </thead> <tbody> <tr> <td>🟢</td> <td>Connected</td> <td>Active radio link established</td> </tr> <tr> <td>🟡</td> <td>Connecting</td> <td>Handshake in progress</td> </tr> <tr> <td>🔴</td> <td>Desconnectat</td> <td>No active connection. The app retries automatically, with a growing delay between attempts</td> </tr> <tr> <td>⚪</td> <td>Dispositiu hivernant</td> <td>The radio is in light sleep — the app is waiting for it to wake and reconnect, not failing</td> </tr> </tbody> </table></div> <p>These are the four states the app models. “Device sleeping” is normal on power-saving configurations and needs no action.</p> <p>When connecting, a status indicator shows the current connection state — tap <strong>Stop Connecting</strong> to abandon the attempt:</p> <p><img src="../../assets/screenshots/connections_connecting.png" alt="Connecting status" /></p> <p>If no devices are found, the app shows an empty state with instructions:</p> <p><img src="../../assets/screenshots/connections_empty_state.png" alt="No devices found" /></p> <h3 id="troubleshooting-bluetooth"> <a href="#troubleshooting-bluetooth" class="anchor-heading" aria-labelledby="troubleshooting-bluetooth"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Troubleshooting Bluetooth </h3> <ul> <li><strong>Radio not found:</strong> Turn Bluetooth off and back on. On Android 11 and older, also check that system location services are switched on — those releases do not return scan results without them.</li> <li><strong>Bluetooth scan couldn’t start:</strong> Try again, and toggle Bluetooth off and on if it repeats.</li> <li><strong>Connection drops:</strong> Move closer to the radio; check for interference.</li> <li><strong>Pairing failed, or pairing did not complete:</strong> Check that the <strong>Nearby devices</strong> permission is granted, then pair again.</li> <li><strong>Pairing rejected:</strong> Forget the device in Android Bluetooth settings and retry.</li> <li><strong>Could not establish a stable connection after repeated attempts:</strong> The app stopped retrying after three failed handshakes — a radio that keeps failing here is usually crashing on reconnect. Power-cycle the radio, then tap it again on the <strong>Connect</strong> tab to start a fresh attempt.</li> </ul> <h2 id="usb-serial"> <a href="#usb-serial" class="anchor-heading" aria-labelledby="usb-serial"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> USB Serial </h2> <p>USB connections provide a wired alternative, useful for desktop or when Bluetooth is unavailable.</p> <h3 id="setup"> <a href="#setup" class="anchor-heading" aria-labelledby="setup"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Setup </h3> <ol> <li>Connect your radio to your phone with a USB data cable. Charge-only cables carry no data lines, and a radio on one never appears in the list.</li> <li>The app prompts for USB permission — tap <strong>Allow</strong>.</li> <li>The connection is established automatically.</li> </ol> <blockquote> <p>ℹ️ <strong>Note:</strong> USB connections require OTG support on Android devices.</p> </blockquote> <h3 id="troubleshooting-usb"> <a href="#troubleshooting-usb" class="anchor-heading" aria-labelledby="troubleshooting-usb"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Troubleshooting USB </h3> <ul> <li><strong>USB permission denied:</strong> Unplug the radio and plug it back in — Android asks again on reconnect.</li> <li><strong>No radio in the list:</strong> Check that the cable carries data rather than only power, and that the phone supports OTG.</li> </ul> <h2 id="tcpip-network"> <a href="#tcpip-network" class="anchor-heading" aria-labelledby="tcpip-network"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> TCP/IP (Network) </h2> <p>Some Meshtastic radios support Wi-Fi/Ethernet connectivity, allowing TCP-based connections over your local network. Get the radio onto your network first. Connect to it over Bluetooth or USB, open <strong>Settings → Device configuration → Network</strong>, and under <strong>Wi-Fi Options</strong> turn on <strong>Wi-Fi enabled</strong> and enter the <strong>SSID</strong> and <strong>Password</strong>. The Network screen appears only for radios whose hardware supports Wi-Fi or Ethernet. Once the radio has an address, come back and connect to it over the network.</p> <h3 id="connecting-over-the-network"> <a href="#connecting-over-the-network" class="anchor-heading" aria-labelledby="connecting-over-the-network"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Connecting over the Network </h3> <ol> <li>Make sure the radio is on the same local network as your phone/desktop.</li> <li>On the <strong>Connect</strong> tab, select <strong>Network</strong> in the transport selector.</li> <li>Choose the radio one of two ways: <ul> <li><strong>Scan for network devices</strong> — toggle this on to auto-discover radios that advertise themselves on the local network (mDNS / <code class="language-plaintext highlighter-rouge">_meshtastic._tcp</code>). Discovered devices appear in the list; tap one to connect.</li> <li><strong>Add device manually…</strong> — enter the radio’s IP address (or hostname) and port (default: <code class="language-plaintext highlighter-rouge">4403</code>).</li> </ul> </li> <li>Previously-used network addresses are remembered under <strong>Recent Network Devices</strong> for quick reconnection (touch &amp; hold to remove one).</li> </ol> <p>Network discovery uses mDNS, which only works when both your phone and the radio are on the same subnet. If the phone is not on Wi-Fi at all, the app warns that a network scan may find nothing. On Android 17 and newer, the app needs the <strong>Local network permission</strong> to reach a radio on your own Wi-Fi at all — not only to discover it — so typing the address by hand does not work around a denied permission. Grant it from the card on the Network pane, or from the <strong>Permissions</strong> section of <strong>Settings</strong>. A radio on a public address, or one reached over a VPN, needs no permission.</p> <h3 id="when-to-use-tcp"> <a href="#when-to-use-tcp" class="anchor-heading" aria-labelledby="when-to-use-tcp"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> When to Use TCP </h3> <ul> <li>Radio is on the same local network</li> <li>Testing with a simulated radio</li> <li>Environments where Bluetooth has interference issues</li> </ul> <h3 id="wi-fi-provisioning-for-mpwrd-os"> <a href="#wi-fi-provisioning-for-mpwrd-os" class="anchor-heading" aria-labelledby="wi-fi-provisioning-for-mpwrd-os"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Wi-Fi Provisioning for mPWRD-OS </h3> <p><strong>Settings → Wi-Fi Provisioning for mPWRD-OS</strong> is a separate, narrower tool. It sends Wi-Fi credentials over Bluetooth to <strong>mPWRD-OS</strong> devices only, using their own protocol — it does not configure Wi-Fi on an ordinary Meshtastic radio. It is available on both Android and desktop.</p> <ol> <li>Open the screen and wait while the app finds the device over Bluetooth.</li> <li>Tap <strong>Scan for Networks</strong>, then pick a network from <strong>Available Networks</strong> — or turn on <strong>Hidden network</strong> and type the name into <strong>Network Name (SSID)</strong>.</li> <li>Enter the <strong>Password</strong> and tap <strong>Apply</strong>.</li> </ol> <p>If the scan reports <strong>No networks found</strong> or fails outright, move the phone closer to the device and scan again. If <strong>Failed to apply Wi-Fi configuration</strong> comes back, check the password and try again.</p> <h2 id="after-your-first-connection"> <a href="#after-your-first-connection" class="anchor-heading" aria-labelledby="after-your-first-connection"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> After Your First Connection </h2> <p>Being connected is not the same as being able to transmit.</p> <p>A radio leaves the factory with no LoRa region set, and it does not transmit until you set one. When you connect such a radio, the <strong>Connect</strong> tab shows a <strong>Set your region</strong> card; tap it to open the LoRa screen and choose the region you are in.</p> <p>Once the region is set, the tab warns you if the radio is receive-only: a <strong>Transmit is disabled</strong> card, reading “This device can receive but will not send anything over LoRa.” Tap it to open the same screen and turn <strong>Transmit Enabled</strong> back on. Only one of the two cards appears at a time — an unset region already stops the radio transmitting, so the app names that first and holds the transmit card back until you have set a region.</p> <p>For more information, see <a href="settings-radio-user#lora-config">Settings — Radio &amp; User</a>.</p> <h2 id="reconnection-behavior"> <a href="#reconnection-behavior" class="anchor-heading" aria-labelledby="reconnection-behavior"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Reconnection Behavior </h2> <p>The app reconnects to the last selected radio on startup. You can switch transports from the <strong>Connect</strong> tab at any time.</p> <p>To disconnect, tap the disconnect button on the <strong>Connect</strong> tab:</p> <p><img src="../../assets/screenshots/connections_disconnect.png" alt="Disconnect from radio" /></p> <h2 id="desktop-connections"> <a href="#desktop-connections" class="anchor-heading" aria-labelledby="desktop-connections"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Desktop Connections </h2> <p>On Desktop (Linux/macOS/Windows), the app supports:</p> <ul> <li><strong>Bluetooth (BLE)</strong> — via the Kable library; works on macOS, Linux, and Windows</li> <li><strong>USB Serial</strong> — primary wired connection method</li> <li><strong>TCP/IP</strong> — for network-connected radios</li> </ul> <p>See <a href="desktop">Desktop App</a> for platform-specific details and keyboard shortcuts.</p> <h2 id="related-topics"> <a href="#related-topics" class="anchor-heading" aria-labelledby="related-topics"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Related Topics </h2> <ul> <li><a href="onboarding">Getting Started</a> — first-launch setup and permissions</li> <li><a href="settings-radio-user">Settings — Radio &amp; User</a> — Bluetooth, region, and network configuration</li> <li><a href="messages-and-channels">Messages &amp; Channels</a> — send your first message once the radio is connected</li> <li><a href="nodes">Nodes</a> — see who else is on your mesh</li> <li><a href="desktop">Desktop App</a> — desktop-specific connection details</li> <li><a href="https://meshtastic.org/docs/hardware/devices">Supported devices</a> — full list of compatible radios on meshtastic.org</li> </ul> </div> <style> .locale-page-banner { background: rgba(103, 234, 148, 0.1); border: 1px solid rgba(103, 234, 148, 0.3); border-radius: 12px; padding: 10px 16px; margin-bottom: 1.5rem; font-size: 0.85rem; } .locale-notice a { margin-left: 12px; font-weight: 500; } </style> </main> <hr> <footer> <footer class="site-footer"> Copyright &copy; 2026 Meshtastic LLC. Distributed under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPL v3 License.</a> </footer> <div class="d-sm-block d-md-none"> <div class="mt-4 fs-2"> This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll. </div> </div> </footer> </div> </div> <div class="search-overlay"></div> </div> </body> </html>