New South Wales Meshcore Network & Repeater Configuration Guide

💬 Join the NSW Mesh Discord

Most off-mesh communication happens on Discord — it's the best place to ask questions, get help setting up your node, and connect with the community!

Join Discord Server →
🗺️ View the Network: Check out the NSW Meshcore Map to see repeaters near you and check coverage in your area.

📚 Getting Started with MeshCore

📺 Video Guide: How to get started with MeshCore off grid text messaging — A helpful walkthrough explaining MeshCore, how it works, and how to set it up.

Setting Up Your Companion

Step 1: Flash Your Device

Flash your device using the Meshcore firmware flasher.

⚠️ Before flashing: Choose your connection method now — the firmware only supports one connection type at a time:

  • BLE (Bluetooth Low Energy)
  • USB (wired connection)
  • WiFi (wireless)

💡 First time flashing? Make sure to select "Erase" before flashing MeshCore.

Step 2: Connect and Configure

Connect to your companion using your chosen method, then configure:

Set Name and Radio Settings:

  1. Tap the ⚙️ icon (top right of the app)
  2. Configure your name and radio settings:
    • Sydney & most NSW regions: Preset Australia: Narrow
    • Illawarra region: Preset Australia: Wide (915.8 MHz, BW 250, SF11, CR8)
  3. Tap ✔️ (top right) to save
  4. Wait for the green success notification

Add Channels:

  1. Tap ⋮ (top right) → + Add Channel → Join a Hashtag Channel
  2. Enter the channel name (e.g., test)
  3. Press Join Channel

Step 3: Join the Mesh

Advertise Your Node:

  1. Tap Advert (button next to ⚙️) → Send Flood Advert
  2. This broadcasts your node name to the mesh

Discover Nearby Repeaters:

  1. Tap 🔧 → Discover Nearby NodesDiscover Repeaters
  2. Wait for repeaters within range to respond
  3. Tap + to add them to your contacts

Step 4: Test Your Connection

Send a Test Message:

  • Send a greeting to the Public channel (general chat), or
  • Send test, ping, or path to the #test channel (bots will auto-reply)

Check Your Results:

After sending, look for heard X repeats next to your message:

Result Meaning
heard 1+ repeats ✅ Success! Your message reached repeater(s)
heard 0 repeats ❌ No repeater heard your message

If you see 0 repeats:

  1. Double-check your radio settings
  2. Check the NSW Meshcore Map for nearby repeaters
  3. Long-press your location on the map to check expected coverage
  4. Try standing outside with antenna pointing upward
  5. Find higher ground to clear buildings (line-of-sight is required)

Understanding Adverts

Advertisements are how nodes announce their presence on the mesh. Each advert packet contains:

  • Public Key — Your node's unique cryptographic identity (32 bytes)
  • Timestamp — When the advert was generated (used for routing and deduplication)
  • Digital Signature — Cryptographic proof the advert is authentic (64 bytes)
  • Node Type — Whether you're a companion, repeater, room server, or sensor
  • Name — Your node's display name
  • Location — Latitude/longitude (if sharing is enabled)
Advert Type Frequency Scope Effect
Local advert Every 240 minutes Directly connected repeaters only Zero-hop broadcast — announces to immediate neighbors without flooding the network
Flood advert Every 24 hours Entire mesh Network-wide broadcast — every repeater that receives it will rebroadcast
Direct advert On login/manual Specific path only Point-to-point — sent along a known path to a specific node
Companion advert Manual only When you trigger it User-initiated flood advert from your companion node

⚠️ Why 24 hours for flood adverts? Each flood advert is rebroadcast by every repeater on the mesh. With many nodes, frequent flood adverts create substantial traffic that can congest the network and delay actual messages.

⚠️ IMPORTANT: Radio Compatibility

NSW has two mesh networks with different radio presets. You must use the correct preset for your region:

🔷 Australia: Narrow (Sydney & Most Regions)

