User manual

IRIS 3 is software providing a Common Operational Picture (COP), Command and Control (C2), and the collection, processing and distribution of information. This manual covers every screen, setting and function of the app in detail.

00 Overview

What IRIS 3 is, who it is for, and how this manual is organised.

Operational use and scalability

The app is designed to cover every level of command:

  • Tactical level (individual soldier): a digital replacement for the paper map and compass, improving situational awareness in the field.
  • Command level: command, control and coordination of forces from the smallest tactical element up to brigade level.

Interoperability and communications

Compatibility: the system can be connected to any radio set that supports data transmission.

Field testing: connection and data exchange have been tested successfully with a suitable radio set.

Required equipment: connecting to the radio requires an additional adapter, which can be built locally or in-house from low-cost parts and 3D printing.

The IRIS 3 welcome screen with a Callsign field and an illustration of two devices (a tablet and a phone) connected over Bluetooth to radios linked to each other wirelessly.
The IRIS 3 welcome screen. The illustration at the bottom shows the link: Android device ↔ Bluetooth ↔ radio ↔ wireless link ↔ radio ↔ Bluetooth ↔ Android device.

The core of the app is the map (Chapter 02). On it you record targets, observers, text, lines, weapons, points of impact and military symbols (Chapter 03), organised in Layers and also shown in tables (Chapter 04). A separate set of functions covers communications between devices over the wireless bridge: field chat, net check, unit status reports and live position sharing (Chapter 05).

How to read this manual

Each section matches one screen or function of the app. The exact labels of buttons and fields as they appear on screen are marked like this: LABEL. Boxes with an amber line are practical tips, boxes with a red line are warnings about actions that cannot be undone, and boxes with a khaki line are cross-references.

01 First Launch

The welcome screen, entering your callsign, and preparing before a mission.

01.1 Welcome screen and callsign

On first launch the welcome screen appears ("IRIS 3 — TACTICAL FIELD OPERATIONS") with a single field: Callsign / User Name. This is the callsign that identifies your device in every entry, message and report it sends. It appears at the top of the navigation drawer, as the source/creator of each target or observer you record, and as the sender of every chat message or net check reply.

Type your callsign and press ENTER. The field cannot be empty; the button does nothing until real text has been typed (the faint "ALPHA-1" inside the field is just an example of the format, not a default value).

Changing it later

The callsign is not locked. You can change it at any time under Settings → PROFILE → User Name (§07). If you later open a saved project file (§06) that contains a different user name, it replaces the current one.

After you enter, the app opens directly on the Map screen, which is the default and permanent start destination. On every later launch the welcome screen is skipped.

01.2 Pre-mission preparation

Before you leave for the field, complete the steps below while a data connection is still available and all the team's devices are together, so shared settings can sync before communication is lost.

  1. Offline maps — zoom in to the area of operations and press the download button (§02.6) so the map tiles are already stored on the device before the data connection is lost.
  2. Coordinate datum — confirm under Settings → DISPLAY → Coordinate datum (§02.4) that the whole team uses the same datum (WGS84 or ED50, depending on the paper map that accompanies the mission). A different datum on each device means different coordinates for exactly the same point.
  3. Set the exact same Network Key on every device under Settings → NETWORK KEY (§07). Without it, no device sends or receives anything over the wireless bridge.
  4. Register the mission's Fire Units under Settings → FIRE UNITS → Manage Fire Units (§07 / §03.8), so they are ready for target assignment as soon as the mission starts.
  5. Register the Weapon Types under Settings → WEAPON → Manage Weapon Types (§07 / §03.5), with the correct range for each type.
  6. Fill in an initial Unit Status (§05.4) with personnel, equipment and ammunition before departure, so the first report sent to the network reflects the unit's real strength at the start of the mission.
The Network Key is a prerequisite, not optional

If the key is not set, or differs on even one device, Field Chat, Net Check and every other transmission over Channel B fail silently for that device. Check it before every mission, not only at first installation.

02 The Map

The app's main screen, where you will spend most of your time.

02.1 Screen elements

The map is always full-screen (full-bleed); all controls float over it.

