Meshcore

Information on the technical side of Meshcore

Meshcore Bandwidth, bitrate and airtime

Taken from: MrAlders0n [On Discord], — 9/6/26, 10:58 PM

Airtime on 910.525

Quick reference on what our default preset actually gives us.

The preset
910.525 MHz, SF7, BW 62.5 kHz, CR5. That is the USA/Canada recommended setting and what every node in Ottawa should be running.

How much spectrum
62.5 kHz wide, so roughly 910.494 to 910.556 MHz. The 902 to 928 band has room for more than 400 channels that size. We all share one of them.

How much data
2,734 bps at the physical layer. That is not per node, that is the total for everyone inside earshot of each other.

What a packet costs
Time on air at our settings:

16 bytes ......... 103 ms
32 bytes ......... 144 ms
64 bytes ......... 236 ms
120 bytes ........ 400 ms   (a signed advert)
200 bytes ........ 635 ms

Airtime percentages
LoRa has no real collision avoidance, so throughput starts dropping once the channel is busy more than about 15 to 20 percent of the time. That is the number to stay under.

Take 30 repeaters in range of each other. A flood advert gets rebroadcast by each one, so a single advert costs around 12 seconds of shared airtime. All 30 doing it once is roughly 370 seconds of channel time.

47 hour flood interval:  0.2 percent airtime
1 hour flood interval:   10 percent airtime
15 minute interval:      41 percent airtime

Zero hop adverts are single transmissions with no rebroadcast, so a 4 hour zero hop interval across 30 repeaters costs under 0.1 percent. Those are cheap.

Takeaway
Keep flood adverts at 47 hours. That one setting is the difference between adverts using a fraction of a percent of our airtime and using a large share of it. Messages, telemetry and room posts all come out of whatever is left.

Numbers assume the worst case where every repeater hears every other one. Real coverage is patchier and repeaters that cannot hear each other transmit at the same time, so actual figures run lower, but the ratios hold.

Ottawa # chanels

List of Ottawa # chanel

Anyone can update this list

Please add any channel to this wiki list, anyone can register on this wiki with an email an password, no e-main verification required (the email can even be made-up). Just use a tiny header for the #.

Anyone can create any # channels in meshcore

# channels keys are generated from the channel name so everyone who adds a # channel of the same name will instantly be able to talk to each other over flood.

List:

Public

Public is the default unencrypted channel, this is where new users land, and sometimes the default conversations, however #ottawa is sometimes favoured (at least before the traffic was scoped). No bots are allowed here. The only bot there is ottobot but only for welcoming new usernames with our mesh website for procedures.

#ottawa

The official meshcore channel for Ottawa. No bots are allowed

#testing

You can do any test in there, people may answer, ottobot may also answer. You can request an ACK for a response or no ACK.

#bots

All the bots should be placed here, an example of command would be @ottobot !ping or @ottobot !test

When you add your own bot, please consider the following bot etiquette https://ottawamesh.ca/meshcore/general-bot-etiquette/

#ott-alerts

You can add this channel to receive automated alerts such as weather alerts and hydro Ottawa power outages. Please keep the chatter to a minimum on this channel (ideally read-only) as people might keep the notifications on for emergencies only.

#operators

Add this channel if you are the owner or the manager of some meshcore repeaters. Critical information and procedures from the discord will be distributed here as well for everyone to apply when needed. You can also consult with fellow operators when needed.

#meshcore

For questions about meshcore, much like #meshcore in discord but for people outside discord

#radio

For radio frequency discussions, mosly for question about radio, since radio experts are monitoring this channel.

#montreal

This channel is the main channel in Montréal. With the new scope blocking Edge repeaters, this channel is out of reach to Ottawa, and should not be used anymore, even with a bridging scope like onqc out of respect for them (to avoid unidirectional spamming)

#gatineau

A channel for people in YOW on the Gatineau side, this channel may be use to limit the chatter to the Québec side only or to speak in French.

#aylmer

A channel for Aylmer QC

#barrhaven

A place for people in the Barrhaven area.

#bike
#caf

Canadian Armed Forces and veterans

#cars

For car people and mechanics to talk about cars and projects

#constancebay
#games
#hamradio

To talk to amateur radio HAMs in the Ottawa region

#hike
#music
#wardriving

This channel is automatically added my MeshMapper app, it sends internal codes to the server. You don't need to add this.

#watersport
#queer

Home Assistant meshcore polling rate

Assistant integration polling best practices

How it affects the mesh

Limiting your polling rate in MeshCore is essential because LoRa radio frequencies have extremely limited bandwidth and are shared across your entire network.

Here is why high polling rates cause problems:

Since meshcore traffic should prioritize human messages, we should aks the community to poll their repeaters with Home Assistant in a responsible manner and reduce the polling rate if their repeater path is multi hop.

The polling rate per hop

As a rule of thumb, we can use the formula hours=2^hops to estimate a polling rate in hours for the number of hops required one way. Here is an example :

Hops Hours
0 1
1 2
2 4
3 8
4 16
5 32
6 64

You can change the polling rate of a repeater in the meshcore integration, the cog wheel, manage monitored device, select device, submit, update_interval (in seconds)