PageSourceSearch

https://meshtastic-bice.vercel.app/assets/js/d0223752.e13e5fc5.js

js meshtastic-bice.vercel.app collected 2026-10-03 07:19:58 UTC 12,099 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkmeshtastic=self.webpackChunkmeshtastic||[]).push([["18145"],{152(e,t,i){i.r(t),i.d(t,{metadata:()=>n,default:()=>u,frontMatter:()=>a,contentTitle:()=>c,toc:()=>d,assets:()=>l});var n=JSON.parse('{"id":"software/integrations/integrations-atak-plugin","title":"ATAK Plugin","description":"Official Meshtastic ATAK Plugin","source":"@site/docs/software/integrations/atak-plugin.mdx","sourceDirName":"software/integrations","slug":"/software/integrations/integrations-atak-plugin","permalink":"/docs/software/integrations/integrations-atak-plugin","draft":false,"unlisted":false,"editUrl":"https://github.com/meshtastic/meshtastic/edit/master/docs/software/integrations/atak-plugin.mdx","tags":[],"version":"current","lastUpdatedBy":"rcarteraz","sidebarPosition":2,"frontMatter":{"id":"integrations-atak-plugin","title":"ATAK Plugin","sidebar_label":"ATAK Plugin","sidebar_position":2},"sidebar":"Sidebar","previous":{"title":"CalTopo / SARTopo","permalink":"/docs/software/integrations/integrations-caltopo"},"next":{"title":"MQTT","permalink":"/docs/software/integrations/mqtt/"}}'),s=i(91987),r=i(67008),o=i(87622);let a={id:"integrations-atak-plugin",title:"ATAK Plugin",sidebar_label:"ATAK Plugin",sidebar_position:2},c,l={},d=[{value:"Official Meshtastic ATAK Plugin",id:"official-meshtastic-atak-plugin",level:2},{value:"Introduction",id:"introduction",level:3},{value:"Instructions",id:"instructions",level:3},{value:"Standalone TAK Tracker usage",id:"standalone-tak-tracker-usage",level:2}];function h(e){let t={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"official-meshtastic-atak-plugin",children:"Official Meshtastic ATAK Plugin"}),"\n",(0,s.jsxs)(t.p,{children:["Meshtastic can integrate with ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"})," on Android using the ",(0,s.jsx)(t.a,{href:"https://github.com/meshtastic/ATAK-Plugin",children:"Official ATAK Plugin."})]}),"\n",(0,s.jsx)(t.h3,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"})," plugin does not permit any Meshtastic configuration. The plugin does three things:"]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Binds to the IMeshService provided by the Meshtastic Android App in order to send."}),"\n",(0,s.jsxs)(t.li,{children:["Intercepts all outgoing ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"})," CoT via the ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"}),' "PreSendProcessor" Interface and sends them to the IMeshService.']}),"\n",(0,s.jsx)(t.li,{children:"Listens for broadcasts from the Meshtastic Android App on the ATAK_PLUGIN portnum packets."}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"instructions",children:"Instructions"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Use the Meshtastic Android App on all parties' devices, and ensure they can talk to their local ",(0,s.jsx)(o.A,{term:"LoRa",definition:"A low-power, long-range wireless communication technology used by Meshtastic devices to enable communication over distances of several kilometers without the need for cellular, Wi-Fi, or other traditional network infrastructures.",routePath:"/docs/terms/",children:"LoRa"})," radio. Confirm they are able to achieve basic text messaging using the App."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Set the device's role to ",(0,s.jsx)(t.code,{children:"TAK"})," in the ",(0,s.jsx)(t.a,{href:"/docs/configuration/radio/device/",children:"device configuration settings"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Install the version of the Meshtastic ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"}),"-Plugin that matches the ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"})," version on all participants' devices from the ",(0,s.jsx)(t.a,{href:"https://github.com/meshtastic/ATAK-Plugin/releases",children:"project's GitHub Releases"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["With the Meshtastic Android App running in the background (to ensure the IMeshService is alive), launch ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"})," (with the Meshtastic ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"}),"-Plugin installed or install it once ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"})," is running) and you should observe a green Meshtastic icon in the bottom right. If the icon is red, then the plugin was not able to bind to the IMeshService provided by the Meshtastic Android App. If this is the case, 
1check to ensure the Meshtastic Android App is functioning. The plugin will reconnect after a failed bind without restarting ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"}),". If you do not see a Meshtastic icon, make sure that you have installed the Meshtastic ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"}),"-Plugin correctly."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"standalone-tak-tracker-usage",children:"Standalone TAK Tracker usage"}),"\n",(0,s.jsxs)(t.p,{children:["For devices with ",(0,s.jsx)(o.A,{term:"GPS",definition:"A satellite positioning system. A node with a GPS module determines its own location and can report that position to the mesh.",routePath:"/docs/terms/",children:"GPS"})," available, configuring the device's role to ",(0,s.jsx)(t.code,{children:"TAK_TRACKER"})," will allow the Meshtastic to transmit ",(0,s.jsx)(o.A,{term:"TAK",definition:"A situational awareness ecosystem. Meshtastic bridges to it by converting mesh messages to and from Cursor on Target format.",routePath:"/docs/terms/",children:"TAK"})," PLI (Position Location Information) independently of ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"}),". This data can be received and displayed within ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"})," EUDs connected to a Meshtastic device and configured with the Meshtastic ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"})," plugin (provided they are configured on the same Meshtastic channels)."]}),"\n",(0,s.jsx)(t.p,{children:"A couple of important notes regarding this setup:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["The intervals and behavior of ",(0,s.jsx)(o.A,{term:"TAK",definition:"A situational awareness ecosystem. Meshtastic bridges to it by converting mesh messages to and from Cursor on Target format.",routePath:"/docs/terms/",children:"TAK"})," PLI broadcast will honor the settings configured for the standard ",(0,s.jsx)(t.a,{href:"/docs/configuration/radio/position/",children:"Position configuration"})," in Meshtastic."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["The callsign sent with the PLI will appear in ",(0,s.jsx)(o.A,{term:"ATAK",definition:"The Android TAK client. An official Meshtastic plugin forwards its Cursor on Target traffic over the mesh.",routePath:"/docs/terms/",children:"ATAK"})," with the User ",(0,s.jsx)(t.a,{href:"/docs/configuration/radio/user/#long-name",children:"Long Name"})," configured for the Meshtastic device."]}),"\n"]}),"\n"]})]})}function u(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},67008(e,t,i){i.d(t,{R:()=>o,x:()=>a});var n=i(71763);let s={},r=n.createContext(s);function o(e){let t=n.useContext(r);return n.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(s):e.components||s:o(e.components),n.createElement(r.Provider,{value:t},e.children)}},87622(e,t,i){i.d(t,{A:()=>o});var n=i(71763),s=i(37773),r=i(91987);function o({term:e,definition:t,abbreviation:i,routePath:a="/glossary",children:c}
1){let[l,d]=(0,n.useState)(!1),[h,u]=(0,n.useState)(null),[f,A]=(0,n.useState)("top"),g=(0,n.useRef)(null),m=(0,n.useRef)(null),p=(0,n.useCallback)(()=>{let e;if(!g.current||!m.current)return;let t=g.current.getBoundingClientRect(),i=m.current.getBoundingClientRect(),n=window.innerWidth,s=window.innerHeight,r=document.querySelector(".navbar"),o=r?r.getBoundingClientRect().bottom:0,a=t.top-o>=i.height+8,c=s-t.bottom>=i.height+8,l=a||!c?"top":"bottom";e="top"===l?t.top-i.height-8:t.bottom+8;let d=t.left+t.width/2-i.width/2;d=Math.max(8,Math.min(d,n-i.width-8)),A(l),u({top:Math.max(o+4,e),left:d})},[]);(0,n.useEffect)(()=>{let e;if(!l)return;let t=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>{p()})}),i=()=>p(),n=()=>p();return window.addEventListener("scroll",i,!0),window.addEventListener("resize",n),()=>{cancelAnimationFrame(t),e&&cancelAnimationFrame(e),window.removeEventListener("scroll",i,!0),window.removeEventListener("resize",n)}},[l,p]);let T=(0,s.P_)("docusaurus-plugin-glossary"),v=(0,n.useMemo)(()=>{if(t&&"string"==typeof t&&t.length>0)return t;let i=(T&&T.terms||[]).find(t=>"string"==typeof t.term&&t.term.toLowerCase()===String(e).toLowerCase());return i&&i.definition?i.definition:void 0},[t,T,e]),x=(0,n.useMemo)(()=>{let t=i;if(!t){let i=(T&&T.terms||[]).find(t=>"string"==typeof t.term&&t.term.toLowerCase()===String(e).toLowerCase());t=i&&i.abbreviation}if("string"!=typeof t)return;let n=t.trim();if(n&&n.toLowerCase()!==String(e).toLowerCase())return n},[i,T,e]),w=(0,n.useMemo)(()=>a&&"string"==typeof a&&a.length>0?a:T&&T.routePath||"/glossary",[T,a]),K=c||e,j=e.toLowerCase().replace(/\s+/g,"-");return(0,r.jsxs)("span",{ref:g,className:"glossaryTermWrapper_ud7W",children:[(0,r.jsx)("a",{href:`${w}#${j}`,className:"glossaryTerm_x2nJ",onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onFocus:()=>d(!0),onBlur:()=>d(!1),"aria-describedby":`tooltip-${j}`,children:K}),v&&(0,r.jsxs)("span",{ref:m,id:`tooltip-${j}`,className:`tooltip_WjgA ${l?"tooltipVisible_AjfD":""} ${"top"===f?"tooltipTop_uMN4":"tooltipBottom_U9P5"} tooltipFloating_nLk7`,role:"tooltip",style:l&&h?{top:`${h.top}px`,left:`${h.left}px`}:void 0,children:[(0,r.jsx)("strong",{children:e}),x?` (${x}). `:"",v]})]})}}}]);

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.