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.
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.
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.
Azimuth uses Web Bluetooth — no installation required. The companion app runs entirely in your browser.
- 01Open azimuth.oeo.dev in Chrome
- 02Tap Connect in the top-right corner
- 03A Bluetooth device picker appears — select your Azimuth device (named
Azimuth-XXXXXX) - 04A PIN entry screen appears in the app
- 05Navigate to the Device Info page on your Azimuth (near the end of the page list) — the 6-digit PIN is displayed there
- 06Enter the PIN in the app and tap Verify
- 07The app connects, syncs settings and your position appears on the map
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.
| Action | Result |
|---|---|
| Single press | Next 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. |
2:5 (2 unread of 5 total) when LoRa messages have arrived. Navigate to the Messages page to read them.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.
| Action | Result |
|---|---|
| Single press | Next page |
| Long press | Clear all messages |
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.
| Action | Result |
|---|---|
| Single press | Next page |
| Long press | Turn screen off (without powering down) — useful to save battery during navigation |
Controls route recording. Shows current status (recording or stopped), point count, elapsed time and total distance. A flashing LED indicates active recording.
| Action | Result |
|---|---|
| Single press | Next page |
| Double press | Start or stop route recording. When stopped, the completed route is automatically saved to the route log. |
| Long press | Clear the current in-memory route (does not delete saved route log entries) |
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.
| Action | Result |
|---|---|
| Single press | Next page |
| Long press (no waypoint) | Mark current position as waypoint — switches to Navigate mode |
| Long press (waypoint saved) | Clear waypoint — returns to default state |
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.
| Action | Result |
|---|---|
| Single press | Next page |
| Long press | Toggle between bar chart and line chart display |
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.
| Action | Result |
|---|---|
| Single press | Next page |
| Long press | Clear all logged routes from device memory |
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.
| Action | Result |
|---|---|
| Single press | Next page |
| Long press (hold) | Show Sky & Sun detail while held: wind, humidity, sunrise/sunset, golden hour, moon phase, magnetic declination. Reverts when released. |
A GPS-synced clock. Accurate to within a second once a GPS fix is acquired. The timezone can be adjusted to show local time.
| Action | Result |
|---|---|
| Single press (normal mode) | Next page |
| Long press | Enter 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 |
A countdown timer with seven preset durations. Useful for timing intervals, rest periods or any time-based activity.
| Action | Result |
|---|---|
| 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 |
A simple HH:MM:SS stopwatch. Navigate away and return — it keeps running in the background.
| Action | Result |
|---|---|
| Single press (stopped) | Start stopwatch |
| Single press (running) | Stop stopwatch |
| Long press | Reset to 00:00:00 |
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.
| Action | Result |
|---|---|
| Single press | Next page |
| Long press | Show about screen with firmware version and oeo.dev URL |
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.
| Action | Result |
|---|---|
| Single press (normal) | Next page |
| Long press | Enter 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 |
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.
| Action | Result |
|---|---|
| Single press | Cancel — go back to Position page |
| Hold 3 seconds | Confirm shutdown — device enters deep sleep |
| Double press | Activate 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 |
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
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.
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.
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.
- 01Open the hamburger menu (☰) and tap Groups
- 02Tap + New to create a group with a custom name
- 03A 16-character encryption key is auto-generated
- 04Tap the group to activate it — your device now broadcasts on that key
- 05To add others, tap Share Key — a request is sent over LoRa
- 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.
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.
- 01Tap Import routes from device — the app fetches all stored routes over BLE
- 02Routes are displayed on the map in different colours
- 03An elevation profile chart appears below the map if elevation data exists
- 04Use the Export GPX button to download a GPX file compatible with Strava, Komoot, OsmAnd, etc.
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 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.
- 01Go to Settings → Network → Peer Settings
- 02Set Region — EU868 for UK/Europe, US915 for North America, AU915 for Australia
- 03Set Interval — how often the device broadcasts its position (10–300 seconds). Shorter = more responsive but more duty cycle usage
- 04Optionally set a Network Key — exactly 16 characters, must match on all devices in your group
- 05Restart all devices after changing the key
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.
- 01Enable via Settings → Relay on the device OLED, or via the web app
- 02Position the relay device where it has good line-of-sight to other devices
- 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.
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.
- 01On the device, go to Settings → Hotspot and set to On
- 02After saving settings, a QR code appears on screen — scan with your phone camera to auto-join the WiFi
- 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
Lockdown mode prevents any remote configuration changes via BLE or WiFi. Use it when lending your device or if you're concerned about tampering.
- 01On the device, go to Settings → Lock and set to On
- 02All config commands via BLE and WiFi will be rejected
- 03SOS and messages still work normally
- 04To unlock, go to Settings → Lock on the device screen and set to Off
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.
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.
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.
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.
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 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.