The main IRIS 3 map screen with numbered arrows 1 to 15 on the controls: menu, Bluetooth, server, map download, background, Layers list, north arrow, crosshair, chat, scale and zoom, coordinates panel, add, grid, measure and GPS.
The main map screen (demo data). The numbers match the table below; tap the image to open it full size.
Map screen elements
№ElementFunction
1☰ MenuOpens/closes the navigation drawer, from which you reach every screen of the app. While the drawer is open, the same button becomes a back arrow.
2Bluetooth statusShows at a glance whether the bridge to the radio is connected; tapping it opens the Device Connection screen (§05.1).
3Server (Internet) statusShows the state of the internet connection to other IRIS 3 devices (green when connected); tapping it opens the Device Connection screen (§05.1).
4Offline map downloadDownloads the currently visible map area for use without a connection (§02.6).
5Map backgroundOpens the Satellite/Vector/Overlay selection panel (§02.5).
6Active LayerShows which Layer (§04.2) will "receive" the next entry you add (e.g. LAYER: DEMO) and the connection state (OFFLINE when the bridge is not open). When it opens as a list (as in the picture), the orange circle marks the active Layer, and the switch on the right of each row controls whether it is shown or hidden on the map.
7North arrowShows the map's orientation when you rotate it (§02.2) and resets north to the top.
8CrosshairThe fixed reference point at the centre of the screen. It always marks the map point shown in the coordinates panel (11), and is the placement point for several functions (§02.2).
9Communication (Chat)Opens Field Chat (§05.2).
10Scale & ZoomScale bar (e.g. 10 km) and a numeric zoom level indicator (Settings → DISPLAY → Show Zoom).
11Coordinates panelMGRS coordinates of the crosshair (with a datum label when ED50 is selected), GPS status/accuracy (ACC), elevation (ELEV) and the elevation source (GROUND: DEM) (§02.2).
12+ Add entryOpens the menu for adding a new field entity (§03).
13GridTurns the MGRS grid on the map on or off (§02.3).
14Measurement toolsPath measure, distance & bearing, compass or line of sight (§02.7).
15GPS centreMoves the map so the crosshair lands on the device's current GPS position.

02.2 Gestures & crosshair

The map uses the usual touch gestures: drag to pan, pinch with two fingers to zoom in or out, and rotate with two fingers. On an entry:

  • A single tap on an entry opens its details card (§03.0).
  • A long press on a Target opens the Fire Unit assignment menu (§03.8).
  • A double tap on the last point of a line being drawn finishes it (§03.4).

The crosshair at the centre of the screen never moves by itself. It stays pinned to the centre, and it is the map that moves beneath it. The coordinates panel always reads the position under it. In modes that move an entry, the on-screen instruction is always the same: "Move the map so the central cross shows the new position, then press Confirm".

02.3 MGRS/UTM grid

The red grid of lines over the map follows the UTM/MGRS system. The grid spacing adjusts automatically to the width of the visible area:

Visible map widthGrid spacing
up to 5 km1 km
5 – 50 km10 km
over 50 kmno grid

To turn the grid on or off: Settings → DISPLAY → MGRS Grid. A second, independent setting, Grid Numbering OFF by default, adds 2-digit labels (the same digit pair that appears in the MGRS coordinates box itself) along the top and left edges of the screen, like the margin of a field map, at both grid spacings (1 km and 10 km).

02.4 Datum: WGS84 / ED50

The datum sets the geodetic reference system in which all MGRS coordinates in the app are displayed and entered:

  • WGS84 — the global reference system, and the default. It is what the device's GPS reports.
  • ED50 — the system used by many paper maps, for matching against a paper map. A (ED50) label next to the MGRS label on screen reminds you of it.
Caution

The datum choice changes only how coordinates are displayed and entered. Data is always stored and transmitted in WGS84. The red MGRS grid follows the selected datum: in ED50 it is recomputed on the International 1924 ellipsoid, so its lines and numbers always match the same coordinate reading shown in the panel, rather than the WGS84 grid shifted by about 100–150 m.

To switch: Settings → DISPLAY → Coordinate datum.

02.5 Map background

The layers button opens the "Map background" panel with three modes:

ModeDescription
SatelliteSatellite imagery (the default; it needs no file import and is covered by the area downloads in §02.6).
VectorA map of roads, settlements and place names in a line-map style, instead of satellite imagery. It requires importing your own .mbtiles file.
OverlayRoads, settlements and place names drawn on top of the satellite imagery, combining both.

For Vector/Overlay you need a .mbtiles map file with vector layers (vector tiles), e.g. an OpenMapTiles export. The Import map file… button opens the Android file picker. The app rejects files that are not valid .mbtiles or that contain no vector layers. Several files can stay registered at once (e.g. one for each area of operations), but only one is active at a time, selectable from the list. If the active file does not cover the area you are looking at, the reminder "The active map does not cover this area" appears.

Vector/Overlay data comes from the OpenStreetMap project; see §09 for the full attribution.

02.6 Offline maps

The download button in the top bar downloads satellite tiles for the currently visible area of the map so they remain available without a connection. While downloading, a progress bar "Downloading map... N%" is shown. Completion or failure is reported explicitly, and you can cancel while it is in progress.

The list of already downloaded areas is under Maps (offline) in the navigation drawer. There, each stored area can be shown or hidden, or deleted permanently from the device.

02.7 Measurement tools

The ruler button opens a small drop-down menu with four tools. Pressing the same button again while a tool is already active turns it off directly, without reopening the selection menu.

ToolHow it works
Path Measure Each tap on the map adds a point to a multi-segment path, and the total distance updates live (the sum of all segments, not a straight line from the first to the last point). Undo removes the last point, Clear removes them all, and Close leaves the tool. Nothing is saved; it is purely a temporary measurement.
Distance & Bearing One tap sets a reference point. From then on, the distance and bearing (the angle from grid north, not true north) to the crosshair update live as you move the map, with no second tap needed. Clear removes the reference point, and Close leaves the tool.
Compass A live digital compass around the crosshair, with a numeric azimuth and tilt reading in a separate panel. It needs no tap on the map; details below.
Line of sight Line of sight (LOS) between two points, with a visibility calculation based on the terrain relief; details below.

