Azimuth — User Guide

How to use
Azimuth.

A complete walkthrough for every page, button interaction and web app feature. New to Azimuth? Start with First Boot and work your way down.

First Boot

When you power on Azimuth for the first time, the OLED briefly shows the OEO splash screen, then moves to the Position page while the GPS acquires a fix. This can take a few minutes outdoors — the device is downloading almanac data from satellites.

Tip: For the fastest first fix, go outside with a clear view of the sky and stay still for 1–2 minutes. Subsequent fixes are much faster as the device remembers its last known position.
What you'll see

The Position page shows Acquiring… with an animated bar and the current satellite count while waiting for a fix. Once acquired, coordinates, speed, heading, altitude and satellite count are displayed.

The small icons in the top-right corner of every page show BLE connection status and battery level. A B icon appears when the web app is connected.

Pairing with the Web App

Azimuth uses Web Bluetooth — no installation required. The companion app runs entirely in your browser.

Requirement: Web Bluetooth requires Google Chrome (desktop or Android). Safari and Firefox are not supported. iOS Chrome does not support Web Bluetooth — use an Android device or desktop Chrome on iPhone/iPad.
  1. 01Open azimuth.oeo.dev in Chrome
  2. 02Tap Connect in the top-right corner
  3. 03A Bluetooth device picker appears — select your Azimuth device (named Azimuth-XXXXXX)
  4. 04A PIN entry screen appears in the app
  5. 05Navigate to the Device Info page on your Azimuth (near the end of the page list) — the 6-digit PIN is displayed there
  6. 06Enter the PIN in the app and tap Verify
  7. 07The app connects, syncs settings and your position appears on the map
Tip: The PIN changes every time the device restarts. It's shown permanently on the Device Info page — no need to remember it.
Tip: Install the web app as a PWA — in Chrome, tap the install icon in the address bar. This gives you an app icon on your home screen and offline capability.
Position page 01

The home page of the device. Shows your GPS coordinates, speed, heading, altitude and the number of satellites in view. While waiting for a fix it shows Acquiring… with an animated satellite graphic.

ActionResult
Single pressNext page
Long press (hold)Shows the BLE pairing PIN for as long as the button is held. Release to return to this page. Works on both the Acquiring and Position screens.
Tip: The PIN overlay is the quickest way to find your PIN without navigating to the Device Info page — useful when someone nearby needs to connect quickly.
Tip: The top-right corner shows a message counter like 2:5 (2 unread of 5 total) when LoRa messages have arrived. Navigate to the Messages page to read them.
Messages conditional

This page only appears when LoRa messages have been received. It shows the last 3 messages with sender name, message preview and time received. Navigating to this page marks all messages as read.

ActionResult
Single pressNext page
Long pressClear all messages
Tip: Reply to messages from the web app — select the sender in the Peers panel and use the direct message field.
Compass page 02

An animated compass rose driven by GPS heading. The needle rotates in real time. Shows bearing in degrees, cardinal direction, current speed and altitude alongside the compass graphic.

Note: The compass uses GPS heading, not a magnetometer. It requires you to be moving at more than ~2 km/h to show a reliable bearing. When stationary the needle may spin.
ActionResult
Single pressNext page
Long pressTurn screen off (without powering down) — useful to save battery during navigation
Tip: Use long press on the Compass page to black out the screen during a long ride. Any subsequent button press brings the screen back on.
Track / Route page 03

Controls route recording. Shows current status (recording or stopped), point count, elapsed time and total distance. A flashing LED indicates active recording.

ActionResult
Single pressNext page
Double pressStart or stop route recording. When stopped, the completed route is automatically saved to the route log.
Long pressClear the current in-memory route (does not delete saved route log entries)
Tip: Double press to stop recording — the route is saved to the log automatically. Long press only clears the live route display, not the saved log.
Tip: When connected to the web app, a red ● REC badge appears in the header confirming the device is recording. Your live route is drawn on the map in red.
Waypoint / Navigate page 04

In its default state this page shows your current coordinates and invites you to mark a waypoint. Once marked, it switches to Navigate mode — showing a bearing arrow and distance to your saved point.

ActionResult
Single pressNext page
Long press (no waypoint)Mark current position as waypoint — switches to Navigate mode
Long press (waypoint saved)Clear waypoint — returns to default state
Tip: Your saved waypoint is broadcast to nearby Azimuth peers over LoRa. They can see your waypoint on their web app map and know how far away it is.
Tip: Use the waypoint to mark your car, your campsite, or a rendezvous point before heading out. The bearing arrow always points back to it.
Elevation page 05