Uses 916.575 MHz, 62.5 kHz bandwidth, SF7, CR8

  • Narrow bandwidth (62.5 kHz) — Maximum receiver sensitivity (~-137 dBm effective), excellent noise rejection, approximately 6 dB better sensitivity than 250 kHz (roughly double the range for the same signal strength)
  • Lower spreading factor (SF7) — Fastest transmission times (8-16x faster than SF11-12), reduces collision risk and channel congestion, 128 chirps per symbol
  • Higher coding rate (CR8 = 4/8) — Maximum forward error correction (100% redundancy), compensates for the faster SF7 by adding robustness, can recover from burst errors and interference
  • Combined effect: Excellent range through narrow bandwidth sensitivity, fast transmissions via low SF, reliable delivery via high CR — messages are short yet robust

🔶 Australia: Wide (Illawarra Region)

Uses 915.8 MHz, 250 kHz bandwidth, SF11, CR8

  • Wide bandwidth (250 kHz) — Better signal handling in multipath environments, more tolerant of frequency drift, handles Doppler effects from moving nodes better
  • Higher spreading factor (SF11) — 2048 chirps per symbol provides excellent sensitivity (-134.5 dBm), better penetration through obstacles and terrain, ideal for non-line-of-sight paths in mountainous areas
  • Higher coding rate (CR8 = 4/8) — Maximum forward error correction provides reliability needed for challenging terrain
  • Combined effect: Robust signal handling for difficult terrain (steep escarpments, deep valleys, dense vegetation), trades speed for reliability and obstacle penetration

Not interoperable: Narrow and Wide presets cannot communicate directly. Bridge repeaters connect the Illawarra (Wide) network to the main NSW (Narrow) mesh.

⚙️ Radio Settings

🔷 NSW Mesh — Australia: Narrow (Sydney & Most Regions)

The main NSW mesh uses the Australia: Narrow preset, optimized for high-capacity networks with good line-of-sight coverage.

Setting Value Technical Details
Frequency 916.575 MHz Australian ISM band (915-928 MHz), provides separation from other LoRa networks
Bandwidth 62.5 kHz Narrowest available — Maximum sensitivity (~-137 dBm), best noise rejection, ~6 dB better than 250 kHz (≈2x range)
Spreading Factor (SF) 7 Fastest SF — 128 chirps/symbol, 8-16x faster than SF11-12, minimizes airtime and collision risk
Coding Rate (CR) 8 (4/8) Maximum FEC — 100% redundancy, compensates for faster SF7, recovers burst errors

Why Narrow Works: The narrow bandwidth provides sensitivity usually requiring higher SF. Combined with SF7's speed and CR8's error correction, messages are ~200-600ms (vs 3-5 seconds at SF11) while maintaining excellent range. Effective bitrate: ~2.7 kbps. Ideal for urban/suburban areas with moderate repeater density.

🔶 Illawarra Region — Australia: Wide

The Illawarra mesh uses the Australia: Wide preset, optimized for challenging terrain with steep escarpments, deep valleys, and dense vegetation.

Setting Value Technical Details
Frequency 915.8 MHz Australian ISM band (915-928 MHz), offset from Narrow to allow bridge repeaters
Bandwidth 250 kHz Wider channel — Better multipath handling, more tolerant of frequency drift and Doppler effects from moving nodes
Spreading Factor (SF) 11 High SF — 2048 chirps/symbol, excellent sensitivity (-134.5 dBm), superior obstacle/terrain penetration
Coding Rate (CR) 8 (4/8) Maximum FEC — 100% redundancy, essential for reliability in difficult RF environments

Why Wide Works for Illawarra:

  • Terrain challenges: Illawarra Escarpment creates steep cliffs (300-500m drops), deep valleys block line-of-sight, dense rainforest absorbs signals
  • SF11 benefits: Each doubling of chirps per symbol adds ~2.5 dB sensitivity — SF11 vs SF7 provides ~10 dB advantage for weak signal reception
  • Wide BW benefits: Better handling of signal reflections off cliffs (multipath), tolerates timing errors from long propagation paths
  • Trade-off: Messages take 3-5 seconds (vs 200-600ms on Narrow), lower network capacity, but reliability is critical in sparse, difficult terrain

Bridge repeaters connect Illawarra (Wide) to the main NSW (Narrow) mesh, allowing cross-network communication.

Comparison Table