Path Measure

Each tap on the map adds one more point to the path. The live reading in the panel shows the sum of all segments up to that moment, like the Google Earth ruler, not the straight-line distance from the first to the last point. Undo removes only the last point (disabled while there are none), Clear removes them all, and Close leaves the tool. Unlike a Line (§03.4), there is no double tap to finish. Nothing is saved; it is purely a temporary measurement that is lost as soon as the tool closes.

Path Measure: a dashed line over a satellite map with a total distance of 416 m and Undo, Clear, Close buttons.
Path Measure: the total distance (416 m) updates with every point you add.

Distance & Bearing

A single tap sets the reference point. After that no further tap is needed. Since the other end of the measurement is always the crosshair (the centre of the screen), the distance and bearing update live simply by moving the map. The bearing is calculated from grid north, not true or magnetic north, and shows as "—" when there is no valid value for that point. Clear removes the reference point (so it can be set again with the next tap), and Close leaves the tool.

Distance and Bearing: a red arrow from a reference point (K21) to the crosshair (TRG1), showing 803 m and Bearing 629 mils.
Distance & Bearing: the arrow joins the reference point to the crosshair. At the top are the distance (803 m) and the bearing (Bearing 629 mils, in angular mils).
Distance units

Both measurements are shown in the unit selected under Settings → DISPLAY → METRES/FEET. In METRES the reading switches automatically to kilometres above 1000 m, and in FEET it switches to miles above 5280 ft, so a multi-kilometre measurement does not appear as a long string of digits.

Compass

The Compass panel shows the current azimuth (together with the active reference system: True Azimuth/Magnetic Azimuth/Grid Azimuth, chosen under Settings → COMPASS → North Selection) and the device's tilt. Optionally it also shows the current magnetic declination if the Show Magnetic Declination setting is on. Around the crosshair, a graduated ribbon appears in angular mils, in CIRCULAR or LINEAR form and with tick spacing of 100 or 200 mils, all adjustable under Settings → COMPASS. The circular form also carries a bubble level for the device's tilt/roll.

Pressing and holding on the ribbon "freezes" it at the current reading (a LOCKED label in a red outline) for as long as you hold. Lifting your finger returns it immediately to the live reading. If the Show Sun/Show Moon settings are on, the two celestial bodies appear as markers on the ribbon whenever they are above the horizon, and tapping one opens a small panel with its data. While the Enable Camera with Compass setting is on and Camera permission has been granted, the Compass panel also has an AR Targeting button, which opens a camera view with a real-time azimuth/tilt overlay.

Compass with a locked reading: a circular mils ribbon around the crosshair, a panel with azimuth 61 mils (Grid Azimuth), Elevation 1516 mils and AR Targeting and Close buttons.
The Compass in circular form, locked (LOCKED). In the panel: the azimuth with the active reference system (here Grid Azimuth), the device's tilt (Elevation, in mils) and the AR Targeting and Close buttons. The moon markers on the ribbon come from the Show Sun/Moon settings. The coordinates in the bottom panel have been blurred.

Line of sight (LOS)

The first tap on the map sets the Observer and the second sets the Target (a third tap replaces only the Target, keeping the Observer). Undo removes the last point, and Clear removes them all. Once both points exist, the Observer Height (m) and Target Height (m) fields appear (eye/sighting height above the ground, not elevation) and the Calculate button becomes active.

The result is shown as a terrain profile graph: a white line for visible relief, red for non-visible, and blue for the straight Observer→Target line of sight, with a Target Visibility: YES/NO reading and the total distance. The terrain analysis is based on elevation tiles (DEM) stored on the device. If the Observer–Target path passes through an area without elevation data already downloaded, a "Downloading elevation data... N/M" indicator appears before the calculation.

Line of sight result: a terrain profile graph with Target Visibility: NO, a distance of 1.56 km and the legend Visible area, Hidden area, Sight line.
Line of sight result: Target Visibility: NO (the Target is not visible), distance 1.56 km. White = visible area, red = hidden area, blue = sight line.
Needs a data connection

Unlike the rest of the map, elevation tiles are not downloaded together with the offline map download (§02.6). They are fetched on the spot, only when needed, over a data connection. Without a connection and without tiles already downloaded for the area, the LOS calculation fails with the message "Could not download elevation data for the path" or, if elevation is missing exactly at the Observer/Target point, "No ground elevation found for the Observer or Target point". Prepare these two areas while a connection is still available, before leaving for the field.

03 Field Entries

Seven types of object can be placed on the map. All of them share the same basic card pattern.

The + button on the map opens the "NEW ENTRY / ADD ENTITY" menu with seven options:

TypeMenu labelUse
TargetTargetA point of interest/targeting; can be assigned to a Fire Unit (§03.8).
ObserverObserverThe position of an observer/field sentry.
TextTextA free text label on the map.
LineLineA multi-point polyline (route, boundary, etc.).
WeaponWeaponA weapon system; shows a range ring around it.
Point of ImpactPoint of ImpactA burst/impact point, with a fire correction field.
SymbolSymbolA NATO APP-6 military symbol (§03.7); local only, it is not transmitted to the network.
The NEW ENTITY / ADD ENTITY menu over the map, with the options Target, Observer, Waypoint, Text, Line, Area, Weapon, Point of Impact and Symbol.
The "NEW ENTRY / ADD ENTITY" menu as it appears when you press the map's + button.