A scrolling elevation chart showing altitude over time. Useful for seeing ascent/descent patterns on a hike or ride. Displays current altitude, min/max range and total climb.

ActionResult
Single pressNext page
Long pressToggle between bar chart and line chart display
Route Log conditional

Lists all routes saved to the device. Shows route number, point count and distance for each. Up to 10 routes stored — the oldest is automatically overwritten when full.

ActionResult
Single pressNext page
Long pressClear all logged routes from device memory
Tip: Export routes to GPX before clearing — connect the web app, open the hamburger menu and tap Import routes from device. Then use the GPX export button.
Weather conditional

Shows current weather conditions from OpenWeatherMap. Displays a 24×24px icon, temperature, condition text and when the data was last fetched. The device connects to WiFi every 6 hours to refresh.

Setup required: Weather needs a free OpenWeatherMap API key. Add it in the web app under Settings → Network → OpenWeatherMap API Key. WiFi credentials must also be saved.
ActionResult
Single pressNext page
Long press (hold)Show Sky & Sun detail while held: wind, humidity, sunrise/sunset, golden hour, moon phase, magnetic declination. Reverts when released.
Tip: The Sky & Sun detail is a hidden gesture — there's no on-screen hint. Hold the button from the Weather page to reveal it.
Clock page 06

A GPS-synced clock. Accurate to within a second once a GPS fix is acquired. The timezone can be adjusted to show local time.

ActionResult
Single press (normal mode)Next page
Long pressEnter timezone edit mode — display changes to show UTC offset
Single press (edit mode)Cycle UTC offset (+/- hours)
Long press (edit mode)Save timezone and return to normal mode
Tip: Timezone is saved to device storage (NVS) and persists through power cycles. You only need to set it once.
Countdown page 07

A countdown timer with seven preset durations. Useful for timing intervals, rest periods or any time-based activity.

ActionResult
Single press (idle)Start countdown
Single press (running)Pause countdown
Long press (idle)Enter set mode — choose from 5, 10, 15, 20, 30, 45 or 60 minutes
Single press (set mode)Cycle to next preset
Long press (set mode)Confirm selection and return to idle
Long press (running/paused)Reset to selected duration
Tip: When the countdown reaches zero the OLED flashes and the LED blinks rapidly for 5 seconds.
Stopwatch page 08

A simple HH:MM:SS stopwatch. Navigate away and return — it keeps running in the background.

ActionResult
Single press (stopped)Start stopwatch
Single press (running)Stop stopwatch
Long pressReset to 00:00:00
Device Info page 09

Displays device name, firmware version, battery percentage, WiFi SSID (if configured) and the 6-digit BLE pairing PIN. This is where to find the PIN when connecting the web app.

ActionResult
Single pressNext page
Long pressShow about screen with firmware version and oeo.dev URL
Tip: The PIN is regenerated on every boot. If the web app says PIN verification failed, restart the device and try the new PIN.
Settings page 10

On-device configuration for speed units, elevation units, screen timeout and brightness. All settings are also configurable via the web app and saved to device flash.

ActionResult
Single press (normal)Next page
Long pressEnter edit mode — highlights first setting row
Single press (edit mode)Cycle value for highlighted row
Double press (edit mode)Move to next setting row
Long press (edit mode)Save and exit edit mode
Power Off page 11

The last page in the list. Confirms before entering deep sleep to avoid accidental shutdown. This page also houses the SOS function — a double press activates a repeating emergency broadcast over LoRa.

ActionResult
Single pressCancel — go back to Position page
Hold 3 secondsConfirm shutdown — device enters deep sleep
Double pressActivate SOS — broadcasts an encrypted SOS packet over LoRa 6 times at 4-second intervals. LED flashes rapidly while active. OLED shows SOS status and remaining transmissions.
Single press (SOS active)Cancel SOS broadcast immediately
SOS behaviour: When an SOS packet is received, the receiving device flashes its LED 8 times and sends an alert to the connected web app. The web app shows a red banner across the top of the screen with the sender's name and location, and places a red SOS marker on the map.
Tip: Deep sleep draws <50µA. For long storage, power off with the Power Off page. Press the button briefly to wake.
Map & Tracking

The main view of the web app is a live map. Your device position is shown as an orange marker with your device name as a label. The map follows your position automatically until you scroll or zoom manually.

  • Scroll away from your position to explore the map — auto-follow pauses
  • Locate button (crosshair, bottom-right of map) snaps back to your position and re-enables auto-follow
  • Switch map tiles using the button overlaid on the map — CyclOSM is best for outdoor use
  • Approximate position (amber marker + circle) shows before GPS fix — driven by WiFi or IP geolocation