Aspect 🔷 Narrow (Sydney/NSW) 🔶 Wide (Illawarra)
Message airtime ~200-600ms ✅ ~3-5 seconds
Network capacity Higher (more msgs/min) ✅ Lower
Receiver sensitivity ~-137 dBm (via narrow BW) ~-134.5 dBm (via high SF)
Obstacle penetration Moderate Excellent ✅
Terrain handling Good for flat/urban Excellent for hills/valleys ✅
Multipath tolerance Lower Higher ✅
Best for Urban/suburban, good LOS Mountainous, NLOS, sparse coverage

📻 Channels

Core Channels

Channel Key Purpose
Public Public Channel General chat for all mesh users
Test #test Connection testing (bots auto-reply to test, ping, path)
Emergency #emergency Emergency communications only

Regional Channels

Channel Key Network
Sydney#sydney🔷 Narrow
NSW Wide#nsw🔷 Narrow
Macarthur#macarthur🔷 Narrow
Nepean#nepean🔷 Narrow
Central Coast#centralcoast🔷 Narrow
Illawarra#illawarra🔶 Wide

💡 Note: Illawarra uses the Wide preset. Messages can still reach between networks via bridge repeaters, but you must configure your radio for the correct preset in your area.

Bot Bridges (Discord Integration)

Channel Key Bot
RoloJnr#rolojnrDiscord bridge AI bot

💡 Tip: All # channel keys are auto-generated from the channel name.

🔒 Privacy Considerations