After you pick a type, the next tap on the map (or, for Target/Observer etc., the current crosshair position) opens the creation form for the new object.

03.0 Common card pattern

Every recorded entity shows the same details card structure when you tap it on the map or in a table:

Entry name
ENTITY TYPE
MGRS COORDINATES36S WD 12345 67890
ELEVATION412 m
SOURCE / CREATORALPHA-1
RECORDED14:32:07
Edit Move Send Delete

Four actions are always available on a card:

  • Edit — opens the card's fields for direct change (name, description, colour, etc.), with Save/Cancel.
  • Move — closes the card and enters move mode: drag the map so the crosshair shows the new position, then Confirm (for Lines, the editing of its points reopens instead).
  • Send — opens the Channel A/B/C selector (§05.6) to share this single entry as text.
  • Delete — permanent deletion, always behind a confirmation dialog.

Each entry also carries, with no action needed, its own permanent details: the MGRS coordinates in the selected datum, the elevation, the callsign that created it (SOURCE / CREATOR) and the exact time it was recorded.

03.1 Target

Fields: Name, Description, Identification Colour (red/blue/green/yellow/black). It can additionally be assigned to a Fire Unit; see §03.8.

03.2 Observer

The same structure as a Target (Name, Description, Identification Colour), without the fire assignment function.

03.3 Text

Fields: the Text itself, Font Size (Small / Normal / Large / Very Large) and Identification Colour. Use it for free notes on the map that do not match any other type.

03.4 Line

While creating, each tap on the map adds a point to the line. Undo removes the last one, and a double tap on the last point (or the Finish button, active from 2 points up) completes it. A Line's card shows POINTS instead of coordinates/elevation, and the "Move" action reopens the editing of its points rather than shifting the whole line.

03.5 Weapon

Instead of a free colour, a Weapon picks a predefined Weapon Type from a list. Each type carries its own name, description, range (km) and colour, managed centrally under Settings → WEAPON → Manage Weapon Types. Every recorded Weapon on the map automatically draws a range circle around itself, with a radius equal to its type's range and coloured in the type's colour, which is useful for quickly visualising coverage.

03.6 Point of Impact

Fields: Name, Description, and an extra Correction field (fire/point correction) that replaces the colour picker. A Point of Impact's icon is always the same fixed red burst symbol.

03.7 Military Symbol

A full NATO APP-6 style symbol, with these fields:

FieldOptions
AffiliationFriendly · Hostile · Neutral · Unknown
BranchInfantry, Mechanized Infantry, Armour, Artillery, Air Defence Artillery, Engineers, Signals, Army Aviation, Supply & Transport, Technical, Ordnance, Medical, Mobile Surgical Unit, Special Forces, or None
EchelonSquad · Platoon · Company · Battalion · Regiment · Brigade · Division, or None
Left / Right TextFree labels beside the symbol (e.g. a unit number)
The New Symbol form with a symbol preview and the fields Affiliation, Branch, Echelon, Task Force, Headquarters, Map Size and Left Text.
The Military Symbol creation form (New Symbol): the live preview at the top, and below it the Affiliation, Branch and Echelon fields, the Task Force and Headquarters options, Map Size and the left text (Left Text).

03.8 Assigning a Target to a Fire Unit

A long press on a Target opens the menu titled "Target: <name>". If the target is already assigned, the label "Assigned to: <unit>" appears with a Cancel Assignment option. Otherwise there is only Assign to Fire Unit, which opens a list of the available Fire Units. If none has been registered yet, the reminder "No Fire Units: add them from Settings" appears (Settings → FIRE UNITS → Manage Fire Units, where each unit is registered with a name and a weapon system).

A new assignment automatically creates a message in Field Chat (§05.2) and shows a ring around the target on the map. The full picture of all assignments is shown in Fire Distribution (§04.3).

04 Tables & Layers

A list view of the field entries, and how they are organised into layers.

04.1 Entity tables

Three tables in the navigation drawer (Targets Table, Observers Table, Weapons Table) show all the matching entries in a list, with two filters at the top:

  • Layer filter — shows only the entries of one specific Layer (or "All").
  • Source filter — shows only the entries of one specific callsign (useful when many devices record into the same project over the wireless bridge).

Each row offers three direct actions without opening the card: Go to (centres the map on the entry and shows the map screen), Send (Channel A/B/C, §05.6) and Delete.

04.2 Layers