Tip: CyclOSM shows cycle paths, bridleways and footpaths that aren't visible on standard map tiles — highly recommended for trail use.
Azimuth Peers

Tap the signal icon in the header to open the Peers panel. Any nearby Azimuth devices on your LoRa network appear here and as markers on the map. Up to 20 peers are tracked simultaneously.

  • Distance button — draws a dotted line from you to the peer with distance, bearing and ETA label
  • Follow button — map pans to keep the peer centred as they move
  • Locate button — instantly pans the map to the peer's position
  • Peer markers show a heading arrow indicating direction of travel
  • A dashed orange line shows the peer's recent track history
  • A 📍 badge and separate map marker shows the peer's saved waypoint
  • Toast notifications appear when peers come into or go out of range
  • Stale peer alert — if a peer has not broadcast for 5 minutes, a warning toast appears. The device also flashes its OLED display briefly to alert you.
  • SOS alert — if a peer activates SOS, a red banner appears across the top of the app with their name and coordinates. A red SOS marker is placed on the map and the map pans to their location. Tap Dismiss to clear the banner.
Tip: Multiple distance lines can be active simultaneously — great for monitoring the spread of a group.
Tip: SOS alerts persist on screen until manually dismissed, so they're not missed if the app is briefly in the background.
Messaging

At the bottom of the Peers panel is a message compose area. Select a recipient (All Peers for broadcast, or a specific device for a direct message) and type up to 48 characters.

Broadcast messages are automatically transmitted 3 times with 5-second gaps between each attempt, significantly improving delivery reliability in challenging terrain. Direct messages are sent once only.

Note: LoRa messaging has a duty cycle limit in the EU — the device waits between transmissions to comply with regulations. Messages may be delayed by a few seconds.
Tip: Keep messages short and clear. Good use: "wait at bridge", "heading back", "all ok". The 48 character limit encourages this — think SMS, not essay.
Tip: When a message arrives the OLED shows a message counter regardless of which page you're on. Navigate to the Messages page to read them — this also marks them as read.
Groups

Groups let you create private networks with their own encryption keys. Only devices with the key can see each other — ideal for events, expeditions, or team coordination.

  1. 01Open the hamburger menu (☰) and tap Groups
  2. 02Tap + New to create a group with a custom name
  3. 03A 16-character encryption key is auto-generated
  4. 04Tap the group to activate it — your device now broadcasts on that key
  5. 05To add others, tap Share Key — a request is sent over LoRa
  6. 06Recipients see a modal asking to accept. Once accepted, the key syncs automatically

You can store up to 5 groups per device. Switch between them instantly by tapping a different group, or return to Personal mode to use the default network key.

Leader vs Member: The device that creates a group is the leader. Leaders can share keys; members can only receive them. If you leave a group you created, remaining members receive a key rotation broadcast.
Tip: For a fell race, create a group called "Race-2026" and share the key with all marshals before the event. Everyone sees each other; spectators on default key see nothing.
Route Export

Recorded routes are stored on the device and can be imported to the web app at any time over BLE. Open the hamburger menu (☰) to see the Route Export section.

  1. 01Tap Import routes from device — the app fetches all stored routes over BLE
  2. 02Routes are displayed on the map in different colours
  3. 03An elevation profile chart appears below the map if elevation data exists
  4. 04Use the Export GPX button to download a GPX file compatible with Strava, Komoot, OsmAnd, etc.
Tip: You can import routes without being on the same walk — connect at home and import yesterday's ride.
Settings

Tap ⚙ in the header to open the settings modal. Changes sync to the device immediately over BLE.

  • Device tab — rename your device. Name is prefixed with Azimuth- and shown on other peers' screens
  • Units tab — speed in km/h or mph, elevation in metres or feet
  • Display tab — screen timeout (10s to always-on), brightness (full or dim), device theme
  • Network tab — WiFi credentials, OWM key, LoRa region/interval/network key
  • Screen tab — live OLED mirror. Click Capture then Save PNG to grab a screenshot
LoRa Network Setup

LoRa peer sharing works out of the box between any two Azimuth devices on the same frequency. For a private group, set a custom network key so only your devices communicate.

  1. 01Go to Settings → Network → Peer Settings
  2. 02Set Region — EU868 for UK/Europe, US915 for North America, AU915 for Australia
  3. 03Set Interval — how often the device broadcasts its position (10–300 seconds). Shorter = more responsive but more duty cycle usage
  4. 04Optionally set a Network Key — exactly 16 characters, must match on all devices in your group
  5. 05Restart all devices after changing the key