⚠️ Important: Anything sent via adverts or on public channels (including publicly known # channels) is subject to whatever the receiver chooses to do with the data.

What You Should Know

Messages, locations, and other data sent to the mesh should be considered public information.

Concern Details
🌐 Internet-accessible tools Maps and services display packet and location data publicly online
🔓 No guaranteed privacy Messages are only as private as every person who receives them
💾 Data persistence Once transmitted, you have no control over storage, sharing, or use
📍 Location precision Locations are transmitted with high precision

Location Privacy Tip

You can set an approximate location instead of your exact address:

  • Close enough for planning and coverage assessment
  • Offset enough to provide a privacy buffer
  • Consider using a nearby intersection, park, or general area

Best Practices

✅ Do:

  • Use Direct Messages for private conversations (with trusted keys)
  • Use Private Channels for group privacy (with trusted participants)
  • Set approximate locations for your devices

❌ Don't:

  • Share sensitive personal information on public channels
  • Broadcast your exact home address
  • Assume any public message is private

Encryption

Feature Encryption Privacy Level
Public channels AES-256-CTR 🔓 Public (key is shared)
# hashtag channels AES-256-CTR 🔓 Semi-public (key derived from name)
Private channels AES-256-CTR 🔒 Private (if key is secret)
Direct messages AES-256-CTR 🔒 Private (unique per conversation)

💡 MeshCore uses AES-256-CTR encryption. With secured keys and trustworthy recipients, your data is cryptographically protected.

🔧 Repeater Naming & Setup

Naming Convention

Type Naming Example
Fixed repeaters Name by location (suburb, hill, building) ⚡️- Mount Colah, 🌱 - Camperdown, Davo - Centrepoint Tower
Mobile repeaters Include "mobile" in name Johns Mobile

Setting Up Your Repeater

Step 1: Flash the Firmware

Flash the repeater using Meshcore firmware flasher.

Step 2: Generate a Unique Key Prefix

When flashed, the node will have a random public key. The first two characters of this key are the prefix, which is used to show routing paths for messages. If multiple nodes have the same prefix, it can cause confusion for message routes.

To generate a unique prefix:

  1. Go to the NSW key generator and configurator
  2. Tick Avoid NSW Repeaters — this avoids prefixes already in use on the mesh
  3. Press Generate Key and wait for it to finish
  4. Click Send To Device to upload the key to your repeater

Step 3: Configure Radio Settings, Name, and Location

Go to Meshcore USB Config and configure:

  • Radio Settings: Set the correct frequency, bandwidth, spreading factor, and coding rate (see Radio Settings)
  • Name: Give your repeater a meaningful name
  • Location: Set your repeater's location for mesh planning purposes
  • Guest Password: Set to guest to allow other mesh users to query your repeater's status
  • Send Advert: After configuring, click the Send Advert button to broadcast your repeater to the mesh

Step 4: ⏰ Sync the Clock — REQUIRED STEP

⚠️ CRITICAL: Your repeater will not work properly without syncing the clock first!

Repeaters default to a clock time of 15 May 2024 on every reboot unless connected to a computer.

Why this matters:

  • Your repeater will be invisible — Other nodes won't hear your adverts correctly
  • Messages may not route properly — Time synchronization is critical for mesh routing
  • Your node appears offline — Shows at bottom of contact lists

How to sync the clock:

  1. Log into your repeater via your companion node
  2. Go to Settings tab → Scroll to Sync Clock → Tap it
  3. Wait for green success notification
  4. Tap Advert to tell the repeater to send an advert
  5. Verify: Check that the "Last Heard" time for your repeater is current (not showing May 2024)

💡 Note: You must re-sync the clock after every power cycle or reboot unless your repeater has GPS or remains connected to a computer.

Step 5: Configure Repeater CLI Settings

Once logged in and the clock is synced, configure your repeater via the command line.

How to enter commands:

  1. Go to the >_Command Line tab
  2. Copy each command from your chosen profile
  3. Paste and send one command at a time
  4. Wait up to 30 seconds for an OK response
  5. If no response, resend the command

📺 Video Guide: More about repeaters (11:18)

⚙️ Repeater Configuration Profiles

Choose the profile that matches your repeater's role and position in the mesh network.

How to Choose Your Profile

Profile Elevation Neighbors Typical Location
🔴 CRITICAL Highest 20+ Hilltop, tower, tall building
🟠 LINK Mid 15-20 Ridge, elevated position
🟡 STANDARD Average 5-10 Suburban roof, elevated home
🟢 LOCAL Low 1-3 Indoor, ground-level, low roof

📝 MeshCore Defaults: txdelay=0.5, direct.txdelay=0.2, rxdelay=0, af=1.0

All profiles below modify these defaults to optimize for the Sydney mesh.

🔴 CRITICAL — Hilltop/Tower Infrastructure

Role: Highest elevation, most neighbors, backbone of the mesh

When to use: Your repeater is on a tall hilltop, tower, or tall building with clear line-of-sight to many other nodes. You can see 20+ neighbors and are a key link in the network backbone.

set txdelay 2
set direct.txdelay 2
set rxdelay 3
set af 3

Why these values:

  • High txdelay (2.0): Waits longer before retransmitting, letting smaller nodes serve their local areas first
  • rxdelay (3): Standard rxdelay for all Sydney mesh repeaters
  • High af (3): Enforces 25% duty cycle to prevent channel hogging

🟠 LINK — Mid-elevation Bridge

Role: Connects critical nodes to local coverage, moderate neighbor count

When to use: Your repeater bridges between tall infrastructure and suburban coverage. You can see some critical nodes and some local nodes (15-20 neighbors typical).

set txdelay 1.5
set direct.txdelay 1
set rxdelay 3
set af 2

Why these values:

  • Moderate txdelay (1.5): Balances responsiveness with collision avoidance
  • rxdelay (3): Standard rxdelay for all Sydney mesh repeaters
  • Moderate af (2): 33% duty cycle balances bridging role with fair channel access

🟡 STANDARD — Suburban Coverage

Role: Average positioning, serves local area, moderate neighbors

When to use: Typical deployment. Your repeater is in an elevated position, serving a localized area. You see 5-10 neighbors.

set txdelay 0.8
set direct.txdelay 0.4
set rxdelay 3
set af 1.5

Why these values:

  • Lower txdelay (0.8): More responsive for local coverage
  • rxdelay (3): Standard rxdelay for all Sydney mesh repeaters
  • Lower af (1.5): 40% duty cycle, reasonable responsiveness

🟢 LOCAL — Ground-level/Indoor

Role: Low elevation, few neighbors, serves immediate area

When to use: Indoor repeater, low rooftop, or ground-level installation. You only see 1-3 neighbors and primarily serve your immediate area.

set txdelay 0.3
set direct.txdelay 0.1
set rxdelay 3
set af 1

Why these values:

  • Minimal txdelay (0.3): Maximum responsiveness with low collision risk
  • rxdelay (3): Standard rxdelay for all Sydney mesh repeaters
  • Low af (1): 50% duty cycle, not creating congestion

⚙️ Common Settings (All Repeaters)

Apply these settings to all repeaters regardless of role.

Commands to Apply

set agc.reset.interval 500
set multi.acks 1
set advert.interval 240
set flood.advert.interval 24
set guest.password guest
powersaving on

Quick Reference

Setting Value MeshCore Default What it does
agc.reset.interval 500 0 (disabled) AGC reset every 500 seconds (~8 min) to prevent sensitivity drift
multi.acks 1 1 Send redundant ACKs for better delivery reliability
advert.interval 240 0 Local advert every 240 minutes (neighbors only)
flood.advert.interval 24 12 Network-wide advert every 24 hours
guest.password guest (none) Standard guest access password
powersaving on off Power saving mode (light sleep between activity)

📖 Understanding the Settings

This section explains what each setting does and why it matters for mesh performance.

AGC Reset Interval

The Automatic Gain Control (AGC) in LoRa radios adjusts receiver sensitivity automatically. However, AGC can drift in busy environments, reducing sensitivity over time.

⚠️ Known Issue: Loud RF signals can lock up the AGC, preventing the repeater from receiving packets until it's reset.

How it works: The radio periodically re-initializes the receiver to reset AGC to optimal sensitivity. Value is in seconds.

Multiple Acknowledgments

Controls whether redundant ACKs are sent for direct (point-to-point) messages.

  • 1 (enabled): Sends two ACK packets: a "multi-ack" first, then the standard ACK
  • 0 (disabled): Sends only a single ACK packet

Redundant ACKs significantly improve delivery confirmation reliability.

Advertisement Intervals

Repeaters periodically announce themselves so other nodes can discover them.

  • Local advert (240 min): Zero-hop broadcast to immediate neighbors only
  • Flood advert (24 hrs): Network-wide broadcast, rebroadcast by all repeaters

Power Saving Mode

Power saving mode puts the repeater into light sleep between periods of activity to reduce power consumption.

  • Active period (5 seconds) — Process packets, send adverts
  • Light sleep (up to 30 minutes) — Wakes on timer or packet received

💡 Sydney Mesh Recommendation: powersaving on for most repeaters to reduce power consumption and heat generation.

🎯 Role-Specific Settings Explained

These settings work together to optimize mesh performance based on your repeater's position and traffic load.

Quick Reference

Setting Default What It Controls Rule of Thumb
txdelay 0.5 Wait before retransmitting floods Higher = let other nodes go first
direct.txdelay 0.2 Wait before retransmitting direct packets Usually lower than txdelay
rxdelay 0 Signal-based processing priority Higher = prefer strongest signal
af 1.0 Radio silence after transmitting Higher = more listening

Transmission Delay (txdelay / direct.txdelay)

Controls how long a repeater waits before retransmitting a packet it needs to forward.

The Formula:

max_delay = estimated_airtime × txdelay × 5
actual_delay = random(0, max_delay)

Why CRITICAL Nodes Use Higher Values:

Hilltop/tower repeaters typically hear many other repeaters. By using higher txdelay, critical nodes essentially say: "I'll wait and let the smaller nodes go first."

txdelay Delay Window Collision Risk Propagation Speed
High (2.0) Wide ✅ Lower Slower
Low (0.3) Narrow ⚠️ Higher Faster

Airtime Factor (af)

Enforces a "radio silence" period after each transmission, implementing a duty cycle limit.

The Formula:

silence_period = transmission_time × airtime_factor
af Duty Cycle Best For
1.0 50% (1:1) 🟢 Local nodes with few neighbors
1.5 40% (1:1.5) 🟡 Standard suburban repeaters
2 33% (1:2) 🟠 Link nodes bridging regions
3 25% (1:3) 🔴 Critical infrastructure (heavy traffic)

Receive Delay (rxdelay) — Signal-Based Processing

The rxdelay setting uses signal strength to determine which copy of a packet to process first.

Signal Strength Score Delay Result
Strong (nearby) ~0.8 ~50ms ✅ Processed first
Medium ~0.5 ~300ms Processed after stronger signals
Weak (distant) ~0.3 ~800ms ❌ Often discarded as duplicate

💡 All Sydney mesh repeaters use rxdelay 3 for consistency and optimal performance.

Back to Home View Build Guides Join Discord