Layers organise field entries into separate levels that can be switched on and off. This is useful for separating, for example, your own data from another team's data, or one scenario from another. The Layers screen shows their list with the number of objects in each one, and allows:

  • Activating a Layer: the next entry you add on the map will belong to it.
  • Showing/hiding a Layer on the map, independently of whether it is the active one.
  • Renaming and Sending (in bulk, all the Layer's objects).
  • Deleting: deletes the Layer and all its entries permanently. The last remaining Layer cannot be deleted.
  • + NEW / ADD: adds a new empty Layer.

04.3 Fire Distribution

The Fire Distribution screen gathers in one table every Target→Fire Unit assignment (§03.8), both your own (marked MINE) and those received from other devices over the wireless bridge. Each row offers Unassign (undoes only the assignment) and Delete (deletes the target permanently). A send button in the top bar sends the whole table over Channel A/B/C (§05.6).

The Fire Distribution screen with the filter Source: All and two assignments, 199 ARTY and 999 Mortar, marked MINE, with Unassign and Delete buttons.
The Fire Distribution screen: each card shows the Fire Unit, the Target and its MGRS coordinates. The MINE label marks your own assignments. At the top are a source filter (Source: All) and the send button.

04.4 ROE

The ROE screen (Rules of Engagement) manages a table of rules imported from a .csv file, with one enable switch per row as the only possible edit. No other row editing is supported.

The ROE screen with Status, Category and Color filters and a list of ROE rules with an enable switch on each row.
The ROE screen after importing a file: Status, Category and Color filters at the top, and one card per rule with its number, category, code, description and the enable checkbox on the right. The card's colour follows the file's Colour column.

Importing a file

While the table is empty, only a Select ROE file (CSV) button is shown. The file must be delimited with a semicolon (;), not a comma, encoded in UTF-8, and have six columns in this order (the first row is always a header and is ignored whatever its content): No. · Category · Code · Description · Colour · Enabled.

The whole file or nothing

If even one row has an invalid number of columns, an unrecognised colour, a duplicate number, or an enable value other than TRUE/FALSE, the entire import is rejected, not just the problem row.

Accepted values of the Colour column (they must be written in Greek, exactly as shown):

ΚΟΚΚΙΝΟΚΙΤΡΙΝΟΠΡΑΣΙΝΟΠΟΡΤΟΚΑΛΙΜΠΛΕΧΩΡΙΣ ΧΡΩΜΑ

These are, in order: red, yellow, green, orange, blue and no colour.

Filters & rows

Three filters at the top (Status (Active/Inactive/All), Category and Color) show the filter title above and a drop-down value box below. Each row shows the number, the Category and the Code (coloured according to its Colour), is tapped to expand/collapse the Description, and carries an Active/Inactive checkbox.

Sending & deleting

The Send button sends over Channel A/B/C (§05.6). Channels B/C send, per row, only the number and the enabled state, never the Category/Code/Description/Colour, since every device on the network has already imported the exact same CSV file, so the other columns are identical on all devices in advance. The Delete button empties the whole table. It is the necessary first step before importing a new CSV file, since the file selection button reappears only when the table is empty.

05 Communications

Exchanging data with other devices over the Bluetooth wireless bridge.

All the functions in this chapter require an active connection to another device, either over Bluetooth to an external wireless bridge (typically a radio with an ESP32 in between), or over the Internet directly to another IRIS 3 device that you have paired using a QR code (§05.7–§05.8). Without either, the app remains fully functional for local use (map, field entries); no communication simply reaches another device.

05.1 Device Connection

The Device Connection screen shows the real-time System Status:

StatusMeaning
ONLINEConnected: communication is working.
SYNCConnecting or reconnecting.
OFFLINEDisconnected.

Below it, the AVAILABLE DEVICES list shows the Bluetooth devices already paired in Android. Pairing is done first from Android's own Bluetooth settings, not inside IRIS 3. After you select one, the CONNECT / DISCONNECT buttons control the connection. A separate LAST DEVICE panel remembers the last successful connection for quick reconnection. A SCAN button refreshes the list.

The transmission rate (Baud Rate, 9600 to 115200) is set in Settings (§07) but, note, it is only stored and is not yet applied automatically to the active connection.

The connection is organised in two steps: first the Network Key (§07), without which the second step stays locked, and then the connection itself, with two independent collapsible panels, Bluetooth and Server. Each panel opens/closes with its own button. They can be open and connected at the same time: Bluetooth to the wireless bridge, and Server to another IRIS 3 device over the Internet (§05.7–§05.8), not just one or the other. The Server panel carries the KNOWN DEVICES list (the devices you have paired with by QR code) with a CONNECT button on each row.

GROUPS

In the same Server panel, below the Known Devices, the GROUPS section lists the recipient groups you have created or been added to. They are used as a destination on Channel C (§05.6). The New Group button opens a form with a Group Name and a member selection list drawn from your Known Devices (the list shows "No paired devices yet" if it is empty). Only the creator of a group sees the ⋮ → Edit/Delete menu on it; for every other member only the name is shown. Delete always asks for confirmation and is permanent.

05.2 Field Communication (Chat)

A simple text chat between devices on the same network. Each bubble shows the sender's callsign. Very long messages collapse automatically with a More/Less link. Messages generated by assigning a Target to a Fire Unit (§03.8) show the target as a live link; tapping it closes the chat and goes to the map, centred on it. The Delete Chat button in the top bar permanently deletes the whole history of the current chat.

Two related settings: Message Received Notification and Chat Pop-up (§07, COMMUNICATION).

The Communication screen (Tactical Comm Chat) with an Internet connection indicator, two messages and a compose field with recipient BRAVO selected.
The Communication (Chat) screen: connection indicator, messages, recipient, file clip and compose field.

Sending a file

The paperclip icon next to the compose field opens Android's file picker, for any file type with no format restriction. A file larger than 60 KB is rejected immediately with a clear message, without any attempt to send it.

On the recipient's side, the file is saved automatically to the device's Downloads folder as soon as the transfer completes; no action is needed. The bubble shows the file name and size, and tapping it opens the file with whichever app on the device handles its type. If saving fails, the bubble shows an error indicator instead of being openable.

Why the 60 KB limit

The wireless bridge transmits each message in chunks of 255 bytes, with an upper limit of 255 chunks in total. This is a hard limit of the protocol, not an adjustable option. If even one chunk is lost in transmission, the whole file is re-sent from the beginning, not just the lost chunk. The size limit is deliberately kept small so that such a repeat does not noticeably load the link.

05.3 Net Check

A one-tap "radio check call". When you press Net Check, your device broadcasts a request. Every other device on the network answers automatically with its callsign, after a short random delay so that they do not all answer at once. The result is shown in real time either as a network diagram (your own device at the top, the replies around it in order of arrival) or as a table. You switch with the icon in the top bar, and it always starts on the diagram.

Net Check in diagram view: the device ALPHA at the top with a waiting ring, and the replies CHARLIE and ECHO (green) and BRAVO (yellow) below, with Waiting, Reply Now and Clear Roster buttons.
Net Check, diagram view, during the reply window. The start button becomes a countdown (Waiting… (8s)), and the icon at the top right switches to the table.
Node colourMeaning
●The device that started the check.
●Replied on time.
●Replied, but late (weak link).
No fillKnown on the network (replied to an earlier check) but silent in this one.

A permanent responder roster remembers every callsign that has ever replied, regardless of project. A long press on a node/row removes it, and Clear Roster removes them all. The Reply Now button allows a manual reply to an active check (enabled only while a collection window is open).

Net Check in table view: columns Responder and Last Reply with ALPHA (Me), CHARLIE, ECHO and BRAVO, all marked now, and Net Check, Reply Now and Clear Roster buttons.
Net Check, table: each callsign (RESPONDER) with the time of its last reply (LAST REPLY). Your own device is marked "(Me)". After the window, Net Check is active again and Reply Now is greyed out.

Two settings under Settings → NET CHECK: Auto-reply to net check ON by default (turn it off for radio silence: the device will not reply automatically, but still sees the diagram) and Reply window in seconds (the random reply delay ranges from 0.5 s up to this value).

05.4 Unit Status

A structured readiness report, in the spirit of a military status report: Unit Name, a personnel table (Officers/Other Ranks, with columns Authorised/Present/Sick-Absent/Casualties/Percent), an equipment table (free-form rows with Qty/OP/Sick-Absent/Percent) and an ammunition table (Type/Initial/Present/Percent, with an Add row option). The screen also shows when the Last Updated took place, and offers Send (Channel A/B/C, §05.6), Edit and Reset (resets all fields, behind a confirmation dialog).

Your own report is always a single one, local to the device. The reports you have received from other devices are gathered in the Unit Statuses screen (plural), with yours always marked MINE.

The Unit Status screen in edit mode, with a unit name, tabs Materiel, Personnel and Ammo, an equipment table with columns Qty, OP, LOP, OOA and Percent, and Cancel and Save buttons.
Unit Status in edit mode: unit name, the Materiel, Personnel and Ammo tabs, free-form rows and Add row, with Cancel and Save at the bottom.

05.5 Live Position

When you turn on Settings → LIVE POSITION → Share Position (requires Location permission, §08), your device automatically broadcasts its GPS position every number of seconds you set in the Broadcast Interval (sec) field. The same box, with the same switch and interval field, also opens as a short pop-up panel with a long press on the GPS centre button (§02.1, item 15), without leaving the map for Settings. Both places read and write exactly the same value.

Minimum interval: depends on the connection

The minimum allowed interval changes automatically with the active connection leg: 60 s while Bluetooth (§05.1) is connected, so the wireless bridge is not overloaded, or 3 s while only the Internet is connected, or neither. Bluetooth takes precedence when both legs are connected at the same time. A value below the current minimum is not accepted, and the warning "Minimum Ns" appears.

Positions you receive from other devices appear live as markers on the map, with the matching callsign and a relative age indicator beside it (now / Nm / Nh). The marker blinks to stand out from the other map elements, and its opacity decreases in three steps as the position "ages": full strength up to 2 minutes, reduced up to 10 minutes, strongly faded after that. It never disappears completely, since the last known position remains useful information.

A long press on a responder position marker opens the menu "Hide position <callsign>" with a single action, Hide, which removes the marker (and its trail, if shown) from the map until you explicitly show it again.

Responder trail

A second setting, Settings → LIVE POSITION → Show responder trail OFF by default, draws on the map a light grey trail with all the successive positions each responder has sent, a separate line per callsign, behind its live marker so that it does not compete with it visually. The reminder "Current session only" beside the switch means the position history itself is kept only in memory while the app is running (up to 100 points per responder). It is lost on every restart, and is never saved inside the project file (§06).

User Positions

The User Positions screen in the navigation drawer lists every responder from whom you have ever received a position, with the age of their last position and two independent switches per row: one for the visibility of the marker itself on the map (equivalent to Hide above, but reachable without having to find the marker on the map), and one for the visibility of that responder's own trail. The second always works together with the general "Show responder trail" switch: both must be on for that responder's trail to be shown. A bin button permanently deletes a responder's trail history, without affecting their live marker.

05.6 The "Send" pattern: Channel A / B / C

Every Send action throughout the app (entry card, table row, Layer, Fire Distribution, Unit Status, ROE) first asks where to send:

OptionHow it works
Channel A (Share)Opens Android's standard share menu (SMS, email, messaging apps, etc.) with ready-made text describing the entry. Always available.
Channel B (Via bridge)Sends the data digitally over the Bluetooth wireless bridge to every other connected device on the network: a broadcast, not a chosen recipient. Available while the Bluetooth panel (§05.1) is connected.
Channel C (Via server)Sends over the Internet, through the rendezvous server (§05.7), to one specific recipient that you choose immediately afterwards in a second window: a Known Device or a Group (§05.1). It is never a broadcast to the whole network. Available while the Server panel (§05.1) is selected or connected.

Choosing Channel C (Via server) immediately opens the Select recipient dialog with the list of your Known Devices and Groups. If the list is empty, it shows "No saved recipients." rather than staying silent. When you pick a Group, the send over the server is addressed to all the members of that group: not to the whole network, as with Channel B, but exactly to the members you defined when creating the group.

The dialog always has an explicit Cancel, separate from the three options, precisely so that sending data over radio or the Internet cannot be triggered by accident.

05.7 Pairing devices over the Internet (QR)

Prerequisite

A registered rendezvous server address in Settings (§07, RENDEZVOUS SERVER). Without it, the Rendezvous Pairing screen shows "No rendezvous server address has been set."

The Rendezvous Pairing screen in the navigation drawer has two tabs:

TabFunction
Generate CodeAutomatically creates a unique pairing code and shows it as a QR code and as plain text, with a countdown to its expiry ("Expires in Ns" / "The code has expired"). Show the screen to the device that will scan it.
Scan CodeOpens the camera (requires Camera permission) to scan another device's QR code. On success: if the device is new, it asks for a name ("Name this device") before saving it to Known Devices (§05.8). If it is already known, it goes straight to "Pairing successful."
Caution

A code that has expired or is invalid is rejected with the message "Invalid or expired code". You cannot pair with your own device.

05.8 Known Devices

The Known Devices screen in the navigation drawer lists every device you have completed pairing with by QR (§05.7). This is the target list for the Internet function in §05.1. A device that has just scanned your own code appears here as "New device: <identifier>" with a name field and a Save button. It enters the permanent list only after you save a name. The Refresh button at the top re-reads the list. This is necessary because the side that generated the code does not automatically see when another device has scanned it.

06 Project Management

Saving, loading and clearing the current set of field data.

A PROJECT group at the top of the navigation drawer manages the project: a .json file holding a complete snapshot of your field data. The group starts collapsed (tap its header to expand) and always shows the name of the current project file beside it, or New Project while you have not yet opened or saved one. Every time the navigation drawer closes, the group collapses again automatically.

  • Open Project — opens Android's file picker so you can load a saved project file, completely replacing the current data.
  • Save Project — saves the current snapshot. If the project has already been opened/saved from a file, it writes there directly; otherwise it opens the file picker so you can choose where.
  • Save As Project — always saves to a new location/name through the file picker, even when the project is already linked to a file; subsequent "Save Project" actions will then write to the new file.
  • Close Project — clears the current project and starts a new, empty one, behind a confirmation dialog.

A second collapsed group, TABLES, gathers in the same way the entity tables of §04 (Targets, Observers, Weapons), Layers and Unit Status.

What a project file contains
IncludedNot included
Layers · Targets · Observers · Texts · Lines · Weapons · Points of Impact · Military Symbols · ROE (§04.4) · your own Unit Status · your callsign Weapon Types and Fire Units (configured centrally, §07) · the Net Check responder roster · the remembered Bluetooth device · the general Settings
"Close Project" cannot be undone

It permanently deletes all Targets, Observers, Texts, Lines, Weapons, Points of Impact, Military Symbols and the ROE table of the current project, resets the Layers to a single empty one ("Layer 1"), empties your own Unit Status, deletes the Unit Status and Fire Distribution reports you have received from others, and deletes the entire Field Chat history. If you have not first saved with "Save Project", the data is lost for good. It does not affect Weapon Types, Fire Units, the Net Check responder roster, or Settings — these are data of the device itself, not of the project.

07 Settings

A complete reference of every section and option on the Settings screen.

PROFILE

OptionDescription
User NameYour callsign (§01). It can be changed at any time.

DISPLAY

OptionDefaultDescription
Night ModeOFFDark display theme.
METERS / FEETMETERSUnit used to display distances/altitude throughout the app.
Coordinate datumWGS84See §02.4.
MGRS gridONSee §02.3.
Grid numberingOFFSee §02.3.
Show ZoomONA numeric zoom-level indicator next to the map scale.

COMMUNICATION

OptionDefaultDescription
Baud Rate96009600 / 19200 / 38400 / 57600 / 115200. Only stored — not yet applied automatically to the connection.
ACK Timeout2 sHow long the app waits for a delivery acknowledgement before trying again.
Max Retries3How many times it retries before giving up on a transmission.
Message Received NotificationONA system notification when a new chat message arrives.
Chat Pop-upONShows the chat as a pop-up window on receipt.
Manage Bluetooth Connection—Goes to the screen in §05.1.

NETWORK KEY

A Network Key field (masked while typing, like a password) and a Save Key button. The exact same key must be set on all the devices of the network. It encrypts communication over the wireless bridge, so devices with different keys cannot exchange data with one another. An indicator below shows whether an active key is already present on the device or, if not, warns explicitly that no communication is sent or received until one is set.

RENDEZVOUS SERVER

OptionDefaultDescription
Server Address(empty)The address of the rendezvous server (format https://host:port, without a trailing /) used for Pairing over the Internet (§05.7) and the Internet option in §05.1. Without it, no QR pairing is possible.

NET CHECK

OptionDefaultDescription
Auto-reply to net checkONSee §05.3.
Reply window (sec)7Upper bound of the random reply delay.

LIVE POSITION

OptionDefaultDescription
Share PositionOFFSee §05.5. Requires Location permission.
Broadcast Interval (sec)60How often your position is broadcast; minimum 60 or 3 s depending on the connection (§05.5).
Show responder trailOFFA trail of positions per responder; current session only (§05.5).

WEAPON

The Manage Weapon Types row leads to the list of predefined weapon types (§03.5): each type has a Name, Description, Range (km) and Colour, with Save/Delete for each type.

FIRE UNITS

The Manage Fire Units row leads to the list of Fire Units (§03.8): a name and a weapon system for each unit, with add/edit/delete.

PERMISSIONS

Two permission status rows (Bluetooth, Location) — see §08.

EMERGENCY

A complete, irreversible deletion of all data on the device, reached from Settings → EMERGENCY → EMERGENCY CLEAR. The screen lists in detail what is about to be deleted before it is carried out:

CategoryContents
MISSION DATATargets, Observers, Lines, Texts; Weapons, Points of Impact, Military Symbols, Waypoints; ROE, Chat history, Unit Status (yours + received), Fire Distribution; the Layers return to a single empty "Layer 1".
CURRENT PROJECTThe active project file is deleted from the device, if it is still accessible.
DEVICE LISTSWeapon Types, Fire Units.
SETTINGS & PROFILEUser name, night mode, measurement units, datum, MGRS grid, compass, notifications — all return to their defaults.
NETWORK & BLUETOOTHThe encryption network key; the remembered Bluetooth device and the ACK/Baud/Live Position settings; Net Check history (roster + results).
OFFLINE MAPSAll imported vector basemap files (.mbtiles).
Caution

The action requires holding the "HOLD FOR EMERGENCY CLEAR" button continuously for 3 seconds, not a simple tap, precisely so that it cannot be triggered by accident. Once the clearing completes it is permanent and cannot be undone.

08 System Permissions

The two Android permissions the app requests, and why.

PermissionNeeded for
BluetoothConnecting to the wireless bridge (§05.1). Without it, there is no communication with other devices.
LocationThe GPS lock in the coordinates panel (§02.1), centring on your position, and Share Position (§05.5).

The status of each permission is shown under Settings → PERMISSIONS; tapping a permission that has not been granted requests it. If Android has already rejected the request once and no longer shows its own rationale dialog, the app takes you directly to Android's app settings for manual granting.

09 Appendix

About the app, font/data credits, and a quick colour reference.

About / Help

The About/Help screen in the navigation drawer shows the current version of the app and the data/font credits:

IBM Plex MonoIBM, SIL Open Font License 1.1
GeistVercel, SIL Open Font License 1.1
Open SansGoogle, Apache License 2.0
OSM BrightOpenMapTiles, BSD-3-Clause
Noto SansGoogle, SIL Open Font License 1.1
Map data© OpenStreetMap contributors

Quick reference: identification colours

Targets, Observers, Texts and Lines share the same five-colour palette:

RedBlueGreenYellowBlack

Weapon Types have their own, wider palette of ten colours (Red, Blue, Light Blue, Dark Blue, Green, Dark Green, Yellow, Grey, Black, Orange), defined per type and not per individual entry.

The ROE table (§04.4) has its own separate palette of six colours, set by the Colour column of the imported CSV file (written in Greek, as in §04.4: red, yellow, green, orange, blue, no colour):

ΚΟΚΚΙΝΟΚΙΤΡΙΝΟΠΡΑΣΙΝΟΠΟΡΤΟΚΑΛΙΜΠΛΕΧΩΡΙΣ ΧΡΩΜΑ

Want to try it?

The app is available in open testing on Google Play. Download it, try it and tell us what you think.

Try it on Google Play