EU duty cycle: In Europe, LoRa devices are limited to 1% transmit time. At 30s intervals Azimuth uses ~0.8% duty cycle — compliant with regulations but worth understanding if you reduce the interval significantly.
Relay Mode

Relay mode turns a device into a range extender for your mesh network. When enabled, the device automatically forwards packets for other devices — useful for stationary positions like checkpoints, base camps, or high ground.

  1. 01Enable via Settings → Relay on the device OLED, or via the web app
  2. 02Position the relay device where it has good line-of-sight to other devices
  3. 03The relay will automatically forward position broadcasts, SOS alerts, and messages

The relay also provides store-and-forward — if a peer goes offline, messages are queued (up to 8, 1 hour expiry) and delivered when that peer broadcasts again.

Best practice: Enable relay on a device that will remain stationary. Moving relays can cause inconsistent coverage.
Hotspot Mode

When the device hotspot is enabled, you can connect directly to the device WiFi and access several web pages without needing the phone app or BLE connection.

  1. 01On the device, go to Settings → Hotspot and set to On
  2. 02After saving settings, a QR code appears on screen — scan with your phone camera to auto-join the WiFi
  3. 03Or manually connect to "Azimuth-[Name]" network, password azimuth1

Once connected, access these pages:

  • 192.168.4.1 — Main web app (radar view, peers, settings)
  • 192.168.4.1/status — Mesh status page showing device info and peer table with signal strength
  • 192.168.4.1/config — Configuration portal for device setup without BLE
QR code tip: The QR code stays on screen indefinitely (ignores timeout) until you press the button to dismiss it.
Lockdown Mode

Lockdown mode prevents any remote configuration changes via BLE or WiFi. Use it when lending your device or if you're concerned about tampering.

  1. 01On the device, go to Settings → Lock and set to On
  2. 02All config commands via BLE and WiFi will be rejected
  3. 03SOS and messages still work normally
  4. 04To unlock, go to Settings → Lock on the device screen and set to Off
Note: Lockdown only blocks remote config. Anyone with physical access to the device can still change settings via the OLED menu.
Troubleshooting
Connect button doesn't work

Web Bluetooth requires Chrome. Check you're not using Safari, Firefox or a WebView browser. On Android, ensure Bluetooth and Location permissions are granted to Chrome in system settings.

Device not showing in Bluetooth picker

Make sure the device is powered on and not already connected to another browser tab. Only one BLE connection is supported at a time. Close other tabs and try again.

PIN verification keeps failing

The PIN changes on every boot. Restart the device and check the current PIN on the Device Info page. Make sure you're entering it without spaces.

GPS not acquiring a fix

Go outdoors with a clear view of the sky. Buildings and tree canopy significantly reduce signal. The first fix after a long power-off (cold start) can take 2–5 minutes. Subsequent fixes are typically under 30 seconds.

Peers not appearing

Ensure both devices are set to the same LoRa region. Ensure the network key matches on both devices. Check that LoRa broadcasting is enabled (interval > 0). LoRa requires line-of-sight or near-line-of-sight — urban environments reduce range significantly.

Weather page not showing

Weather requires WiFi credentials and an OpenWeatherMap API key saved to the device. Free OWM keys have a call limit — if you've exceeded it, the page shows a fetch error. Check your OWM account dashboard.

Tips & Tricks
Battery life: Set screen timeout to 10s and brightness to dim for best battery life. Deep sleep (Power Off page) draws <50µA.
Group tracking: Before a group ride or hike, agree on a network key and set all devices to the same interval. 60s is a good compromise between responsiveness and battery life. Up to 20 devices can be tracked simultaneously.
Waypoint tip: Mark your car or trailhead before you set off. The navigation arrow always points back, even without a map or phone signal.
Screen mirror: The Screen tab in settings shows a live mirror of the device OLED. Use Capture → Save PNG to take documentation screenshots or share your route status.
Offline use: Install the web app as a PWA. Map tiles are cached for offline use — zoom around your planned area while connected to save tiles before going off-grid.
Sky & Sun detail: The Weather page long press is a hidden gem — magnetic declination is particularly useful if you're also using a traditional compass alongside the device.
Multiple routes: Import all stored routes to the web app before a long expedition so you have a visual record. Each route displays in a different colour.
SOS practice: Familiarise yourself with the SOS gesture (double press on Power Off page) before you need it. In an emergency, the device broadcasts your GPS coordinates over LoRa 6 times — any nearby Azimuth user with the web app open will see a red alert banner with your location.
Message reliability: Broadcast messages are sent 3 times automatically with 5-second gaps. If terrain is tricky, wait a few seconds before assuming the message didn't get through.