<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.scotmesh.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ScotMesh</id>
	<title>ScotMesh Wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.scotmesh.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ScotMesh"/>
	<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/wiki/Special:Contributions/ScotMesh"/>
	<updated>2026-09-20T00:23:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Troubleshooting&amp;diff=170</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Troubleshooting&amp;diff=170"/>
		<updated>2026-09-17T12:36:45Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Drop the 433 MHz profile: it has been scrapped, ScotMesh is 868 MHz only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Symptom first, then the usual cause and what to do. Start with the three commands, then find your symptom below. Faults that took someone more than an hour to work out have their own entries in [[Known bugs and workarounds]].&lt;br /&gt;
&lt;br /&gt;
== The three commands ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Tells you&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt; || Every interface: Up or Down, and traffic in and out. &#039;&#039;&#039;Run this first.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rnpath -t &amp;amp;lt;address&amp;amp;gt;&amp;lt;/code&amp;gt; || Whether your node knows a path to an address, how many hops, and via which interface. Add &amp;lt;code&amp;gt;-t&amp;lt;/code&amp;gt; to ask the network if it does not.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rnprobe &amp;amp;lt;address&amp;amp;gt;&amp;lt;/code&amp;gt; || Sends a probe and reports the round-trip time, proving the destination is actually there and answering.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you installed Reticulum in a virtual environment, use the full path, for example &amp;lt;code&amp;gt;~/reticulum/bin/rnstatus&amp;lt;/code&amp;gt;. In MeshChatX the same information is on the Interfaces page and in its log.&lt;br /&gt;
&lt;br /&gt;
== Reading rnstatus ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;TCPInterface[ScotMesh Backbone/rns.scotmesh.net:4242]&lt;br /&gt;
   Status  : Up&lt;br /&gt;
   Traffic : ↑1.2 KB  ↓14.8 KB&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status: Up&#039;&#039;&#039; means the connection is open. It does not by itself mean the far end is a working transport node; traffic climbing does.&lt;br /&gt;
* &#039;&#039;&#039;Traffic&#039;&#039;&#039; should rise within a minute or two of connecting, because announces arrive. Up with no traffic for five minutes is a fault.&lt;br /&gt;
* An interface &#039;&#039;&#039;missing entirely&#039;&#039;&#039; from the list was not loaded: usually indentation in the config file.&lt;br /&gt;
&lt;br /&gt;
== Symptoms ==&lt;br /&gt;
&lt;br /&gt;
=== Interface shows Down ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! If it is !! Then&lt;br /&gt;
|-&lt;br /&gt;
| The TCP interface || No route out, or a typo in the hostname or port. &amp;lt;code&amp;gt;ping rns.scotmesh.net&amp;lt;/code&amp;gt;; check the [[Main Page|status strip]] to see whether the node itself is down.&lt;br /&gt;
|-&lt;br /&gt;
| The I2P interface, in the first ten minutes || Normal. Tunnels are still being built.&lt;br /&gt;
|-&lt;br /&gt;
| The I2P interface, for longer || Is i2pd running, and is SAM enabled on port 7656? If i2pd keeps restarting, see [[Known bugs and workarounds]].&lt;br /&gt;
|-&lt;br /&gt;
| An RNode || Wrong port, or the board is not in the right mode. &amp;lt;code&amp;gt;rnodeconf -i /dev/ttyUSB0&amp;lt;/code&amp;gt; should answer; if not, check the cable and that nothing else has the port open.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interface is not in the list at all ===&lt;br /&gt;
&lt;br /&gt;
The config file did not load that block. Check that it sits under &amp;lt;code&amp;gt;[interfaces]&amp;lt;/code&amp;gt;, that &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Name]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is indented two spaces and its settings four, and that &amp;lt;code&amp;gt;enabled = yes&amp;lt;/code&amp;gt; is present. &amp;lt;code&amp;gt;rnsd -v&amp;lt;/code&amp;gt; prints config errors on start.&lt;br /&gt;
&lt;br /&gt;
=== No path to a destination ===&lt;br /&gt;
&lt;br /&gt;
You cannot reach what has not announced. Wait a couple of minutes after connecting, then &amp;lt;code&amp;gt;rnpath -t &amp;amp;lt;address&amp;amp;gt;&amp;lt;/code&amp;gt; to ask for it. If a path never appears, either the address is wrong, the destination is offline, or nothing between you and it is a transport node.&lt;br /&gt;
&lt;br /&gt;
=== A client hangs on “securing link” ===&lt;br /&gt;
&lt;br /&gt;
The far end is not answering the link request. If it is our node, and other hubs work from the same client, you may have been locked out by the fast-flapping block; [[Known bugs and workarounds]] explains. Otherwise the destination has gone away since it announced; wait for the next announce.&lt;br /&gt;
&lt;br /&gt;
=== Messages do not arrive ===&lt;br /&gt;
&lt;br /&gt;
* The recipient is offline and neither of you has a [[Propagation node|propagation node]] set. Set ours.&lt;br /&gt;
* You have one set but have not synced: ask your client to fetch from the propagation node.&lt;br /&gt;
* The recipient has never announced to you. Ask them to announce (every client has a button), or paste their address.&lt;br /&gt;
&lt;br /&gt;
=== My node never appears on anyone&#039;s list ===&lt;br /&gt;
&lt;br /&gt;
You are announcing too rarely. Nodes announce every six hours by default; set 30 to 60 minutes ([[Running your own transport node#3. Announce often enough|how]]). Node maps such as rmap.world also need the node to be reachable from their side.&lt;br /&gt;
&lt;br /&gt;
=== Two LoRa radios cannot hear each other ===&lt;br /&gt;
&lt;br /&gt;
Frequency, bandwidth, spreading factor and coding rate must match exactly. A mismatch gives no error; the radios are simply deaf to each other. Compare against the [[RNode|ScotMesh profile]]. Then check the antenna is for the right band and actually connected: transmitting into no antenna at 22 dBm can damage the radio.&lt;br /&gt;
&lt;br /&gt;
=== Everything worked yesterday ===&lt;br /&gt;
&lt;br /&gt;
Restart &amp;lt;code&amp;gt;rnsd&amp;lt;/code&amp;gt; (or the app). Reticulum keeps paths and links in memory, and after a long run with interfaces coming and going a restart clears stale state. Then check the status strip: the node itself may have restarted.&lt;br /&gt;
&lt;br /&gt;
== Reading the daemon log ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rnsd -vv&amp;lt;/code&amp;gt; in a terminal shows what the daemon is doing in real time: interfaces coming up, announces received, paths learned, link requests. Most puzzles are solved by watching it for a minute while you try the thing that fails. As a service, &amp;lt;code&amp;gt;journalctl -u rnsd -f&amp;lt;/code&amp;gt; shows the same.&lt;br /&gt;
&lt;br /&gt;
== Still stuck ==&lt;br /&gt;
&lt;br /&gt;
Ask in [[The chat room|the chat room]] if you can reach it, or on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord] if you cannot. Include the output of &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt; and what you expected to happen.&lt;br /&gt;
&lt;br /&gt;
[[Category:Operations]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=The_ScotMesh_node&amp;diff=169</id>
		<title>The ScotMesh node</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=The_ScotMesh_node&amp;diff=169"/>
		<updated>2026-09-17T12:36:44Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: rrc-hub retired: the chat room is run by the ScotMesh chat hub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ScotMesh node&#039;&#039;&#039; is a public Reticulum [[Glossary#Transport node|transport node]] for Scotland, reachable as &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt;. Anyone can connect to it, there is no registration and it costs nothing. It is the front page of this book; the pages after it cover each service in turn.&lt;br /&gt;
&lt;br /&gt;
== What it does ==&lt;br /&gt;
&lt;br /&gt;
The node does four things:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Carries traffic.&#039;&#039;&#039; It is a transport node with &amp;lt;code&amp;gt;enable_transport&amp;lt;/code&amp;gt; on, so anything connected to it can reach anything it can reach: other ScotMesh users, and through [[Who we peer with|our peers]], the wider public Reticulum network. It relays encrypted packets only; it cannot read them.&lt;br /&gt;
* &#039;&#039;&#039;Hosts the chat room.&#039;&#039;&#039; An RRC (Reticulum Relay Chat) hub with the &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; room. See [[The chat room]].&lt;br /&gt;
* &#039;&#039;&#039;Serves pages.&#039;&#039;&#039; A [[Nomad Network]] node with connection details and news, browsable from inside Reticulum with no internet needed.&lt;br /&gt;
* &#039;&#039;&#039;Holds messages for people who are offline.&#039;&#039;&#039; An LXMF [[Propagation node|propagation node]], so a message sent to someone whose radio is off or who is out of range is delivered when they reappear.&lt;br /&gt;
&lt;br /&gt;
Every address is on [[Services and addresses]].&lt;br /&gt;
&lt;br /&gt;
== Where it is and what it runs on ==&lt;br /&gt;
&lt;br /&gt;
The node is hosted in Dalgety Bay, Fife. It runs on Ubuntu, with one Reticulum daemon (&amp;lt;code&amp;gt;rnsd&amp;lt;/code&amp;gt;) shared by the propagation node (&amp;lt;code&amp;gt;lxmd&amp;lt;/code&amp;gt;), the Nomad Network node and an I2P router (&amp;lt;code&amp;gt;i2pd&amp;lt;/code&amp;gt;) for the [[Access over I2P|I2P entry point]].&lt;br /&gt;
&lt;br /&gt;
Its live status, updated every two minutes from the daemon itself, is on [https://rns.scotmesh.net rns.scotmesh.net] and at the top of this wiki&#039;s [[Main Page|home page]].&lt;br /&gt;
&lt;br /&gt;
== Ways in ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Use it when !! Details&lt;br /&gt;
|-&lt;br /&gt;
| TCP, &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt; port 4242 || You have an ordinary internet connection || [[Connecting to ScotMesh]]&lt;br /&gt;
|-&lt;br /&gt;
| I2P || You are behind CGNAT or a firewall you do not control || [[Access over I2P]]&lt;br /&gt;
|-&lt;br /&gt;
| LoRa radio || You are within range of a ScotMesh gateway || [[RNode]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What to expect ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Uptime.&#039;&#039;&#039; It is run by volunteers on a single machine. It is up almost all of the time, but it restarts for updates and it can go down. Reticulum copes with that: paths are found again when the node returns, and the [[Propagation node|propagation node]] delivers what was held.&lt;br /&gt;
* &#039;&#039;&#039;Reconnecting.&#039;&#039;&#039; Clients that reconnect quickly after a restart are welcome; the node&#039;s listener does not block them for it (see [[Known bugs and workarounds]] for why that needs saying).&lt;br /&gt;
* &#039;&#039;&#039;Privacy.&#039;&#039;&#039; The node sees which addresses are talking, as any transport node must, and nothing else. Messages, pages and files are encrypted end to end. Messages held by the propagation node are encrypted for their recipient. The chat hub keeps the chat room&#039;s messages for 7 days so newcomers can catch up; see [[The chat room]].&lt;br /&gt;
* &#039;&#039;&#039;Announces.&#039;&#039;&#039; The node&#039;s services announce themselves every hour, so once you are connected they appear in your client&#039;s lists by themselves.&lt;br /&gt;
&lt;br /&gt;
== When it breaks ==&lt;br /&gt;
&lt;br /&gt;
Check the status strip first. If it says the node is down, someone already knows. If it says up and you cannot connect, work through [[Troubleshooting]], then tell us on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord] or in the chat room once you are back on.&lt;br /&gt;
&lt;br /&gt;
== Running one yourself ==&lt;br /&gt;
&lt;br /&gt;
The network gets more resilient with every transport node that is not ours. [[Running your own transport node]] explains what it commits you to and how to peer with us.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Services_and_addresses&amp;diff=168</id>
		<title>Services and addresses</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Services_and_addresses&amp;diff=168"/>
		<updated>2026-09-17T12:36:43Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Drop the 433 MHz profile: it has been scrapped, ScotMesh is 868 MHz only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Every address for the ScotMesh node in one place. This is the page to copy from; each service is explained on its own page.&lt;br /&gt;
&lt;br /&gt;
== Entry points ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| TCP || &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;4242&amp;lt;/code&amp;gt; || The normal route. Interface type &amp;lt;code&amp;gt;TCPClientInterface&amp;lt;/code&amp;gt;. See [[Connecting to ScotMesh]].&lt;br /&gt;
|-&lt;br /&gt;
| I2P || &amp;lt;code&amp;gt;a3pswrtvpuro62ijhb7lwdt2n6aqgajglof27ynbonynmolzlz7q.b32.i2p&amp;lt;/code&amp;gt; || For networks that block outbound connections. Interface type &amp;lt;code&amp;gt;I2PInterface&amp;lt;/code&amp;gt;. See [[Access over I2P]].&lt;br /&gt;
|-&lt;br /&gt;
| LoRa || ScotMesh 868 radio profile || Within range of a gateway only. See [[RNode]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Service !! Address !! Reached from&lt;br /&gt;
|-&lt;br /&gt;
| Chat hub (RRC), room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt; || MeshChatX, Ratspeak, rrc-tui, rrc-gui, WeeChat, Eridanus. See [[The chat room]].&lt;br /&gt;
|-&lt;br /&gt;
| LXMF propagation node || &amp;lt;code&amp;gt;c283b754e0acc11ce48d2f5e29167e0c&amp;lt;/code&amp;gt; || Sideband, MeshChatX, Nomad Network, usually picked automatically. See [[Propagation node]].&lt;br /&gt;
|-&lt;br /&gt;
| Nomad Network node || &amp;lt;code&amp;gt;10a839df2c50635bcb0c8a299b9ca0f8&amp;lt;/code&amp;gt; || Nomad Network, MeshChatX. Entry page &amp;lt;code&amp;gt;10a839df2c50635bcb0c8a299b9ca0f8:/page/index.mu&amp;lt;/code&amp;gt;. See [[Nomad Network]].&lt;br /&gt;
|-&lt;br /&gt;
| Transport instance || &amp;lt;code&amp;gt;20b962cd814444f7812e409e7c47f319&amp;lt;/code&amp;gt; || Not something you connect to: it is the node&#039;s own identity, and what appears in &amp;lt;code&amp;gt;rnpath&amp;lt;/code&amp;gt; output and on node maps. Announced as “ScotMesh Backbone”.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Radio profile ==&lt;br /&gt;
&lt;br /&gt;
Every radio on the network must use exactly these settings; see [[RNode]] for why.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! ScotMesh 868&lt;br /&gt;
|-&lt;br /&gt;
| Frequency || 869.4625 MHz&lt;br /&gt;
|-&lt;br /&gt;
| Bandwidth || 125 kHz&lt;br /&gt;
|-&lt;br /&gt;
| Spreading factor || 9&lt;br /&gt;
|-&lt;br /&gt;
| Coding rate || 4/5&lt;br /&gt;
|-&lt;br /&gt;
| TX power || 22 dBm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Which addresses could change ==&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;hostname and port&#039;&#039;&#039; are stable.&lt;br /&gt;
* The &#039;&#039;&#039;destination addresses&#039;&#039;&#039; (chat hub, propagation node, Nomad Network node, transport instance) are derived from identity keys the node keeps backed up. They would only change if a key were lost or deliberately replaced, and we would say so here and on [https://rns.scotmesh.net rns.scotmesh.net].&lt;br /&gt;
* The &#039;&#039;&#039;I2P address&#039;&#039;&#039; is derived from a random key. It is backed up too, but of all the addresses it is the one most likely to change one day, so check here if it stops working.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=ScotMesh_microReticulum&amp;diff=167</id>
		<title>ScotMesh microReticulum</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=ScotMesh_microReticulum&amp;diff=167"/>
		<updated>2026-09-17T12:36:42Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Drop the 433 MHz profile: it has been scrapped, ScotMesh is 868 MHz only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ScotMesh microReticulum&#039;&#039;&#039; is our build of [https://github.com/attermann/microReticulum_Firmware attermann&#039;s microReticulum firmware]. It turns a LoRa board into its own Reticulum transport node, so a board on a hill or a roof can relay for the mesh with no Raspberry Pi. On top of upstream it adds:&lt;br /&gt;
&lt;br /&gt;
* the SenseCAP Solar Node P1;&lt;br /&gt;
* battery reporting;&lt;br /&gt;
* a NomadNet page you can manage the node from over the mesh;&lt;br /&gt;
* a small telemetry API;&lt;br /&gt;
* a position on [https://rmap.world rmap.world].&lt;br /&gt;
&lt;br /&gt;
Source: [https://github.com/ScotMesh/microReticulum_Firmware github.com/ScotMesh/microReticulum_Firmware]. Firmware: [https://rnode.scotmesh.net rnode.scotmesh.net] (choose &#039;&#039;Standalone node&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Board&lt;br /&gt;
! Node pages &amp;amp;amp; API&lt;br /&gt;
! Firmware update over the air&lt;br /&gt;
|-&lt;br /&gt;
| Seeed SenseCAP Solar Node P1 🏴󠁧󠁢󠁳󠁣󠁴󠁿 built by ScotMesh&lt;br /&gt;
| Yes&lt;br /&gt;
| Bluetooth update window, or USB bootloader&lt;br /&gt;
|-&lt;br /&gt;
| Heltec V2/V3/V4, Heltec Wireless Tracker V2, XIAO ESP32S3, T-Beam Supreme, T-Deck&lt;br /&gt;
| Yes&lt;br /&gt;
| WiFi update window&lt;br /&gt;
|-&lt;br /&gt;
| T-Beam, T3S3, LoRa32 v1/v2/v2.1, RNode NG 2.0/2.1, Feather ESP32, generic ESP32&lt;br /&gt;
| Yes&lt;br /&gt;
| USB only (one firmware slot)&lt;br /&gt;
|-&lt;br /&gt;
| RAK4631, RAK3401, T-Echo&lt;br /&gt;
| Original microReticulum pages (the new ones don&#039;t fit their flash yet)&lt;br /&gt;
| USB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Setting a node up ==&lt;br /&gt;
&lt;br /&gt;
# Open [https://rnode.scotmesh.net rnode.scotmesh.net] in Chrome or Edge on a computer. Choose &#039;&#039;&#039;Standalone node&#039;&#039;&#039;, pick your board, and flash.&lt;br /&gt;
# On the configure step:&lt;br /&gt;
#* pick &#039;&#039;&#039;ScotMesh 868&#039;&#039;&#039;;&lt;br /&gt;
#* give the node a name;&lt;br /&gt;
#* choose its role (normally &#039;&#039;Fixed relay&#039;&#039;);&lt;br /&gt;
#* paste your identity hash under &#039;&#039;Remote management&#039;&#039;. That makes you its admin.&lt;br /&gt;
# The node restarts in transport mode and announces its NomadNet page. You can do everything else from that page over the mesh.&lt;br /&gt;
&lt;br /&gt;
== Using the node&#039;s page ==&lt;br /&gt;
&lt;br /&gt;
Open the node&#039;s NomadNet address in Nomad Network or MeshChatX. You&#039;ll find the address:&lt;br /&gt;
&lt;br /&gt;
* at the end of the flasher;&lt;br /&gt;
* on the node&#039;s &#039;&#039;About&#039;&#039; page;&lt;br /&gt;
* in the node&#039;s announce.&lt;br /&gt;
&lt;br /&gt;
Every page is small enough to arrive in &#039;&#039;&#039;one LoRa packet&#039;&#039;&#039;, so it loads first time even on weak links. Most are 150–300 bytes, and the limit is 409.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The screenshots below are the real pages, fetched over LoRa from our bench P1 (3 hops, through rns.scotmesh.net and a gateway). What you see in your browser depends on its colours.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Home page ===&lt;br /&gt;
&lt;br /&gt;
[[File:home.png|frameless|upright=2.2|The node&#039;s home page as a visitor sees it]]&lt;br /&gt;
&lt;br /&gt;
The home page shows:&lt;br /&gt;
&lt;br /&gt;
* the node&#039;s name;&lt;br /&gt;
* its battery, as a bar (green / amber / red) with % and voltage, plus &amp;lt;span style=&amp;quot;color:#22cc55;&amp;quot;&amp;gt;▲&amp;lt;/span&amp;gt; while charging or &amp;lt;span style=&amp;quot;color:#dd9933;&amp;quot;&amp;gt;▼&amp;lt;/span&amp;gt; while discharging;&lt;br /&gt;
* uptime and the number of known routes.&lt;br /&gt;
&lt;br /&gt;
An admin can also show the radio settings, airtime and an operator line. The footer always shows the firmware version and the board. &#039;&#039;Not identified&#039;&#039; means your browser hasn&#039;t identified to the node. That&#039;s fine for visitors.&lt;br /&gt;
&lt;br /&gt;
=== Routes and neighbours ===&lt;br /&gt;
&lt;br /&gt;
[[File:routes.png|frameless|upright=2.2|Routes page with short addresses]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Routes&#039;&#039;&#039; lists the node&#039;s path table: destination, hops and when it was last heard. &#039;&#039;&#039;Neighbours&#039;&#039;&#039; lists the transport nodes it hears directly, with their names where they announce one. To change the view:&lt;br /&gt;
&lt;br /&gt;
* tick &#039;&#039;Short&#039;&#039; for 8-character addresses (or leave it off for full ones);&lt;br /&gt;
* set &#039;&#039;Rows&#039;&#039; and press &#039;&#039;Apply&#039;&#039;;&lt;br /&gt;
* use &#039;&#039;next&#039;&#039; and &#039;&#039;back&#039;&#039; to page through.&lt;br /&gt;
&lt;br /&gt;
An admin can hide both pages from visitors.&lt;br /&gt;
&lt;br /&gt;
=== Becoming an admin ===&lt;br /&gt;
&lt;br /&gt;
You are an admin if your identity is on the node&#039;s remote-management list (the same list &amp;lt;code&amp;gt;rnstatus -R&amp;lt;/code&amp;gt; checks). In your browser, choose &#039;&#039;&#039;Identify&#039;&#039;&#039; for the node (NomadNet: the &#039;&#039;Identify&#039;&#039; option on the page; MeshChatX: &#039;&#039;identify to this node&#039;&#039;) and reload. The page then shows 🛡️ &#039;&#039;Verified identity&#039;&#039; and an &#039;&#039;&#039;Admin&#039;&#039;&#039; link. There is no password to log in with: being identified is being logged in.&lt;br /&gt;
&lt;br /&gt;
[[File:home-admin.png|frameless|upright=2.2|Home page seen by an admin]]&lt;br /&gt;
&lt;br /&gt;
Admins see every row. A &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; marks rows that visitors don&#039;t see.&lt;br /&gt;
&lt;br /&gt;
If an admin has switched on &#039;&#039;&#039;password registration&#039;&#039;&#039;, a visitor who has identified sees &#039;&#039;Register&#039;&#039;. Entering the password adds their identity as an admin, or puts them in a queue for an existing admin to approve.&lt;br /&gt;
&lt;br /&gt;
=== The admin pages ===&lt;br /&gt;
&lt;br /&gt;
[[File:admin-hub.png|frameless|upright=2.2|Admin hub]]&lt;br /&gt;
&lt;br /&gt;
The hub shows battery and uptime, and warns you when a radio trial needs confirming or someone is waiting for approval. It links to three sections.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
! Pages&lt;br /&gt;
|-&lt;br /&gt;
| Settings&lt;br /&gt;
| &#039;&#039;&#039;Name &amp;amp;amp; announce&#039;&#039;&#039;: renaming announces straight away. Announce every 30 min, 1 h, 3 h, 6 h or 12 h.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Home page&#039;&#039;&#039;: what visitors see, telemetry API on or off, and a visitor preview.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Map&#039;&#039;&#039;: rmap.world position.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Radio&#039;&#039;&#039;, &#039;&#039;&#039;Role&#039;&#039;&#039;, &#039;&#039;&#039;Power&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Access&lt;br /&gt;
| &#039;&#039;&#039;Admins&#039;&#039;&#039;: add by identity hash; remove with confirmation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Password&#039;&#039;&#039; registration.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Change log&#039;&#039;&#039;: every admin change, with time and who made it.&lt;br /&gt;
|-&lt;br /&gt;
| Device&lt;br /&gt;
| &#039;&#039;&#039;Health&#039;&#039;&#039;: free RAM and flash, starts and last reset reason, noise floor, last RSSI/SNR, airtime, packets, table sizes.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lights &amp;amp;amp; Bluetooth&#039;&#039;&#039;, &#039;&#039;&#039;Logs&#039;&#039;&#039; (last five log lines), &#039;&#039;&#039;Maintenance&#039;&#039;&#039;, &#039;&#039;&#039;Restart &amp;amp;amp; update&#039;&#039;&#039;, &#039;&#039;&#039;About&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:settings.png|frameless|upright=2.2|Settings section]]&lt;br /&gt;
&lt;br /&gt;
[[File:device.png|frameless|upright=2.2|Device section]]&lt;br /&gt;
&lt;br /&gt;
==== Name &amp;amp;amp; announce ====&lt;br /&gt;
&lt;br /&gt;
[[File:name.png|frameless|upright=2.2|Name and announce page]]&lt;br /&gt;
&lt;br /&gt;
Change the name, set an optional operator line (e.g. a callsign) and set how often the node announces its page. Longer intervals save airtime on a busy channel. Renaming announces at once.&lt;br /&gt;
&lt;br /&gt;
==== Home page layout ====&lt;br /&gt;
&lt;br /&gt;
[[File:home-layout.png|frameless|upright=2.2|Home page layout settings]]&lt;br /&gt;
&lt;br /&gt;
Tick what visitors may see. &#039;&#039;Preview&#039;&#039; shows the page as a visitor would see it. &#039;&#039;Telemetry API&#039;&#039; turns the &amp;lt;code&amp;gt;/api&amp;lt;/code&amp;gt; endpoints on or off.&lt;br /&gt;
&lt;br /&gt;
==== Radio and role ====&lt;br /&gt;
&lt;br /&gt;
[[File:radio.png|frameless|upright=2.2|Radio page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Radio changes are a trial.&#039;&#039;&#039; Enter new settings (or pick &#039;&#039;ScotMesh 868&#039;&#039;) and press &#039;&#039;Try these&#039;&#039;. The node uses them for five minutes. Reconnect on the new settings and press &#039;&#039;Keep&#039;&#039;. If you don&#039;t, the node goes back to the old settings by itself, so a mistake can&#039;t strand a remote node.&lt;br /&gt;
&lt;br /&gt;
[[File:role.png|frameless|upright=2.2|Role page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Role&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Fixed relay&#039;&#039;: forwards for everyone. Use it for hilltop and roof nodes.&lt;br /&gt;
* &#039;&#039;Access point&#039;&#039;: for a node that serves nearby clients.&lt;br /&gt;
* &#039;&#039;Mobile&#039;&#039;: for a node that moves.&lt;br /&gt;
* &#039;&#039;End device&#039;&#039;: never forwards.&lt;br /&gt;
&lt;br /&gt;
A role change applies after a restart.&lt;br /&gt;
&lt;br /&gt;
==== Power ====&lt;br /&gt;
&lt;br /&gt;
[[File:power.png|frameless|upright=2.2|Power page]]&lt;br /&gt;
&lt;br /&gt;
Below a chosen battery level, the node can lower its TX power to 10 dBm or turn its radio off until it has charged. It can also keep its radio off below 3.3 V to protect the cell.&lt;br /&gt;
&lt;br /&gt;
==== Admins and password registration ====&lt;br /&gt;
&lt;br /&gt;
[[File:admins.png|frameless|upright=2.2|Admins page]]&lt;br /&gt;
&lt;br /&gt;
[[File:password.png|frameless|upright=2.2|Password registration page]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Admins&#039;&#039;&#039; (up to 8): paste a 32-character identity hash and press &#039;&#039;Add&#039;&#039;. Tap an identity to remove it; you&#039;re asked to confirm. The node won&#039;t remove its last admin.&lt;br /&gt;
* &#039;&#039;&#039;Password registration&#039;&#039;&#039; is off by default. An admin sets a password. Someone who knows it can identify to the node and register their own identity as an admin.&lt;br /&gt;
** Three wrong tries lock that identity for 15 minutes.&lt;br /&gt;
** Ten wrong tries in an hour pause registration.&lt;br /&gt;
** With &#039;&#039;Needs approval&#039;&#039; ticked, new registrations wait for an existing admin.&lt;br /&gt;
&lt;br /&gt;
==== Health, lights and Bluetooth ====&lt;br /&gt;
&lt;br /&gt;
[[File:health.png|frameless|upright=2.2|Health page]]&lt;br /&gt;
&lt;br /&gt;
[[File:lights.png|frameless|upright=2.2|Lights and Bluetooth page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lights&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* the activity LEDs can be on, off, or on only for the first 10 minutes after a start;&lt;br /&gt;
* &#039;&#039;Blink 30 s&#039;&#039; helps you find a node on a mast;&lt;br /&gt;
* error patterns always show.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bluetooth&#039;&#039;&#039; can be turned off to save power on a sealed box. &#039;&#039;Unpair all&#039;&#039; forgets paired phones.&lt;br /&gt;
&lt;br /&gt;
==== Maintenance ====&lt;br /&gt;
&lt;br /&gt;
[[File:maintenance.png|frameless|upright=2.2|Maintenance page]]&lt;br /&gt;
&lt;br /&gt;
From here you can:&lt;br /&gt;
&lt;br /&gt;
* announce now;&lt;br /&gt;
* restart automatically every day or every week;&lt;br /&gt;
* clear stored routes and data;&lt;br /&gt;
* factory reset. This keeps the node&#039;s identity and its admins.&lt;br /&gt;
* full reset. The node forgets its identity too: new addresses, no admins, no settings. Use it to hand a node on, or before re-flashing it as a different node. Afterwards it needs USB to make it yours again (the flasher&#039;s &#039;&#039;Reconfigure&#039;&#039; path).&lt;br /&gt;
&lt;br /&gt;
Anything disruptive asks you to confirm, with a link that works once, for two minutes.&lt;br /&gt;
&lt;br /&gt;
=== Restart and firmware updates without a cable ===&lt;br /&gt;
&lt;br /&gt;
[[File:update.png|frameless|upright=2.2|Restart and update page]]&lt;br /&gt;
&lt;br /&gt;
Updates are started from the node&#039;s page over the mesh, but the firmware itself is too big to send over LoRa, so someone has to be near the node with a phone or laptop for the transfer. The node accepts the new image&#039;s hash by itself afterwards; you don&#039;t need &amp;lt;code&amp;gt;rnodeconf&amp;lt;/code&amp;gt; or the flasher.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WiFi update&#039;&#039;&#039; (ESP32 boards with two firmware slots: Heltec V2/V3/V4, Tracker V2, XIAO ESP32S3, T-Beam Supreme, T-Deck):&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;Device → Restart &amp;amp;amp; update → WiFi update → Yes, start&#039;&#039;. The page shows a one-time WiFi password. Write it down; it is shown once.&lt;br /&gt;
# The node restarts as a WiFi access point called &#039;&#039;&#039;ScotMesh-Update&#039;&#039;&#039;, off the mesh, for &#039;&#039;&#039;20 minutes&#039;&#039;&#039;.&lt;br /&gt;
# Within WiFi range, join that network with the password and open &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.4.1&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
# Choose the &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; from inside the board&#039;s release zip (for example &amp;lt;code&amp;gt;rnode_firmware_heltec32v3.bin&amp;lt;/code&amp;gt;) and press &#039;&#039;Update&#039;&#039;. The node verifies it and restarts into the new firmware.&lt;br /&gt;
&lt;br /&gt;
A WiFi update leaves the node running from its second firmware slot. That&#039;s fine for the flasher (it always resets the slot choice), but if you later update by hand with &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;rnodeconf&amp;lt;/code&amp;gt;, write &amp;lt;code&amp;gt;boot_app0.bin&amp;lt;/code&amp;gt; at &amp;lt;code&amp;gt;0xE000&amp;lt;/code&amp;gt; as well as the firmware, or the board keeps booting the old slot and refuses to start transport (&amp;amp;quot;device init failed&amp;amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If nothing is uploaded in 20 minutes, or the upload fails, the node restarts unchanged. The 4 MB boards (T-Beam, T3S3, LoRa32, RNode NG, Feather, generic ESP32) have one firmware slot and can only be updated over USB.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bluetooth update&#039;&#039;&#039; (SenseCAP P1):&lt;br /&gt;
&lt;br /&gt;
# This restarts the node with a Bluetooth firmware-update service for &#039;&#039;&#039;20 minutes&#039;&#039;&#039;. It advertises as &amp;lt;code&amp;gt;SenseCAP P1 DFU&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Within Bluetooth range, open &#039;&#039;&#039;nRF Device Firmware Update&#039;&#039;&#039; or &#039;&#039;&#039;nRF Connect&#039;&#039;&#039; on a phone.&lt;br /&gt;
# Send the node&#039;s &amp;lt;code&amp;gt;rnode_firmware_seeed_solar_node_p1.zip&amp;lt;/code&amp;gt; from the [https://github.com/ScotMesh/microReticulum_Firmware/releases releases].&lt;br /&gt;
&lt;br /&gt;
If nothing connects, the node restarts normally when the window closes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;USB bootloader&#039;&#039;&#039; is for someone on site with a laptop. The node waits in its bootloader until it is flashed (for example from rnode.scotmesh.net) or reset.&lt;br /&gt;
&lt;br /&gt;
None of these start below 30 % battery unless the node is charging.&lt;br /&gt;
&lt;br /&gt;
=== Starting a node from scratch ===&lt;br /&gt;
&lt;br /&gt;
The flasher keeps a node&#039;s identity, settings and routes across a reflash, which is what you want for an update. To wipe a node and start again (a second-hand board, or one you want new addresses for), tick &#039;&#039;&#039;Start from scratch: erase everything first&#039;&#039;&#039; on the flasher&#039;s Flash step. On ESP32 boards that erases the whole flash; on the P1 and other nRF52 boards it asks the firmware for a full reset and wipes the EEPROM. Either way the node comes back with a new identity and the flasher provisions and configures it again.&lt;br /&gt;
&lt;br /&gt;
== Showing the node on rmap.world ==&lt;br /&gt;
&lt;br /&gt;
[[File:map.png|frameless|upright=2.2|Map page after saving a position]]&lt;br /&gt;
&lt;br /&gt;
# On &#039;&#039;Settings → Map&#039;&#039;, paste the node&#039;s position straight from Google Maps. Right-click the spot and click the coordinates, e.g. &amp;lt;code&amp;gt;56.19858019391934, -3.1666195614405708&amp;lt;/code&amp;gt;. Degrees-minutes-seconds works too.&lt;br /&gt;
# Set its height in metres.&lt;br /&gt;
# Choose &#039;&#039;Exact&#039;&#039; or &#039;&#039;~1 km&#039;&#039;.&lt;br /&gt;
# Tick &#039;&#039;Publish&#039;&#039; and save.&lt;br /&gt;
&lt;br /&gt;
The node then sends the standard Reticulum interface-discovery announce on the announce interval. It&#039;s the same announce a PC node sends with &amp;lt;code&amp;gt;discoverable = yes&amp;lt;/code&amp;gt;. rns.scotmesh.net peers with rmap.world, so the announce reaches the map through the backbone.&lt;br /&gt;
&lt;br /&gt;
The position is public once published. Use &#039;&#039;~1 km&#039;&#039; if that matters.&lt;br /&gt;
&lt;br /&gt;
== Telemetry API ==&lt;br /&gt;
&lt;br /&gt;
For trackers and dashboards, the node answers plain JSON requests on the same NomadNet address.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;No identity is needed.&#039;&#039;&#039;&lt;br /&gt;
* An admin can switch the API off under &#039;&#039;Home page&#039;&#039;.&lt;br /&gt;
* Each reply fits in one packet.&lt;br /&gt;
* List endpoints page with &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; (offset) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; (rows), and add &amp;lt;code&amp;gt;&amp;amp;quot;more&amp;amp;quot;: true&amp;lt;/code&amp;gt; when there are more rows.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path&lt;br /&gt;
! Request data&lt;br /&gt;
! Reply (real examples from the bench P1)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;v&amp;amp;quot;:1,&amp;amp;quot;api&amp;amp;quot;:[&amp;amp;quot;bat&amp;amp;quot;,&amp;amp;quot;up&amp;amp;quot;,&amp;amp;quot;radio&amp;amp;quot;,&amp;amp;quot;net&amp;amp;quot;,&amp;amp;quot;sys&amp;amp;quot;,&amp;amp;quot;health&amp;amp;quot;,&amp;amp;quot;pos&amp;amp;quot;,&amp;amp;quot;paths&amp;amp;quot;,&amp;amp;quot;nbrs&amp;amp;quot;,&amp;amp;quot;all&amp;amp;quot;]}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/bat&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;percent&amp;amp;quot;:96,&amp;amp;quot;voltage&amp;amp;quot;:4.11,&amp;amp;quot;charging&amp;amp;quot;:true}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/up&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;uptime&amp;amp;quot;:134,&amp;amp;quot;reset&amp;amp;quot;:&amp;amp;quot;soft-reset&amp;amp;quot;}&amp;lt;/code&amp;gt;: seconds since start, and why it last started&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/radio&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;freq&amp;amp;quot;:869462500,&amp;amp;quot;bw&amp;amp;quot;:125000,&amp;amp;quot;sf&amp;amp;quot;:9,&amp;amp;quot;cr&amp;amp;quot;:5,&amp;amp;quot;txp&amp;amp;quot;:22,&amp;amp;quot;airtime&amp;amp;quot;:4.4,&amp;amp;quot;noise&amp;amp;quot;:-105,&amp;amp;quot;rssi&amp;amp;quot;:-59,&amp;amp;quot;snr&amp;amp;quot;:10}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/net&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;routes&amp;amp;quot;:159,&amp;amp;quot;neighbours&amp;amp;quot;:1,&amp;amp;quot;rx&amp;amp;quot;:20,&amp;amp;quot;tx&amp;amp;quot;:18,&amp;amp;quot;links&amp;amp;quot;:1}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/sys&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;fw&amp;amp;quot;:&amp;amp;quot;v1.86-scotmesh.3&amp;amp;quot;,&amp;amp;quot;board&amp;amp;quot;:&amp;amp;quot;SenseCAP P1&amp;amp;quot;,&amp;amp;quot;name&amp;amp;quot;:&amp;amp;quot;…&amp;amp;quot;,&amp;amp;quot;free_ram&amp;amp;quot;:33472,&amp;amp;quot;free_flash&amp;amp;quot;:1822720}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/health&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;free_ram&amp;amp;quot;:33472,&amp;amp;quot;free_flash&amp;amp;quot;:1822720,&amp;amp;quot;reboots&amp;amp;quot;:7,&amp;amp;quot;reset&amp;amp;quot;:&amp;amp;quot;soft-reset&amp;amp;quot;,&amp;amp;quot;paths&amp;amp;quot;:159,&amp;amp;quot;paths_max&amp;amp;quot;:500,&amp;amp;quot;announces&amp;amp;quot;:0,&amp;amp;quot;neighbours&amp;amp;quot;:1}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/pos&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;lat&amp;amp;quot;:56.19858,&amp;amp;quot;lon&amp;amp;quot;:-3.16662,&amp;amp;quot;height&amp;amp;quot;:310}&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;{&amp;amp;quot;error&amp;amp;quot;:&amp;amp;quot;not published&amp;amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/all&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| battery + uptime + network + airtime in one reply&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/paths&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;o&amp;amp;quot;:0,&amp;amp;quot;n&amp;amp;quot;:5,&amp;amp;quot;s&amp;amp;quot;:0}&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;amp;quot;total&amp;amp;quot;:159,&amp;amp;quot;o&amp;amp;quot;:0,&amp;amp;quot;cols&amp;amp;quot;:[&amp;amp;quot;dest&amp;amp;quot;,&amp;amp;quot;hops&amp;amp;quot;,&amp;amp;quot;age_s&amp;amp;quot;,&amp;amp;quot;via&amp;amp;quot;],&amp;amp;quot;rows&amp;amp;quot;:[[…],…],&amp;amp;quot;more&amp;amp;quot;:true}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/nbrs&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;o&amp;amp;quot;:0,&amp;amp;quot;n&amp;amp;quot;:5,&amp;amp;quot;s&amp;amp;quot;:1}&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;total&amp;amp;quot;:1,&amp;amp;quot;o&amp;amp;quot;:0,&amp;amp;quot;cols&amp;amp;quot;:[&amp;amp;quot;dest&amp;amp;quot;,&amp;amp;quot;age_s&amp;amp;quot;,&amp;amp;quot;name&amp;amp;quot;],&amp;amp;quot;rows&amp;amp;quot;:[…]}&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s=1&amp;lt;/code&amp;gt; gives 8-character addresses. Unknown paths answer &amp;lt;code&amp;gt;{&amp;amp;quot;error&amp;amp;quot;:&amp;amp;quot;unknown endpoint&amp;amp;quot;,&amp;amp;quot;see&amp;amp;quot;:&amp;amp;quot;/api&amp;amp;quot;}&amp;lt;/code&amp;gt;. If the node is short of memory, it answers &amp;lt;code&amp;gt;{&amp;amp;quot;error&amp;amp;quot;:&amp;amp;quot;busy&amp;amp;quot;}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a tracker in Python. It needs Reticulum installed and connected to the mesh, e.g. with a TCP interface to &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt; port 4242:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;import RNS, json, time&lt;br /&gt;
RNS.Reticulum()&lt;br /&gt;
node = bytes.fromhex(&amp;amp;quot;cb37c17f7280d61d66b5278a02313d25&amp;amp;quot;)   # the node&#039;s NomadNet address&lt;br /&gt;
if not RNS.Transport.has_path(node):&lt;br /&gt;
    RNS.Transport.request_path(node)&lt;br /&gt;
    while not RNS.Transport.has_path(node): time.sleep(0.5)&lt;br /&gt;
dest = RNS.Destination(RNS.Identity.recall(node), RNS.Destination.OUT,&lt;br /&gt;
                       RNS.Destination.SINGLE, &amp;amp;quot;nomadnetwork&amp;amp;quot;, &amp;amp;quot;node&amp;amp;quot;)&lt;br /&gt;
link = RNS.Link(dest)                                       # no identify() needed&lt;br /&gt;
while link.status != RNS.Link.ACTIVE: time.sleep(0.2)&lt;br /&gt;
link.request(&amp;amp;quot;/api/all&amp;amp;quot;, response_callback=lambda r: print(json.loads(r.response)))&lt;br /&gt;
link.request(&amp;amp;quot;/api/paths&amp;amp;quot;, data={&amp;amp;quot;o&amp;amp;quot;: 0, &amp;amp;quot;n&amp;amp;quot;: 5},&lt;br /&gt;
             response_callback=lambda r: print(json.loads(r.response)))&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Keep one link open and poll every few minutes. Each request and reply is a single small packet (typically 3–5 s round trip over three hops).&lt;br /&gt;
&lt;br /&gt;
== Good to know ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The node keeps its settings in its own flash. Its identity and admin list survive firmware updates and a factory reset.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;One exception: RNode NG 2.0/2.1 and LoRa32 v2.1 nodes flashed with v1.86-scotmesh.2 or earlier get a new identity when updated to .4 or later, because those boards moved to a larger app slot (2.25 MB) to fit the pages. Add the node&#039;s new identity to your admin list again afterwards. Updates after that keep the identity.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Memory is watched:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;pages and the API never copy the route table;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the change log is a fixed 1.3 KB file;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;below about 8 KB of free RAM, the node answers &amp;amp;quot;busy&amp;amp;quot; rather than risk running out.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Health&#039;&#039; and &amp;lt;code&amp;gt;/api/health&amp;lt;/code&amp;gt; show free RAM, so a slow leak shows up as a trend.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The LEDs on the P1:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;white flash: packet received;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;blue flash: packet sent;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;blue and white alternating fast: the radio failed to start (the node restarts itself after a few seconds).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Full debug logging stays in the firmware. Connect over USB and open a serial console at 115200 to see it.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Upstream differences and the full change history are in the repository&#039;s README.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=ScotMesh_Mail&amp;diff=166</id>
		<title>ScotMesh Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=ScotMesh_Mail&amp;diff=166"/>
		<updated>2026-09-17T12:36:41Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Repository is private: drop the dead link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ScotMesh Mail&#039;&#039;&#039; is email over Reticulum. Your Reticulum identity is your login, so there are no passwords. Mail between people on the mesh never touches the internet, and a gateway links &amp;lt;code&amp;gt;@mail.scotmesh.net&amp;lt;/code&amp;gt; to ordinary email.&lt;br /&gt;
&lt;br /&gt;
== What it is ==&lt;br /&gt;
&lt;br /&gt;
A mail server, &#039;&#039;&#039;rmail&#039;&#039;&#039;, and the ways to use it:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;MeshChatX&#039;&#039;&#039;: a plugin with folders, writing and replying, encrypted and signed mail, and your mail key.&lt;br /&gt;
* &#039;&#039;&#039;Nomad Network&#039;&#039;&#039;: the server is also a node with webmail pages, readable in NomadNet or MeshChatX&#039;s page browser.&lt;br /&gt;
* &#039;&#039;&#039;Sideband&#039;&#039;&#039; and any other LXMF app: message the server&#039;s &#039;&#039;&#039;postmaster&#039;&#039;&#039;. It sends a notice when mail arrives, can forward whole messages, and takes commands such as &amp;lt;code&amp;gt;STATUS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INBOX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;READ&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;REPLY&amp;lt;/code&amp;gt;. Start a message with &amp;lt;code&amp;gt;to: someone@…&amp;lt;/code&amp;gt; to send mail.&lt;br /&gt;
&lt;br /&gt;
Several identities can share one mailbox, for example your phone and your laptop, or a group&#039;s shared address. Mail can be kept encrypted on the server with keys only the mailbox&#039;s members hold. Mail is text only and kept small, because it crosses radio links: attachments are refused.&lt;br /&gt;
&lt;br /&gt;
Servers announce themselves like Nomad Network nodes, and anyone can run one. Addresses look like &amp;lt;code&amp;gt;name@&amp;lt;server address&amp;gt;.rns&amp;lt;/code&amp;gt; on the mesh, and &amp;lt;code&amp;gt;name@mail.scotmesh.net&amp;lt;/code&amp;gt; from the internet.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prototype&#039;&#039;&#039;, as of 13 September 2026. The ScotMesh server is running and joined to [[The ScotMesh Backbone|the backbone]], with the first mailbox. Sign-up is by invitation only. Mail from the internet is waiting on its firewall port being opened, and mail to the internet may land in spam folders for now, because the server&#039;s address can&#039;t be given a matching reverse DNS name.&lt;br /&gt;
&lt;br /&gt;
== Where to find it ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! What !! Address&lt;br /&gt;
|-&lt;br /&gt;
| Mail server || &amp;lt;code&amp;gt;45b45ffb1ce546993728cb31e9846b95&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Postmaster (LXMF) || &amp;lt;code&amp;gt;044b450f5f66efc790c25d703121d4a5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Webmail (Nomad Network) || &amp;lt;code&amp;gt;65f06cd68ddedd8929471af0d82c1a7d:/page/index.mu&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Internet domain || &amp;lt;code&amp;gt;mail.scotmesh.net&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It runs on ScotMesh&#039;s own server alongside the [[ScotMesh chat hub|chat hub]], and stores messages for mailboxes that are away through the [[Propagation node|propagation node]]. The code is in a private repository for now and has no licence yet.&lt;br /&gt;
&lt;br /&gt;
== Who is working on it ==&lt;br /&gt;
&lt;br /&gt;
Alex.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
&lt;br /&gt;
* Open the mail port so internet mail can arrive, and send a first message each way.&lt;br /&gt;
* Try the MeshChatX plugin with real users, and write a how-to page like [[The chat room]].&lt;br /&gt;
* Choose a licence and publish the code.&lt;br /&gt;
* Send out the first invitations.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=ScotMesh_firmware&amp;diff=165</id>
		<title>ScotMesh firmware</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=ScotMesh_firmware&amp;diff=165"/>
		<updated>2026-09-17T12:36:41Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Firmware repository moved to ScotMesh/microReticulum_Firmware&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ScotMesh firmware&#039;&#039;&#039; is our build of [https://github.com/attermann/microReticulum_Firmware microReticulum], the firmware that turns a LoRa board into a self-contained Reticulum [[Glossary#Transport node|transport node]]: a relay that carries traffic for everyone around it, with no Raspberry Pi or computer attached. We add the things a node needs when nobody can get to it: a page to look after it from anywhere on the mesh, a small telemetry feed, and firmware updates without a cable.&lt;br /&gt;
&lt;br /&gt;
This page explains why we build it and what it adds. The complete guide to every page and setting is [[ScotMesh microReticulum]].&lt;br /&gt;
&lt;br /&gt;
== Why Scotland needs it ==&lt;br /&gt;
&lt;br /&gt;
Scotland is a big country for its population. The places that most need a network that does not depend on the internet or the mobile networks are glens, islands, hill farms and villages at the end of single-track roads. They are also the places where a relay has to sit on a hilltop or a mast, run on sunlight, and get through a winter without anyone visiting.&lt;br /&gt;
&lt;br /&gt;
That changes what a node&#039;s firmware has to do. A relay in a city can be walked to in ten minutes. A solar node on a Highland hill or an island can be hours away by road and ferry, and in bad weather out of reach for weeks. So for us:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Every visit is expensive.&#039;&#039;&#039; Anything that would normally need a laptop and a USB cable should be possible over the mesh instead.&lt;br /&gt;
* &#039;&#039;&#039;Nodes run on batteries and sunlight.&#039;&#039;&#039; Their owners need to see battery and charging from far away, and the node should protect itself when the sun does not come out.&lt;br /&gt;
* &#039;&#039;&#039;Settings change after installation.&#039;&#039;&#039; A radio gets retuned, a node gets renamed, looking after it passes to someone else. None of that should mean a trip up a hill.&lt;br /&gt;
* &#039;&#039;&#039;Firmware needs updating&#039;&#039;&#039; without taking the node down from the mast, and without any risk of leaving it dead if an update goes wrong.&lt;br /&gt;
&lt;br /&gt;
Upstream microReticulum is an excellent base, but it assumes the owner is nearby with a USB cable. The ScotMesh build adds the remote side. The more of Scotland the network reaches, the more of its nodes will be remote ones, which is why this matters more here than in most places.&lt;br /&gt;
&lt;br /&gt;
== What it adds ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;The node&#039;s own page&#039;&#039;&#039; || A [[Nomad Network]] page served from the radio board: name, battery bar with charging arrow, uptime, routes and neighbours. Every page fits in a single LoRa packet, so it loads first time even over a weak link.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Remote management&#039;&#039;&#039; || Admin pages for the node&#039;s owners: name and announce interval, radio settings (tried for five minutes, then kept or undone automatically), role, power saving, admins and password registration, a change log, health, lights and Bluetooth, logs, maintenance and restart.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Telemetry&#039;&#039;&#039; || A small JSON feed (battery, uptime, radio, routes, neighbours, position) that anyone can read without an identity, for dashboards and trackers.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Updates without a cable&#039;&#039;&#039; || A 20-minute update window opened from the admin page: over Bluetooth on the SenseCAP Solar Node P1, over WiFi on ESP32 boards with two firmware slots.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;rmap.world&#039;&#039;&#039; || Puts the node on the Reticulum network map, with an exact or approximate position.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Full reset&#039;&#039;&#039; || Wipes the node back to a new identity, from its page or from the [https://rnode.scotmesh.net flasher].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SenseCAP Solar Node P1&#039;&#039;&#039; || Support for Seeed&#039;s solar node: battery reporting, charging, the solar-friendly power settings above.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Looking after a node from home ==&lt;br /&gt;
&lt;br /&gt;
[[File:scotmesh-remote-management.svg|center|frameless|1000px|How an admin reaches a remote node: laptop, internet, the ScotMesh backbone, a LoRa gateway, then the solar node]]&lt;br /&gt;
&lt;br /&gt;
You open the node&#039;s address in a Nomad Network browser, exactly like any other node. Your request crosses the internet to the [[The ScotMesh node|ScotMesh backbone]], goes out over LoRa through one or more radio hops, and the node answers with a page small enough to fit in one radio packet.&lt;br /&gt;
&lt;br /&gt;
Anyone can read the public page and the telemetry. The admin pages only open for identities on the node&#039;s admin list: you add yourself when you set the node up with the [https://rnode.scotmesh.net flasher], and admins can add others from the page itself. There is no password to type over the radio; being [[Glossary#Identity|identified]] is being logged in.&lt;br /&gt;
&lt;br /&gt;
== The node&#039;s own page ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;230px&amp;quot;&amp;gt;&lt;br /&gt;
File:home.png|The home page, as a visitor sees it&lt;br /&gt;
File:admin-hub.png|The admin hub&lt;br /&gt;
File:health.png|Health: memory, starts, radio, tables&lt;br /&gt;
File:radio.png|Radio changes are a five-minute trial&lt;br /&gt;
File:map.png|Position for rmap.world, pasted from Google Maps&lt;br /&gt;
File:update.png|Restart and firmware update&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the real pages, fetched over LoRa from our bench SenseCAP P1 through three hops. The [[ScotMesh microReticulum]] guide goes through every one.&lt;br /&gt;
&lt;br /&gt;
== Updating without a cable ==&lt;br /&gt;
&lt;br /&gt;
[[File:scotmesh-update-flow.svg|center|frameless|upright=3.6|Update flow: open the window from home, someone nearby uploads, the node checks the image and comes back]]&lt;br /&gt;
&lt;br /&gt;
Firmware images are far too big to send over LoRa, so an update still needs someone within Bluetooth or WiFi range of the node, with a phone. What it no longer needs is a cable, a laptop, or taking the node down from where it is mounted.&lt;br /&gt;
&lt;br /&gt;
[[File:wifi-update-page.png|right|frameless|upright=0.9|The upload page a WiFi update window serves at 192.168.4.1]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SenseCAP Solar Node P1:&#039;&#039;&#039; the node advertises as &#039;&#039;SenseCAP P1 DFU&#039;&#039; for 20 minutes. Send it the release zip with Nordic&#039;s free &#039;&#039;&#039;nRF Device Firmware Update&#039;&#039;&#039; app ([https://play.google.com/store/apps/details?id=no.nordicsemi.android.dfu Android], [https://apps.apple.com/app/nrf-device-firmware-update/id1624454660 iPhone]).&lt;br /&gt;
* &#039;&#039;&#039;Heltec V2/V3/V4, Wireless Tracker V2, XIAO ESP32S3, T-Beam Supreme, T-Deck:&#039;&#039;&#039; the node becomes a WiFi hotspot called &#039;&#039;ScotMesh-Update&#039;&#039; for 20 minutes, protected by a one-time password shown on the admin page. Join it, open &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.4.1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and upload the &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; from the release.&lt;br /&gt;
* &#039;&#039;&#039;T-Beam, T3S3, LoRa32, RNode NG, Feather and generic ESP32:&#039;&#039;&#039; these boards have a single firmware slot, so they update over USB with the [https://rnode.scotmesh.net flasher].&lt;br /&gt;
&lt;br /&gt;
The step-by-step guide, with app links, is at [https://rnode.scotmesh.net/update.html rnode.scotmesh.net/update.html].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why it is safe.&#039;&#039;&#039; Every node checks at start-up that its firmware is the image its owner installed, and refuses to carry traffic if it is not. An update started from the admin page tells the node to accept the next image once, so it comes straight back on the mesh with its identity, admins and settings intact. If nothing is uploaded within 20 minutes, or an upload fails, the node restarts on the firmware it already had.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boards !! Node page and remote management !! Update without a cable&lt;br /&gt;
|-&lt;br /&gt;
| SenseCAP Solar Node P1 || Yes || Bluetooth window&lt;br /&gt;
|-&lt;br /&gt;
| Heltec V2, V3, V4, Wireless Tracker V2, XIAO ESP32S3, T-Beam Supreme, T-Deck || Yes || WiFi window&lt;br /&gt;
|-&lt;br /&gt;
| T-Beam, T3S3, LoRa32 v1, v2, v2.1, RNode NG 2.0, 2.1, Feather ESP32, generic ESP32 || Yes || No: one firmware slot, update over USB&lt;br /&gt;
|-&lt;br /&gt;
| RAK4631, RAK3401, T-Echo || Upstream microReticulum page || No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Getting it ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Flash it from a browser:&#039;&#039;&#039; [https://rnode.scotmesh.net rnode.scotmesh.net], choose &#039;&#039;Standalone node&#039;&#039;. It fetches the firmware, flashes it, and walks you through naming the node, choosing its radio profile and adding yourself as its admin.&lt;br /&gt;
* &#039;&#039;&#039;Releases:&#039;&#039;&#039; [https://github.com/ScotMesh/microReticulum_Firmware/releases github.com/ScotMesh/microReticulum_Firmware/releases]&lt;br /&gt;
* &#039;&#039;&#039;Source and changes from upstream:&#039;&#039;&#039; [https://github.com/ScotMesh/microReticulum_Firmware github.com/ScotMesh/microReticulum_Firmware]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=ScotMesh_chat_hub&amp;diff=164</id>
		<title>ScotMesh chat hub</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=ScotMesh_chat_hub&amp;diff=164"/>
		<updated>2026-09-17T12:36:40Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Released 1.0.1; code is public at ScotMesh/scotmesh-chat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The ScotMesh chat hub&#039;&#039;&#039; runs ScotMesh&#039;s chat room: one conversation that people reach from an RRC chat client, as an LXMF group, or on a Nomad Network page, with everyone seeing the same messages under the same names. How to join is on [[The chat room]].&lt;br /&gt;
&lt;br /&gt;
== What it is ==&lt;br /&gt;
&lt;br /&gt;
One program that connects to [[The ScotMesh Backbone|the backbone]] over TCP, with no Reticulum daemon of its own, and serves three ways into the same room:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;The RRC room&#039;&#039;&#039; &amp;lt;code&amp;gt;#scotmesh&amp;lt;/code&amp;gt;, for MeshChatX, NomadNet, rrc-tui and WeeChat.&lt;br /&gt;
* &#039;&#039;&#039;The LXMF group&#039;&#039;&#039;, for Sideband, Columba, MeshChatX and NomadNet. Messages arrive as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;The chat page&#039;&#039;&#039;, read in NomadNet or MeshChatX, where you can post once you identify.&lt;br /&gt;
&lt;br /&gt;
Each Reticulum identity holds one name everywhere, and lookalikes of a name that is taken are refused. When you come back you catch up on what you missed. LXMF delivery can be turned off or left automatic. Operators can moderate, and what they do is logged. Messages are kept for 7 days. The [[Propagation node|propagation node]] holds group messages for members who are away.&lt;br /&gt;
&lt;br /&gt;
It replaced the earlier RRC hub and LXMF bridge.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Live&#039;&#039;&#039; on ScotMesh&#039;s own server. The latest release is [https://github.com/ScotMesh/scotmesh-chat/releases/tag/v1.0.1 v1.0.1] (15 September 2026).&lt;br /&gt;
&lt;br /&gt;
== Where to find it ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Address&lt;br /&gt;
|-&lt;br /&gt;
| RRC room || hub &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;, room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LXMF group || &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Chat page || &amp;lt;code&amp;gt;c229a2c7d410e00b71f877375ae846bf:/page/index.mu&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Commands are on [[Chat commands]]. The code is public at [https://github.com/ScotMesh/scotmesh-chat github.com/ScotMesh/scotmesh-chat], under the MIT licence.&lt;br /&gt;
&lt;br /&gt;
== Who is working on it ==&lt;br /&gt;
&lt;br /&gt;
Alex.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=RNode&amp;diff=163</id>
		<title>RNode</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=RNode&amp;diff=163"/>
		<updated>2026-09-17T12:36:39Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Drop the 433 MHz profile: it has been scrapped, ScotMesh is 868 MHz only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An &#039;&#039;&#039;RNode&#039;&#039;&#039; is a LoRa board running RNode firmware. It is not a Meshtastic or MeshCore radio, though much of the same hardware can be reflashed into one. It is the standard way to put Reticulum on the air.&lt;br /&gt;
&lt;br /&gt;
== ScotMesh radio settings ==&lt;br /&gt;
&lt;br /&gt;
Every radio on the network must use &#039;&#039;&#039;identical&#039;&#039;&#039; settings. This is not a tolerance thing: a board with a different spreading factor is completely deaf to the others, and nothing reports an error. If two of your radios cannot hear each other, check these before anything else.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  &lt;br /&gt;
! ScotMesh 868&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Frequency&#039;&#039;&#039;&lt;br /&gt;
| 869.4625 MHz&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Bandwidth&#039;&#039;&#039;&lt;br /&gt;
| 125 kHz&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Spreading factor&#039;&#039;&#039;&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Coding rate&#039;&#039;&#039;&lt;br /&gt;
| 4/5&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TX power&#039;&#039;&#039;&lt;br /&gt;
| 22 dBm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ScotMesh 868 moved from 867.5 MHz to 869.4625 MHz on 11 September 2026&#039;&#039;&#039; to keep within Ofcom&#039;s rules. It now sits in the UK&#039;s 869.40–869.65 MHz sub-band, which allows up to 500 mW ERP with a 10% duty cycle; the old frequency&#039;s sub-band allows only 25 mW. A radio still on 867.5 MHz cannot hear the network, so retune it: the flasher&#039;s Configure step, the node&#039;s Radio page, or &amp;lt;code&amp;gt;rnodeconf -T&amp;lt;/code&amp;gt; below.&lt;br /&gt;
&lt;br /&gt;
As Reticulum config values, those are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;  # ScotMesh 868&lt;br /&gt;
  [[ScotMesh RNode]]&lt;br /&gt;
    type = RNodeInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    port = /dev/ttyUSB0&lt;br /&gt;
    frequency = 869462500&lt;br /&gt;
    bandwidth = 125000&lt;br /&gt;
    txpower = 22&lt;br /&gt;
    spreadingfactor = 9&lt;br /&gt;
    codingrate = 5&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Flashing a board ==&lt;br /&gt;
&lt;br /&gt;
The easiest way is [https://rnode.scotmesh.net rnode.scotmesh.net], the &#039;&#039;&#039;ScotMesh Flasher&#039;&#039;&#039;. It flashes the board from your browser over USB — nothing to install. Open it in Chrome or Edge on a desktop (Firefox and Safari do not implement WebSerial, and it will not work on a phone), plug the board in, and follow the steps:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;What are you building?&#039;&#039;&#039; — an &#039;&#039;RNode radio&#039;&#039; (for a computer or phone running Sideband, MeshChatX or NomadNet) or a &#039;&#039;standalone node&#039;&#039; (a self-contained microReticulum transport node — see below).&lt;br /&gt;
# &#039;&#039;&#039;Your hardware&#039;&#039;&#039; — pick the board and its band.&lt;br /&gt;
# &#039;&#039;&#039;Firmware&#039;&#039;&#039; — the latest release is fetched for you from the site&#039;s own mirror and its checksum verified.&lt;br /&gt;
# &#039;&#039;&#039;Connect&#039;&#039;&#039; and &#039;&#039;&#039;Flash&#039;&#039;&#039; — pick the port from the browser prompt; nRF52 boards are put into their bootloader automatically (press reset twice if that fails).&lt;br /&gt;
# &#039;&#039;&#039;Provision&#039;&#039;&#039; — the board&#039;s identity block and firmware hash are written and verified, the same as &amp;lt;code&amp;gt;rnodeconf --autoinstall&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &#039;&#039;&#039;Configure&#039;&#039;&#039; — for an RNode radio only Bluetooth; the radio profile is set by the app you connect it to, so the ScotMesh values are shown for you to enter there. For a standalone node: the ScotMesh 868 profile, a name, its role and the identities allowed to manage it.&lt;br /&gt;
&lt;br /&gt;
If the board does not appear in the port list, hold its BOOT button while plugging it in, and check you are using a data USB cable rather than a charge-only one.&lt;br /&gt;
&lt;br /&gt;
=== Standalone node (microReticulum) ===&lt;br /&gt;
&lt;br /&gt;
The same boards can run [https://github.com/ScotMesh/microReticulum_Firmware microReticulum], the RNode firmware with a Reticulum transport stack built in. The board then &#039;&#039;is&#039;&#039; the node: it has its own identity, routes for others, serves a NomadNet page and can be managed over the mesh with &amp;lt;code&amp;gt;rnstatus -R&amp;lt;/code&amp;gt; — no Raspberry Pi or computer attached. That is what ScotMesh uses for solar and hilltop relays; [[ScotMesh firmware]] explains what our build adds. Choose &#039;&#039;&#039;Standalone node&#039;&#039;&#039; in the flasher; the &#039;&#039;&#039;Seeed SenseCAP Solar Node P1&#039;&#039;&#039; (solar charger and battery built in) is the reference board and is built by ScotMesh — it does not exist in the upstream firmware. &#039;&#039;Reconfigure an existing node&#039;&#039; on the flasher&#039;s first screen connects over USB or Bluetooth to change settings later.&lt;br /&gt;
&lt;br /&gt;
The command-line route does the same job and works on any platform:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;pip install rns&lt;br /&gt;
rnodeconf --autoinstall&lt;br /&gt;
rnodeconf -T --freq 869462500 --bw 125000 --sf 9 --cr 5 --txp 22 /dev/ttyUSB0&lt;br /&gt;
rnodeconf -i /dev/ttyUSB0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--autoinstall&amp;lt;/code&amp;gt; is interactive: it detects the board, confirms the model with you, and installs the correct signed firmware. The second command writes the ScotMesh defaults into the device. The third prints them back so you can check.&lt;br /&gt;
&lt;br /&gt;
== Supported boards ==&lt;br /&gt;
&lt;br /&gt;
* Heltec LoRa32 v2, v3, v4&lt;br /&gt;
* Heltec Mesh Node T114&lt;br /&gt;
* LilyGO LoRa32 v1.0, v2.0, v2.1&lt;br /&gt;
* LilyGO LoRa32 T3S3&lt;br /&gt;
* LilyGO T-Beam, T-Beam Supreme&lt;br /&gt;
* LilyGO T-Deck&lt;br /&gt;
* LilyGO T-Echo&lt;br /&gt;
* RAK4631&lt;br /&gt;
* Seeed XIAO ESP32S3 with Wio-SX1262 (868 version)&lt;br /&gt;
* Homebrew RNode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Buy the board for the band you want.&#039;&#039;&#039; ScotMesh uses 868 MHz only, and many boards are also sold for other bands. A board built for another band cannot be moved to 868 MHz by changing settings — the radio and the antenna are physically different parts.&lt;br /&gt;
&lt;br /&gt;
== Serial or Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Over USB there is nothing to configure: the board appears as a serial port and Reticulum talks to it. That is the right choice for a node that stays in one place.&lt;br /&gt;
&lt;br /&gt;
For a phone, or a board you would rather not tether, use the Bluetooth buttons on [https://rnode.scotmesh.net rnode.scotmesh.net], or from the command line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;rnodeconf -b /dev/ttyUSB0     # Bluetooth on&lt;br /&gt;
rnodeconf -p /dev/ttyUSB0     # pairing mode&lt;br /&gt;
rnodeconf -B /dev/ttyUSB0     # Bluetooth off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Not every supported board has Bluetooth. An Android phone with Sideband and an RNode paired over Bluetooth is a complete off-grid messenger with no phone network involved.&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
&lt;br /&gt;
Transmit power and transmit time are both regulated, and the limits differ by band and sub-band. The figures above are what ScotMesh uses; confirm what applies to your situation before transmitting.&lt;br /&gt;
&lt;br /&gt;
If you are operating under an amateur licence, set &amp;lt;code&amp;gt;id_callsign&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;id_interval&amp;lt;/code&amp;gt; on the interface so it identifies periodically. Set &amp;lt;code&amp;gt;airtime_limit_short&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;airtime_limit_long&amp;lt;/code&amp;gt; to keep within duty-cycle limits — they are easy to exceed on a busy link.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Project_index&amp;diff=162</id>
		<title>Project index</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Project_index&amp;diff=162"/>
		<updated>2026-09-17T12:36:38Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Drop 433 MHz (scrapped); current firmware and chat hub versions; ScotMesh repo links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What ScotMesh is building on Reticulum, and where each piece has got to. Every project has a page with the same five things: what it is, its status, where to find it, who is working on it, and what comes next.&lt;br /&gt;
&lt;br /&gt;
== Status words ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Idea&#039;&#039;&#039; || Talked about; nothing written down beyond a page here.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Design&#039;&#039;&#039; || Specified in enough detail to build, no working code yet.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Prototype&#039;&#039;&#039; || Runs, for the people building it.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Live&#039;&#039;&#039; || In use on the network.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Paused&#039;&#039;&#039; || Not being worked on, but not abandoned.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Retired&#039;&#039;&#039; || Replaced or dropped; the page stays for the record.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Project !! What it is !! Status !! Where&lt;br /&gt;
|-&lt;br /&gt;
| [[The ScotMesh node]] || The public transport node, chat hub, propagation node and Nomad Network node for Scotland || Live || [https://rns.scotmesh.net rns.scotmesh.net]&lt;br /&gt;
|-&lt;br /&gt;
| [[RNode|ScotMesh Flasher]] || Set up an RNode radio or a standalone node from a browser, with the ScotMesh radio profile built in || Live || [https://rnode.scotmesh.net rnode.scotmesh.net]&lt;br /&gt;
|-&lt;br /&gt;
| [[ScotMesh firmware]] || Our build of microReticulum for solar and hilltop relays: remote management from the node&#039;s own page, telemetry, updates without a cable, the SenseCAP Solar Node P1 || Live (v1.86-scotmesh.6) || [https://github.com/ScotMesh/microReticulum_Firmware GitHub]&lt;br /&gt;
|-&lt;br /&gt;
| LoRa gateways || ScotMesh radios on air, linking LoRa users to the backbone || Prototype: the first gateway is on air in Fife, on the ScotMesh 868 profile || [[RNode]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Reticulum over MeshCore and Meshtastic]] || Carry Reticulum traffic over MeshCore and Meshtastic radios, so existing meshes become Reticulum bearers || Live: gateway at The Pole, Cadham || [https://github.com/ScotMesh/RNS_Over_Meshcore MeshCore], [https://github.com/ScotMesh/RNS_Over_Meshtastic Meshtastic]&lt;br /&gt;
|-&lt;br /&gt;
| [[ScotMesh chat hub]] || The chat room: one conversation reached over RRC, as an LXMF group or on a Nomad Network page, with one name per identity || Live (v1.0.1) || [[The chat room]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ScotMesh Mail]] || Email over Reticulum: identity login, a MeshChatX plugin, Nomad Network webmail, a postmaster for Sideband, and &amp;lt;code&amp;gt;@mail.scotmesh.net&amp;lt;/code&amp;gt; to the internet || Prototype || [[ScotMesh Mail#Where to find it|Addresses]]&lt;br /&gt;
|-&lt;br /&gt;
| This wiki || Documentation for all of the above || Live || You are reading it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Adding a project ==&lt;br /&gt;
&lt;br /&gt;
Copy an existing project page, keep the five sections, and add a row here. A project with no page is not a project yet. Anything ScotMesh-built that lives in a repository should link to it, and say what licence it is under.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Main_Page&amp;diff=161</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Main_Page&amp;diff=161"/>
		<updated>2026-09-17T12:36:37Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Drop the 433 MHz profile: it has been scrapped, ScotMesh is 868 MHz only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ScotMesh Reticulum Wiki}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-otherwiki&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logos&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logo sm-ow-mt&amp;quot; title=&amp;quot;Meshtastic&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logo sm-ow-mc&amp;quot; title=&amp;quot;MeshCore&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-text&amp;quot;&amp;gt;Looking for &amp;lt;b&amp;gt;MeshCore&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Meshtastic&amp;lt;/b&amp;gt;? They have their own wiki at [https://wiki.scotmesh.uk wiki.scotmesh.uk] →&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-title&amp;quot;&amp;gt;A free, encrypted network for Scotland that anyone can join.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-sub&amp;quot;&amp;gt;Reticulum carries messages, chat, files and pages over the internet and over LoRa radio, and keeps working when the things underneath it do not. Connecting takes about five minutes.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-actions&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-btn sm-btn-primary&amp;quot;&amp;gt;[[Connecting to ScotMesh|Connect in five minutes →]]&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-btn sm-btn-secondary&amp;quot;&amp;gt;[[What Reticulum is|What is Reticulum?]]&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-facts&amp;quot;&amp;gt;&amp;lt;span&amp;gt;No sign-up&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;No hardware needed&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;Free, run by the community&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;Encrypted end to end&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-welcome&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome.&#039;&#039;&#039; ScotMesh runs the Reticulum backbone for Scotland and writes this wiki; you are very welcome to use both, and to add to either. Whether you have never heard of Reticulum or you want to put a solar relay on a hill, there is a page here for you. Pick where you are:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-cards&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I just want to try it ===&lt;br /&gt;
Install one app, type in one address, and you are on the network with everyone else: messaging, chat, files and pages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Connecting to ScotMesh|Connect in five minutes →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[First steps]]: say hello in the chat room and send your first message.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I want to understand it first ===&lt;br /&gt;
No addresses to configure, no accounts, no company in the middle. Reticulum is unusual, and it is worth knowing why.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[What Reticulum is|What Reticulum is →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[How Reticulum works]], [[How it compares]] with Meshtastic and MeshCore, and the [[Glossary]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I want to put a radio on air ===&lt;br /&gt;
A LoRa board becomes a Reticulum radio for your laptop or phone, or a self-contained relay you can look after from home.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[RNode|Flash a board →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[ScotMesh firmware]] for solar and hilltop relays, and [[Antennas and siting]] for making it reach.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The backbone right now ==&lt;br /&gt;
&lt;br /&gt;
Live from the node itself, the same feed as [https://rns.scotmesh.net rns.scotmesh.net], refreshed every two minutes. If the strip is blank or says unknown, treat the backbone as unconfirmed and check the node page directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;sm-status&amp;quot; class=&amp;quot;sm-status&amp;quot;&amp;gt;Live backbone status: [https://rns.scotmesh.net/status.html rns.scotmesh.net/status]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect now ==&lt;br /&gt;
&lt;br /&gt;
The backbone is a public Reticulum transport node in Dalgety Bay, Fife. Anyone may connect, there is nothing to register, and it costs nothing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Out of the box:&#039;&#039;&#039; install [https://meshchatx.com MeshChatX] (Windows, macOS, Linux, Android), [https://github.com/markqvist/Sideband/releases Sideband] (Android, Windows, macOS, Linux) or an iPhone app, add a connection of type &#039;&#039;&#039;TCPClientInterface&#039;&#039;&#039; with host &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt; and port &amp;lt;code&amp;gt;4242&amp;lt;/code&amp;gt;, and you are on. [[Connecting to ScotMesh#Out of the box: an app|Step by step]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full installation:&#039;&#039;&#039; add this to your Reticulum config:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;  [[ScotMesh Backbone]]&lt;br /&gt;
    type = TCPClientInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    target_host = rns.scotmesh.net&lt;br /&gt;
    target_port = 4242&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Behind CGNAT or a firewall you do not control?&#039;&#039;&#039; Use the I2P entry point instead; no port needs forwarding at either end. See [[Access over I2P]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Got a LoRa radio?&#039;&#039;&#039; ScotMesh&#039;s first gateway is on air in Fife, on the ScotMesh profile below and linked to the backbone, and standalone [[ScotMesh firmware|solar nodes]] are going out. Coverage is small so far, so a radio built anywhere in Scotland will hear the others as they arrive. Every radio must match all five settings exactly: a board with a different spreading factor is not weakly connected, it is completely deaf, and nothing reports an error. The 868 profile moved from 867.5 to 869.4625 MHz on 11 September 2026 (Ofcom&#039;s 869.40–869.65 MHz sub-band), so retune any radio still on the old frequency. [https://rnode.scotmesh.net rnode.scotmesh.net] applies the profile in one click.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! ScotMesh 868&lt;br /&gt;
|-&lt;br /&gt;
| Frequency&lt;br /&gt;
| 869.4625 MHz&lt;br /&gt;
|-&lt;br /&gt;
| Bandwidth&lt;br /&gt;
| 125 kHz&lt;br /&gt;
|-&lt;br /&gt;
| Spreading factor&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| Coding rate&lt;br /&gt;
| 4/5&lt;br /&gt;
|-&lt;br /&gt;
| TX power&lt;br /&gt;
| 22 dBm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Whichever way in you chose: restart Reticulum, then check the interface shows &#039;&#039;&#039;Up&#039;&#039;&#039; (in &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt;, or on the app&#039;s interfaces page). If it does not, [[Troubleshooting]] lists the usual causes.&lt;br /&gt;
&lt;br /&gt;
== What runs on the backbone ==&lt;br /&gt;
&lt;br /&gt;
Once connected, these are the addresses to paste into your client. Each one is explained in [[The ScotMesh Backbone]]; [[Services and addresses]] has them all in one place.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Service&lt;br /&gt;
! Address&lt;br /&gt;
! Use it with&lt;br /&gt;
|-&lt;br /&gt;
| TCP entry point&lt;br /&gt;
| &amp;lt;code&amp;gt;rns.scotmesh.net:4242&amp;lt;/code&amp;gt;&lt;br /&gt;
| Any Reticulum client&lt;br /&gt;
|-&lt;br /&gt;
| I2P entry point&lt;br /&gt;
| &amp;lt;code&amp;gt;a3pswrtvpuro62ijhb7lwdt2n6aqgajglof27ynbonynmolzlz7q.b32.i2p&amp;lt;/code&amp;gt;&lt;br /&gt;
| Any Reticulum client, via i2pd&lt;br /&gt;
|-&lt;br /&gt;
| [[The chat room|Chat hub]] (RRC), room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;&lt;br /&gt;
| MeshChatX, &amp;lt;code&amp;gt;rrc&amp;lt;/code&amp;gt; clients&lt;br /&gt;
|-&lt;br /&gt;
| [[Propagation node|LXMF propagation node]]&lt;br /&gt;
| &amp;lt;code&amp;gt;c283b754e0acc11ce48d2f5e29167e0c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sideband, MeshChatX, Nomad Network&lt;br /&gt;
|-&lt;br /&gt;
| [[Nomad Network|Nomad Network node]]&lt;br /&gt;
| &amp;lt;code&amp;gt;10a839df2c50635bcb0c8a299b9ca0f8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Nomad Network, MeshChatX&lt;br /&gt;
|-&lt;br /&gt;
| Transport instance&lt;br /&gt;
| &amp;lt;code&amp;gt;20b962cd814444f7812e409e7c47f319&amp;lt;/code&amp;gt;&lt;br /&gt;
| Shows up in &amp;lt;code&amp;gt;rnpath&amp;lt;/code&amp;gt; and node maps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The node peers outward to &amp;lt;code&amp;gt;rebelnet.uk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rns.cybercore.uk&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rmap.world&amp;lt;/code&amp;gt;, so a client connected here can reach the rest of the public Reticulum network. See [[Who we peer with]].&lt;br /&gt;
&lt;br /&gt;
== Where the network is ==&lt;br /&gt;
&lt;br /&gt;
Where things actually are, rather than where we would like them to be. Updated by hand as things land.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Milestone&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Reticulum backbone online&#039;&#039;&#039;&lt;br /&gt;
| Public transport node at &amp;lt;code&amp;gt;rns.scotmesh.net:4242&amp;lt;/code&amp;gt;, peered into the wider network.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Reachable over I2P&#039;&#039;&#039;&lt;br /&gt;
| No port forwarding needed at either end.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Chat hub running&#039;&#039;&#039;&lt;br /&gt;
| RRC hub with the &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; room.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Propagation node running&#039;&#039;&#039;&lt;br /&gt;
| Offline message delivery for the region.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Web flasher for RNodes and nodes&#039;&#039;&#039;&lt;br /&gt;
| [https://rnode.scotmesh.net rnode.scotmesh.net], with the ScotMesh profile built in.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;LoRa gateway on air&#039;&#039;&#039;&lt;br /&gt;
| First gateway in Fife, at The Pole, Cadham, linked to the backbone. It also carries Reticulum over [[Reticulum over MeshCore and Meshtastic|MeshCore and Meshtastic]].&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Standalone solar nodes&#039;&#039;&#039;&lt;br /&gt;
| [[ScotMesh firmware]]: managed and updated over the mesh. First units on the bench and going out.&lt;br /&gt;
|-&lt;br /&gt;
| ✘&lt;br /&gt;
| &#039;&#039;&#039;Coverage beyond Fife&#039;&#039;&#039;&lt;br /&gt;
| Needs gateways and relays elsewhere. [[Running your own transport node|Put one up]] and tell us.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Find your way ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I have never used Reticulum&#039;&#039;&#039;&lt;br /&gt;
| Read in order: [[What Reticulum is|what Reticulum is]] → [[How it compares|how it compares]] to Meshtastic, MeshCore and LoRaWAN → [[Connecting to ScotMesh|connecting to ScotMesh]] → [[Choosing a client|choosing a client]] → [[First steps|first steps]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I am connected. What can I do?&#039;&#039;&#039;&lt;br /&gt;
| Join [[The chat room|the chat room]], send messages that arrive even when the other person is offline via the [[Propagation node|propagation node]], or browse and host pages on [[Nomad Network]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to put a radio on air&#039;&#039;&#039;&lt;br /&gt;
| [[RNode]] for boards, flashing and the settings above; [[ScotMesh firmware]] for a solar relay you can look after from home; [[Antennas and siting|antennas and siting]] for making it actually reach anywhere.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to help carry traffic&#039;&#039;&#039;&lt;br /&gt;
| [[Running your own transport node]]. Tell us when it is up and we will peer with you.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Something is broken&#039;&#039;&#039;&lt;br /&gt;
| [[Troubleshooting]], then [[Known bugs and workarounds|known bugs and workarounds]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;What is ScotMesh building?&#039;&#039;&#039;&lt;br /&gt;
| The [[Project index|project index]]: the [[ScotMesh firmware]], the flasher, and [[Reticulum over MeshCore and Meshtastic|Reticulum over MeshCore and Meshtastic]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to read and watch more&#039;&#039;&#039;&lt;br /&gt;
| [[Learning resources]]: the manual, talks, the community wiki, and where people talk.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;What does that word mean?&#039;&#039;&#039;&lt;br /&gt;
| The [[Glossary|glossary]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Say hello ==&lt;br /&gt;
&lt;br /&gt;
ScotMesh is a community, not a company. Most of us are on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord], the quickest place to ask anything, Reticulum or not, and there is also the [https://scotmesh.uk forum at scotmesh.uk]; [[The chat room|the chat room]] is where to find us on the network itself; and [[About ScotMesh]] says who we are and what we run. If a page here is wrong or unclear, say so, or fix it: [[ScotMesh Wiki:About|anyone can ask for an editing account]].&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Glossary&amp;diff=160</id>
		<title>Glossary</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Glossary&amp;diff=160"/>
		<updated>2026-09-17T12:36:36Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: rrc-hub retired: the chat room is run by the ScotMesh chat hub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The vocabulary of Reticulum and of this wiki, a sentence or two each. [[How Reticulum works]] puts most of these together into one explanation.&lt;br /&gt;
&lt;br /&gt;
; Announce&lt;br /&gt;
: A small signed packet a [[#Destination|destination]] sends to make itself known: its address, public key and optionally a little data such as a node&#039;s name. [[#Transport node|Transport nodes]] pass announces on and remember where they came from, which is how [[#Path|paths]] are built.&lt;br /&gt;
&lt;br /&gt;
; Address&lt;br /&gt;
: See [[#Destination hash|destination hash]].&lt;br /&gt;
&lt;br /&gt;
; Bearer&lt;br /&gt;
: Anything that can carry Reticulum traffic: LoRa, Wi-Fi, the internet, I2P, a serial cable, packet radio. See [[What Reticulum is]].&lt;br /&gt;
&lt;br /&gt;
; Destination&lt;br /&gt;
: Something that can be reached on the network: your messaging inbox, a Nomad Network node, a chat hub. Each belongs to an [[#Identity|identity]] and has its own address.&lt;br /&gt;
&lt;br /&gt;
; Destination hash&lt;br /&gt;
: A destination&#039;s address: 16 bytes, written as 32 hexadecimal characters, such as &amp;lt;code&amp;gt;10a839df2c50635bcb0c8a299b9ca0f8&amp;lt;/code&amp;gt;. It is derived from the identity&#039;s public key, so nobody else can claim it.&lt;br /&gt;
&lt;br /&gt;
; Gateway mode&lt;br /&gt;
: An [[#Interface mode|interface mode]] for a node that connects clients to a wider network. It answers path requests on its clients&#039; behalf.&lt;br /&gt;
&lt;br /&gt;
; Identity&lt;br /&gt;
: A pair of cryptographic keys, one for encryption and one for signing, created by your own software. Nobody issues or registers them. Being &#039;&#039;identified&#039;&#039; to a node means proving you hold a particular identity.&lt;br /&gt;
&lt;br /&gt;
; Interface&lt;br /&gt;
: A configuration block that connects Reticulum to a [[#Bearer|bearer]]: a TCP connection, an I2P tunnel, an [[#RNode|RNode]]. In the config file each one starts with its name in double brackets, such as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[ScotMesh Backbone]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; Interface mode&lt;br /&gt;
: How a node treats announces and path requests on an interface: full, gateway, access point, roaming or boundary.&lt;br /&gt;
&lt;br /&gt;
; Link&lt;br /&gt;
: An encrypted, verified connection between two parties, set up with fresh keys each time (forward secrecy). Browsing pages and transferring files use links.&lt;br /&gt;
&lt;br /&gt;
; LXMF&lt;br /&gt;
: The message format Reticulum applications use for messaging. Sideband, MeshChatX and Nomad Network all speak it, so their users can message each other.&lt;br /&gt;
&lt;br /&gt;
; Micron&lt;br /&gt;
: The lightweight markup [[Nomad Network]] pages are written in.&lt;br /&gt;
&lt;br /&gt;
; microReticulum&lt;br /&gt;
: An implementation of Reticulum that runs on small microcontroller boards rather than computers. The [[ScotMesh firmware]] is built on it.&lt;br /&gt;
&lt;br /&gt;
; MTU&lt;br /&gt;
: The largest packet a network carries. Reticulum&#039;s is 500 bytes, which is why pages for LoRa are kept small.&lt;br /&gt;
&lt;br /&gt;
; Nomad Network&lt;br /&gt;
: Pages, files and messaging that live entirely inside Reticulum, with no DNS or hosting. See [[Nomad Network]].&lt;br /&gt;
&lt;br /&gt;
; Path&lt;br /&gt;
: What a node knows about reaching a destination: which neighbour to send to, and how many hops away it is.&lt;br /&gt;
&lt;br /&gt;
; Propagation node&lt;br /&gt;
: A node that holds [[#LXMF|LXMF]] messages for people who are offline and delivers them when they reappear. It stores them encrypted and cannot read them. See [[Propagation node]].&lt;br /&gt;
&lt;br /&gt;
; RNode&lt;br /&gt;
: A LoRa radio running the RNode firmware, used by a computer or phone as a Reticulum interface. See [[RNode]].&lt;br /&gt;
&lt;br /&gt;
; RRC&lt;br /&gt;
: The chat protocol used by ScotMesh&#039;s chat room, run by the [[ScotMesh chat hub]]. See [[The chat room]].&lt;br /&gt;
&lt;br /&gt;
; rnsd, rnstatus, rnpath, rnprobe&lt;br /&gt;
: The Reticulum daemon, and the utilities that show its interfaces, look up a path, and test whether a destination answers.&lt;br /&gt;
&lt;br /&gt;
; Transport node&lt;br /&gt;
: A Reticulum node that forwards traffic for others, because its owner set &amp;lt;code&amp;gt;enable_transport = Yes&amp;lt;/code&amp;gt;. It only ever handles encrypted packets.&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Antennas_and_siting&amp;diff=159</id>
		<title>Antennas and siting</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Antennas_and_siting&amp;diff=159"/>
		<updated>2026-09-17T12:36:35Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Drop the 433 MHz profile: it has been scrapped, ScotMesh is 868 MHz only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The antenna and where you put it make more difference to range than the radio does. A good antenna on a roof with a poor board will outperform the best board on a desk with the stub antenna it came with, every time. This page is the practical version for ScotMesh&#039;s two bands.&lt;br /&gt;
&lt;br /&gt;
== The antenna must match the band ==&lt;br /&gt;
&lt;br /&gt;
An antenna is tuned for a frequency range. An antenna made for another band on an 868 MHz board reflects most of the transmitter&#039;s power back into it: range collapses, and at 22 dBm the radio can be damaged. Check the band printed on the antenna, and &#039;&#039;&#039;never transmit with no antenna connected&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Cheap boards often ship with a generic stub that is not tuned for 868 MHz at all. Replacing it is the single best upgrade.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Gain !! Good for&lt;br /&gt;
|-&lt;br /&gt;
| Stub or “rubber duck” || 0 to 2 dBi || Handhelds and testing on a desk&lt;br /&gt;
|-&lt;br /&gt;
| Quarter-wave whip (about 8.2 cm at 868 MHz) || about 2 dBi || Cheap, easy, works well with a ground plane (a metal box lid or a few radials)&lt;br /&gt;
|-&lt;br /&gt;
| Half-wave dipole || about 2 dBi || Needs no ground plane; a good indoor or window antenna&lt;br /&gt;
|-&lt;br /&gt;
| Collinear or fibreglass omni || 3 to 6 dBi || The usual choice for a fixed node on a mast; flat coverage all round&lt;br /&gt;
|-&lt;br /&gt;
| Yagi or panel || 6 to 12 dBi || Point-to-point links to one distant node; narrow beam, must be aimed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Gain is not free. A high-gain omni squashes its coverage into a flat disc: on a hilltop node it can fire over the heads of everyone in the glen below. For a node looking down on its users, 3 dBi or a slight downward tilt is often better than 6.&lt;br /&gt;
&lt;br /&gt;
== Height and line of sight ==&lt;br /&gt;
&lt;br /&gt;
At these frequencies range is mostly about what is in the way. LoRa will go many kilometres with a clear line of sight and struggle to cross a village with none.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Height beats power.&#039;&#039;&#039; Doubling transmit power adds a few hundred metres in the open; getting the antenna above the rooftops multiplies range.&lt;br /&gt;
* &#039;&#039;&#039;Trees matter&#039;&#039;&#039; more than people expect, and wet trees more than dry ones. Coverage measured in August is not coverage in January.&lt;br /&gt;
* &#039;&#039;&#039;Hills are walls&#039;&#039;&#039;, but they are also the best sites: a node on a hill sees everything on both sides of it.&lt;br /&gt;
* &#039;&#039;&#039;Indoors is lossy.&#039;&#039;&#039; A window facing the direction you care about is far better than the middle of the house. Foil-backed insulation and metal-framed windows block almost everything.&lt;br /&gt;
&lt;br /&gt;
Free tools such as [https://www.heywhatsthat.com HeyWhatsThat] and radio coverage planners will draw the horizon from a point; use them before buying a mast.&lt;br /&gt;
&lt;br /&gt;
== Cable and connectors ==&lt;br /&gt;
&lt;br /&gt;
Coaxial cable loses signal, more at higher frequencies, and thin cable loses most. Ten metres of RG174 at 868 MHz throws away roughly half the power; ten metres of LMR-400 loses almost nothing. Keep the run short, use decent cable (LMR-240 or better for anything over a few metres), and put the radio near the antenna if you can: a [[ScotMesh firmware|standalone node]] in a box at the top of the pole with a short tail to the antenna beats a long feeder to a radio indoors.&lt;br /&gt;
&lt;br /&gt;
Connectors: most boards have a u.FL or IPEX socket; most antennas have an SMA plug. Check whether you need SMA or &#039;&#039;&#039;RP-SMA&#039;&#039;&#039; (reverse polarity; common on Wi-Fi kit); they look alike and do not mate. Every adapter is a small loss and a place for water to get in.&lt;br /&gt;
&lt;br /&gt;
== Weather ==&lt;br /&gt;
&lt;br /&gt;
Scotland&#039;s weather gets into everything. Seal connectors with self-amalgamating tape, make sure cable enters a box from below with a drip loop, use a fibreglass antenna outdoors rather than a bare whip, and expect to check it after the first winter.&lt;br /&gt;
&lt;br /&gt;
== Solar nodes ==&lt;br /&gt;
&lt;br /&gt;
A relay that has to survive a Scottish winter on a panel needs more panel and battery than a summer test suggests: December gives perhaps a tenth of June&#039;s energy, and a fortnight of cloud is normal. Face the panel south and tilt it steeply (60° or more) for winter. The [[ScotMesh firmware]] can lower transmit power or switch the radio off below a battery level you choose, which turns a dead node into a quiet one that comes back with the sun.&lt;br /&gt;
&lt;br /&gt;
== Two power notes ==&lt;br /&gt;
&lt;br /&gt;
* The licence-free bands limit both transmit power and how much of the time you may transmit. The ScotMesh profile is within those limits; adding a high-gain antenna raises your effective radiated power, so do not pair the 22 dBm profile with a high-gain directional antenna without checking the rules for the band.&lt;br /&gt;
* Transmit power is the least effective knob. If a link is marginal, raise the antenna, shorten the cable or move the node before raising the power.&lt;br /&gt;
&lt;br /&gt;
== Share what you find ==&lt;br /&gt;
&lt;br /&gt;
Real results from real sites in Scotland are worth more than any of the above. When you measure a link, note the two sites, antennas, heights and the RSSI and SNR reported by &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt; or the node&#039;s page, and put them on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord] or add them here.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=About_ScotMesh&amp;diff=158</id>
		<title>About ScotMesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=About_ScotMesh&amp;diff=158"/>
		<updated>2026-09-17T10:48:08Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Link to Reticulum over MeshCore and Meshtastic, which replaces MeshCore as a Reticulum Interface&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ScotMesh&#039;&#039;&#039; is a community building open, resilient mesh networks across Scotland: radio networks that keep working when the internet or the mobile networks do not, run by the people who use them. This wiki covers ScotMesh&#039;s &#039;&#039;&#039;Reticulum&#039;&#039;&#039; network. The community itself lives on [https://scotmesh.uk scotmesh.uk].&lt;br /&gt;
&lt;br /&gt;
== Where to find us ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site !! What it is for&lt;br /&gt;
|-&lt;br /&gt;
| [https://discord.gg/ytxfyuDmSt ScotMesh Discord] || Where most of the community talks, day to day: questions, help, and what people are building.&lt;br /&gt;
|-&lt;br /&gt;
| [https://scotmesh.uk scotmesh.uk] || The main ScotMesh website and forum: news, the community, and getting started with any of our networks.&lt;br /&gt;
|-&lt;br /&gt;
| [https://scotmesh.net scotmesh.net] || An index of the tools and services we run.&lt;br /&gt;
|-&lt;br /&gt;
| [https://rns.scotmesh.net rns.scotmesh.net] || The Reticulum backbone node: how to connect, and its live status.&lt;br /&gt;
|-&lt;br /&gt;
| [https://rnode.scotmesh.net rnode.scotmesh.net] || The ScotMesh Flasher: set up an RNode radio or a standalone node from your browser.&lt;br /&gt;
|-&lt;br /&gt;
| wiki.scotmesh.net || This wiki.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Three kinds of mesh ==&lt;br /&gt;
&lt;br /&gt;
People in ScotMesh run three kinds of network, and many of us run more than one.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;MeshCore&#039;&#039;&#039; and &#039;&#039;&#039;Meshtastic&#039;&#039;&#039; are LoRa mesh systems: small radios that pass text messages between each other with no infrastructure. ScotMesh runs tools for them on [https://scotmesh.net scotmesh.net], such as a live map, packet analysis, coverage mapping and alerts.&lt;br /&gt;
* &#039;&#039;&#039;Reticulum&#039;&#039;&#039; is a networking stack rather than a radio system: it joins LoRa, the internet, I2P and anything else that can carry data into one encrypted network. See [[What Reticulum is]] and [[How Reticulum works]].&lt;br /&gt;
&lt;br /&gt;
They are complementary rather than rivals, and some of our [[Projects|projects]] join them together, for example [[Reticulum over MeshCore and Meshtastic|carrying Reticulum over MeshCore and Meshtastic]].&lt;br /&gt;
&lt;br /&gt;
== What ScotMesh runs for Reticulum ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;The backbone:&#039;&#039;&#039; a public Reticulum transport node that anyone can connect to, with no account or registration. It carries traffic, hosts a chat room, a Nomad Network node and a propagation node for offline messages. See [[The ScotMesh Backbone]].&lt;br /&gt;
* &#039;&#039;&#039;The flasher:&#039;&#039;&#039; turns supported LoRa boards into RNode radios or standalone nodes. See [[RNode]] and [[ScotMesh firmware]].&lt;br /&gt;
* &#039;&#039;&#039;The firmware:&#039;&#039;&#039; our build of microReticulum for remote, solar-powered relays, with remote management and updates without a cable. See [[ScotMesh firmware]].&lt;br /&gt;
* &#039;&#039;&#039;This wiki.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Getting involved ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Get connected:&#039;&#039;&#039; [[Connecting to ScotMesh]] takes you from nothing to on the network in about five minutes, with no hardware.&lt;br /&gt;
* &#039;&#039;&#039;Put up a node:&#039;&#039;&#039; a relay on a hill, a roof or a windowsill is how the network grows; start with [[Running your own transport node]] or a [[ScotMesh firmware]] solar node.&lt;br /&gt;
* &#039;&#039;&#039;Say hello:&#039;&#039;&#039; on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord], where most of us are, on the [https://scotmesh.uk forum], or in [[The chat room]] on the network itself.&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Projects&amp;diff=157</id>
		<title>Projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Projects&amp;diff=157"/>
		<updated>2026-09-17T10:48:07Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Link to Reticulum over MeshCore and Meshtastic, which replaces MeshCore as a Reticulum Interface&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What ScotMesh is building on Reticulum: what each project is, what state it is in, and where to find it.&lt;br /&gt;
&lt;br /&gt;
* [[Project index]]&lt;br /&gt;
* [[Reticulum over MeshCore and Meshtastic]]&lt;br /&gt;
* [[ScotMesh chat hub]]&lt;br /&gt;
* [[ScotMesh Mail]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Books]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Project_index&amp;diff=156</id>
		<title>Project index</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Project_index&amp;diff=156"/>
		<updated>2026-09-17T10:48:07Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Link to Reticulum over MeshCore and Meshtastic, which replaces MeshCore as a Reticulum Interface&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What ScotMesh is building on Reticulum, and where each piece has got to. Every project has a page with the same five things: what it is, its status, where to find it, who is working on it, and what comes next.&lt;br /&gt;
&lt;br /&gt;
== Status words ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Idea&#039;&#039;&#039; || Talked about; nothing written down beyond a page here.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Design&#039;&#039;&#039; || Specified in enough detail to build, no working code yet.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Prototype&#039;&#039;&#039; || Runs, for the people building it.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Live&#039;&#039;&#039; || In use on the network.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Paused&#039;&#039;&#039; || Not being worked on, but not abandoned.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Retired&#039;&#039;&#039; || Replaced or dropped; the page stays for the record.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Project !! What it is !! Status !! Where&lt;br /&gt;
|-&lt;br /&gt;
| [[The ScotMesh node]] || The public transport node, chat hub, propagation node and Nomad Network node for Scotland || Live || [https://rns.scotmesh.net rns.scotmesh.net]&lt;br /&gt;
|-&lt;br /&gt;
| [[RNode|ScotMesh Flasher]] || Set up an RNode radio or a standalone node from a browser, with the ScotMesh radio profiles built in || Live || [https://rnode.scotmesh.net rnode.scotmesh.net]&lt;br /&gt;
|-&lt;br /&gt;
| [[ScotMesh firmware]] || Our build of microReticulum for solar and hilltop relays: remote management from the node&#039;s own page, telemetry, updates without a cable, the SenseCAP Solar Node P1 || Live (v1.86-scotmesh.4) || [https://github.com/A13xB0/microReticulum_Firmware GitHub]&lt;br /&gt;
|-&lt;br /&gt;
| LoRa gateways || ScotMesh radios on air, linking LoRa users to the backbone || Prototype: the first gateway is on air in Fife, carrying both profiles || [[RNode]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Reticulum over MeshCore and Meshtastic]] || Carry Reticulum traffic over MeshCore and Meshtastic radios, so existing meshes become Reticulum bearers || Live: gateway at The Pole, Cadham || [https://github.com/ScotMesh/RNS_Over_Meshcore MeshCore], [https://github.com/ScotMesh/RNS_Over_Meshtastic Meshtastic]&lt;br /&gt;
|-&lt;br /&gt;
| [[ScotMesh chat hub]] || The chat room: one conversation reached over RRC, as an LXMF group or on a Nomad Network page, with one name per identity || Live (1.0.0-rc.4) || [[The chat room]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ScotMesh Mail]] || Email over Reticulum: identity login, a MeshChatX plugin, Nomad Network webmail, a postmaster for Sideband, and &amp;lt;code&amp;gt;@mail.scotmesh.net&amp;lt;/code&amp;gt; to the internet || Prototype || [[ScotMesh Mail#Where to find it|Addresses]]&lt;br /&gt;
|-&lt;br /&gt;
| This wiki || Documentation for all of the above || Live || You are reading it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Adding a project ==&lt;br /&gt;
&lt;br /&gt;
Copy an existing project page, keep the five sections, and add a row here. A project with no page is not a project yet. Anything ScotMesh-built that lives in a repository should link to it, and say what licence it is under.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Main_Page&amp;diff=155</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Main_Page&amp;diff=155"/>
		<updated>2026-09-17T10:48:06Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Link to Reticulum over MeshCore and Meshtastic, which replaces MeshCore as a Reticulum Interface&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ScotMesh Reticulum Wiki}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-otherwiki&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logos&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logo sm-ow-mt&amp;quot; title=&amp;quot;Meshtastic&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logo sm-ow-mc&amp;quot; title=&amp;quot;MeshCore&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-text&amp;quot;&amp;gt;Looking for &amp;lt;b&amp;gt;MeshCore&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Meshtastic&amp;lt;/b&amp;gt;? They have their own wiki at [https://wiki.scotmesh.uk wiki.scotmesh.uk] →&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-title&amp;quot;&amp;gt;A free, encrypted network for Scotland that anyone can join.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-sub&amp;quot;&amp;gt;Reticulum carries messages, chat, files and pages over the internet and over LoRa radio, and keeps working when the things underneath it do not. Connecting takes about five minutes.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-actions&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-btn sm-btn-primary&amp;quot;&amp;gt;[[Connecting to ScotMesh|Connect in five minutes →]]&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-btn sm-btn-secondary&amp;quot;&amp;gt;[[What Reticulum is|What is Reticulum?]]&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-facts&amp;quot;&amp;gt;&amp;lt;span&amp;gt;No sign-up&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;No hardware needed&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;Free, run by the community&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;Encrypted end to end&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-welcome&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome.&#039;&#039;&#039; ScotMesh runs the Reticulum backbone for Scotland and writes this wiki; you are very welcome to use both, and to add to either. Whether you have never heard of Reticulum or you want to put a solar relay on a hill, there is a page here for you. Pick where you are:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-cards&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I just want to try it ===&lt;br /&gt;
Install one app, type in one address, and you are on the network with everyone else: messaging, chat, files and pages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Connecting to ScotMesh|Connect in five minutes →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[First steps]]: say hello in the chat room and send your first message.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I want to understand it first ===&lt;br /&gt;
No addresses to configure, no accounts, no company in the middle. Reticulum is unusual, and it is worth knowing why.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[What Reticulum is|What Reticulum is →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[How Reticulum works]], [[How it compares]] with Meshtastic and MeshCore, and the [[Glossary]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I want to put a radio on air ===&lt;br /&gt;
A LoRa board becomes a Reticulum radio for your laptop or phone, or a self-contained relay you can look after from home.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[RNode|Flash a board →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[ScotMesh firmware]] for solar and hilltop relays, and [[Antennas and siting]] for making it reach.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The backbone right now ==&lt;br /&gt;
&lt;br /&gt;
Live from the node itself, the same feed as [https://rns.scotmesh.net rns.scotmesh.net], refreshed every two minutes. If the strip is blank or says unknown, treat the backbone as unconfirmed and check the node page directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;sm-status&amp;quot; class=&amp;quot;sm-status&amp;quot;&amp;gt;Live backbone status: [https://rns.scotmesh.net/status.html rns.scotmesh.net/status]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect now ==&lt;br /&gt;
&lt;br /&gt;
The backbone is a public Reticulum transport node in Dalgety Bay, Fife. Anyone may connect, there is nothing to register, and it costs nothing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Out of the box:&#039;&#039;&#039; install [https://meshchatx.com MeshChatX] (Windows, macOS, Linux, Android), [https://github.com/markqvist/Sideband/releases Sideband] (Android, Windows, macOS, Linux) or an iPhone app, add a connection of type &#039;&#039;&#039;TCPClientInterface&#039;&#039;&#039; with host &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt; and port &amp;lt;code&amp;gt;4242&amp;lt;/code&amp;gt;, and you are on. [[Connecting to ScotMesh#Out of the box: an app|Step by step]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full installation:&#039;&#039;&#039; add this to your Reticulum config:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;  [[ScotMesh Backbone]]&lt;br /&gt;
    type = TCPClientInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    target_host = rns.scotmesh.net&lt;br /&gt;
    target_port = 4242&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Behind CGNAT or a firewall you do not control?&#039;&#039;&#039; Use the I2P entry point instead; no port needs forwarding at either end. See [[Access over I2P]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Got a LoRa radio?&#039;&#039;&#039; ScotMesh&#039;s first gateway is on air in Fife, carrying both profiles below and linked to the backbone, and standalone [[ScotMesh firmware|solar nodes]] are going out. Coverage is small so far, so a radio built anywhere in Scotland will hear the others as they arrive. Every radio must match all five settings exactly: a board with a different spreading factor is not weakly connected, it is completely deaf, and nothing reports an error. The 868 profile moved from 867.5 to 869.4625 MHz on 11 September 2026 (Ofcom&#039;s 869.40–869.65 MHz sub-band), so retune any radio still on the old frequency. [https://rnode.scotmesh.net rnode.scotmesh.net] applies either profile in one click.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! ScotMesh 433&lt;br /&gt;
! ScotMesh 868&lt;br /&gt;
|-&lt;br /&gt;
| Frequency&lt;br /&gt;
| 433.775 MHz&lt;br /&gt;
| 869.4625 MHz&lt;br /&gt;
|-&lt;br /&gt;
| Bandwidth&lt;br /&gt;
| 125 kHz&lt;br /&gt;
| 125 kHz&lt;br /&gt;
|-&lt;br /&gt;
| Spreading factor&lt;br /&gt;
| 8&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| Coding rate&lt;br /&gt;
| 4/5&lt;br /&gt;
| 4/5&lt;br /&gt;
|-&lt;br /&gt;
| TX power&lt;br /&gt;
| 7 dBm&lt;br /&gt;
| 22 dBm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Whichever way in you chose: restart Reticulum, then check the interface shows &#039;&#039;&#039;Up&#039;&#039;&#039; (in &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt;, or on the app&#039;s interfaces page). If it does not, [[Troubleshooting]] lists the usual causes.&lt;br /&gt;
&lt;br /&gt;
== What runs on the backbone ==&lt;br /&gt;
&lt;br /&gt;
Once connected, these are the addresses to paste into your client. Each one is explained in [[The ScotMesh Backbone]]; [[Services and addresses]] has them all in one place.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Service&lt;br /&gt;
! Address&lt;br /&gt;
! Use it with&lt;br /&gt;
|-&lt;br /&gt;
| TCP entry point&lt;br /&gt;
| &amp;lt;code&amp;gt;rns.scotmesh.net:4242&amp;lt;/code&amp;gt;&lt;br /&gt;
| Any Reticulum client&lt;br /&gt;
|-&lt;br /&gt;
| I2P entry point&lt;br /&gt;
| &amp;lt;code&amp;gt;a3pswrtvpuro62ijhb7lwdt2n6aqgajglof27ynbonynmolzlz7q.b32.i2p&amp;lt;/code&amp;gt;&lt;br /&gt;
| Any Reticulum client, via i2pd&lt;br /&gt;
|-&lt;br /&gt;
| [[The chat room|Chat hub]] (RRC), room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;&lt;br /&gt;
| MeshChatX, &amp;lt;code&amp;gt;rrc&amp;lt;/code&amp;gt; clients&lt;br /&gt;
|-&lt;br /&gt;
| [[Propagation node|LXMF propagation node]]&lt;br /&gt;
| &amp;lt;code&amp;gt;c283b754e0acc11ce48d2f5e29167e0c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sideband, MeshChatX, Nomad Network&lt;br /&gt;
|-&lt;br /&gt;
| [[Nomad Network|Nomad Network node]]&lt;br /&gt;
| &amp;lt;code&amp;gt;10a839df2c50635bcb0c8a299b9ca0f8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Nomad Network, MeshChatX&lt;br /&gt;
|-&lt;br /&gt;
| Transport instance&lt;br /&gt;
| &amp;lt;code&amp;gt;20b962cd814444f7812e409e7c47f319&amp;lt;/code&amp;gt;&lt;br /&gt;
| Shows up in &amp;lt;code&amp;gt;rnpath&amp;lt;/code&amp;gt; and node maps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The node peers outward to &amp;lt;code&amp;gt;rebelnet.uk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rns.cybercore.uk&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rmap.world&amp;lt;/code&amp;gt;, so a client connected here can reach the rest of the public Reticulum network. See [[Who we peer with]].&lt;br /&gt;
&lt;br /&gt;
== Where the network is ==&lt;br /&gt;
&lt;br /&gt;
Where things actually are, rather than where we would like them to be. Updated by hand as things land.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Milestone&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Reticulum backbone online&#039;&#039;&#039;&lt;br /&gt;
| Public transport node at &amp;lt;code&amp;gt;rns.scotmesh.net:4242&amp;lt;/code&amp;gt;, peered into the wider network.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Reachable over I2P&#039;&#039;&#039;&lt;br /&gt;
| No port forwarding needed at either end.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Chat hub running&#039;&#039;&#039;&lt;br /&gt;
| RRC hub with the &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; room.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Propagation node running&#039;&#039;&#039;&lt;br /&gt;
| Offline message delivery for the region.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Web flasher for RNodes and nodes&#039;&#039;&#039;&lt;br /&gt;
| [https://rnode.scotmesh.net rnode.scotmesh.net], with both ScotMesh profiles built in.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;LoRa gateway on air&#039;&#039;&#039;&lt;br /&gt;
| First gateway in Fife, both profiles, linked to the backbone.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Standalone solar nodes&#039;&#039;&#039;&lt;br /&gt;
| [[ScotMesh firmware]]: managed and updated over the mesh. First units on the bench and going out.&lt;br /&gt;
|-&lt;br /&gt;
| ✘&lt;br /&gt;
| &#039;&#039;&#039;Coverage beyond Fife&#039;&#039;&#039;&lt;br /&gt;
| Needs gateways and relays elsewhere. [[Running your own transport node|Put one up]] and tell us.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Find your way ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I have never used Reticulum&#039;&#039;&#039;&lt;br /&gt;
| Read in order: [[What Reticulum is|what Reticulum is]] → [[How it compares|how it compares]] to Meshtastic, MeshCore and LoRaWAN → [[Connecting to ScotMesh|connecting to ScotMesh]] → [[Choosing a client|choosing a client]] → [[First steps|first steps]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I am connected. What can I do?&#039;&#039;&#039;&lt;br /&gt;
| Join [[The chat room|the chat room]], send messages that arrive even when the other person is offline via the [[Propagation node|propagation node]], or browse and host pages on [[Nomad Network]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to put a radio on air&#039;&#039;&#039;&lt;br /&gt;
| [[RNode]] for boards, flashing and the settings above; [[ScotMesh firmware]] for a solar relay you can look after from home; [[Antennas and siting|antennas and siting]] for making it actually reach anywhere.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to help carry traffic&#039;&#039;&#039;&lt;br /&gt;
| [[Running your own transport node]]. Tell us when it is up and we will peer with you.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Something is broken&#039;&#039;&#039;&lt;br /&gt;
| [[Troubleshooting]], then [[Known bugs and workarounds|known bugs and workarounds]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;What is ScotMesh building?&#039;&#039;&#039;&lt;br /&gt;
| The [[Project index|project index]]: the [[ScotMesh firmware]], the flasher, and [[Reticulum over MeshCore and Meshtastic|Reticulum over MeshCore and Meshtastic]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to read and watch more&#039;&#039;&#039;&lt;br /&gt;
| [[Learning resources]]: the manual, talks, the community wiki, and where people talk.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;What does that word mean?&#039;&#039;&#039;&lt;br /&gt;
| The [[Glossary|glossary]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Say hello ==&lt;br /&gt;
&lt;br /&gt;
ScotMesh is a community, not a company. Most of us are on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord], the quickest place to ask anything, Reticulum or not, and there is also the [https://scotmesh.uk forum at scotmesh.uk]; [[The chat room|the chat room]] is where to find us on the network itself; and [[About ScotMesh]] says who we are and what we run. If a page here is wrong or unclear, say so, or fix it: [[ScotMesh Wiki:About|anyone can ask for an editing account]].&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Reticulum_over_MeshCore_and_Meshtastic&amp;diff=154</id>
		<title>Reticulum over MeshCore and Meshtastic</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Reticulum_over_MeshCore_and_Meshtastic&amp;diff=154"/>
		<updated>2026-09-17T10:48:04Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: New page: reaching Reticulum through a MeshCore or Meshtastic radio via the gateway at The Pole&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who already have a &#039;&#039;&#039;MeshCore&#039;&#039;&#039; or &#039;&#039;&#039;Meshtastic&#039;&#039;&#039; radio and want to use it to reach Reticulum, with no internet connection and no [[RNode]]. If you have never heard of Reticulum, start with [[What Reticulum is|what Reticulum is]] and come back.&lt;br /&gt;
&lt;br /&gt;
== What you are actually doing ==&lt;br /&gt;
&lt;br /&gt;
Reticulum runs on your computer as usual. Normally it reaches the network over the internet ([[Connecting to ScotMesh]]) or over an [[RNode]]. Here it uses &#039;&#039;&#039;your MeshCore or Meshtastic radio&#039;&#039;&#039; as its link instead.&lt;br /&gt;
&lt;br /&gt;
Reticulum&#039;s traffic is cut into small pieces and sent on a separate, private channel on your radio. A ScotMesh gateway on the same channel puts the pieces back together and passes them on to [[The ScotMesh Backbone|the backbone]]. That gateway is at &#039;&#039;&#039;The Pole&#039;&#039;&#039; in Cadham, and it is listed on node maps as &#039;&#039;ScotMesh RNode Cadham&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Your radio keeps working for its own network at the same time. MeshCore or Meshtastic users around you never see the tunnel, because it runs on its own channel with its own key.&lt;br /&gt;
&lt;br /&gt;
== Is this for you? ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! If you have… !! Use&lt;br /&gt;
|-&lt;br /&gt;
| An internet connection, even a slow one || [[Connecting to ScotMesh]]. It is faster and costs no airtime.&lt;br /&gt;
|-&lt;br /&gt;
| An RNode, or a board you could flash as one || [[RNode]]. Reticulum runs natively on it and is many times faster.&lt;br /&gt;
|-&lt;br /&gt;
| Only a MeshCore or Meshtastic radio, within reach of the gateway || &#039;&#039;&#039;This page.&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Expect it to be &#039;&#039;&#039;slow&#039;&#039;&#039;. It is fine for messages (LXMF), the [[The chat room|chat room]] and small [[Nomad Network]] pages. It is no good for files or voice.&lt;br /&gt;
&lt;br /&gt;
== The two routes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Over MeshCore !! Over Meshtastic&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Status&#039;&#039;&#039; || &#039;&#039;&#039;Working&#039;&#039;&#039; — gateway live at The Pole || &#039;&#039;&#039;Working&#039;&#039;&#039; — gateway live at The Pole since 17 September 2026. New, so tell us how it goes.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Your radio&#039;&#039;&#039; || MeshCore &#039;&#039;&#039;companion&#039;&#039;&#039; firmware v1.17 or later, over USB, Bluetooth or WiFi || Any Meshtastic node, over USB, Bluetooth or WiFi&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Radio settings&#039;&#039;&#039; || UK/EU Narrow: 869.618 MHz, 62.5 kHz, SF8, CR 4/8 || EU_868, LongFast&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Region&#039;&#039;&#039; || &amp;lt;code&amp;gt;sco&amp;lt;/code&amp;gt; || —&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Software&#039;&#039;&#039; || &amp;lt;code&amp;gt;MeshCore_Raw_Interface.py&amp;lt;/code&amp;gt; from [https://github.com/ScotMesh/RNS_Over_Meshcore ScotMesh/RNS_Over_Meshcore] || &amp;lt;code&amp;gt;Meshtastic_Interface.py&amp;lt;/code&amp;gt; from [https://github.com/ScotMesh/RNS_Over_Meshtastic ScotMesh/RNS_Over_Meshtastic]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Speed&#039;&#039;&#039; || At best a few hundred bytes a second || Slower: one piece of up to 155 bytes every 8 seconds on LongFast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Before you start ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Reticulum installed&#039;&#039;&#039; on a computer ([[Installing Reticulum]]), or &#039;&#039;&#039;MeshChatX&#039;&#039;&#039; ([[Choosing a client]]).&lt;br /&gt;
* &#039;&#039;&#039;Your radio&#039;&#039;&#039;, connected to that computer.&lt;br /&gt;
* &#039;&#039;&#039;A path to the gateway&#039;&#039;&#039;: in range of The Pole, or reaching it through MeshCore repeaters that relay the &amp;lt;code&amp;gt;sco&amp;lt;/code&amp;gt; region.&lt;br /&gt;
* &#039;&#039;&#039;The tunnel channel details&#039;&#039;&#039;, in the table below.&lt;br /&gt;
&lt;br /&gt;
== Tunnel details ==&lt;br /&gt;
&lt;br /&gt;
These are shared on purpose, so anyone can join the tunnel. The channel key only keeps the tunnel&#039;s traffic separate from ordinary channels; it is not what keeps you private. Reticulum encrypts everything you send end to end, whatever it travels over.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! MeshCore !! Meshtastic&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Channel name&#039;&#039;&#039; || &amp;lt;code&amp;gt;RNSTunnel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;RNS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Secret&#039;&#039;&#039; || &amp;lt;code&amp;gt;38a46b4349a14b05c70328f444932033&amp;lt;/code&amp;gt; || in the link below&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Add it with&#039;&#039;&#039; || Reticulum sets it on your radio for you (step 3) || [https://meshtastic.org/e/?add=true#CicSIKzMw9L_sPDY_S2bF9AB3mRvgeyDwAhw9K6HLEBEzbc9GgNSTlMSCAgBOANAA0gB this channel link] — opens in the Meshtastic app and adds the channel next to your own&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Region&#039;&#039;&#039; || &amp;lt;code&amp;gt;sco&amp;lt;/code&amp;gt; || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Over MeshCore ==&lt;br /&gt;
&lt;br /&gt;
[[File:Reticulum over MeshCore.svg|center|frameless|upright=3.2|alt=Diagram: Reticulum on your computer talks to your MeshCore companion radio over USB, Bluetooth or WiFi. The radio carries the tunnel on the RNSTunnel channel, directly or through MeshCore repeaters in region sco, to The Pole at Cadham, where the openHop repeater hands it to the RNSBridge companion and rnsd, which connects to the ScotMesh backbone over TCP. Broadcasts go as flooded channel datagrams of up to 148 bytes; traffic to a known peer goes as raw packets of up to 140 bytes along the repeater path.|How Reticulum travels over MeshCore to the ScotMesh backbone]]&lt;br /&gt;
&lt;br /&gt;
=== 1. Set up the radio ===&lt;br /&gt;
&lt;br /&gt;
# Flash &#039;&#039;&#039;companion&#039;&#039;&#039; firmware, v1.17 or later. Earlier versions lack the two commands the tunnel uses. Repeater or room server firmware will not work.&lt;br /&gt;
# Set the radio to &#039;&#039;&#039;UK/EU Narrow&#039;&#039;&#039;: 869.618 MHz, 62.5 kHz, SF8, coding rate 4/8.&lt;br /&gt;
# &#039;&#039;&#039;Pick a spare channel slot&#039;&#039;&#039; for the tunnel, such as 7. Reticulum writes its channel into that slot when it connects, so &#039;&#039;&#039;do not use 0&#039;&#039;&#039;: on most radios that is your Public channel, and it would be replaced.&lt;br /&gt;
&lt;br /&gt;
A companion radio talks to one app at a time. While Reticulum is using it, your phone&#039;s MeshCore app cannot connect, and the other way round.&lt;br /&gt;
&lt;br /&gt;
=== 2. Get the interface ===&lt;br /&gt;
&lt;br /&gt;
Download &amp;lt;code&amp;gt;Interface/MeshCore_Raw_Interface.py&amp;lt;/code&amp;gt; from [https://github.com/ScotMesh/RNS_Over_Meshcore ScotMesh/RNS_Over_Meshcore] and put it in Reticulum&#039;s &amp;lt;code&amp;gt;interfaces&amp;lt;/code&amp;gt; folder:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! System !! Folder&lt;br /&gt;
|-&lt;br /&gt;
| Linux, macOS || &amp;lt;code&amp;gt;~/.reticulum/interfaces/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Windows || &amp;lt;code&amp;gt;C:\Users\&amp;amp;lt;you&amp;amp;gt;\.reticulum\interfaces\&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Create the folder if it is not there. The interface needs nothing beyond Reticulum itself, plus one library for your connection:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;pip install pyserial   # USB&lt;br /&gt;
pip install bleak      # Bluetooth&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;~/reticulum/bin/pip&amp;lt;/code&amp;gt; instead if you installed Reticulum in a virtual environment. WiFi (TCP) needs nothing extra.&lt;br /&gt;
&lt;br /&gt;
=== 3. Add it to your config ===&lt;br /&gt;
&lt;br /&gt;
Add this block under &amp;lt;code&amp;gt;[interfaces]&amp;lt;/code&amp;gt; in your Reticulum config file (where to find it: [[Connecting to ScotMesh#3. Find the config file|Connecting to ScotMesh]]). Keep exactly one of the three connection blocks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;  [[ScotMesh over MeshCore]]&lt;br /&gt;
    type = MeshCore_Raw_Interface&lt;br /&gt;
    interface_enabled = yes&lt;br /&gt;
&lt;br /&gt;
    # USB&lt;br /&gt;
    transport = serial&lt;br /&gt;
    port = /dev/ttyUSB0          # Windows: COM3 or similar&lt;br /&gt;
    baudrate = 115200&lt;br /&gt;
&lt;br /&gt;
    # Bluetooth - instead of the USB lines&lt;br /&gt;
    # transport = ble&lt;br /&gt;
    # ble_name = MeshCore        # part of the radio&#039;s Bluetooth name&lt;br /&gt;
&lt;br /&gt;
    # WiFi - instead of the USB lines&lt;br /&gt;
    # transport = tcp&lt;br /&gt;
    # host = 192.168.1.50        # the radio&#039;s address&lt;br /&gt;
    # tcp_port = 5000&lt;br /&gt;
&lt;br /&gt;
    # The ScotMesh tunnel&lt;br /&gt;
    channel_idx = 7              # a spare slot, never 0&lt;br /&gt;
    channel_name = RNSTunnel&lt;br /&gt;
    channel_secret = 38a46b4349a14b05c70328f444932033&lt;br /&gt;
    flood_scope = sco&lt;br /&gt;
&lt;br /&gt;
    # You are an end user, not a relay&lt;br /&gt;
    can_route = no&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Leave &amp;lt;code&amp;gt;mode&amp;lt;/code&amp;gt; out: the default is right for an end user.&lt;br /&gt;
&lt;br /&gt;
=== 4. Start it and check ===&lt;br /&gt;
&lt;br /&gt;
# Start Reticulum: &amp;lt;code&amp;gt;rnsd&amp;lt;/code&amp;gt;, or restart it if it was already running.&lt;br /&gt;
# Run &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt;. &#039;&#039;&#039;ScotMesh over MeshCore&#039;&#039;&#039; should be listed as &#039;&#039;&#039;Up&#039;&#039;&#039;.&lt;br /&gt;
# Look for the ScotMesh node. The first answer can take a minute or two over radio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;rnpath 10a839df2c50635bcb0c8a299b9ca0f8&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A reply such as &#039;&#039;Path found … via … on MeshCore_Raw_Interface&#039;&#039; means you are through. From here everything in [[Services and addresses]] works, just slowly.&lt;br /&gt;
&lt;br /&gt;
=== With MeshChatX instead ===&lt;br /&gt;
&lt;br /&gt;
# Open &#039;&#039;&#039;Settings&#039;&#039;&#039;, then &#039;&#039;&#039;Interfaces&#039;&#039;&#039;, and install a custom interface module. Upload &amp;lt;code&amp;gt;MeshCore_Raw_Interface.py&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Add an interface of type &amp;lt;code&amp;gt;MeshCore_Raw_Interface&amp;lt;/code&amp;gt; with the same settings as the block above.&lt;br /&gt;
# Restart when asked.&lt;br /&gt;
&lt;br /&gt;
MeshChatX already includes the USB and Bluetooth libraries.&lt;br /&gt;
&lt;br /&gt;
On an &#039;&#039;&#039;Android phone&#039;&#039;&#039;, Sideband can only use the WiFi (TCP) connection. See the fork&#039;s README for its service plugin.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Over Meshtastic ==&lt;br /&gt;
&lt;br /&gt;
[[File:Reticulum over Meshtastic.svg|center|frameless|upright=3.2|alt=Diagram: Reticulum on your computer talks to your Meshtastic node over USB, Bluetooth or WiFi. The node carries the tunnel on its RNS channel, on EU_868 LongFast, directly or through other Meshtastic nodes, to The Pole at Cadham, where RepeaterTastic&#039;s radio hands it to the hosted node RSN Bridge and rnsd, which connects to the ScotMesh backbone over TCP. Each Reticulum packet is cut into pieces of up to 155 bytes, sent one every 8 seconds, and missing pieces are asked for again.|How Reticulum travels over Meshtastic to the ScotMesh backbone]]&lt;br /&gt;
&lt;br /&gt;
=== 1. Set up the radio ===&lt;br /&gt;
&lt;br /&gt;
# Any Meshtastic node on &#039;&#039;&#039;EU_868&#039;&#039;&#039; with the &#039;&#039;&#039;LongFast&#039;&#039;&#039; preset, which is the default in the UK.&lt;br /&gt;
# Open the [https://meshtastic.org/e/?add=true#CicSIKzMw9L_sPDY_S2bF9AB3mRvgeyDwAhw9K6HLEBEzbc9GgNSTlMSCAgBOANAA0gB channel link] on the phone or computer your node is paired with. It adds a channel called &amp;lt;code&amp;gt;RNS&amp;lt;/code&amp;gt; next to your own.&lt;br /&gt;
# In the Meshtastic app&#039;s channel list, &#039;&#039;&#039;note which slot &amp;lt;code&amp;gt;RNS&amp;lt;/code&amp;gt; landed in&#039;&#039;&#039;. It is usually 1, the first slot after your primary channel.&lt;br /&gt;
&lt;br /&gt;
Your normal channels keep working. The node can stay paired with your phone while Reticulum uses it over USB or WiFi.&lt;br /&gt;
&lt;br /&gt;
=== 2. Get the Meshtastic interface ===&lt;br /&gt;
&lt;br /&gt;
Download &amp;lt;code&amp;gt;Interface/Meshtastic_Interface.py&amp;lt;/code&amp;gt; from [https://github.com/ScotMesh/RNS_Over_Meshtastic ScotMesh/RNS_Over_Meshtastic] into Reticulum&#039;s &amp;lt;code&amp;gt;interfaces&amp;lt;/code&amp;gt; folder (the same folder as for [[#2. Get the interface|MeshCore]]). It needs the Meshtastic library:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;pip install meshtastic&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Use ScotMesh&#039;s copy, not the original.&#039;&#039;&#039; The original can only use your primary channel, and it sends pieces too big for the gateway.&lt;br /&gt;
&lt;br /&gt;
=== 3. Add the Meshtastic block to your config ===&lt;br /&gt;
&lt;br /&gt;
Keep exactly one of the three connection lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;  [[ScotMesh over Meshtastic]]&lt;br /&gt;
    type = Meshtastic_Interface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
&lt;br /&gt;
    port = /dev/ttyUSB0            # USB (Windows: COM3 or similar)&lt;br /&gt;
    # tcp_port = 192.168.1.60      # WiFi: the node&#039;s address&lt;br /&gt;
    # ble_port = Meshtastic_1234   # Bluetooth: the node&#039;s name&lt;br /&gt;
&lt;br /&gt;
    data_speed = 0                 # LongFast&lt;br /&gt;
    channel_index = 1              # the slot RNS landed in&lt;br /&gt;
    hop_limit = 3&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Leave &amp;lt;code&amp;gt;mode&amp;lt;/code&amp;gt; out, as for MeshCore.&lt;br /&gt;
&lt;br /&gt;
=== 4. Start it and check it ===&lt;br /&gt;
&lt;br /&gt;
As for MeshCore:&lt;br /&gt;
# Start &amp;lt;code&amp;gt;rnsd&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Check that &#039;&#039;&#039;ScotMesh over Meshtastic&#039;&#039;&#039; is &#039;&#039;&#039;Up&#039;&#039;&#039; in &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Run &amp;lt;code&amp;gt;rnpath 10a839df2c50635bcb0c8a299b9ca0f8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Allow a few minutes: Meshtastic sends only one piece every 8 seconds.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Keeping the air clear ==&lt;br /&gt;
&lt;br /&gt;
The UK band these radios use allows each transmitter only &#039;&#039;&#039;10% of the time&#039;&#039;&#039;, and everyone shares it.&lt;br /&gt;
* &#039;&#039;&#039;Do not set &amp;lt;code&amp;gt;mode = gateway&amp;lt;/code&amp;gt;&#039;&#039;&#039; on your end. A gateway pushes every route it knows onto the radio and can flood the channel.&lt;br /&gt;
* &#039;&#039;&#039;Do not turn on &amp;lt;code&amp;gt;enable_transport&amp;lt;/code&amp;gt;&#039;&#039;&#039; just for this. Your machine does not need to relay for others.&lt;br /&gt;
* &#039;&#039;&#039;Send messages, not files.&#039;&#039;&#039; A single photo can hold the channel for many minutes.&lt;br /&gt;
* &#039;&#039;&#039;Keep &amp;lt;code&amp;gt;can_route = no&amp;lt;/code&amp;gt;&#039;&#039;&#039; unless ScotMesh has asked you to run a relay.&lt;br /&gt;
&lt;br /&gt;
== If it does not work ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! What you see !! Try&lt;br /&gt;
|-&lt;br /&gt;
| The interface is not listed in &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt; || The file is not in the &amp;lt;code&amp;gt;interfaces&amp;lt;/code&amp;gt; folder, or &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is misspelt. Check the Reticulum log.&lt;br /&gt;
|-&lt;br /&gt;
| Listed, but &#039;&#039;&#039;Down&#039;&#039;&#039; || Wrong port or address, or another app (your phone) is connected to the radio.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;unsupported command&#039;&#039; in the log || The radio&#039;s firmware is older than v1.17. Update the companion firmware.&lt;br /&gt;
|-&lt;br /&gt;
| Up, but &amp;lt;code&amp;gt;rnpath&amp;lt;/code&amp;gt; never finds anything || Wrong channel secret, wrong radio settings, or no path to The Pole. Check the secret against [[#Tunnel details|Tunnel details]] first, then the radio settings, then ask in [[The chat room|the chat room]] whether anyone can hear you.&lt;br /&gt;
|-&lt;br /&gt;
| Your Public channel disappeared || &amp;lt;code&amp;gt;channel_idx&amp;lt;/code&amp;gt; was 0. Pick a spare slot, then add the Public channel back in the MeshCore app.&lt;br /&gt;
|-&lt;br /&gt;
| Meshtastic: Up, but nothing arrives || &amp;lt;code&amp;gt;channel_index&amp;lt;/code&amp;gt; doesn&#039;t match the slot the &amp;lt;code&amp;gt;RNS&amp;lt;/code&amp;gt; channel is in, or the node isn&#039;t on EU_868 LongFast.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/ScotMesh/RNS_Over_Meshcore ScotMesh/RNS_Over_Meshcore] and [https://github.com/ScotMesh/RNS_Over_Meshtastic ScotMesh/RNS_Over_Meshtastic] — the interfaces&#039; code&lt;br /&gt;
* [[RNode]] — the faster radio route&lt;br /&gt;
* [[Services and addresses]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=File:Reticulum_over_MeshCore.svg&amp;diff=153</id>
		<title>File:Reticulum over MeshCore.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=File:Reticulum_over_MeshCore.svg&amp;diff=153"/>
		<updated>2026-09-17T10:48:03Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: == Summary ==
Diagram for Reticulum over MeshCore and Meshtastic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Diagram for Reticulum over MeshCore and Meshtastic&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=File:Reticulum_over_Meshtastic.svg&amp;diff=152</id>
		<title>File:Reticulum over Meshtastic.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=File:Reticulum_over_Meshtastic.svg&amp;diff=152"/>
		<updated>2026-09-17T10:48:03Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: == Summary ==
Diagram for Reticulum over MeshCore and Meshtastic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Diagram for Reticulum over MeshCore and Meshtastic&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Projects&amp;diff=146</id>
		<title>Projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Projects&amp;diff=146"/>
		<updated>2026-09-13T11:17:34Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Add the chat hub and ScotMesh Mail&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What ScotMesh is building on Reticulum: what each project is, what state it is in, and where to find it.&lt;br /&gt;
&lt;br /&gt;
* [[Project index]]&lt;br /&gt;
* [[MeshCore as a Reticulum Interface]]&lt;br /&gt;
* [[ScotMesh chat hub]]&lt;br /&gt;
* [[ScotMesh Mail]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Books]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Project_index&amp;diff=145</id>
		<title>Project index</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Project_index&amp;diff=145"/>
		<updated>2026-09-13T11:17:33Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Add the chat hub and ScotMesh Mail&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What ScotMesh is building on Reticulum, and where each piece has got to. Every project has a page with the same five things: what it is, its status, where to find it, who is working on it, and what comes next.&lt;br /&gt;
&lt;br /&gt;
== Status words ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Idea&#039;&#039;&#039; || Talked about; nothing written down beyond a page here.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Design&#039;&#039;&#039; || Specified in enough detail to build, no working code yet.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Prototype&#039;&#039;&#039; || Runs, for the people building it.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Live&#039;&#039;&#039; || In use on the network.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Paused&#039;&#039;&#039; || Not being worked on, but not abandoned.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Retired&#039;&#039;&#039; || Replaced or dropped; the page stays for the record.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Project !! What it is !! Status !! Where&lt;br /&gt;
|-&lt;br /&gt;
| [[The ScotMesh node]] || The public transport node, chat hub, propagation node and Nomad Network node for Scotland || Live || [https://rns.scotmesh.net rns.scotmesh.net]&lt;br /&gt;
|-&lt;br /&gt;
| [[RNode|ScotMesh Flasher]] || Set up an RNode radio or a standalone node from a browser, with the ScotMesh radio profiles built in || Live || [https://rnode.scotmesh.net rnode.scotmesh.net]&lt;br /&gt;
|-&lt;br /&gt;
| [[ScotMesh firmware]] || Our build of microReticulum for solar and hilltop relays: remote management from the node&#039;s own page, telemetry, updates without a cable, the SenseCAP Solar Node P1 || Live (v1.86-scotmesh.4) || [https://github.com/A13xB0/microReticulum_Firmware GitHub]&lt;br /&gt;
|-&lt;br /&gt;
| LoRa gateways || ScotMesh radios on air, linking LoRa users to the backbone || Prototype: the first gateway is on air in Fife, carrying both profiles || [[RNode]]&lt;br /&gt;
|-&lt;br /&gt;
| [[MeshCore as a Reticulum Interface]] || Carry Reticulum traffic over MeshCore radios, so an existing MeshCore mesh becomes a Reticulum bearer || Idea || [[MeshCore as a Reticulum Interface]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ScotMesh chat hub]] || The chat room: one conversation reached over RRC, as an LXMF group or on a Nomad Network page, with one name per identity || Live (1.0.0-rc.4) || [[The chat room]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ScotMesh Mail]] || Email over Reticulum: identity login, a MeshChatX plugin, Nomad Network webmail, a postmaster for Sideband, and &amp;lt;code&amp;gt;@mail.scotmesh.net&amp;lt;/code&amp;gt; to the internet || Prototype || [[ScotMesh Mail#Where to find it|Addresses]]&lt;br /&gt;
|-&lt;br /&gt;
| This wiki || Documentation for all of the above || Live || You are reading it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Adding a project ==&lt;br /&gt;
&lt;br /&gt;
Copy an existing project page, keep the five sections, and add a row here. A project with no page is not a project yet. Anything ScotMesh-built that lives in a repository should link to it, and say what licence it is under.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=ScotMesh_chat_hub&amp;diff=144</id>
		<title>ScotMesh chat hub</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=ScotMesh_chat_hub&amp;diff=144"/>
		<updated>2026-09-13T11:17:31Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: New project page: the ScotMesh chat hub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The ScotMesh chat hub&#039;&#039;&#039; runs ScotMesh&#039;s chat room: one conversation that people reach from an RRC chat client, as an LXMF group, or on a Nomad Network page, with everyone seeing the same messages under the same names. How to join is on [[The chat room]].&lt;br /&gt;
&lt;br /&gt;
== What it is ==&lt;br /&gt;
&lt;br /&gt;
One program that connects to [[The ScotMesh Backbone|the backbone]] over TCP, with no Reticulum daemon of its own, and serves three ways into the same room:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;The RRC room&#039;&#039;&#039; &amp;lt;code&amp;gt;#scotmesh&amp;lt;/code&amp;gt;, for MeshChatX, NomadNet, rrc-tui and WeeChat.&lt;br /&gt;
* &#039;&#039;&#039;The LXMF group&#039;&#039;&#039;, for Sideband, Columba, MeshChatX and NomadNet. Messages arrive as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;The chat page&#039;&#039;&#039;, read in NomadNet or MeshChatX, where you can post once you identify.&lt;br /&gt;
&lt;br /&gt;
Each Reticulum identity holds one name everywhere, and lookalikes of a name that is taken are refused. When you come back you catch up on what you missed. LXMF delivery can be turned off or left automatic. Operators can moderate, and what they do is logged. Messages are kept for 7 days. The [[Propagation node|propagation node]] holds group messages for members who are away.&lt;br /&gt;
&lt;br /&gt;
It replaced the earlier RRC hub and LXMF bridge.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Live&#039;&#039;&#039;, version 1.0.0-rc.4 as of 13 September 2026, running on ScotMesh&#039;s own server.&lt;br /&gt;
&lt;br /&gt;
== Where to find it ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Address&lt;br /&gt;
|-&lt;br /&gt;
| RRC room || hub &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;, room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LXMF group || &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Chat page || &amp;lt;code&amp;gt;c229a2c7d410e00b71f877375ae846bf:/page/index.mu&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Commands are on [[Chat commands]]. The code is in a private repository, [https://github.com/A13xB0/scotmesh-chat A13xB0/scotmesh-chat], under the MIT licence.&lt;br /&gt;
&lt;br /&gt;
== Who is working on it ==&lt;br /&gt;
&lt;br /&gt;
Alex.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
&lt;br /&gt;
* Release 1.0.0 once the release candidate has settled on the network.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=ScotMesh_Mail&amp;diff=143</id>
		<title>ScotMesh Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=ScotMesh_Mail&amp;diff=143"/>
		<updated>2026-09-13T11:17:30Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: New project page: ScotMesh Mail (rmail)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ScotMesh Mail&#039;&#039;&#039; is email over Reticulum. Your Reticulum identity is your login, so there are no passwords. Mail between people on the mesh never touches the internet, and a gateway links &amp;lt;code&amp;gt;@mail.scotmesh.net&amp;lt;/code&amp;gt; to ordinary email.&lt;br /&gt;
&lt;br /&gt;
== What it is ==&lt;br /&gt;
&lt;br /&gt;
A mail server, &#039;&#039;&#039;rmail&#039;&#039;&#039;, and the ways to use it:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;MeshChatX&#039;&#039;&#039;: a plugin with folders, writing and replying, encrypted and signed mail, and your mail key.&lt;br /&gt;
* &#039;&#039;&#039;Nomad Network&#039;&#039;&#039;: the server is also a node with webmail pages, readable in NomadNet or MeshChatX&#039;s page browser.&lt;br /&gt;
* &#039;&#039;&#039;Sideband&#039;&#039;&#039; and any other LXMF app: message the server&#039;s &#039;&#039;&#039;postmaster&#039;&#039;&#039;. It sends a notice when mail arrives, can forward whole messages, and takes commands such as &amp;lt;code&amp;gt;STATUS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INBOX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;READ&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;REPLY&amp;lt;/code&amp;gt;. Start a message with &amp;lt;code&amp;gt;to: someone@…&amp;lt;/code&amp;gt; to send mail.&lt;br /&gt;
&lt;br /&gt;
Several identities can share one mailbox, for example your phone and your laptop, or a group&#039;s shared address. Mail can be kept encrypted on the server with keys only the mailbox&#039;s members hold. Mail is text only and kept small, because it crosses radio links: attachments are refused.&lt;br /&gt;
&lt;br /&gt;
Servers announce themselves like Nomad Network nodes, and anyone can run one. Addresses look like &amp;lt;code&amp;gt;name@&amp;lt;server address&amp;gt;.rns&amp;lt;/code&amp;gt; on the mesh, and &amp;lt;code&amp;gt;name@mail.scotmesh.net&amp;lt;/code&amp;gt; from the internet.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prototype&#039;&#039;&#039;, as of 13 September 2026. The ScotMesh server is running and joined to [[The ScotMesh Backbone|the backbone]], with the first mailbox. Sign-up is by invitation only. Mail from the internet is waiting on its firewall port being opened, and mail to the internet may land in spam folders for now, because the server&#039;s address can&#039;t be given a matching reverse DNS name.&lt;br /&gt;
&lt;br /&gt;
== Where to find it ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! What !! Address&lt;br /&gt;
|-&lt;br /&gt;
| Mail server || &amp;lt;code&amp;gt;45b45ffb1ce546993728cb31e9846b95&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Postmaster (LXMF) || &amp;lt;code&amp;gt;044b450f5f66efc790c25d703121d4a5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Webmail (Nomad Network) || &amp;lt;code&amp;gt;65f06cd68ddedd8929471af0d82c1a7d:/page/index.mu&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Internet domain || &amp;lt;code&amp;gt;mail.scotmesh.net&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It runs on ScotMesh&#039;s own server alongside the [[ScotMesh chat hub|chat hub]], and stores messages for mailboxes that are away through the [[Propagation node|propagation node]]. The code is in a private repository, [https://github.com/A13xB0/rmail A13xB0/rmail]; it has no licence yet.&lt;br /&gt;
&lt;br /&gt;
== Who is working on it ==&lt;br /&gt;
&lt;br /&gt;
Alex.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
&lt;br /&gt;
* Open the mail port so internet mail can arrive, and send a first message each way.&lt;br /&gt;
* Try the MeshChatX plugin with real users, and write a how-to page like [[The chat room]].&lt;br /&gt;
* Choose a licence and publish the code.&lt;br /&gt;
* Send out the first invitations.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=142</id>
		<title>The chat room</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=142"/>
		<updated>2026-09-13T00:40:59Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Step-by-step joining from MeshChatX for the room, the group and the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ScotMesh has one chat, the room &#039;&#039;&#039;&amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&#039;&#039;&#039;, with three ways into it. Use whichever suits you: everyone sees the same messages, under the same names, whichever way they came in. It is the place to say hello, ask for help, and find out who else is on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  MeshChatX, NomadNet, rrc-tui ──── RRC room #scotmesh ────┐&lt;br /&gt;
                                                           │&lt;br /&gt;
  Sideband, Columba, MeshChatX ──── LXMF group ────────────┼──►  ScotMesh chat hub  ──►  one conversation&lt;br /&gt;
                                                           │     (names, history,        everyone sees&lt;br /&gt;
  NomadNet, MeshChatX ───────────── chat page ─────────────┘      settings, 7 days)      every message&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Address&lt;br /&gt;
|-&lt;br /&gt;
| RRC room || hub &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;, room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LXMF group || &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Chat page || &amp;lt;code&amp;gt;c229a2c7d410e00b71f877375ae846bf:/page/index.mu&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Every command is listed on [[Chat commands]].&lt;br /&gt;
&lt;br /&gt;
== How it fits together ==&lt;br /&gt;
&lt;br /&gt;
[[File:ScotMesh chat hub architecture.svg|center|frameless|upright=3.2|alt=Diagram: RRC clients, LXMF messengers and NomadNet browsers each reach their own front door in the ScotMesh chat hub. Each door checks the Reticulum identity and its name, then passes messages to the hub core, which works with names, moderation and the store. The hub connects to the Reticulum backbone, and the propagation node holds group messages for members who are away.|How the ScotMesh chat hub fits together]]&lt;br /&gt;
&lt;br /&gt;
The hub is one program on ScotMesh&#039;s own server, connected to the backbone at rns.scotmesh.net.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Three front doors.&#039;&#039;&#039; The RRC server, the LXMF group and the chat page each speak their own protocol, so every app works with the door it already knows.&lt;br /&gt;
* &#039;&#039;&#039;Identity first.&#039;&#039;&#039; Before a message goes any further, its door checks the Reticulum identity it came from and looks up the name that identity holds. That is why a name is the same everywhere and can&#039;t be borrowed, and why messages appear under the author&#039;s own name.&lt;br /&gt;
* &#039;&#039;&#039;One hub core&#039;&#039;&#039; puts messages in order, stores them once and sends them out through every door. It also handles catching up, who is here, LXMF settings and commands.&lt;br /&gt;
* &#039;&#039;&#039;Beside it&#039;&#039;&#039; are the names (one per identity, lookalikes refused), moderation (operators, bans and a log of what operators do) and the store, where messages are kept for 7 days.&lt;br /&gt;
* &#039;&#039;&#039;The propagation node&#039;&#039;&#039; holds group messages for LXMF members who are offline until they collect them.&lt;br /&gt;
&lt;br /&gt;
== What it looks like ==&lt;br /&gt;
&lt;br /&gt;
Here is the same conversation seen three ways in MeshChatX. The messages Alex sent from LXMF, RRC and the chat page all turn up in each view, under the same name.&lt;br /&gt;
&lt;br /&gt;
; The RRC room&lt;br /&gt;
: The live chat, with who is here, joins and leaves, and room notices. Use it when you want to talk in real time.&lt;br /&gt;
[[File:ScotMesh chat RRC room in MeshChatX.png|center|frameless|upright=3.2|alt=MeshChatX showing the scotmesh RRC room: Alex&#039;s test messages sent from LXMF, RRC and Nomad, followed by join notices and the room topic.|The #scotmesh RRC room in MeshChatX]]&lt;br /&gt;
&lt;br /&gt;
; The LXMF group&lt;br /&gt;
: The chat arrives as ordinary messages from &#039;&#039;ScotMesh Chat&#039;&#039;, each one written as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;. What you send goes to everyone. It keeps working when you are offline, because missed messages wait on the propagation node.&lt;br /&gt;
[[File:ScotMesh chat LXMF group in MeshChatX.png|center|frameless|upright=3.2|alt=MeshChatX conversation with ScotMesh Chat: a message sent to the group, and a reply shown as &amp;quot;Alex: test new setting&amp;quot;.|The LXMF group as a MeshChatX conversation]]&lt;br /&gt;
&lt;br /&gt;
; The chat page&lt;br /&gt;
: A NomadNet page showing who you are, the recent messages, a box to post, and links to older messages and to your name and settings. When there&#039;s something you haven&#039;t seen yet, a line marks where it starts.&lt;br /&gt;
[[File:ScotMesh chat page in MeshChatX.png|center|frameless|upright=3.2|alt=The ScotMesh chat page open in MeshChatX&#039;s NomadNet browser, with the saltire banner, recent messages and a box to post.|The chat page in MeshChatX&#039;s page browser]]&lt;br /&gt;
&lt;br /&gt;
== Out of the box ==&lt;br /&gt;
&lt;br /&gt;
Once you are [[Connecting to ScotMesh|connected to ScotMesh]]:&lt;br /&gt;
&lt;br /&gt;
; MeshChatX&lt;br /&gt;
: All three ways in work from MeshChatX, and it uses one identity for all of them, so your name is the same in each. See [[#Step by step in MeshChatX|step by step in MeshChatX]] below.&lt;br /&gt;
; Sideband, and Columba or Retichat on iPhone&lt;br /&gt;
: Start a conversation with &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt; and send &amp;lt;code&amp;gt;/join&amp;lt;/code&amp;gt;. The chat then arrives like any other conversation, as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and what you send reaches everyone.&lt;br /&gt;
; NomadNet&lt;br /&gt;
: Open the chat page above to read along. To post, turn on &amp;quot;Identify when connecting&amp;quot; for that node and reload. NomadNet can also join the RRC room from its Channels screen.&lt;br /&gt;
&lt;br /&gt;
== Step by step in MeshChatX ==&lt;br /&gt;
&lt;br /&gt;
These steps match MeshChatX 4.8. Labels in &#039;&#039;&#039;bold&#039;&#039;&#039; are what the app shows.&lt;br /&gt;
&lt;br /&gt;
=== Before you start: your name ===&lt;br /&gt;
&lt;br /&gt;
The hub names you after the display name your app announces, so set that first.&lt;br /&gt;
&lt;br /&gt;
# Click your account at the bottom of the left sidebar. Until you set a name it says &#039;&#039;&#039;My Identity&#039;&#039;&#039;.&lt;br /&gt;
# Type your name in &#039;&#039;&#039;Display Name&#039;&#039;&#039; and press Enter. It&#039;s also in &#039;&#039;&#039;Settings&#039;&#039;&#039; under &#039;&#039;&#039;Profile&#039;&#039;&#039;.&lt;br /&gt;
# Click &#039;&#039;&#039;Announce Now&#039;&#039;&#039; (the radio icon next to it) so the network hears the new name.&lt;br /&gt;
&lt;br /&gt;
Names have no spaces on the hub, so &amp;lt;code&amp;gt;Ellen Smith&amp;lt;/code&amp;gt; becomes &amp;lt;code&amp;gt;Ellen_Smith&amp;lt;/code&amp;gt;. You can pick a different name later with &amp;lt;code&amp;gt;/nick YourName&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The RRC room (live chat) ===&lt;br /&gt;
&lt;br /&gt;
# In the left sidebar, under &#039;&#039;&#039;Communicate&#039;&#039;&#039;, click &#039;&#039;&#039;Relay Chat&#039;&#039;&#039;. If you can&#039;t see it, turn on &#039;&#039;&#039;Relay Chat&#039;&#039;&#039; in &#039;&#039;&#039;Settings&#039;&#039;&#039; → &#039;&#039;&#039;General&#039;&#039;&#039;.&lt;br /&gt;
# On the &#039;&#039;&#039;Connect&#039;&#039;&#039; tab, click &#039;&#039;&#039;+ Add a hub&#039;&#039;&#039;.&lt;br /&gt;
# In &#039;&#039;&#039;Add a Relay Chat Hub&#039;&#039;&#039;, paste &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt; into &#039;&#039;&#039;Hub Destination Hash&#039;&#039;&#039;. Type &amp;lt;code&amp;gt;ScotMesh&amp;lt;/code&amp;gt; in &#039;&#039;&#039;Hub Name (optional)&#039;&#039;&#039; and click &#039;&#039;&#039;Add Hub&#039;&#039;&#039;. MeshChatX connects straight away.&lt;br /&gt;
#: &#039;&#039;Or&#039;&#039; open the &#039;&#039;&#039;Discover&#039;&#039;&#039; tab: the ScotMesh hub is listed once its announce has reached you, with an &#039;&#039;&#039;Add&#039;&#039;&#039; button.&lt;br /&gt;
# Under the hub, type &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;room name&#039;&#039;&#039; box and click &#039;&#039;&#039;+&#039;&#039;&#039; (&#039;&#039;&#039;Join Room&#039;&#039;&#039;). You can also open &#039;&#039;&#039;Available Rooms&#039;&#039;&#039; and click &#039;&#039;&#039;Join&#039;&#039;&#039;.&lt;br /&gt;
# Type in &#039;&#039;&#039;Write a message...&#039;&#039;&#039; and click &#039;&#039;&#039;Send&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Show members&#039;&#039;&#039; in the room header lists who is here.&lt;br /&gt;
* Commands such as &amp;lt;code&amp;gt;/help&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/whoami&amp;lt;/code&amp;gt; go in the same message box. The answers appear in the room, visible only to you.&lt;br /&gt;
* The hub card&#039;s cog (&#039;&#039;&#039;Hub Settings&#039;&#039;&#039;) has &#039;&#039;&#039;Nickname override&#039;&#039;&#039;, if you want a name on RRC other than your display name.&lt;br /&gt;
&lt;br /&gt;
=== The LXMF group (like a normal conversation) ===&lt;br /&gt;
&lt;br /&gt;
# Click &#039;&#039;&#039;Messages&#039;&#039;&#039; in the left sidebar.&lt;br /&gt;
# Paste &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt; into &#039;&#039;&#039;Enter an LXMF address to start a conversation&#039;&#039;&#039; and press Enter.&lt;br /&gt;
# Send &amp;lt;code&amp;gt;/join&amp;lt;/code&amp;gt;. The reply welcomes you by name and shows the last few messages.&lt;br /&gt;
# &#039;&#039;&#039;Add ScotMesh Chat to your contacts.&#039;&#039;&#039; The conversation shows a banner, &#039;&#039;This peer is not in your contacts&#039;&#039;, with an &#039;&#039;&#039;Add to Contacts&#039;&#039;&#039; button. Click it.&lt;br /&gt;
#: MeshChatX&#039;s &#039;&#039;&#039;Block Attachments from Strangers&#039;&#039;&#039; setting (in &#039;&#039;&#039;Settings&#039;&#039;&#039; → &#039;&#039;&#039;Messages&#039;&#039;&#039; → &#039;&#039;&#039;Stranger Protection&#039;&#039;&#039;, on by default) refuses any long message from someone who isn&#039;t a contact. The hub keeps its messages short so they get through anyway, but adding the group as a contact means nothing is ever held back.&lt;br /&gt;
&lt;br /&gt;
From then on the chat arrives as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and whatever you send reaches everyone. &amp;lt;code&amp;gt;/lxmf off&amp;lt;/code&amp;gt; pauses it without leaving; &amp;lt;code&amp;gt;/help&amp;lt;/code&amp;gt; lists the rest.&lt;br /&gt;
&lt;br /&gt;
=== The chat page (read along, post when you like) ===&lt;br /&gt;
&lt;br /&gt;
# In the left sidebar, under &#039;&#039;&#039;Explore&#039;&#039;&#039;, click &#039;&#039;&#039;Nomad Network&#039;&#039;&#039;.&lt;br /&gt;
# Click &#039;&#039;&#039;Open a Nomadnet URL&#039;&#039;&#039;, or use the address bar at the top once a page is open. Enter &amp;lt;code&amp;gt;c229a2c7d410e00b71f877375ae846bf:/page/index.mu&amp;lt;/code&amp;gt; and press Enter.&lt;br /&gt;
# Click the star (&#039;&#039;&#039;Add Favourite&#039;&#039;&#039;) so it&#039;s one click away next time.&lt;br /&gt;
# &#039;&#039;&#039;To post&#039;&#039;&#039;, click the fingerprint button in the page toolbar. Its tooltip reads &#039;&#039;&#039;Identify when connecting (off)&#039;&#039;&#039;. Confirm, and the page reloads with your identity, showing &#039;&#039;&#039;You are&#039;&#039;&#039; and your name.&lt;br /&gt;
# Type in &#039;&#039;&#039;Say&#039;&#039;&#039; and click &#039;&#039;&#039;Send&#039;&#039;&#039;. &#039;&#039;&#039;Reload&#039;&#039;&#039; fetches new messages; &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; has your name and LXMF options.&lt;br /&gt;
&lt;br /&gt;
The identify setting belongs to that favourite, so it stays on for the chat page next time. It isn&#039;t available in private tabs.&lt;br /&gt;
&lt;br /&gt;
== Full installation ==&lt;br /&gt;
&lt;br /&gt;
With Reticulum installed yourself, any RRC client works: &#039;&#039;&#039;Ratspeak&#039;&#039;&#039;, &#039;&#039;&#039;rrc-tui&#039;&#039;&#039;, &#039;&#039;&#039;rrc-gui&#039;&#039;&#039;, &#039;&#039;&#039;WeeChat&#039;&#039;&#039; (with the RRC plugin) and &#039;&#039;&#039;Eridanus&#039;&#039;&#039;. Point the client at the hub address, then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;/join scotmesh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hub announces itself every 30 minutes, so a client that lists hubs usually shows it without the address being typed.&lt;br /&gt;
&lt;br /&gt;
== Your name ==&lt;br /&gt;
&lt;br /&gt;
Your name belongs to your &#039;&#039;&#039;Reticulum identity&#039;&#039;&#039; and is the same in the RRC room, the LXMF group and on the page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  your identity 178c1f39…  ──holds──►  &amp;quot;Alex&amp;quot;&lt;br /&gt;
                                         │&lt;br /&gt;
            ┌────────────────────────────┼────────────────────────────┐&lt;br /&gt;
            ▼                            ▼                            ▼&lt;br /&gt;
       RRC room: Alex             LXMF group: &amp;quot;Alex: hi&amp;quot;         chat page: Alex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Claiming one.&#039;&#039;&#039; The first name you use becomes yours. That can be your RRC nickname, the display name your LXMF app announces (spaces become &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;), a name given with &amp;lt;code&amp;gt;/join Name&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;/nick Name&amp;lt;/code&amp;gt;. On the page, use &amp;quot;Your name &amp;amp;amp; settings&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Nobody else can take it&#039;&#039;&#039;, or anything that looks like it: &amp;lt;code&amp;gt;A1ex&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Al.ex&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ALEX&amp;lt;/code&amp;gt; all count as &amp;lt;code&amp;gt;Alex&amp;lt;/code&amp;gt;. If your name is taken you are told, and shown as &amp;lt;code&amp;gt;guest-&amp;lt;/code&amp;gt; plus four characters of your identity until you choose a free one.&lt;br /&gt;
* &#039;&#039;&#039;The rules.&#039;&#039;&#039; 2 to 24 characters, starting with a letter. Letters (accents are fine), digits, &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, with no spaces. A few words such as &#039;&#039;admin&#039;&#039; and &#039;&#039;scotmesh&#039;&#039; are reserved.&lt;br /&gt;
* &#039;&#039;&#039;Giving it up.&#039;&#039;&#039; &amp;lt;code&amp;gt;/leave&amp;lt;/code&amp;gt; frees your name and takes you out of the LXMF group. Messages you already sent keep the name they were sent under.&lt;br /&gt;
* &#039;&#039;&#039;One identity, one name.&#039;&#039;&#039; Each app normally makes its own identity, so a phone and a laptop are two identities and need two names, unless you restore the same identity on both.&lt;br /&gt;
&lt;br /&gt;
== Catching up ==&lt;br /&gt;
&lt;br /&gt;
When you come back to the room over RRC, you get exactly what was said since you last left, with the times it was said:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  18:02  you disconnect&lt;br /&gt;
           │   Rab: anyone near Stirling?&lt;br /&gt;
           │   Ellen: got it, 2 hops&lt;br /&gt;
           │   … 10 more …&lt;br /&gt;
  19:30  you reconnect ──►  &amp;quot;— 12 messages since you were here (Sat 18:02) —&amp;quot;&lt;br /&gt;
                             the 12 messages, in order&lt;br /&gt;
                            &amp;quot;— end of history —&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Nothing you have already seen is sent again. If nothing was said while you were away, there is no replay.&lt;br /&gt;
* The first time you visit, you get the last 10 messages.&lt;br /&gt;
* If more than 50 were said, you get the latest 50 and a note to use &amp;lt;code&amp;gt;/history&amp;lt;/code&amp;gt; for the rest.&lt;br /&gt;
* The chat page marks &amp;quot;new since your last visit&amp;quot; in the same way.&lt;br /&gt;
* Messages are kept for 7 days.&lt;br /&gt;
&lt;br /&gt;
== The LXMF group ==&lt;br /&gt;
&lt;br /&gt;
Messages arrive as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/me waves&amp;lt;/code&amp;gt; arrives as &amp;lt;code&amp;gt;* Name waves&amp;lt;/code&amp;gt;. You never get your own messages back from the app you sent them with.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  hub ──direct──► your messenger                      (normally within seconds)&lt;br /&gt;
   │&lt;br /&gt;
   └─ no answer twice? ──► you&#039;re marked away for 10 minutes&lt;br /&gt;
                            │&lt;br /&gt;
                            ▼&lt;br /&gt;
                 ScotMesh propagation node ──► your messenger collects it&lt;br /&gt;
                 c283b754…                     when it next syncs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your LXMF settings, from any way in (see [[Chat commands]]):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; gets every message. This is the default.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf off&amp;lt;/code&amp;gt; stops group messages but keeps your name and membership.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf auto&amp;lt;/code&amp;gt; pauses group messages while you are in the room over RRC with the same identity, and starts them again when you leave.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf mine on&amp;lt;/code&amp;gt; also sends you your own messages from RRC and the page, so your messenger shows the whole conversation.&lt;br /&gt;
* When delivery starts again after a pause, you get one note saying how many messages you missed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /lxmf auto:   RRC connected ───────────── LXMF paused&lt;br /&gt;
                RRC disconnected ─────────► LXMF resumes  +  &amp;quot;12 messages were said while it was paused&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The chat page ==&lt;br /&gt;
&lt;br /&gt;
* It shows the last 30 messages, with &amp;quot;Older&amp;quot; to page back and your own name in green.&lt;br /&gt;
* To post, identify to the node first, then use the Say box. &amp;lt;code&amp;gt;/me waves&amp;lt;/code&amp;gt; works there. Other commands don&#039;t work from the page; use its &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; page instead.&lt;br /&gt;
* &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; lets you claim or change your name, set LXMF delivery (on, auto or off), choose whether your own messages come to you by LXMF, and leave.&lt;br /&gt;
* &#039;&#039;&#039;How to join&#039;&#039;&#039; lists the three ways in with their addresses.&lt;br /&gt;
&lt;br /&gt;
== Rooms and operators ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; is the main room and always exists. Anyone on RRC can make another room with &amp;lt;code&amp;gt;/join newname&amp;lt;/code&amp;gt;. A room exists while someone is in it, unless its founder keeps it with &amp;lt;code&amp;gt;/register&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Room operators can set the topic, set modes and remove people. Hub operators can ban people from the whole hub and free a name someone is squatting on.&lt;br /&gt;
* If you would like to help look after &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;, ask in the room or on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord].&lt;br /&gt;
&lt;br /&gt;
== What the hub keeps ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Messages&#039;&#039;&#039; for 7 days, then they are deleted. Nightly backups are kept for 7 days.&lt;br /&gt;
* &#039;&#039;&#039;For each identity it has seen&#039;&#039;&#039;: the identity and public key, when it was first and last seen, the name it holds, its settings, and how far it has read in each room. That is what makes names and catching up work.&lt;br /&gt;
* &#039;&#039;&#039;Bans&#039;&#039;&#039;, and a log of operator actions.&lt;br /&gt;
* It is all on ScotMesh&#039;s own server. Nothing is shared with anyone else.&lt;br /&gt;
&lt;br /&gt;
== When something doesn&#039;t work ==&lt;br /&gt;
&lt;br /&gt;
; The hub or the group isn&#039;t in my app&lt;br /&gt;
: Wait up to 30 minutes for the announce, or add the address by hand. Check you are [[Connecting to ScotMesh|connected to ScotMesh]].&lt;br /&gt;
; NomadNet&#039;s RRC screen says &amp;quot;Unknown command&amp;quot;&lt;br /&gt;
: NomadNet handles most slash commands itself and only passes a few to the hub; see [[Chat commands#NomadNet]]. For the others, message the LXMF group or use the chat page&#039;s settings.&lt;br /&gt;
; I&#039;m shown as &amp;lt;code&amp;gt;guest-…&amp;lt;/code&amp;gt;&lt;br /&gt;
: Your name was taken, or you haven&#039;t claimed one. Send &amp;lt;code&amp;gt;/nick YourName&amp;lt;/code&amp;gt;.&lt;br /&gt;
; I stopped getting group messages&lt;br /&gt;
: Send &amp;lt;code&amp;gt;/whoami&amp;lt;/code&amp;gt; to the group to check your settings. &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; turns delivery back on.&lt;br /&gt;
; It&#039;s quiet&lt;br /&gt;
: Scotland is not a big place for Reticulum yet. Leave it open, or ask on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord].&lt;br /&gt;
&lt;br /&gt;
== The wider community ==&lt;br /&gt;
&lt;br /&gt;
The Reticulum community runs its own RRC hub at &amp;lt;code&amp;gt;28c7c1a68c735693aa8e6b8193ed44b2&amp;lt;/code&amp;gt;. See [[Learning resources]] for that and the other places people talk.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=141</id>
		<title>The chat room</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=141"/>
		<updated>2026-09-13T00:17:06Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Add screenshots of the three ways into the chat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ScotMesh has one chat, the room &#039;&#039;&#039;&amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&#039;&#039;&#039;, with three ways into it. Use whichever suits you: everyone sees the same messages, under the same names, whichever way they came in. It is the place to say hello, ask for help, and find out who else is on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  MeshChatX, NomadNet, rrc-tui ──── RRC room #scotmesh ────┐&lt;br /&gt;
                                                           │&lt;br /&gt;
  Sideband, Columba, MeshChatX ──── LXMF group ────────────┼──►  ScotMesh chat hub  ──►  one conversation&lt;br /&gt;
                                                           │     (names, history,        everyone sees&lt;br /&gt;
  NomadNet, MeshChatX ───────────── chat page ─────────────┘      settings, 7 days)      every message&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Address&lt;br /&gt;
|-&lt;br /&gt;
| RRC room || hub &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;, room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LXMF group || &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Chat page || &amp;lt;code&amp;gt;c229a2c7d410e00b71f877375ae846bf:/page/index.mu&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Every command is listed on [[Chat commands]].&lt;br /&gt;
&lt;br /&gt;
== How it fits together ==&lt;br /&gt;
&lt;br /&gt;
[[File:ScotMesh chat hub architecture.svg|center|frameless|upright=3.2|alt=Diagram: RRC clients, LXMF messengers and NomadNet browsers each reach their own front door in the ScotMesh chat hub. Each door checks the Reticulum identity and its name, then passes messages to the hub core, which works with names, moderation and the store. The hub connects to the Reticulum backbone, and the propagation node holds group messages for members who are away.|How the ScotMesh chat hub fits together]]&lt;br /&gt;
&lt;br /&gt;
The hub is one program on ScotMesh&#039;s own server, connected to the backbone at rns.scotmesh.net.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Three front doors.&#039;&#039;&#039; The RRC server, the LXMF group and the chat page each speak their own protocol, so every app works with the door it already knows.&lt;br /&gt;
* &#039;&#039;&#039;Identity first.&#039;&#039;&#039; Before a message goes any further, its door checks the Reticulum identity it came from and looks up the name that identity holds. That is why a name is the same everywhere and can&#039;t be borrowed, and why messages appear under the author&#039;s own name.&lt;br /&gt;
* &#039;&#039;&#039;One hub core&#039;&#039;&#039; puts messages in order, stores them once and sends them out through every door. It also handles catching up, who is here, LXMF settings and commands.&lt;br /&gt;
* &#039;&#039;&#039;Beside it&#039;&#039;&#039; are the names (one per identity, lookalikes refused), moderation (operators, bans and a log of what operators do) and the store, where messages are kept for 7 days.&lt;br /&gt;
* &#039;&#039;&#039;The propagation node&#039;&#039;&#039; holds group messages for LXMF members who are offline until they collect them.&lt;br /&gt;
&lt;br /&gt;
== What it looks like ==&lt;br /&gt;
&lt;br /&gt;
Here is the same conversation seen three ways in MeshChatX. The messages Alex sent from LXMF, RRC and the chat page all turn up in each view, under the same name.&lt;br /&gt;
&lt;br /&gt;
; The RRC room&lt;br /&gt;
: The live chat, with who is here, joins and leaves, and room notices. Use it when you want to talk in real time.&lt;br /&gt;
[[File:ScotMesh chat RRC room in MeshChatX.png|center|frameless|upright=3.2|alt=MeshChatX showing the scotmesh RRC room: Alex&#039;s test messages sent from LXMF, RRC and Nomad, followed by join notices and the room topic.|The #scotmesh RRC room in MeshChatX]]&lt;br /&gt;
&lt;br /&gt;
; The LXMF group&lt;br /&gt;
: The chat arrives as ordinary messages from &#039;&#039;ScotMesh Chat&#039;&#039;, each one written as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;. What you send goes to everyone. It keeps working when you are offline, because missed messages wait on the propagation node.&lt;br /&gt;
[[File:ScotMesh chat LXMF group in MeshChatX.png|center|frameless|upright=3.2|alt=MeshChatX conversation with ScotMesh Chat: a message sent to the group, and a reply shown as &amp;quot;Alex: test new setting&amp;quot;.|The LXMF group as a MeshChatX conversation]]&lt;br /&gt;
&lt;br /&gt;
; The chat page&lt;br /&gt;
: A NomadNet page showing who you are, the recent messages, a box to post, and links to older messages and to your name and settings. When there&#039;s something you haven&#039;t seen yet, a line marks where it starts.&lt;br /&gt;
[[File:ScotMesh chat page in MeshChatX.png|center|frameless|upright=3.2|alt=The ScotMesh chat page open in MeshChatX&#039;s NomadNet browser, with the saltire banner, recent messages and a box to post.|The chat page in MeshChatX&#039;s page browser]]&lt;br /&gt;
&lt;br /&gt;
== Out of the box ==&lt;br /&gt;
&lt;br /&gt;
Once you are [[Connecting to ScotMesh|connected to ScotMesh]]:&lt;br /&gt;
&lt;br /&gt;
; MeshChatX&lt;br /&gt;
: Open the chat section, pick the ScotMesh hub (or add it by the hub address above) and join &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;. You can also message the LXMF group. MeshChatX uses one identity for both, so your name is the same in each.&lt;br /&gt;
; Sideband, and Columba or Retichat on iPhone&lt;br /&gt;
: Start a conversation with &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt; and send &amp;lt;code&amp;gt;/join&amp;lt;/code&amp;gt;. The chat then arrives like any other conversation, as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and what you send reaches everyone.&lt;br /&gt;
; NomadNet&lt;br /&gt;
: Open the chat page above to read along. To post, turn on &amp;quot;Identify when connecting&amp;quot; for that node and reload. NomadNet can also join the RRC room from its Channels screen.&lt;br /&gt;
&lt;br /&gt;
== Full installation ==&lt;br /&gt;
&lt;br /&gt;
With Reticulum installed yourself, any RRC client works: &#039;&#039;&#039;Ratspeak&#039;&#039;&#039;, &#039;&#039;&#039;rrc-tui&#039;&#039;&#039;, &#039;&#039;&#039;rrc-gui&#039;&#039;&#039;, &#039;&#039;&#039;WeeChat&#039;&#039;&#039; (with the RRC plugin) and &#039;&#039;&#039;Eridanus&#039;&#039;&#039;. Point the client at the hub address, then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;/join scotmesh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hub announces itself every 30 minutes, so a client that lists hubs usually shows it without the address being typed.&lt;br /&gt;
&lt;br /&gt;
== Your name ==&lt;br /&gt;
&lt;br /&gt;
Your name belongs to your &#039;&#039;&#039;Reticulum identity&#039;&#039;&#039; and is the same in the RRC room, the LXMF group and on the page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  your identity 178c1f39…  ──holds──►  &amp;quot;Alex&amp;quot;&lt;br /&gt;
                                         │&lt;br /&gt;
            ┌────────────────────────────┼────────────────────────────┐&lt;br /&gt;
            ▼                            ▼                            ▼&lt;br /&gt;
       RRC room: Alex             LXMF group: &amp;quot;Alex: hi&amp;quot;         chat page: Alex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Claiming one.&#039;&#039;&#039; The first name you use becomes yours. That can be your RRC nickname, the display name your LXMF app announces (spaces become &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;), a name given with &amp;lt;code&amp;gt;/join Name&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;/nick Name&amp;lt;/code&amp;gt;. On the page, use &amp;quot;Your name &amp;amp;amp; settings&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Nobody else can take it&#039;&#039;&#039;, or anything that looks like it: &amp;lt;code&amp;gt;A1ex&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Al.ex&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ALEX&amp;lt;/code&amp;gt; all count as &amp;lt;code&amp;gt;Alex&amp;lt;/code&amp;gt;. If your name is taken you are told, and shown as &amp;lt;code&amp;gt;guest-&amp;lt;/code&amp;gt; plus four characters of your identity until you choose a free one.&lt;br /&gt;
* &#039;&#039;&#039;The rules.&#039;&#039;&#039; 2 to 24 characters, starting with a letter. Letters (accents are fine), digits, &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, with no spaces. A few words such as &#039;&#039;admin&#039;&#039; and &#039;&#039;scotmesh&#039;&#039; are reserved.&lt;br /&gt;
* &#039;&#039;&#039;Giving it up.&#039;&#039;&#039; &amp;lt;code&amp;gt;/leave&amp;lt;/code&amp;gt; frees your name and takes you out of the LXMF group. Messages you already sent keep the name they were sent under.&lt;br /&gt;
* &#039;&#039;&#039;One identity, one name.&#039;&#039;&#039; Each app normally makes its own identity, so a phone and a laptop are two identities and need two names, unless you restore the same identity on both.&lt;br /&gt;
&lt;br /&gt;
== Catching up ==&lt;br /&gt;
&lt;br /&gt;
When you come back to the room over RRC, you get exactly what was said since you last left, with the times it was said:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  18:02  you disconnect&lt;br /&gt;
           │   Rab: anyone near Stirling?&lt;br /&gt;
           │   Ellen: got it, 2 hops&lt;br /&gt;
           │   … 10 more …&lt;br /&gt;
  19:30  you reconnect ──►  &amp;quot;— 12 messages since you were here (Sat 18:02) —&amp;quot;&lt;br /&gt;
                             the 12 messages, in order&lt;br /&gt;
                            &amp;quot;— end of history —&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Nothing you have already seen is sent again. If nothing was said while you were away, there is no replay.&lt;br /&gt;
* The first time you visit, you get the last 10 messages.&lt;br /&gt;
* If more than 50 were said, you get the latest 50 and a note to use &amp;lt;code&amp;gt;/history&amp;lt;/code&amp;gt; for the rest.&lt;br /&gt;
* The chat page marks &amp;quot;new since your last visit&amp;quot; in the same way.&lt;br /&gt;
* Messages are kept for 7 days.&lt;br /&gt;
&lt;br /&gt;
== The LXMF group ==&lt;br /&gt;
&lt;br /&gt;
Messages arrive as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/me waves&amp;lt;/code&amp;gt; arrives as &amp;lt;code&amp;gt;* Name waves&amp;lt;/code&amp;gt;. You never get your own messages back from the app you sent them with.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  hub ──direct──► your messenger                      (normally within seconds)&lt;br /&gt;
   │&lt;br /&gt;
   └─ no answer twice? ──► you&#039;re marked away for 10 minutes&lt;br /&gt;
                            │&lt;br /&gt;
                            ▼&lt;br /&gt;
                 ScotMesh propagation node ──► your messenger collects it&lt;br /&gt;
                 c283b754…                     when it next syncs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your LXMF settings, from any way in (see [[Chat commands]]):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; gets every message. This is the default.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf off&amp;lt;/code&amp;gt; stops group messages but keeps your name and membership.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf auto&amp;lt;/code&amp;gt; pauses group messages while you are in the room over RRC with the same identity, and starts them again when you leave.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf mine on&amp;lt;/code&amp;gt; also sends you your own messages from RRC and the page, so your messenger shows the whole conversation.&lt;br /&gt;
* When delivery starts again after a pause, you get one note saying how many messages you missed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /lxmf auto:   RRC connected ───────────── LXMF paused&lt;br /&gt;
                RRC disconnected ─────────► LXMF resumes  +  &amp;quot;12 messages were said while it was paused&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The chat page ==&lt;br /&gt;
&lt;br /&gt;
* It shows the last 30 messages, with &amp;quot;Older&amp;quot; to page back and your own name in green.&lt;br /&gt;
* To post, identify to the node first, then use the Say box. &amp;lt;code&amp;gt;/me waves&amp;lt;/code&amp;gt; works there. Other commands don&#039;t work from the page; use its &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; page instead.&lt;br /&gt;
* &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; lets you claim or change your name, set LXMF delivery (on, auto or off), choose whether your own messages come to you by LXMF, and leave.&lt;br /&gt;
* &#039;&#039;&#039;How to join&#039;&#039;&#039; lists the three ways in with their addresses.&lt;br /&gt;
&lt;br /&gt;
== Rooms and operators ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; is the main room and always exists. Anyone on RRC can make another room with &amp;lt;code&amp;gt;/join newname&amp;lt;/code&amp;gt;. A room exists while someone is in it, unless its founder keeps it with &amp;lt;code&amp;gt;/register&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Room operators can set the topic, set modes and remove people. Hub operators can ban people from the whole hub and free a name someone is squatting on.&lt;br /&gt;
* If you would like to help look after &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;, ask in the room or on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord].&lt;br /&gt;
&lt;br /&gt;
== What the hub keeps ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Messages&#039;&#039;&#039; for 7 days, then they are deleted. Nightly backups are kept for 7 days.&lt;br /&gt;
* &#039;&#039;&#039;For each identity it has seen&#039;&#039;&#039;: the identity and public key, when it was first and last seen, the name it holds, its settings, and how far it has read in each room. That is what makes names and catching up work.&lt;br /&gt;
* &#039;&#039;&#039;Bans&#039;&#039;&#039;, and a log of operator actions.&lt;br /&gt;
* It is all on ScotMesh&#039;s own server. Nothing is shared with anyone else.&lt;br /&gt;
&lt;br /&gt;
== When something doesn&#039;t work ==&lt;br /&gt;
&lt;br /&gt;
; The hub or the group isn&#039;t in my app&lt;br /&gt;
: Wait up to 30 minutes for the announce, or add the address by hand. Check you are [[Connecting to ScotMesh|connected to ScotMesh]].&lt;br /&gt;
; NomadNet&#039;s RRC screen says &amp;quot;Unknown command&amp;quot;&lt;br /&gt;
: NomadNet handles most slash commands itself and only passes a few to the hub; see [[Chat commands#NomadNet]]. For the others, message the LXMF group or use the chat page&#039;s settings.&lt;br /&gt;
; I&#039;m shown as &amp;lt;code&amp;gt;guest-…&amp;lt;/code&amp;gt;&lt;br /&gt;
: Your name was taken, or you haven&#039;t claimed one. Send &amp;lt;code&amp;gt;/nick YourName&amp;lt;/code&amp;gt;.&lt;br /&gt;
; I stopped getting group messages&lt;br /&gt;
: Send &amp;lt;code&amp;gt;/whoami&amp;lt;/code&amp;gt; to the group to check your settings. &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; turns delivery back on.&lt;br /&gt;
; It&#039;s quiet&lt;br /&gt;
: Scotland is not a big place for Reticulum yet. Leave it open, or ask on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord].&lt;br /&gt;
&lt;br /&gt;
== The wider community ==&lt;br /&gt;
&lt;br /&gt;
The Reticulum community runs its own RRC hub at &amp;lt;code&amp;gt;28c7c1a68c735693aa8e6b8193ed44b2&amp;lt;/code&amp;gt;. See [[Learning resources]] for that and the other places people talk.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=File:ScotMesh_chat_RRC_room_in_MeshChatX.png&amp;diff=140</id>
		<title>File:ScotMesh chat RRC room in MeshChatX.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=File:ScotMesh_chat_RRC_room_in_MeshChatX.png&amp;diff=140"/>
		<updated>2026-09-13T00:17:05Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: == Summary ==
Screenshots of the chat in MeshChatX&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshots of the chat in MeshChatX&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=File:ScotMesh_chat_LXMF_group_in_MeshChatX.png&amp;diff=139</id>
		<title>File:ScotMesh chat LXMF group in MeshChatX.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=File:ScotMesh_chat_LXMF_group_in_MeshChatX.png&amp;diff=139"/>
		<updated>2026-09-13T00:17:05Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: == Summary ==
Screenshots of the chat in MeshChatX&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshots of the chat in MeshChatX&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=File:ScotMesh_chat_page_in_MeshChatX.png&amp;diff=138</id>
		<title>File:ScotMesh chat page in MeshChatX.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=File:ScotMesh_chat_page_in_MeshChatX.png&amp;diff=138"/>
		<updated>2026-09-13T00:17:05Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: == Summary ==
Screenshots of the chat in MeshChatX&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshots of the chat in MeshChatX&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=137</id>
		<title>The chat room</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=137"/>
		<updated>2026-09-13T00:08:50Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Add the architecture diagram: how the chat hub fits together&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ScotMesh has one chat, the room &#039;&#039;&#039;&amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&#039;&#039;&#039;, with three ways into it. Use whichever suits you: everyone sees the same messages, under the same names, whichever way they came in. It is the place to say hello, ask for help, and find out who else is on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  MeshChatX, NomadNet, rrc-tui ──── RRC room #scotmesh ────┐&lt;br /&gt;
                                                           │&lt;br /&gt;
  Sideband, Columba, MeshChatX ──── LXMF group ────────────┼──►  ScotMesh chat hub  ──►  one conversation&lt;br /&gt;
                                                           │     (names, history,        everyone sees&lt;br /&gt;
  NomadNet, MeshChatX ───────────── chat page ─────────────┘      settings, 7 days)      every message&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Address&lt;br /&gt;
|-&lt;br /&gt;
| RRC room || hub &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;, room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LXMF group || &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Chat page || &amp;lt;code&amp;gt;c229a2c7d410e00b71f877375ae846bf:/page/index.mu&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Every command is listed on [[Chat commands]].&lt;br /&gt;
&lt;br /&gt;
== How it fits together ==&lt;br /&gt;
&lt;br /&gt;
[[File:ScotMesh chat hub architecture.svg|center|frameless|upright=3.2|alt=Diagram: RRC clients, LXMF messengers and NomadNet browsers each reach their own front door in the ScotMesh chat hub. Each door checks the Reticulum identity and its name, then passes messages to the hub core, which works with names, moderation and the store. The hub connects to the Reticulum backbone, and the propagation node holds group messages for members who are away.|How the ScotMesh chat hub fits together]]&lt;br /&gt;
&lt;br /&gt;
The hub is one program on ScotMesh&#039;s own server, connected to the backbone at rns.scotmesh.net.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Three front doors.&#039;&#039;&#039; The RRC server, the LXMF group and the chat page each speak their own protocol, so every app works with the door it already knows.&lt;br /&gt;
* &#039;&#039;&#039;Identity first.&#039;&#039;&#039; Before a message goes any further, its door checks the Reticulum identity it came from and looks up the name that identity holds. That is why a name is the same everywhere and can&#039;t be borrowed, and why messages appear under the author&#039;s own name.&lt;br /&gt;
* &#039;&#039;&#039;One hub core&#039;&#039;&#039; puts messages in order, stores them once and sends them out through every door. It also handles catching up, who is here, LXMF settings and commands.&lt;br /&gt;
* &#039;&#039;&#039;Beside it&#039;&#039;&#039; are the names (one per identity, lookalikes refused), moderation (operators, bans and a log of what operators do) and the store, where messages are kept for 7 days.&lt;br /&gt;
* &#039;&#039;&#039;The propagation node&#039;&#039;&#039; holds group messages for LXMF members who are offline until they collect them.&lt;br /&gt;
&lt;br /&gt;
== Out of the box ==&lt;br /&gt;
&lt;br /&gt;
Once you are [[Connecting to ScotMesh|connected to ScotMesh]]:&lt;br /&gt;
&lt;br /&gt;
; MeshChatX&lt;br /&gt;
: Open the chat section, pick the ScotMesh hub (or add it by the hub address above) and join &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;. You can also message the LXMF group. MeshChatX uses one identity for both, so your name is the same in each.&lt;br /&gt;
; Sideband, and Columba or Retichat on iPhone&lt;br /&gt;
: Start a conversation with &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt; and send &amp;lt;code&amp;gt;/join&amp;lt;/code&amp;gt;. The chat then arrives like any other conversation, as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and what you send reaches everyone.&lt;br /&gt;
; NomadNet&lt;br /&gt;
: Open the chat page above to read along. To post, turn on &amp;quot;Identify when connecting&amp;quot; for that node and reload. NomadNet can also join the RRC room from its Channels screen.&lt;br /&gt;
&lt;br /&gt;
== Full installation ==&lt;br /&gt;
&lt;br /&gt;
With Reticulum installed yourself, any RRC client works: &#039;&#039;&#039;Ratspeak&#039;&#039;&#039;, &#039;&#039;&#039;rrc-tui&#039;&#039;&#039;, &#039;&#039;&#039;rrc-gui&#039;&#039;&#039;, &#039;&#039;&#039;WeeChat&#039;&#039;&#039; (with the RRC plugin) and &#039;&#039;&#039;Eridanus&#039;&#039;&#039;. Point the client at the hub address, then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;/join scotmesh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hub announces itself every 30 minutes, so a client that lists hubs usually shows it without the address being typed.&lt;br /&gt;
&lt;br /&gt;
== Your name ==&lt;br /&gt;
&lt;br /&gt;
Your name belongs to your &#039;&#039;&#039;Reticulum identity&#039;&#039;&#039; and is the same in the RRC room, the LXMF group and on the page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  your identity 178c1f39…  ──holds──►  &amp;quot;Alex&amp;quot;&lt;br /&gt;
                                         │&lt;br /&gt;
            ┌────────────────────────────┼────────────────────────────┐&lt;br /&gt;
            ▼                            ▼                            ▼&lt;br /&gt;
       RRC room: Alex             LXMF group: &amp;quot;Alex: hi&amp;quot;         chat page: Alex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Claiming one.&#039;&#039;&#039; The first name you use becomes yours. That can be your RRC nickname, the display name your LXMF app announces (spaces become &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;), a name given with &amp;lt;code&amp;gt;/join Name&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;/nick Name&amp;lt;/code&amp;gt;. On the page, use &amp;quot;Your name &amp;amp;amp; settings&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Nobody else can take it&#039;&#039;&#039;, or anything that looks like it: &amp;lt;code&amp;gt;A1ex&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Al.ex&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ALEX&amp;lt;/code&amp;gt; all count as &amp;lt;code&amp;gt;Alex&amp;lt;/code&amp;gt;. If your name is taken you are told, and shown as &amp;lt;code&amp;gt;guest-&amp;lt;/code&amp;gt; plus four characters of your identity until you choose a free one.&lt;br /&gt;
* &#039;&#039;&#039;The rules.&#039;&#039;&#039; 2 to 24 characters, starting with a letter. Letters (accents are fine), digits, &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, with no spaces. A few words such as &#039;&#039;admin&#039;&#039; and &#039;&#039;scotmesh&#039;&#039; are reserved.&lt;br /&gt;
* &#039;&#039;&#039;Giving it up.&#039;&#039;&#039; &amp;lt;code&amp;gt;/leave&amp;lt;/code&amp;gt; frees your name and takes you out of the LXMF group. Messages you already sent keep the name they were sent under.&lt;br /&gt;
* &#039;&#039;&#039;One identity, one name.&#039;&#039;&#039; Each app normally makes its own identity, so a phone and a laptop are two identities and need two names, unless you restore the same identity on both.&lt;br /&gt;
&lt;br /&gt;
== Catching up ==&lt;br /&gt;
&lt;br /&gt;
When you come back to the room over RRC, you get exactly what was said since you last left, with the times it was said:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  18:02  you disconnect&lt;br /&gt;
           │   Rab: anyone near Stirling?&lt;br /&gt;
           │   Ellen: got it, 2 hops&lt;br /&gt;
           │   … 10 more …&lt;br /&gt;
  19:30  you reconnect ──►  &amp;quot;— 12 messages since you were here (Sat 18:02) —&amp;quot;&lt;br /&gt;
                             the 12 messages, in order&lt;br /&gt;
                            &amp;quot;— end of history —&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Nothing you have already seen is sent again. If nothing was said while you were away, there is no replay.&lt;br /&gt;
* The first time you visit, you get the last 10 messages.&lt;br /&gt;
* If more than 50 were said, you get the latest 50 and a note to use &amp;lt;code&amp;gt;/history&amp;lt;/code&amp;gt; for the rest.&lt;br /&gt;
* The chat page marks &amp;quot;new since your last visit&amp;quot; in the same way.&lt;br /&gt;
* Messages are kept for 7 days.&lt;br /&gt;
&lt;br /&gt;
== The LXMF group ==&lt;br /&gt;
&lt;br /&gt;
Messages arrive as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/me waves&amp;lt;/code&amp;gt; arrives as &amp;lt;code&amp;gt;* Name waves&amp;lt;/code&amp;gt;. You never get your own messages back from the app you sent them with.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  hub ──direct──► your messenger                      (normally within seconds)&lt;br /&gt;
   │&lt;br /&gt;
   └─ no answer twice? ──► you&#039;re marked away for 10 minutes&lt;br /&gt;
                            │&lt;br /&gt;
                            ▼&lt;br /&gt;
                 ScotMesh propagation node ──► your messenger collects it&lt;br /&gt;
                 c283b754…                     when it next syncs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your LXMF settings, from any way in (see [[Chat commands]]):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; gets every message. This is the default.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf off&amp;lt;/code&amp;gt; stops group messages but keeps your name and membership.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf auto&amp;lt;/code&amp;gt; pauses group messages while you are in the room over RRC with the same identity, and starts them again when you leave.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf mine on&amp;lt;/code&amp;gt; also sends you your own messages from RRC and the page, so your messenger shows the whole conversation.&lt;br /&gt;
* When delivery starts again after a pause, you get one note saying how many messages you missed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /lxmf auto:   RRC connected ───────────── LXMF paused&lt;br /&gt;
                RRC disconnected ─────────► LXMF resumes  +  &amp;quot;12 messages were said while it was paused&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The chat page ==&lt;br /&gt;
&lt;br /&gt;
* It shows the last 30 messages, with &amp;quot;Older&amp;quot; to page back and your own name in green.&lt;br /&gt;
* To post, identify to the node first, then use the Say box. &amp;lt;code&amp;gt;/me waves&amp;lt;/code&amp;gt; works there. Other commands don&#039;t work from the page; use its &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; page instead.&lt;br /&gt;
* &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; lets you claim or change your name, set LXMF delivery (on, auto or off), choose whether your own messages come to you by LXMF, and leave.&lt;br /&gt;
* &#039;&#039;&#039;How to join&#039;&#039;&#039; lists the three ways in with their addresses.&lt;br /&gt;
&lt;br /&gt;
== Rooms and operators ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; is the main room and always exists. Anyone on RRC can make another room with &amp;lt;code&amp;gt;/join newname&amp;lt;/code&amp;gt;. A room exists while someone is in it, unless its founder keeps it with &amp;lt;code&amp;gt;/register&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Room operators can set the topic, set modes and remove people. Hub operators can ban people from the whole hub and free a name someone is squatting on.&lt;br /&gt;
* If you would like to help look after &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;, ask in the room or on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord].&lt;br /&gt;
&lt;br /&gt;
== What the hub keeps ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Messages&#039;&#039;&#039; for 7 days, then they are deleted. Nightly backups are kept for 7 days.&lt;br /&gt;
* &#039;&#039;&#039;For each identity it has seen&#039;&#039;&#039;: the identity and public key, when it was first and last seen, the name it holds, its settings, and how far it has read in each room. That is what makes names and catching up work.&lt;br /&gt;
* &#039;&#039;&#039;Bans&#039;&#039;&#039;, and a log of operator actions.&lt;br /&gt;
* It is all on ScotMesh&#039;s own server. Nothing is shared with anyone else.&lt;br /&gt;
&lt;br /&gt;
== When something doesn&#039;t work ==&lt;br /&gt;
&lt;br /&gt;
; The hub or the group isn&#039;t in my app&lt;br /&gt;
: Wait up to 30 minutes for the announce, or add the address by hand. Check you are [[Connecting to ScotMesh|connected to ScotMesh]].&lt;br /&gt;
; NomadNet&#039;s RRC screen says &amp;quot;Unknown command&amp;quot;&lt;br /&gt;
: NomadNet handles most slash commands itself and only passes a few to the hub; see [[Chat commands#NomadNet]]. For the others, message the LXMF group or use the chat page&#039;s settings.&lt;br /&gt;
; I&#039;m shown as &amp;lt;code&amp;gt;guest-…&amp;lt;/code&amp;gt;&lt;br /&gt;
: Your name was taken, or you haven&#039;t claimed one. Send &amp;lt;code&amp;gt;/nick YourName&amp;lt;/code&amp;gt;.&lt;br /&gt;
; I stopped getting group messages&lt;br /&gt;
: Send &amp;lt;code&amp;gt;/whoami&amp;lt;/code&amp;gt; to the group to check your settings. &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; turns delivery back on.&lt;br /&gt;
; It&#039;s quiet&lt;br /&gt;
: Scotland is not a big place for Reticulum yet. Leave it open, or ask on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord].&lt;br /&gt;
&lt;br /&gt;
== The wider community ==&lt;br /&gt;
&lt;br /&gt;
The Reticulum community runs its own RRC hub at &amp;lt;code&amp;gt;28c7c1a68c735693aa8e6b8193ed44b2&amp;lt;/code&amp;gt;. See [[Learning resources]] for that and the other places people talk.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=File:ScotMesh_chat_hub_architecture.svg&amp;diff=136</id>
		<title>File:ScotMesh chat hub architecture.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=File:ScotMesh_chat_hub_architecture.svg&amp;diff=136"/>
		<updated>2026-09-13T00:08:04Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: == Summary ==
How the ScotMesh chat hub fits together: three ways in, the hub core, names, moderation and the store&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
How the ScotMesh chat hub fits together: three ways in, the hub core, names, moderation and the store&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=135</id>
		<title>The chat room</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=135"/>
		<updated>2026-09-13T00:04:22Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Link to Chat commands&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ScotMesh has one chat, the room &#039;&#039;&#039;&amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&#039;&#039;&#039;, with three ways into it. Use whichever suits you: everyone sees the same messages, under the same names, whichever way they came in. It is the place to say hello, ask for help, and find out who else is on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  MeshChatX, NomadNet, rrc-tui ──── RRC room #scotmesh ────┐&lt;br /&gt;
                                                           │&lt;br /&gt;
  Sideband, Columba, MeshChatX ──── LXMF group ────────────┼──►  ScotMesh chat hub  ──►  one conversation&lt;br /&gt;
                                                           │     (names, history,        everyone sees&lt;br /&gt;
  NomadNet, MeshChatX ───────────── chat page ─────────────┘      settings, 7 days)      every message&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Address&lt;br /&gt;
|-&lt;br /&gt;
| RRC room || hub &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;, room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LXMF group || &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Chat page || &amp;lt;code&amp;gt;c229a2c7d410e00b71f877375ae846bf:/page/index.mu&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Every command is listed on [[Chat commands]].&lt;br /&gt;
&lt;br /&gt;
== Out of the box ==&lt;br /&gt;
&lt;br /&gt;
Once you are [[Connecting to ScotMesh|connected to ScotMesh]]:&lt;br /&gt;
&lt;br /&gt;
; MeshChatX&lt;br /&gt;
: Open the chat section, pick the ScotMesh hub (or add it by the hub address above) and join &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;. You can also message the LXMF group. MeshChatX uses one identity for both, so your name is the same in each.&lt;br /&gt;
; Sideband, and Columba or Retichat on iPhone&lt;br /&gt;
: Start a conversation with &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt; and send &amp;lt;code&amp;gt;/join&amp;lt;/code&amp;gt;. The chat then arrives like any other conversation, as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and what you send reaches everyone.&lt;br /&gt;
; NomadNet&lt;br /&gt;
: Open the chat page above to read along. To post, turn on &amp;quot;Identify when connecting&amp;quot; for that node and reload. NomadNet can also join the RRC room from its Channels screen.&lt;br /&gt;
&lt;br /&gt;
== Full installation ==&lt;br /&gt;
&lt;br /&gt;
With Reticulum installed yourself, any RRC client works: &#039;&#039;&#039;Ratspeak&#039;&#039;&#039;, &#039;&#039;&#039;rrc-tui&#039;&#039;&#039;, &#039;&#039;&#039;rrc-gui&#039;&#039;&#039;, &#039;&#039;&#039;WeeChat&#039;&#039;&#039; (with the RRC plugin) and &#039;&#039;&#039;Eridanus&#039;&#039;&#039;. Point the client at the hub address, then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;/join scotmesh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hub announces itself every 30 minutes, so a client that lists hubs usually shows it without the address being typed.&lt;br /&gt;
&lt;br /&gt;
== Your name ==&lt;br /&gt;
&lt;br /&gt;
Your name belongs to your &#039;&#039;&#039;Reticulum identity&#039;&#039;&#039; and is the same in the RRC room, the LXMF group and on the page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  your identity 178c1f39…  ──holds──►  &amp;quot;Alex&amp;quot;&lt;br /&gt;
                                         │&lt;br /&gt;
            ┌────────────────────────────┼────────────────────────────┐&lt;br /&gt;
            ▼                            ▼                            ▼&lt;br /&gt;
       RRC room: Alex             LXMF group: &amp;quot;Alex: hi&amp;quot;         chat page: Alex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Claiming one.&#039;&#039;&#039; The first name you use becomes yours. That can be your RRC nickname, the display name your LXMF app announces (spaces become &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;), a name given with &amp;lt;code&amp;gt;/join Name&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;/nick Name&amp;lt;/code&amp;gt;. On the page, use &amp;quot;Your name &amp;amp;amp; settings&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Nobody else can take it&#039;&#039;&#039;, or anything that looks like it: &amp;lt;code&amp;gt;A1ex&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Al.ex&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ALEX&amp;lt;/code&amp;gt; all count as &amp;lt;code&amp;gt;Alex&amp;lt;/code&amp;gt;. If your name is taken you are told, and shown as &amp;lt;code&amp;gt;guest-&amp;lt;/code&amp;gt; plus four characters of your identity until you choose a free one.&lt;br /&gt;
* &#039;&#039;&#039;The rules.&#039;&#039;&#039; 2 to 24 characters, starting with a letter. Letters (accents are fine), digits, &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, with no spaces. A few words such as &#039;&#039;admin&#039;&#039; and &#039;&#039;scotmesh&#039;&#039; are reserved.&lt;br /&gt;
* &#039;&#039;&#039;Giving it up.&#039;&#039;&#039; &amp;lt;code&amp;gt;/leave&amp;lt;/code&amp;gt; frees your name and takes you out of the LXMF group. Messages you already sent keep the name they were sent under.&lt;br /&gt;
* &#039;&#039;&#039;One identity, one name.&#039;&#039;&#039; Each app normally makes its own identity, so a phone and a laptop are two identities and need two names, unless you restore the same identity on both.&lt;br /&gt;
&lt;br /&gt;
== Catching up ==&lt;br /&gt;
&lt;br /&gt;
When you come back to the room over RRC, you get exactly what was said since you last left, with the times it was said:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  18:02  you disconnect&lt;br /&gt;
           │   Rab: anyone near Stirling?&lt;br /&gt;
           │   Ellen: got it, 2 hops&lt;br /&gt;
           │   … 10 more …&lt;br /&gt;
  19:30  you reconnect ──►  &amp;quot;— 12 messages since you were here (Sat 18:02) —&amp;quot;&lt;br /&gt;
                             the 12 messages, in order&lt;br /&gt;
                            &amp;quot;— end of history —&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Nothing you have already seen is sent again. If nothing was said while you were away, there is no replay.&lt;br /&gt;
* The first time you visit, you get the last 10 messages.&lt;br /&gt;
* If more than 50 were said, you get the latest 50 and a note to use &amp;lt;code&amp;gt;/history&amp;lt;/code&amp;gt; for the rest.&lt;br /&gt;
* The chat page marks &amp;quot;new since your last visit&amp;quot; in the same way.&lt;br /&gt;
* Messages are kept for 7 days.&lt;br /&gt;
&lt;br /&gt;
== The LXMF group ==&lt;br /&gt;
&lt;br /&gt;
Messages arrive as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/me waves&amp;lt;/code&amp;gt; arrives as &amp;lt;code&amp;gt;* Name waves&amp;lt;/code&amp;gt;. You never get your own messages back from the app you sent them with.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  hub ──direct──► your messenger                      (normally within seconds)&lt;br /&gt;
   │&lt;br /&gt;
   └─ no answer twice? ──► you&#039;re marked away for 10 minutes&lt;br /&gt;
                            │&lt;br /&gt;
                            ▼&lt;br /&gt;
                 ScotMesh propagation node ──► your messenger collects it&lt;br /&gt;
                 c283b754…                     when it next syncs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your LXMF settings, from any way in (see [[Chat commands]]):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; gets every message. This is the default.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf off&amp;lt;/code&amp;gt; stops group messages but keeps your name and membership.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf auto&amp;lt;/code&amp;gt; pauses group messages while you are in the room over RRC with the same identity, and starts them again when you leave.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf mine on&amp;lt;/code&amp;gt; also sends you your own messages from RRC and the page, so your messenger shows the whole conversation.&lt;br /&gt;
* When delivery starts again after a pause, you get one note saying how many messages you missed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /lxmf auto:   RRC connected ───────────── LXMF paused&lt;br /&gt;
                RRC disconnected ─────────► LXMF resumes  +  &amp;quot;12 messages were said while it was paused&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The chat page ==&lt;br /&gt;
&lt;br /&gt;
* It shows the last 30 messages, with &amp;quot;Older&amp;quot; to page back and your own name in green.&lt;br /&gt;
* To post, identify to the node first, then use the Say box. &amp;lt;code&amp;gt;/me waves&amp;lt;/code&amp;gt; works there. Other commands don&#039;t work from the page; use its &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; page instead.&lt;br /&gt;
* &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; lets you claim or change your name, set LXMF delivery (on, auto or off), choose whether your own messages come to you by LXMF, and leave.&lt;br /&gt;
* &#039;&#039;&#039;How to join&#039;&#039;&#039; lists the three ways in with their addresses.&lt;br /&gt;
&lt;br /&gt;
== Rooms and operators ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; is the main room and always exists. Anyone on RRC can make another room with &amp;lt;code&amp;gt;/join newname&amp;lt;/code&amp;gt;. A room exists while someone is in it, unless its founder keeps it with &amp;lt;code&amp;gt;/register&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Room operators can set the topic, set modes and remove people. Hub operators can ban people from the whole hub and free a name someone is squatting on.&lt;br /&gt;
* If you would like to help look after &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;, ask in the room or on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord].&lt;br /&gt;
&lt;br /&gt;
== What the hub keeps ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Messages&#039;&#039;&#039; for 7 days, then they are deleted. Nightly backups are kept for 7 days.&lt;br /&gt;
* &#039;&#039;&#039;For each identity it has seen&#039;&#039;&#039;: the identity and public key, when it was first and last seen, the name it holds, its settings, and how far it has read in each room. That is what makes names and catching up work.&lt;br /&gt;
* &#039;&#039;&#039;Bans&#039;&#039;&#039;, and a log of operator actions.&lt;br /&gt;
* It is all on ScotMesh&#039;s own server. Nothing is shared with anyone else.&lt;br /&gt;
&lt;br /&gt;
== When something doesn&#039;t work ==&lt;br /&gt;
&lt;br /&gt;
; The hub or the group isn&#039;t in my app&lt;br /&gt;
: Wait up to 30 minutes for the announce, or add the address by hand. Check you are [[Connecting to ScotMesh|connected to ScotMesh]].&lt;br /&gt;
; NomadNet&#039;s RRC screen says &amp;quot;Unknown command&amp;quot;&lt;br /&gt;
: NomadNet handles most slash commands itself and only passes a few to the hub; see [[Chat commands#NomadNet]]. For the others, message the LXMF group or use the chat page&#039;s settings.&lt;br /&gt;
; I&#039;m shown as &amp;lt;code&amp;gt;guest-…&amp;lt;/code&amp;gt;&lt;br /&gt;
: Your name was taken, or you haven&#039;t claimed one. Send &amp;lt;code&amp;gt;/nick YourName&amp;lt;/code&amp;gt;.&lt;br /&gt;
; I stopped getting group messages&lt;br /&gt;
: Send &amp;lt;code&amp;gt;/whoami&amp;lt;/code&amp;gt; to the group to check your settings. &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; turns delivery back on.&lt;br /&gt;
; It&#039;s quiet&lt;br /&gt;
: Scotland is not a big place for Reticulum yet. Leave it open, or ask on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord].&lt;br /&gt;
&lt;br /&gt;
== The wider community ==&lt;br /&gt;
&lt;br /&gt;
The Reticulum community runs its own RRC hub at &amp;lt;code&amp;gt;28c7c1a68c735693aa8e6b8193ed44b2&amp;lt;/code&amp;gt;. See [[Learning resources]] for that and the other places people talk.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Chat_commands&amp;diff=134</id>
		<title>Chat commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Chat_commands&amp;diff=134"/>
		<updated>2026-09-13T00:03:27Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Every chat command, for RRC, LXMF, operators and NomadNet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The commands for the [[The chat room|ScotMesh chat]]. Send them in the RRC room or as a message to the LXMF group (&amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt;). The reply goes only to you: over RRC it arrives as a notice, and over LXMF as a message from the group.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/help&amp;lt;/code&amp;gt; lists the commands where you are, and &amp;lt;code&amp;gt;/help nick&amp;lt;/code&amp;gt; explains one.&lt;br /&gt;
&lt;br /&gt;
== Everyone ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/help [command]&amp;lt;/code&amp;gt; || Lists the commands, or explains one.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/whoami&amp;lt;/code&amp;gt; || Shows your name, identity and settings, and where you are connected.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nick Name&amp;lt;/code&amp;gt; || Takes a name. Your old one is freed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/leave&amp;lt;/code&amp;gt; || Frees your name and leaves the LXMF group.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/who&amp;lt;/code&amp;gt; || Shows who is here, on RRC and in the LXMF group.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/history 20&amp;lt;/code&amp;gt; || Shows earlier messages, up to 100, at most one request every 15 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/topic&amp;lt;/code&amp;gt; || Shows the room topic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== LXMF group ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/join [Name]&amp;lt;/code&amp;gt; || Joins the group, optionally with a name. With no name it uses the display name your app announces. You get the last 10 messages to start with.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; || Gets every message. This is the default.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lxmf off&amp;lt;/code&amp;gt; || Stops group messages. You keep your name and your place in the group.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lxmf auto&amp;lt;/code&amp;gt; || Pauses group messages while you are in the room over RRC, and starts them again when you leave.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lxmf mine on&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; || Chooses whether you also get your own messages sent from RRC or the page.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/pause&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/resume&amp;lt;/code&amp;gt; || The same as &amp;lt;code&amp;gt;/lxmf off&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/me waves&amp;lt;/code&amp;gt; || Sends an action: &amp;lt;code&amp;gt;* Name waves&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;/lxmf&amp;lt;/code&amp;gt; settings also work from the RRC room. On the chat page they are under &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== RRC rooms ==&lt;br /&gt;
&lt;br /&gt;
Your RRC client sends joining and leaving itself. These are the hub&#039;s own room commands; &amp;lt;code&amp;gt;&amp;amp;lt;room&amp;amp;gt;&amp;lt;/code&amp;gt; is the room name, such as &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/join newroom&amp;lt;/code&amp;gt; || Joins a room, or creates it if nobody is in it. You become its founder.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/list&amp;lt;/code&amp;gt; || Lists registered rooms and their topics.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/who [room]&amp;lt;/code&amp;gt; || Shows who is in a room.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/topic &amp;amp;lt;room&amp;amp;gt; [text]&amp;lt;/code&amp;gt; || Shows the topic, or sets it (only operators can if the room is &amp;lt;code&amp;gt;+t&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/register &amp;amp;lt;room&amp;amp;gt;&amp;lt;/code&amp;gt; || The founder keeps the room even when it is empty. It also sets &amp;lt;code&amp;gt;+n&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;+t&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/unregister &amp;amp;lt;room&amp;amp;gt;&amp;lt;/code&amp;gt; || The founder undoes &amp;lt;code&amp;gt;/register&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Room operators ==&lt;br /&gt;
&lt;br /&gt;
The founder of a room and anyone they make an operator.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/op &amp;amp;lt;room&amp;amp;gt; Name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/deop&amp;lt;/code&amp;gt; || Makes someone an operator, or removes it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/voice &amp;amp;lt;room&amp;amp;gt; Name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/devoice&amp;lt;/code&amp;gt; || Lets someone speak in a moderated (&amp;lt;code&amp;gt;+m&amp;lt;/code&amp;gt;) room, or removes it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/kick &amp;amp;lt;room&amp;amp;gt; Name&amp;lt;/code&amp;gt; || Removes someone from the room. They can come back.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ban &amp;amp;lt;room&amp;amp;gt; add Name&amp;lt;/code&amp;gt; || Bans someone from the room. &amp;lt;code&amp;gt;del&amp;lt;/code&amp;gt; lifts it and &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt; shows the bans.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/invite &amp;amp;lt;room&amp;amp;gt; add Name&amp;lt;/code&amp;gt; || Invites someone to an invite-only or keyed room for 15 minutes.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/mode &amp;amp;lt;room&amp;amp;gt; +m&amp;lt;/code&amp;gt; || Sets a room mode. See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Over LXMF the room is always &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;, so leave it out: &amp;lt;code&amp;gt;/kick Name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/ban add Name&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Mode !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+i&amp;lt;/code&amp;gt; || Invite only.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+k key&amp;lt;/code&amp;gt; || A key is needed to join; &amp;lt;code&amp;gt;-k&amp;lt;/code&amp;gt; removes it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+m&amp;lt;/code&amp;gt; || Moderated: only operators and voiced people can speak.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+n&amp;lt;/code&amp;gt; || No messages from people not in the room.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+p&amp;lt;/code&amp;gt; || Private: left out of &amp;lt;code&amp;gt;/list&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/who&amp;lt;/code&amp;gt; is refused.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+t&amp;lt;/code&amp;gt; || Only operators can change the topic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hub operators ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/kline add Name [reason]&amp;lt;/code&amp;gt; || Bans an identity from the whole hub and disconnects it everywhere. &amp;lt;code&amp;gt;del&amp;lt;/code&amp;gt; lifts it and &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt; shows the bans.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/release Name&amp;lt;/code&amp;gt; || Frees a name someone holds. They are told.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/stats&amp;lt;/code&amp;gt; || Shows the hub&#039;s counters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Naming someone ==&lt;br /&gt;
&lt;br /&gt;
Where a command takes a name, you can give:&lt;br /&gt;
* their name (lookalikes match, so &amp;lt;code&amp;gt;rab&amp;lt;/code&amp;gt; finds &amp;lt;code&amp;gt;Rab&amp;lt;/code&amp;gt;);&lt;br /&gt;
* their guest name, such as &amp;lt;code&amp;gt;guest-2af3&amp;lt;/code&amp;gt;;&lt;br /&gt;
* six or more characters of their identity hash;&lt;br /&gt;
* the whole 32-character hash.&lt;br /&gt;
&lt;br /&gt;
If several people match, the hub lists them and asks for a longer hash.&lt;br /&gt;
&lt;br /&gt;
== NomadNet ==&lt;br /&gt;
&lt;br /&gt;
NomadNet&#039;s RRC screen handles slash commands itself. &amp;lt;code&amp;gt;/help&amp;lt;/code&amp;gt; there shows NomadNet&#039;s own list, and &amp;lt;code&amp;gt;/nick&amp;lt;/code&amp;gt; sets the name NomadNet sends. It passes only these to the hub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/who /names /topic /mode /kick /ban /invite /op /deop /voice /devoice /register /unregister /kline /stats&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For anything else (&amp;lt;code&amp;gt;/whoami&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/lxmf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/history&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/leave&amp;lt;/code&amp;gt; to free your name), message the LXMF group, or use &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; on the chat page. In NomadNet, &amp;lt;code&amp;gt;/leave&amp;lt;/code&amp;gt; on the RRC screen leaves the room; it doesn&#039;t free your name.&lt;br /&gt;
&lt;br /&gt;
MeshChatX passes every command to the hub.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=133</id>
		<title>The chat room</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=133"/>
		<updated>2026-09-13T00:03:26Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Full guide to the chat: names, catching up, LXMF delivery, page, what is kept, troubleshooting, with diagrams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ScotMesh has one chat, the room &#039;&#039;&#039;&amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&#039;&#039;&#039;, with three ways into it. Use whichever suits you: everyone sees the same messages, under the same names, whichever way they came in. It is the place to say hello, ask for help, and find out who else is on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  MeshChatX, NomadNet, rrc-tui ──── RRC room #scotmesh ────┐&lt;br /&gt;
                                                           │&lt;br /&gt;
  Sideband, Columba, MeshChatX ──── LXMF group ────────────┼──►  ScotMesh chat hub  ──►  one conversation&lt;br /&gt;
                                                           │     (names, history,        everyone sees&lt;br /&gt;
  NomadNet, MeshChatX ───────────── chat page ─────────────┘      settings, 7 days)      every message&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Address&lt;br /&gt;
|-&lt;br /&gt;
| RRC room || hub &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;, room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LXMF group || &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Chat page || &amp;lt;code&amp;gt;c229a2c7d410e00b71f877375ae846bf:/page/index.mu&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All the commands are on [[Chat commands]].&lt;br /&gt;
&lt;br /&gt;
== Out of the box ==&lt;br /&gt;
&lt;br /&gt;
Once you are [[Connecting to ScotMesh|connected to ScotMesh]]:&lt;br /&gt;
&lt;br /&gt;
; MeshChatX&lt;br /&gt;
: Open the chat section, pick the ScotMesh hub (or add it by the hub address above) and join &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;. You can also message the LXMF group. MeshChatX uses one identity for both, so your name is the same in each.&lt;br /&gt;
; Sideband, and Columba or Retichat on iPhone&lt;br /&gt;
: Start a conversation with &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt; and send &amp;lt;code&amp;gt;/join&amp;lt;/code&amp;gt;. The chat then arrives like any other conversation, as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and what you send reaches everyone.&lt;br /&gt;
; NomadNet&lt;br /&gt;
: Open the chat page above to read along. To post, turn on &amp;quot;Identify when connecting&amp;quot; for that node and reload. NomadNet can also join the RRC room from its Channels screen.&lt;br /&gt;
&lt;br /&gt;
== Full installation ==&lt;br /&gt;
&lt;br /&gt;
With Reticulum installed yourself, any RRC client works: &#039;&#039;&#039;Ratspeak&#039;&#039;&#039;, &#039;&#039;&#039;rrc-tui&#039;&#039;&#039;, &#039;&#039;&#039;rrc-gui&#039;&#039;&#039;, &#039;&#039;&#039;WeeChat&#039;&#039;&#039; (with the RRC plugin) and &#039;&#039;&#039;Eridanus&#039;&#039;&#039;. Point the client at the hub address, then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;/join scotmesh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hub announces itself every 30 minutes, so a client that lists hubs usually shows it without the address being typed.&lt;br /&gt;
&lt;br /&gt;
== Your name ==&lt;br /&gt;
&lt;br /&gt;
Your name belongs to your &#039;&#039;&#039;Reticulum identity&#039;&#039;&#039; and is the same in the RRC room, the LXMF group and on the page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  your identity 178c1f39…  ──holds──►  &amp;quot;Alex&amp;quot;&lt;br /&gt;
                                         │&lt;br /&gt;
            ┌────────────────────────────┼────────────────────────────┐&lt;br /&gt;
            ▼                            ▼                            ▼&lt;br /&gt;
       RRC room: Alex             LXMF group: &amp;quot;Alex: hi&amp;quot;         chat page: Alex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Claiming one.&#039;&#039;&#039; The first name you use becomes yours. That can be your RRC nickname, the display name your LXMF app announces (spaces become &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;), a name given with &amp;lt;code&amp;gt;/join Name&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;/nick Name&amp;lt;/code&amp;gt;. On the page, use &amp;quot;Your name &amp;amp;amp; settings&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Nobody else can take it&#039;&#039;&#039;, or anything that looks like it: &amp;lt;code&amp;gt;A1ex&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Al.ex&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ALEX&amp;lt;/code&amp;gt; all count as &amp;lt;code&amp;gt;Alex&amp;lt;/code&amp;gt;. If your name is taken you are told, and shown as &amp;lt;code&amp;gt;guest-&amp;lt;/code&amp;gt; plus four characters of your identity until you choose a free one.&lt;br /&gt;
* &#039;&#039;&#039;The rules.&#039;&#039;&#039; 2 to 24 characters, starting with a letter. Letters (accents are fine), digits, &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, with no spaces. A few words such as &#039;&#039;admin&#039;&#039; and &#039;&#039;scotmesh&#039;&#039; are reserved.&lt;br /&gt;
* &#039;&#039;&#039;Giving it up.&#039;&#039;&#039; &amp;lt;code&amp;gt;/leave&amp;lt;/code&amp;gt; frees your name and takes you out of the LXMF group. Messages you already sent keep the name they were sent under.&lt;br /&gt;
* &#039;&#039;&#039;One identity, one name.&#039;&#039;&#039; Each app normally makes its own identity, so a phone and a laptop are two identities and need two names, unless you restore the same identity on both.&lt;br /&gt;
&lt;br /&gt;
== Catching up ==&lt;br /&gt;
&lt;br /&gt;
When you come back to the room over RRC, you get exactly what was said since you last left, with the times it was said:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  18:02  you disconnect&lt;br /&gt;
           │   Rab: anyone near Stirling?&lt;br /&gt;
           │   Ellen: got it, 2 hops&lt;br /&gt;
           │   … 10 more …&lt;br /&gt;
  19:30  you reconnect ──►  &amp;quot;— 12 messages since you were here (Sat 18:02) —&amp;quot;&lt;br /&gt;
                             the 12 messages, in order&lt;br /&gt;
                            &amp;quot;— end of history —&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Nothing you have already seen is sent again. If nothing was said while you were away, there is no replay.&lt;br /&gt;
* The first time you visit, you get the last 10 messages.&lt;br /&gt;
* If more than 50 were said, you get the latest 50 and a note to use &amp;lt;code&amp;gt;/history&amp;lt;/code&amp;gt; for the rest.&lt;br /&gt;
* The chat page marks &amp;quot;new since your last visit&amp;quot; in the same way.&lt;br /&gt;
* Messages are kept for 7 days.&lt;br /&gt;
&lt;br /&gt;
== The LXMF group ==&lt;br /&gt;
&lt;br /&gt;
Messages arrive as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/me waves&amp;lt;/code&amp;gt; arrives as &amp;lt;code&amp;gt;* Name waves&amp;lt;/code&amp;gt;. You never get your own messages back from the app you sent them with.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  hub ──direct──► your messenger                      (normally within seconds)&lt;br /&gt;
   │&lt;br /&gt;
   └─ no answer twice? ──► you&#039;re marked away for 10 minutes&lt;br /&gt;
                            │&lt;br /&gt;
                            ▼&lt;br /&gt;
                 ScotMesh propagation node ──► your messenger collects it&lt;br /&gt;
                 c283b754…                     when it next syncs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your LXMF settings, from any way in (see [[Chat commands]]):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; gets every message. This is the default.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf off&amp;lt;/code&amp;gt; stops group messages but keeps your name and membership.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf auto&amp;lt;/code&amp;gt; pauses group messages while you are in the room over RRC with the same identity, and starts them again when you leave.&lt;br /&gt;
* &amp;lt;code&amp;gt;/lxmf mine on&amp;lt;/code&amp;gt; also sends you your own messages from RRC and the page, so your messenger shows the whole conversation.&lt;br /&gt;
* When delivery starts again after a pause, you get one note saying how many messages you missed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /lxmf auto:   RRC connected ───────────── LXMF paused&lt;br /&gt;
                RRC disconnected ─────────► LXMF resumes  +  &amp;quot;12 messages were said while it was paused&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The chat page ==&lt;br /&gt;
&lt;br /&gt;
* It shows the last 30 messages, with &amp;quot;Older&amp;quot; to page back and your own name in green.&lt;br /&gt;
* To post, identify to the node first, then use the Say box. &amp;lt;code&amp;gt;/me waves&amp;lt;/code&amp;gt; works there. Other commands don&#039;t work from the page; use its &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; page instead.&lt;br /&gt;
* &#039;&#039;&#039;Your name &amp;amp;amp; settings&#039;&#039;&#039; lets you claim or change your name, set LXMF delivery (on, auto or off), choose whether your own messages come to you by LXMF, and leave.&lt;br /&gt;
* &#039;&#039;&#039;How to join&#039;&#039;&#039; lists the three ways in with their addresses.&lt;br /&gt;
&lt;br /&gt;
== Rooms and operators ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; is the main room and always exists. Anyone on RRC can make another room with &amp;lt;code&amp;gt;/join newname&amp;lt;/code&amp;gt;. A room exists while someone is in it, unless its founder keeps it with &amp;lt;code&amp;gt;/register&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Room operators can set the topic, set modes and remove people. Hub operators can ban people from the whole hub and free a name someone is squatting on.&lt;br /&gt;
* If you would like to help look after &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;, ask in the room or on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord].&lt;br /&gt;
&lt;br /&gt;
== What the hub keeps ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Messages&#039;&#039;&#039; for 7 days, then they are deleted. Nightly backups are kept for 7 days.&lt;br /&gt;
* &#039;&#039;&#039;For each identity it has seen&#039;&#039;&#039;: the identity and public key, when it was first and last seen, the name it holds, its settings, and how far it has read in each room. That is what makes names and catching up work.&lt;br /&gt;
* &#039;&#039;&#039;Bans&#039;&#039;&#039;, and a log of operator actions.&lt;br /&gt;
* It is all on ScotMesh&#039;s own server. Nothing is shared with anyone else.&lt;br /&gt;
&lt;br /&gt;
== When something doesn&#039;t work ==&lt;br /&gt;
&lt;br /&gt;
; The hub or the group isn&#039;t in my app&lt;br /&gt;
: Wait up to 30 minutes for the announce, or add the address by hand. Check you are [[Connecting to ScotMesh|connected to ScotMesh]].&lt;br /&gt;
; NomadNet&#039;s RRC screen says &amp;quot;Unknown command&amp;quot;&lt;br /&gt;
: NomadNet handles most slash commands itself and only passes a few to the hub; see [[Chat commands#NomadNet]]. For the others, message the LXMF group or use the chat page&#039;s settings.&lt;br /&gt;
; I&#039;m shown as &amp;lt;code&amp;gt;guest-…&amp;lt;/code&amp;gt;&lt;br /&gt;
: Your name was taken, or you haven&#039;t claimed one. Send &amp;lt;code&amp;gt;/nick YourName&amp;lt;/code&amp;gt;.&lt;br /&gt;
; I stopped getting group messages&lt;br /&gt;
: Send &amp;lt;code&amp;gt;/whoami&amp;lt;/code&amp;gt; to the group to check your settings. &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; turns delivery back on.&lt;br /&gt;
; It&#039;s quiet&lt;br /&gt;
: Scotland is not a big place for Reticulum yet. Leave it open, or ask on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord].&lt;br /&gt;
&lt;br /&gt;
== The wider community ==&lt;br /&gt;
&lt;br /&gt;
The Reticulum community runs its own RRC hub at &amp;lt;code&amp;gt;28c7c1a68c735693aa8e6b8193ed44b2&amp;lt;/code&amp;gt;. See [[Learning resources]] for that and the other places people talk.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=132</id>
		<title>The chat room</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=132"/>
		<updated>2026-09-12T23:36:48Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: The chat is now one hub with three ways in: RRC, LXMF group and chat page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ScotMesh has one chat, the room &#039;&#039;&#039;&amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&#039;&#039;&#039;, with three ways into it. Use whichever suits you; everyone sees the same messages. It is the place to say hello, ask for help, and find out who else is on.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Address !! Use it from&lt;br /&gt;
|-&lt;br /&gt;
| RRC room || hub &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;, room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; || MeshChatX, NomadNet, Ratspeak, rrc-tui, WeeChat&lt;br /&gt;
|-&lt;br /&gt;
| LXMF group || &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt; (send &amp;lt;code&amp;gt;/join&amp;lt;/code&amp;gt;) || Sideband, MeshChatX, NomadNet, Columba&lt;br /&gt;
|-&lt;br /&gt;
| Chat page || &amp;lt;code&amp;gt;c229a2c7d410e00b71f877375ae846bf:/page/index.mu&amp;lt;/code&amp;gt; || NomadNet, MeshChatX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Out of the box ==&lt;br /&gt;
&lt;br /&gt;
Once you are [[Connecting to ScotMesh|connected to ScotMesh]]:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;MeshChatX:&#039;&#039;&#039; open the chat section, pick the ScotMesh hub (or add it by the address above) and join &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;. Or message the LXMF group.&lt;br /&gt;
* &#039;&#039;&#039;Sideband&#039;&#039;&#039; and the &#039;&#039;&#039;iPhone apps (Columba, Retichat):&#039;&#039;&#039; start a conversation with &amp;lt;code&amp;gt;625ad393ca4df62a1382f9d936322a0a&amp;lt;/code&amp;gt; and send &amp;lt;code&amp;gt;/join&amp;lt;/code&amp;gt;. From then on the chat arrives like any other conversation, as &amp;lt;code&amp;gt;Name: message&amp;lt;/code&amp;gt;, and anything you send reaches everyone.&lt;br /&gt;
* &#039;&#039;&#039;NomadNet:&#039;&#039;&#039; open the chat page above to read. To post, turn on &amp;quot;Identify when connecting&amp;quot; for that node.&lt;br /&gt;
&lt;br /&gt;
== Full installation ==&lt;br /&gt;
&lt;br /&gt;
With Reticulum installed yourself, any RRC client works: &#039;&#039;&#039;Ratspeak&#039;&#039;&#039;, &#039;&#039;&#039;rrc-tui&#039;&#039;&#039;, &#039;&#039;&#039;rrc-gui&#039;&#039;&#039;, &#039;&#039;&#039;WeeChat&#039;&#039;&#039; (with the RRC plugin) and &#039;&#039;&#039;Eridanus&#039;&#039;&#039;. Point the client at the hub address, then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;/join scotmesh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hub announces itself every 30 minutes, so a client that lists hubs will usually show it without the address being typed.&lt;br /&gt;
&lt;br /&gt;
== What to expect ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Catching up.&#039;&#039;&#039; When you come back to the room over RRC you get exactly what was said since you last left, with the times it was said, and nothing you have already seen. The first time you visit you get the last 10 messages. &amp;lt;code&amp;gt;/history 50&amp;lt;/code&amp;gt; shows more. The chat page marks what is new since your last visit. Messages are kept for 7 days.&lt;br /&gt;
* &#039;&#039;&#039;Your name is yours everywhere.&#039;&#039;&#039; The first name you use (your nickname, your LXMF display name, or &amp;lt;code&amp;gt;/nick YourName&amp;lt;/code&amp;gt;) belongs to your Reticulum identity on all three ways in, and nobody else can take it or something that looks like it (&amp;lt;code&amp;gt;A1ex&amp;lt;/code&amp;gt; counts as &amp;lt;code&amp;gt;Alex&amp;lt;/code&amp;gt;). Until you have one you show as &amp;lt;code&amp;gt;guest-&amp;lt;/code&amp;gt; and four characters of your identity. &amp;lt;code&amp;gt;/leave&amp;lt;/code&amp;gt; gives your name up.&lt;br /&gt;
* &#039;&#039;&#039;One identity, one name.&#039;&#039;&#039; Each app or device normally has its own identity. MeshChatX uses the same identity for RRC and LXMF, so one name covers both there; a phone and a laptop with different identities need different names (or restore the same identity on both).&lt;br /&gt;
* &#039;&#039;&#039;LXMF when you are on RRC.&#039;&#039;&#039; &amp;lt;code&amp;gt;/lxmf off&amp;lt;/code&amp;gt; stops group messages without leaving; &amp;lt;code&amp;gt;/lxmf auto&amp;lt;/code&amp;gt; pauses them while you are in the room over RRC and starts them again when you leave; &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt; is the default. When they start again you get one note saying how many you missed.&lt;br /&gt;
* &#039;&#039;&#039;Away from the network.&#039;&#039;&#039; If your messenger is offline, group messages wait on our [[Propagation node|propagation node]] until you collect them.&lt;br /&gt;
* &#039;&#039;&#039;It can be quiet.&#039;&#039;&#039; Scotland is not a big place for Reticulum yet. If nobody answers, leave it open, or ask on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord].&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
Send these in the room, to the group, or use the &amp;quot;Your name &amp;amp; settings&amp;quot; page on the chat page.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/help&amp;lt;/code&amp;gt; || lists the commands where you are&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/whoami&amp;lt;/code&amp;gt; || your name, identity and settings&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nick YourName&amp;lt;/code&amp;gt; || take a name (your old one is freed)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/who&amp;lt;/code&amp;gt; || who is here, on RRC and in the group&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/history 20&amp;lt;/code&amp;gt; || earlier messages&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lxmf on&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; || LXMF group delivery&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/leave&amp;lt;/code&amp;gt; || give up your name and leave the group&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Operators ==&lt;br /&gt;
&lt;br /&gt;
Room operators can set the topic and, if it ever comes to it, remove someone. Ask in the room or on the ScotMesh Discord if you would like to help look after the &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; room.&lt;br /&gt;
&lt;br /&gt;
== Your own rooms ==&lt;br /&gt;
&lt;br /&gt;
Anyone on RRC can create a room on the hub with &amp;lt;code&amp;gt;/join&amp;lt;/code&amp;gt; followed by a new name. Rooms exist while someone is in them, unless their founder registers them with &amp;lt;code&amp;gt;/register&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== The wider community ==&lt;br /&gt;
&lt;br /&gt;
The Reticulum community runs its own RRC hub at &amp;lt;code&amp;gt;28c7c1a68c735693aa8e6b8193ed44b2&amp;lt;/code&amp;gt;; see [[Learning resources]] for that and the other places people talk.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Services_and_addresses&amp;diff=131</id>
		<title>Services and addresses</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Services_and_addresses&amp;diff=131"/>
		<updated>2026-09-11T19:28:05Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: ScotMesh 868 moves to 869.4625 MHz (Ofcom 869.40-869.65 MHz sub-band)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Every address for the ScotMesh node in one place. This is the page to copy from; each service is explained on its own page.&lt;br /&gt;
&lt;br /&gt;
== Entry points ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| TCP || &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;4242&amp;lt;/code&amp;gt; || The normal route. Interface type &amp;lt;code&amp;gt;TCPClientInterface&amp;lt;/code&amp;gt;. See [[Connecting to ScotMesh]].&lt;br /&gt;
|-&lt;br /&gt;
| I2P || &amp;lt;code&amp;gt;a3pswrtvpuro62ijhb7lwdt2n6aqgajglof27ynbonynmolzlz7q.b32.i2p&amp;lt;/code&amp;gt; || For networks that block outbound connections. Interface type &amp;lt;code&amp;gt;I2PInterface&amp;lt;/code&amp;gt;. See [[Access over I2P]].&lt;br /&gt;
|-&lt;br /&gt;
| LoRa || ScotMesh 433 or ScotMesh 868 radio profile || Within range of a gateway only. See [[RNode]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Service !! Address !! Reached from&lt;br /&gt;
|-&lt;br /&gt;
| Chat hub (RRC), room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt; || MeshChatX, Ratspeak, rrc-tui, rrc-gui, WeeChat, Eridanus. See [[The chat room]].&lt;br /&gt;
|-&lt;br /&gt;
| LXMF propagation node || &amp;lt;code&amp;gt;c283b754e0acc11ce48d2f5e29167e0c&amp;lt;/code&amp;gt; || Sideband, MeshChatX, Nomad Network, usually picked automatically. See [[Propagation node]].&lt;br /&gt;
|-&lt;br /&gt;
| Nomad Network node || &amp;lt;code&amp;gt;10a839df2c50635bcb0c8a299b9ca0f8&amp;lt;/code&amp;gt; || Nomad Network, MeshChatX. Entry page &amp;lt;code&amp;gt;10a839df2c50635bcb0c8a299b9ca0f8:/page/index.mu&amp;lt;/code&amp;gt;. See [[Nomad Network]].&lt;br /&gt;
|-&lt;br /&gt;
| Transport instance || &amp;lt;code&amp;gt;20b962cd814444f7812e409e7c47f319&amp;lt;/code&amp;gt; || Not something you connect to: it is the node&#039;s own identity, and what appears in &amp;lt;code&amp;gt;rnpath&amp;lt;/code&amp;gt; output and on node maps. Announced as “ScotMesh Backbone”.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Radio profiles ==&lt;br /&gt;
&lt;br /&gt;
Every radio on the network must use exactly these settings; see [[RNode]] for why.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! ScotMesh 433 !! ScotMesh 868&lt;br /&gt;
|-&lt;br /&gt;
| Frequency || 433.775 MHz || 869.4625 MHz&lt;br /&gt;
|-&lt;br /&gt;
| Bandwidth || 125 kHz || 125 kHz&lt;br /&gt;
|-&lt;br /&gt;
| Spreading factor || 8 || 9&lt;br /&gt;
|-&lt;br /&gt;
| Coding rate || 4/5 || 4/5&lt;br /&gt;
|-&lt;br /&gt;
| TX power || 7 dBm || 22 dBm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Which addresses could change ==&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;hostname and port&#039;&#039;&#039; are stable.&lt;br /&gt;
* The &#039;&#039;&#039;destination addresses&#039;&#039;&#039; (chat hub, propagation node, Nomad Network node, transport instance) are derived from identity keys the node keeps backed up. They would only change if a key were lost or deliberately replaced, and we would say so here and on [https://rns.scotmesh.net rns.scotmesh.net].&lt;br /&gt;
* The &#039;&#039;&#039;I2P address&#039;&#039;&#039; is derived from a random key. It is backed up too, but of all the addresses it is the one most likely to change one day, so check here if it stops working.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=ScotMesh_microReticulum&amp;diff=130</id>
		<title>ScotMesh microReticulum</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=ScotMesh_microReticulum&amp;diff=130"/>
		<updated>2026-09-11T19:28:05Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: ScotMesh 868 moves to 869.4625 MHz (Ofcom 869.40-869.65 MHz sub-band)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ScotMesh microReticulum&#039;&#039;&#039; is our build of [https://github.com/attermann/microReticulum_Firmware attermann&#039;s microReticulum firmware]. It turns a LoRa board into its own Reticulum transport node, so a board on a hill or a roof can relay for the mesh with no Raspberry Pi. On top of upstream it adds:&lt;br /&gt;
&lt;br /&gt;
* the SenseCAP Solar Node P1;&lt;br /&gt;
* battery reporting;&lt;br /&gt;
* a NomadNet page you can manage the node from over the mesh;&lt;br /&gt;
* a small telemetry API;&lt;br /&gt;
* a position on [https://rmap.world rmap.world].&lt;br /&gt;
&lt;br /&gt;
Source: [https://github.com/A13xB0/microReticulum_Firmware github.com/A13xB0/microReticulum_Firmware]. Firmware: [https://rnode.scotmesh.net rnode.scotmesh.net] (choose &#039;&#039;Standalone node&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Board&lt;br /&gt;
! Node pages &amp;amp;amp; API&lt;br /&gt;
! Firmware update over the air&lt;br /&gt;
|-&lt;br /&gt;
| Seeed SenseCAP Solar Node P1 🏴󠁧󠁢󠁳󠁣󠁴󠁿 built by ScotMesh&lt;br /&gt;
| Yes&lt;br /&gt;
| Bluetooth update window, or USB bootloader&lt;br /&gt;
|-&lt;br /&gt;
| Heltec V2/V3/V4, Heltec Wireless Tracker V2, XIAO ESP32S3, T-Beam Supreme, T-Deck&lt;br /&gt;
| Yes&lt;br /&gt;
| WiFi update window&lt;br /&gt;
|-&lt;br /&gt;
| T-Beam, T3S3, LoRa32 v1/v2/v2.1, RNode NG 2.0/2.1, Feather ESP32, generic ESP32&lt;br /&gt;
| Yes&lt;br /&gt;
| USB only (one firmware slot)&lt;br /&gt;
|-&lt;br /&gt;
| RAK4631, RAK3401, T-Echo&lt;br /&gt;
| Original microReticulum pages (the new ones don&#039;t fit their flash yet)&lt;br /&gt;
| USB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Setting a node up ==&lt;br /&gt;
&lt;br /&gt;
# Open [https://rnode.scotmesh.net rnode.scotmesh.net] in Chrome or Edge on a computer. Choose &#039;&#039;&#039;Standalone node&#039;&#039;&#039;, pick your board, and flash.&lt;br /&gt;
# On the configure step:&lt;br /&gt;
#* pick &#039;&#039;&#039;ScotMesh 868&#039;&#039;&#039; (or 433);&lt;br /&gt;
#* give the node a name;&lt;br /&gt;
#* choose its role (normally &#039;&#039;Fixed relay&#039;&#039;);&lt;br /&gt;
#* paste your identity hash under &#039;&#039;Remote management&#039;&#039;. That makes you its admin.&lt;br /&gt;
# The node restarts in transport mode and announces its NomadNet page. You can do everything else from that page over the mesh.&lt;br /&gt;
&lt;br /&gt;
== Using the node&#039;s page ==&lt;br /&gt;
&lt;br /&gt;
Open the node&#039;s NomadNet address in Nomad Network or MeshChatX. You&#039;ll find the address:&lt;br /&gt;
&lt;br /&gt;
* at the end of the flasher;&lt;br /&gt;
* on the node&#039;s &#039;&#039;About&#039;&#039; page;&lt;br /&gt;
* in the node&#039;s announce.&lt;br /&gt;
&lt;br /&gt;
Every page is small enough to arrive in &#039;&#039;&#039;one LoRa packet&#039;&#039;&#039;, so it loads first time even on weak links. Most are 150–300 bytes, and the limit is 409.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The screenshots below are the real pages, fetched over LoRa from our bench P1 (3 hops, through rns.scotmesh.net and a gateway). What you see in your browser depends on its colours.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Home page ===&lt;br /&gt;
&lt;br /&gt;
[[File:home.png|frameless|upright=2.2|The node&#039;s home page as a visitor sees it]]&lt;br /&gt;
&lt;br /&gt;
The home page shows:&lt;br /&gt;
&lt;br /&gt;
* the node&#039;s name;&lt;br /&gt;
* its battery, as a bar (green / amber / red) with % and voltage, plus &amp;lt;span style=&amp;quot;color:#22cc55;&amp;quot;&amp;gt;▲&amp;lt;/span&amp;gt; while charging or &amp;lt;span style=&amp;quot;color:#dd9933;&amp;quot;&amp;gt;▼&amp;lt;/span&amp;gt; while discharging;&lt;br /&gt;
* uptime and the number of known routes.&lt;br /&gt;
&lt;br /&gt;
An admin can also show the radio settings, airtime and an operator line. The footer always shows the firmware version and the board. &#039;&#039;Not identified&#039;&#039; means your browser hasn&#039;t identified to the node. That&#039;s fine for visitors.&lt;br /&gt;
&lt;br /&gt;
=== Routes and neighbours ===&lt;br /&gt;
&lt;br /&gt;
[[File:routes.png|frameless|upright=2.2|Routes page with short addresses]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Routes&#039;&#039;&#039; lists the node&#039;s path table: destination, hops and when it was last heard. &#039;&#039;&#039;Neighbours&#039;&#039;&#039; lists the transport nodes it hears directly, with their names where they announce one. To change the view:&lt;br /&gt;
&lt;br /&gt;
* tick &#039;&#039;Short&#039;&#039; for 8-character addresses (or leave it off for full ones);&lt;br /&gt;
* set &#039;&#039;Rows&#039;&#039; and press &#039;&#039;Apply&#039;&#039;;&lt;br /&gt;
* use &#039;&#039;next&#039;&#039; and &#039;&#039;back&#039;&#039; to page through.&lt;br /&gt;
&lt;br /&gt;
An admin can hide both pages from visitors.&lt;br /&gt;
&lt;br /&gt;
=== Becoming an admin ===&lt;br /&gt;
&lt;br /&gt;
You are an admin if your identity is on the node&#039;s remote-management list (the same list &amp;lt;code&amp;gt;rnstatus -R&amp;lt;/code&amp;gt; checks). In your browser, choose &#039;&#039;&#039;Identify&#039;&#039;&#039; for the node (NomadNet: the &#039;&#039;Identify&#039;&#039; option on the page; MeshChatX: &#039;&#039;identify to this node&#039;&#039;) and reload. The page then shows 🛡️ &#039;&#039;Verified identity&#039;&#039; and an &#039;&#039;&#039;Admin&#039;&#039;&#039; link. There is no password to log in with: being identified is being logged in.&lt;br /&gt;
&lt;br /&gt;
[[File:home-admin.png|frameless|upright=2.2|Home page seen by an admin]]&lt;br /&gt;
&lt;br /&gt;
Admins see every row. A &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; marks rows that visitors don&#039;t see.&lt;br /&gt;
&lt;br /&gt;
If an admin has switched on &#039;&#039;&#039;password registration&#039;&#039;&#039;, a visitor who has identified sees &#039;&#039;Register&#039;&#039;. Entering the password adds their identity as an admin, or puts them in a queue for an existing admin to approve.&lt;br /&gt;
&lt;br /&gt;
=== The admin pages ===&lt;br /&gt;
&lt;br /&gt;
[[File:admin-hub.png|frameless|upright=2.2|Admin hub]]&lt;br /&gt;
&lt;br /&gt;
The hub shows battery and uptime, and warns you when a radio trial needs confirming or someone is waiting for approval. It links to three sections.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
! Pages&lt;br /&gt;
|-&lt;br /&gt;
| Settings&lt;br /&gt;
| &#039;&#039;&#039;Name &amp;amp;amp; announce&#039;&#039;&#039;: renaming announces straight away. Announce every 30 min, 1 h, 3 h, 6 h or 12 h.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Home page&#039;&#039;&#039;: what visitors see, telemetry API on or off, and a visitor preview.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Map&#039;&#039;&#039;: rmap.world position.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Radio&#039;&#039;&#039;, &#039;&#039;&#039;Role&#039;&#039;&#039;, &#039;&#039;&#039;Power&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Access&lt;br /&gt;
| &#039;&#039;&#039;Admins&#039;&#039;&#039;: add by identity hash; remove with confirmation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Password&#039;&#039;&#039; registration.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Change log&#039;&#039;&#039;: every admin change, with time and who made it.&lt;br /&gt;
|-&lt;br /&gt;
| Device&lt;br /&gt;
| &#039;&#039;&#039;Health&#039;&#039;&#039;: free RAM and flash, starts and last reset reason, noise floor, last RSSI/SNR, airtime, packets, table sizes.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lights &amp;amp;amp; Bluetooth&#039;&#039;&#039;, &#039;&#039;&#039;Logs&#039;&#039;&#039; (last five log lines), &#039;&#039;&#039;Maintenance&#039;&#039;&#039;, &#039;&#039;&#039;Restart &amp;amp;amp; update&#039;&#039;&#039;, &#039;&#039;&#039;About&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:settings.png|frameless|upright=2.2|Settings section]]&lt;br /&gt;
&lt;br /&gt;
[[File:device.png|frameless|upright=2.2|Device section]]&lt;br /&gt;
&lt;br /&gt;
==== Name &amp;amp;amp; announce ====&lt;br /&gt;
&lt;br /&gt;
[[File:name.png|frameless|upright=2.2|Name and announce page]]&lt;br /&gt;
&lt;br /&gt;
Change the name, set an optional operator line (e.g. a callsign) and set how often the node announces its page. Longer intervals save airtime on a busy channel. Renaming announces at once.&lt;br /&gt;
&lt;br /&gt;
==== Home page layout ====&lt;br /&gt;
&lt;br /&gt;
[[File:home-layout.png|frameless|upright=2.2|Home page layout settings]]&lt;br /&gt;
&lt;br /&gt;
Tick what visitors may see. &#039;&#039;Preview&#039;&#039; shows the page as a visitor would see it. &#039;&#039;Telemetry API&#039;&#039; turns the &amp;lt;code&amp;gt;/api&amp;lt;/code&amp;gt; endpoints on or off.&lt;br /&gt;
&lt;br /&gt;
==== Radio and role ====&lt;br /&gt;
&lt;br /&gt;
[[File:radio.png|frameless|upright=2.2|Radio page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Radio changes are a trial.&#039;&#039;&#039; Enter new settings (or pick &#039;&#039;ScotMesh 868&#039;&#039; / &#039;&#039;433&#039;&#039;) and press &#039;&#039;Try these&#039;&#039;. The node uses them for five minutes. Reconnect on the new settings and press &#039;&#039;Keep&#039;&#039;. If you don&#039;t, the node goes back to the old settings by itself, so a mistake can&#039;t strand a remote node.&lt;br /&gt;
&lt;br /&gt;
[[File:role.png|frameless|upright=2.2|Role page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Role&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Fixed relay&#039;&#039;: forwards for everyone. Use it for hilltop and roof nodes.&lt;br /&gt;
* &#039;&#039;Access point&#039;&#039;: for a node that serves nearby clients.&lt;br /&gt;
* &#039;&#039;Mobile&#039;&#039;: for a node that moves.&lt;br /&gt;
* &#039;&#039;End device&#039;&#039;: never forwards.&lt;br /&gt;
&lt;br /&gt;
A role change applies after a restart.&lt;br /&gt;
&lt;br /&gt;
==== Power ====&lt;br /&gt;
&lt;br /&gt;
[[File:power.png|frameless|upright=2.2|Power page]]&lt;br /&gt;
&lt;br /&gt;
Below a chosen battery level, the node can lower its TX power to 10 dBm or turn its radio off until it has charged. It can also keep its radio off below 3.3 V to protect the cell.&lt;br /&gt;
&lt;br /&gt;
==== Admins and password registration ====&lt;br /&gt;
&lt;br /&gt;
[[File:admins.png|frameless|upright=2.2|Admins page]]&lt;br /&gt;
&lt;br /&gt;
[[File:password.png|frameless|upright=2.2|Password registration page]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Admins&#039;&#039;&#039; (up to 8): paste a 32-character identity hash and press &#039;&#039;Add&#039;&#039;. Tap an identity to remove it; you&#039;re asked to confirm. The node won&#039;t remove its last admin.&lt;br /&gt;
* &#039;&#039;&#039;Password registration&#039;&#039;&#039; is off by default. An admin sets a password. Someone who knows it can identify to the node and register their own identity as an admin.&lt;br /&gt;
** Three wrong tries lock that identity for 15 minutes.&lt;br /&gt;
** Ten wrong tries in an hour pause registration.&lt;br /&gt;
** With &#039;&#039;Needs approval&#039;&#039; ticked, new registrations wait for an existing admin.&lt;br /&gt;
&lt;br /&gt;
==== Health, lights and Bluetooth ====&lt;br /&gt;
&lt;br /&gt;
[[File:health.png|frameless|upright=2.2|Health page]]&lt;br /&gt;
&lt;br /&gt;
[[File:lights.png|frameless|upright=2.2|Lights and Bluetooth page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lights&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* the activity LEDs can be on, off, or on only for the first 10 minutes after a start;&lt;br /&gt;
* &#039;&#039;Blink 30 s&#039;&#039; helps you find a node on a mast;&lt;br /&gt;
* error patterns always show.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bluetooth&#039;&#039;&#039; can be turned off to save power on a sealed box. &#039;&#039;Unpair all&#039;&#039; forgets paired phones.&lt;br /&gt;
&lt;br /&gt;
==== Maintenance ====&lt;br /&gt;
&lt;br /&gt;
[[File:maintenance.png|frameless|upright=2.2|Maintenance page]]&lt;br /&gt;
&lt;br /&gt;
From here you can:&lt;br /&gt;
&lt;br /&gt;
* announce now;&lt;br /&gt;
* restart automatically every day or every week;&lt;br /&gt;
* clear stored routes and data;&lt;br /&gt;
* factory reset. This keeps the node&#039;s identity and its admins.&lt;br /&gt;
* full reset. The node forgets its identity too: new addresses, no admins, no settings. Use it to hand a node on, or before re-flashing it as a different node. Afterwards it needs USB to make it yours again (the flasher&#039;s &#039;&#039;Reconfigure&#039;&#039; path).&lt;br /&gt;
&lt;br /&gt;
Anything disruptive asks you to confirm, with a link that works once, for two minutes.&lt;br /&gt;
&lt;br /&gt;
=== Restart and firmware updates without a cable ===&lt;br /&gt;
&lt;br /&gt;
[[File:update.png|frameless|upright=2.2|Restart and update page]]&lt;br /&gt;
&lt;br /&gt;
Updates are started from the node&#039;s page over the mesh, but the firmware itself is too big to send over LoRa, so someone has to be near the node with a phone or laptop for the transfer. The node accepts the new image&#039;s hash by itself afterwards; you don&#039;t need &amp;lt;code&amp;gt;rnodeconf&amp;lt;/code&amp;gt; or the flasher.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WiFi update&#039;&#039;&#039; (ESP32 boards with two firmware slots: Heltec V2/V3/V4, Tracker V2, XIAO ESP32S3, T-Beam Supreme, T-Deck):&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;Device → Restart &amp;amp;amp; update → WiFi update → Yes, start&#039;&#039;. The page shows a one-time WiFi password. Write it down; it is shown once.&lt;br /&gt;
# The node restarts as a WiFi access point called &#039;&#039;&#039;ScotMesh-Update&#039;&#039;&#039;, off the mesh, for &#039;&#039;&#039;20 minutes&#039;&#039;&#039;.&lt;br /&gt;
# Within WiFi range, join that network with the password and open &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.4.1&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
# Choose the &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; from inside the board&#039;s release zip (for example &amp;lt;code&amp;gt;rnode_firmware_heltec32v3.bin&amp;lt;/code&amp;gt;) and press &#039;&#039;Update&#039;&#039;. The node verifies it and restarts into the new firmware.&lt;br /&gt;
&lt;br /&gt;
A WiFi update leaves the node running from its second firmware slot. That&#039;s fine for the flasher (it always resets the slot choice), but if you later update by hand with &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;rnodeconf&amp;lt;/code&amp;gt;, write &amp;lt;code&amp;gt;boot_app0.bin&amp;lt;/code&amp;gt; at &amp;lt;code&amp;gt;0xE000&amp;lt;/code&amp;gt; as well as the firmware, or the board keeps booting the old slot and refuses to start transport (&amp;amp;quot;device init failed&amp;amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If nothing is uploaded in 20 minutes, or the upload fails, the node restarts unchanged. The 4 MB boards (T-Beam, T3S3, LoRa32, RNode NG, Feather, generic ESP32) have one firmware slot and can only be updated over USB.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bluetooth update&#039;&#039;&#039; (SenseCAP P1):&lt;br /&gt;
&lt;br /&gt;
# This restarts the node with a Bluetooth firmware-update service for &#039;&#039;&#039;20 minutes&#039;&#039;&#039;. It advertises as &amp;lt;code&amp;gt;SenseCAP P1 DFU&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Within Bluetooth range, open &#039;&#039;&#039;nRF Device Firmware Update&#039;&#039;&#039; or &#039;&#039;&#039;nRF Connect&#039;&#039;&#039; on a phone.&lt;br /&gt;
# Send the node&#039;s &amp;lt;code&amp;gt;rnode_firmware_seeed_solar_node_p1.zip&amp;lt;/code&amp;gt; from the [https://github.com/A13xB0/microReticulum_Firmware/releases releases].&lt;br /&gt;
&lt;br /&gt;
If nothing connects, the node restarts normally when the window closes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;USB bootloader&#039;&#039;&#039; is for someone on site with a laptop. The node waits in its bootloader until it is flashed (for example from rnode.scotmesh.net) or reset.&lt;br /&gt;
&lt;br /&gt;
None of these start below 30 % battery unless the node is charging.&lt;br /&gt;
&lt;br /&gt;
=== Starting a node from scratch ===&lt;br /&gt;
&lt;br /&gt;
The flasher keeps a node&#039;s identity, settings and routes across a reflash, which is what you want for an update. To wipe a node and start again (a second-hand board, or one you want new addresses for), tick &#039;&#039;&#039;Start from scratch: erase everything first&#039;&#039;&#039; on the flasher&#039;s Flash step. On ESP32 boards that erases the whole flash; on the P1 and other nRF52 boards it asks the firmware for a full reset and wipes the EEPROM. Either way the node comes back with a new identity and the flasher provisions and configures it again.&lt;br /&gt;
&lt;br /&gt;
== Showing the node on rmap.world ==&lt;br /&gt;
&lt;br /&gt;
[[File:map.png|frameless|upright=2.2|Map page after saving a position]]&lt;br /&gt;
&lt;br /&gt;
# On &#039;&#039;Settings → Map&#039;&#039;, paste the node&#039;s position straight from Google Maps. Right-click the spot and click the coordinates, e.g. &amp;lt;code&amp;gt;56.19858019391934, -3.1666195614405708&amp;lt;/code&amp;gt;. Degrees-minutes-seconds works too.&lt;br /&gt;
# Set its height in metres.&lt;br /&gt;
# Choose &#039;&#039;Exact&#039;&#039; or &#039;&#039;~1 km&#039;&#039;.&lt;br /&gt;
# Tick &#039;&#039;Publish&#039;&#039; and save.&lt;br /&gt;
&lt;br /&gt;
The node then sends the standard Reticulum interface-discovery announce on the announce interval. It&#039;s the same announce a PC node sends with &amp;lt;code&amp;gt;discoverable = yes&amp;lt;/code&amp;gt;. rns.scotmesh.net peers with rmap.world, so the announce reaches the map through the backbone.&lt;br /&gt;
&lt;br /&gt;
The position is public once published. Use &#039;&#039;~1 km&#039;&#039; if that matters.&lt;br /&gt;
&lt;br /&gt;
== Telemetry API ==&lt;br /&gt;
&lt;br /&gt;
For trackers and dashboards, the node answers plain JSON requests on the same NomadNet address.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;No identity is needed.&#039;&#039;&#039;&lt;br /&gt;
* An admin can switch the API off under &#039;&#039;Home page&#039;&#039;.&lt;br /&gt;
* Each reply fits in one packet.&lt;br /&gt;
* List endpoints page with &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; (offset) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; (rows), and add &amp;lt;code&amp;gt;&amp;amp;quot;more&amp;amp;quot;: true&amp;lt;/code&amp;gt; when there are more rows.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Path&lt;br /&gt;
! Request data&lt;br /&gt;
! Reply (real examples from the bench P1)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;v&amp;amp;quot;:1,&amp;amp;quot;api&amp;amp;quot;:[&amp;amp;quot;bat&amp;amp;quot;,&amp;amp;quot;up&amp;amp;quot;,&amp;amp;quot;radio&amp;amp;quot;,&amp;amp;quot;net&amp;amp;quot;,&amp;amp;quot;sys&amp;amp;quot;,&amp;amp;quot;health&amp;amp;quot;,&amp;amp;quot;pos&amp;amp;quot;,&amp;amp;quot;paths&amp;amp;quot;,&amp;amp;quot;nbrs&amp;amp;quot;,&amp;amp;quot;all&amp;amp;quot;]}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/bat&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;percent&amp;amp;quot;:96,&amp;amp;quot;voltage&amp;amp;quot;:4.11,&amp;amp;quot;charging&amp;amp;quot;:true}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/up&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;uptime&amp;amp;quot;:134,&amp;amp;quot;reset&amp;amp;quot;:&amp;amp;quot;soft-reset&amp;amp;quot;}&amp;lt;/code&amp;gt;: seconds since start, and why it last started&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/radio&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;freq&amp;amp;quot;:869462500,&amp;amp;quot;bw&amp;amp;quot;:125000,&amp;amp;quot;sf&amp;amp;quot;:9,&amp;amp;quot;cr&amp;amp;quot;:5,&amp;amp;quot;txp&amp;amp;quot;:22,&amp;amp;quot;airtime&amp;amp;quot;:4.4,&amp;amp;quot;noise&amp;amp;quot;:-105,&amp;amp;quot;rssi&amp;amp;quot;:-59,&amp;amp;quot;snr&amp;amp;quot;:10}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/net&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;routes&amp;amp;quot;:159,&amp;amp;quot;neighbours&amp;amp;quot;:1,&amp;amp;quot;rx&amp;amp;quot;:20,&amp;amp;quot;tx&amp;amp;quot;:18,&amp;amp;quot;links&amp;amp;quot;:1}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/sys&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;fw&amp;amp;quot;:&amp;amp;quot;v1.86-scotmesh.3&amp;amp;quot;,&amp;amp;quot;board&amp;amp;quot;:&amp;amp;quot;SenseCAP P1&amp;amp;quot;,&amp;amp;quot;name&amp;amp;quot;:&amp;amp;quot;…&amp;amp;quot;,&amp;amp;quot;free_ram&amp;amp;quot;:33472,&amp;amp;quot;free_flash&amp;amp;quot;:1822720}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/health&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;free_ram&amp;amp;quot;:33472,&amp;amp;quot;free_flash&amp;amp;quot;:1822720,&amp;amp;quot;reboots&amp;amp;quot;:7,&amp;amp;quot;reset&amp;amp;quot;:&amp;amp;quot;soft-reset&amp;amp;quot;,&amp;amp;quot;paths&amp;amp;quot;:159,&amp;amp;quot;paths_max&amp;amp;quot;:500,&amp;amp;quot;announces&amp;amp;quot;:0,&amp;amp;quot;neighbours&amp;amp;quot;:1}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/pos&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;lat&amp;amp;quot;:56.19858,&amp;amp;quot;lon&amp;amp;quot;:-3.16662,&amp;amp;quot;height&amp;amp;quot;:310}&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;{&amp;amp;quot;error&amp;amp;quot;:&amp;amp;quot;not published&amp;amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/all&amp;lt;/code&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| battery + uptime + network + airtime in one reply&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/paths&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;o&amp;amp;quot;:0,&amp;amp;quot;n&amp;amp;quot;:5,&amp;amp;quot;s&amp;amp;quot;:0}&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;amp;quot;total&amp;amp;quot;:159,&amp;amp;quot;o&amp;amp;quot;:0,&amp;amp;quot;cols&amp;amp;quot;:[&amp;amp;quot;dest&amp;amp;quot;,&amp;amp;quot;hops&amp;amp;quot;,&amp;amp;quot;age_s&amp;amp;quot;,&amp;amp;quot;via&amp;amp;quot;],&amp;amp;quot;rows&amp;amp;quot;:[[…],…],&amp;amp;quot;more&amp;amp;quot;:true}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/nbrs&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;o&amp;amp;quot;:0,&amp;amp;quot;n&amp;amp;quot;:5,&amp;amp;quot;s&amp;amp;quot;:1}&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;amp;quot;total&amp;amp;quot;:1,&amp;amp;quot;o&amp;amp;quot;:0,&amp;amp;quot;cols&amp;amp;quot;:[&amp;amp;quot;dest&amp;amp;quot;,&amp;amp;quot;age_s&amp;amp;quot;,&amp;amp;quot;name&amp;amp;quot;],&amp;amp;quot;rows&amp;amp;quot;:[…]}&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s=1&amp;lt;/code&amp;gt; gives 8-character addresses. Unknown paths answer &amp;lt;code&amp;gt;{&amp;amp;quot;error&amp;amp;quot;:&amp;amp;quot;unknown endpoint&amp;amp;quot;,&amp;amp;quot;see&amp;amp;quot;:&amp;amp;quot;/api&amp;amp;quot;}&amp;lt;/code&amp;gt;. If the node is short of memory, it answers &amp;lt;code&amp;gt;{&amp;amp;quot;error&amp;amp;quot;:&amp;amp;quot;busy&amp;amp;quot;}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a tracker in Python. It needs Reticulum installed and connected to the mesh, e.g. with a TCP interface to &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt; port 4242:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;import RNS, json, time&lt;br /&gt;
RNS.Reticulum()&lt;br /&gt;
node = bytes.fromhex(&amp;amp;quot;cb37c17f7280d61d66b5278a02313d25&amp;amp;quot;)   # the node&#039;s NomadNet address&lt;br /&gt;
if not RNS.Transport.has_path(node):&lt;br /&gt;
    RNS.Transport.request_path(node)&lt;br /&gt;
    while not RNS.Transport.has_path(node): time.sleep(0.5)&lt;br /&gt;
dest = RNS.Destination(RNS.Identity.recall(node), RNS.Destination.OUT,&lt;br /&gt;
                       RNS.Destination.SINGLE, &amp;amp;quot;nomadnetwork&amp;amp;quot;, &amp;amp;quot;node&amp;amp;quot;)&lt;br /&gt;
link = RNS.Link(dest)                                       # no identify() needed&lt;br /&gt;
while link.status != RNS.Link.ACTIVE: time.sleep(0.2)&lt;br /&gt;
link.request(&amp;amp;quot;/api/all&amp;amp;quot;, response_callback=lambda r: print(json.loads(r.response)))&lt;br /&gt;
link.request(&amp;amp;quot;/api/paths&amp;amp;quot;, data={&amp;amp;quot;o&amp;amp;quot;: 0, &amp;amp;quot;n&amp;amp;quot;: 5},&lt;br /&gt;
             response_callback=lambda r: print(json.loads(r.response)))&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Keep one link open and poll every few minutes. Each request and reply is a single small packet (typically 3–5 s round trip over three hops).&lt;br /&gt;
&lt;br /&gt;
== Good to know ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The node keeps its settings in its own flash. Its identity and admin list survive firmware updates and a factory reset.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;One exception: RNode NG 2.0/2.1 and LoRa32 v2.1 nodes flashed with v1.86-scotmesh.2 or earlier get a new identity when updated to .4 or later, because those boards moved to a larger app slot (2.25 MB) to fit the pages. Add the node&#039;s new identity to your admin list again afterwards. Updates after that keep the identity.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Memory is watched:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;pages and the API never copy the route table;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the change log is a fixed 1.3 KB file;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;below about 8 KB of free RAM, the node answers &amp;amp;quot;busy&amp;amp;quot; rather than risk running out.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Health&#039;&#039; and &amp;lt;code&amp;gt;/api/health&amp;lt;/code&amp;gt; show free RAM, so a slow leak shows up as a trend.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The LEDs on the P1:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;white flash: packet received;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;blue flash: packet sent;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;blue and white alternating fast: the radio failed to start (the node restarts itself after a few seconds).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Full debug logging stays in the firmware. Connect over USB and open a serial console at 115200 to see it.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Upstream differences and the full change history are in the repository&#039;s README.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=RNode&amp;diff=129</id>
		<title>RNode</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=RNode&amp;diff=129"/>
		<updated>2026-09-11T19:28:03Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: ScotMesh 868 moves to 869.4625 MHz (Ofcom 869.40-869.65 MHz sub-band)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An &#039;&#039;&#039;RNode&#039;&#039;&#039; is a LoRa board running RNode firmware. It is not a Meshtastic or MeshCore radio, though much of the same hardware can be reflashed into one. It is the standard way to put Reticulum on the air.&lt;br /&gt;
&lt;br /&gt;
== ScotMesh radio settings ==&lt;br /&gt;
&lt;br /&gt;
Every radio on the network must use &#039;&#039;&#039;identical&#039;&#039;&#039; settings. This is not a tolerance thing: a board with a different spreading factor is completely deaf to the others, and nothing reports an error. If two of your radios cannot hear each other, check these before anything else.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  &lt;br /&gt;
! ScotMesh 433&lt;br /&gt;
! ScotMesh 868&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Frequency&#039;&#039;&#039;&lt;br /&gt;
| 433.775 MHz&lt;br /&gt;
| 869.4625 MHz&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Bandwidth&#039;&#039;&#039;&lt;br /&gt;
| 125 kHz&lt;br /&gt;
| 125 kHz&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Spreading factor&#039;&#039;&#039;&lt;br /&gt;
| 8&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Coding rate&#039;&#039;&#039;&lt;br /&gt;
| 4/5&lt;br /&gt;
| 4/5&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TX power&#039;&#039;&#039;&lt;br /&gt;
| 7 dBm&lt;br /&gt;
| 22 dBm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ScotMesh 868 moved from 867.5 MHz to 869.4625 MHz on 11 September 2026&#039;&#039;&#039; to keep within Ofcom&#039;s rules. It now sits in the UK&#039;s 869.40–869.65 MHz sub-band, which allows up to 500 mW ERP with a 10% duty cycle; the old frequency&#039;s sub-band allows only 25 mW. A radio still on 867.5 MHz cannot hear the network, so retune it: the flasher&#039;s Configure step, the node&#039;s Radio page, or &amp;lt;code&amp;gt;rnodeconf -T&amp;lt;/code&amp;gt; below.&lt;br /&gt;
&lt;br /&gt;
As Reticulum config values, those are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;  # ScotMesh 868&lt;br /&gt;
  [[ScotMesh RNode]]&lt;br /&gt;
    type = RNodeInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    port = /dev/ttyUSB0&lt;br /&gt;
    frequency = 869462500&lt;br /&gt;
    bandwidth = 125000&lt;br /&gt;
    txpower = 22&lt;br /&gt;
    spreadingfactor = 9&lt;br /&gt;
    codingrate = 5&lt;br /&gt;
&lt;br /&gt;
  # ScotMesh 433&lt;br /&gt;
  [[ScotMesh RNode]]&lt;br /&gt;
    type = RNodeInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    port = /dev/ttyUSB0&lt;br /&gt;
    frequency = 433775000&lt;br /&gt;
    bandwidth = 125000&lt;br /&gt;
    txpower = 7&lt;br /&gt;
    spreadingfactor = 8&lt;br /&gt;
    codingrate = 5&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Flashing a board ==&lt;br /&gt;
&lt;br /&gt;
The easiest way is [https://rnode.scotmesh.net rnode.scotmesh.net], the &#039;&#039;&#039;ScotMesh Flasher&#039;&#039;&#039;. It flashes the board from your browser over USB — nothing to install. Open it in Chrome or Edge on a desktop (Firefox and Safari do not implement WebSerial, and it will not work on a phone), plug the board in, and follow the steps:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;What are you building?&#039;&#039;&#039; — an &#039;&#039;RNode radio&#039;&#039; (for a computer or phone running Sideband, MeshChatX or NomadNet) or a &#039;&#039;standalone node&#039;&#039; (a self-contained microReticulum transport node — see below).&lt;br /&gt;
# &#039;&#039;&#039;Your hardware&#039;&#039;&#039; — pick the board and its band.&lt;br /&gt;
# &#039;&#039;&#039;Firmware&#039;&#039;&#039; — the latest release is fetched for you from the site&#039;s own mirror and its checksum verified.&lt;br /&gt;
# &#039;&#039;&#039;Connect&#039;&#039;&#039; and &#039;&#039;&#039;Flash&#039;&#039;&#039; — pick the port from the browser prompt; nRF52 boards are put into their bootloader automatically (press reset twice if that fails).&lt;br /&gt;
# &#039;&#039;&#039;Provision&#039;&#039;&#039; — the board&#039;s identity block and firmware hash are written and verified, the same as &amp;lt;code&amp;gt;rnodeconf --autoinstall&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &#039;&#039;&#039;Configure&#039;&#039;&#039; — for an RNode radio only Bluetooth; the radio profile is set by the app you connect it to, so the ScotMesh values are shown for you to enter there. For a standalone node: the ScotMesh 433 or 868 profile, a name, its role and the identities allowed to manage it.&lt;br /&gt;
&lt;br /&gt;
If the board does not appear in the port list, hold its BOOT button while plugging it in, and check you are using a data USB cable rather than a charge-only one.&lt;br /&gt;
&lt;br /&gt;
=== Standalone node (microReticulum) ===&lt;br /&gt;
&lt;br /&gt;
The same boards can run [https://github.com/A13xB0/microReticulum_Firmware microReticulum], the RNode firmware with a Reticulum transport stack built in. The board then &#039;&#039;is&#039;&#039; the node: it has its own identity, routes for others, serves a NomadNet page and can be managed over the mesh with &amp;lt;code&amp;gt;rnstatus -R&amp;lt;/code&amp;gt; — no Raspberry Pi or computer attached. That is what ScotMesh uses for solar and hilltop relays; [[ScotMesh firmware]] explains what our build adds. Choose &#039;&#039;&#039;Standalone node&#039;&#039;&#039; in the flasher; the &#039;&#039;&#039;Seeed SenseCAP Solar Node P1&#039;&#039;&#039; (solar charger and battery built in) is the reference board and is built by ScotMesh — it does not exist in the upstream firmware. &#039;&#039;Reconfigure an existing node&#039;&#039; on the flasher&#039;s first screen connects over USB or Bluetooth to change settings later.&lt;br /&gt;
&lt;br /&gt;
The command-line route does the same job and works on any platform:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;pip install rns&lt;br /&gt;
rnodeconf --autoinstall&lt;br /&gt;
rnodeconf -T --freq 869462500 --bw 125000 --sf 9 --cr 5 --txp 22 /dev/ttyUSB0&lt;br /&gt;
rnodeconf -i /dev/ttyUSB0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--autoinstall&amp;lt;/code&amp;gt; is interactive: it detects the board, confirms the model with you, and installs the correct signed firmware. The second command writes the ScotMesh defaults into the device. The third prints them back so you can check.&lt;br /&gt;
&lt;br /&gt;
== Supported boards ==&lt;br /&gt;
&lt;br /&gt;
* Heltec LoRa32 v2, v3, v4&lt;br /&gt;
* Heltec Mesh Node T114&lt;br /&gt;
* LilyGO LoRa32 v1.0, v2.0, v2.1&lt;br /&gt;
* LilyGO LoRa32 T3S3&lt;br /&gt;
* LilyGO T-Beam, T-Beam Supreme&lt;br /&gt;
* LilyGO T-Deck&lt;br /&gt;
* LilyGO T-Echo&lt;br /&gt;
* RAK4631&lt;br /&gt;
* Seeed XIAO ESP32S3 with Wio-SX1262 (433 and 868)&lt;br /&gt;
* Homebrew RNode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Buy the board for the band you want.&#039;&#039;&#039; An 868 MHz board cannot be moved to 433 MHz by changing settings — the radio and the antenna are physically different parts.&lt;br /&gt;
&lt;br /&gt;
== Serial or Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Over USB there is nothing to configure: the board appears as a serial port and Reticulum talks to it. That is the right choice for a node that stays in one place.&lt;br /&gt;
&lt;br /&gt;
For a phone, or a board you would rather not tether, use the Bluetooth buttons on [https://rnode.scotmesh.net rnode.scotmesh.net], or from the command line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;rnodeconf -b /dev/ttyUSB0     # Bluetooth on&lt;br /&gt;
rnodeconf -p /dev/ttyUSB0     # pairing mode&lt;br /&gt;
rnodeconf -B /dev/ttyUSB0     # Bluetooth off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Not every supported board has Bluetooth. An Android phone with Sideband and an RNode paired over Bluetooth is a complete off-grid messenger with no phone network involved.&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
&lt;br /&gt;
Transmit power and transmit time are both regulated, and the limits differ by band and sub-band. The figures above are what ScotMesh uses; confirm what applies to your situation before transmitting.&lt;br /&gt;
&lt;br /&gt;
If you are operating under an amateur licence, set &amp;lt;code&amp;gt;id_callsign&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;id_interval&amp;lt;/code&amp;gt; on the interface so it identifies periodically. Set &amp;lt;code&amp;gt;airtime_limit_short&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;airtime_limit_long&amp;lt;/code&amp;gt; to keep within duty-cycle limits — they are easy to exceed on a busy link.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Main_Page&amp;diff=128</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Main_Page&amp;diff=128"/>
		<updated>2026-09-11T19:28:02Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: ScotMesh 868 moves to 869.4625 MHz (Ofcom 869.40-869.65 MHz sub-band)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ScotMesh Reticulum Wiki}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-otherwiki&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logos&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logo sm-ow-mt&amp;quot; title=&amp;quot;Meshtastic&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logo sm-ow-mc&amp;quot; title=&amp;quot;MeshCore&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-text&amp;quot;&amp;gt;Looking for &amp;lt;b&amp;gt;MeshCore&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Meshtastic&amp;lt;/b&amp;gt;? They have their own wiki at [https://wiki.scotmesh.uk wiki.scotmesh.uk] →&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-title&amp;quot;&amp;gt;A free, encrypted network for Scotland that anyone can join.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-sub&amp;quot;&amp;gt;Reticulum carries messages, chat, files and pages over the internet and over LoRa radio, and keeps working when the things underneath it do not. Connecting takes about five minutes.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-actions&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-btn sm-btn-primary&amp;quot;&amp;gt;[[Connecting to ScotMesh|Connect in five minutes →]]&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-btn sm-btn-secondary&amp;quot;&amp;gt;[[What Reticulum is|What is Reticulum?]]&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-facts&amp;quot;&amp;gt;&amp;lt;span&amp;gt;No sign-up&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;No hardware needed&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;Free, run by the community&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;Encrypted end to end&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-welcome&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome.&#039;&#039;&#039; ScotMesh runs the Reticulum backbone for Scotland and writes this wiki; you are very welcome to use both, and to add to either. Whether you have never heard of Reticulum or you want to put a solar relay on a hill, there is a page here for you. Pick where you are:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-cards&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I just want to try it ===&lt;br /&gt;
Install one app, type in one address, and you are on the network with everyone else: messaging, chat, files and pages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Connecting to ScotMesh|Connect in five minutes →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[First steps]]: say hello in the chat room and send your first message.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I want to understand it first ===&lt;br /&gt;
No addresses to configure, no accounts, no company in the middle. Reticulum is unusual, and it is worth knowing why.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[What Reticulum is|What Reticulum is →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[How Reticulum works]], [[How it compares]] with Meshtastic and MeshCore, and the [[Glossary]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I want to put a radio on air ===&lt;br /&gt;
A LoRa board becomes a Reticulum radio for your laptop or phone, or a self-contained relay you can look after from home.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[RNode|Flash a board →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[ScotMesh firmware]] for solar and hilltop relays, and [[Antennas and siting]] for making it reach.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The backbone right now ==&lt;br /&gt;
&lt;br /&gt;
Live from the node itself, the same feed as [https://rns.scotmesh.net rns.scotmesh.net], refreshed every two minutes. If the strip is blank or says unknown, treat the backbone as unconfirmed and check the node page directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;sm-status&amp;quot; class=&amp;quot;sm-status&amp;quot;&amp;gt;Live backbone status: [https://rns.scotmesh.net/status.html rns.scotmesh.net/status]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect now ==&lt;br /&gt;
&lt;br /&gt;
The backbone is a public Reticulum transport node in Dalgety Bay, Fife. Anyone may connect, there is nothing to register, and it costs nothing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Out of the box:&#039;&#039;&#039; install [https://meshchatx.com MeshChatX] (Windows, macOS, Linux, Android), [https://github.com/markqvist/Sideband/releases Sideband] (Android, Windows, macOS, Linux) or an iPhone app, add a connection of type &#039;&#039;&#039;TCPClientInterface&#039;&#039;&#039; with host &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt; and port &amp;lt;code&amp;gt;4242&amp;lt;/code&amp;gt;, and you are on. [[Connecting to ScotMesh#Out of the box: an app|Step by step]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full installation:&#039;&#039;&#039; add this to your Reticulum config:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;  [[ScotMesh Backbone]]&lt;br /&gt;
    type = TCPClientInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    target_host = rns.scotmesh.net&lt;br /&gt;
    target_port = 4242&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Behind CGNAT or a firewall you do not control?&#039;&#039;&#039; Use the I2P entry point instead; no port needs forwarding at either end. See [[Access over I2P]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Got a LoRa radio?&#039;&#039;&#039; ScotMesh&#039;s first gateway is on air in Fife, carrying both profiles below and linked to the backbone, and standalone [[ScotMesh firmware|solar nodes]] are going out. Coverage is small so far, so a radio built anywhere in Scotland will hear the others as they arrive. Every radio must match all five settings exactly: a board with a different spreading factor is not weakly connected, it is completely deaf, and nothing reports an error. The 868 profile moved from 867.5 to 869.4625 MHz on 11 September 2026 (Ofcom&#039;s 869.40–869.65 MHz sub-band), so retune any radio still on the old frequency. [https://rnode.scotmesh.net rnode.scotmesh.net] applies either profile in one click.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! ScotMesh 433&lt;br /&gt;
! ScotMesh 868&lt;br /&gt;
|-&lt;br /&gt;
| Frequency&lt;br /&gt;
| 433.775 MHz&lt;br /&gt;
| 869.4625 MHz&lt;br /&gt;
|-&lt;br /&gt;
| Bandwidth&lt;br /&gt;
| 125 kHz&lt;br /&gt;
| 125 kHz&lt;br /&gt;
|-&lt;br /&gt;
| Spreading factor&lt;br /&gt;
| 8&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| Coding rate&lt;br /&gt;
| 4/5&lt;br /&gt;
| 4/5&lt;br /&gt;
|-&lt;br /&gt;
| TX power&lt;br /&gt;
| 7 dBm&lt;br /&gt;
| 22 dBm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Whichever way in you chose: restart Reticulum, then check the interface shows &#039;&#039;&#039;Up&#039;&#039;&#039; (in &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt;, or on the app&#039;s interfaces page). If it does not, [[Troubleshooting]] lists the usual causes.&lt;br /&gt;
&lt;br /&gt;
== What runs on the backbone ==&lt;br /&gt;
&lt;br /&gt;
Once connected, these are the addresses to paste into your client. Each one is explained in [[The ScotMesh Backbone]]; [[Services and addresses]] has them all in one place.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Service&lt;br /&gt;
! Address&lt;br /&gt;
! Use it with&lt;br /&gt;
|-&lt;br /&gt;
| TCP entry point&lt;br /&gt;
| &amp;lt;code&amp;gt;rns.scotmesh.net:4242&amp;lt;/code&amp;gt;&lt;br /&gt;
| Any Reticulum client&lt;br /&gt;
|-&lt;br /&gt;
| I2P entry point&lt;br /&gt;
| &amp;lt;code&amp;gt;a3pswrtvpuro62ijhb7lwdt2n6aqgajglof27ynbonynmolzlz7q.b32.i2p&amp;lt;/code&amp;gt;&lt;br /&gt;
| Any Reticulum client, via i2pd&lt;br /&gt;
|-&lt;br /&gt;
| [[The chat room|Chat hub]] (RRC), room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;&lt;br /&gt;
| MeshChatX, &amp;lt;code&amp;gt;rrc&amp;lt;/code&amp;gt; clients&lt;br /&gt;
|-&lt;br /&gt;
| [[Propagation node|LXMF propagation node]]&lt;br /&gt;
| &amp;lt;code&amp;gt;c283b754e0acc11ce48d2f5e29167e0c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sideband, MeshChatX, Nomad Network&lt;br /&gt;
|-&lt;br /&gt;
| [[Nomad Network|Nomad Network node]]&lt;br /&gt;
| &amp;lt;code&amp;gt;10a839df2c50635bcb0c8a299b9ca0f8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Nomad Network, MeshChatX&lt;br /&gt;
|-&lt;br /&gt;
| Transport instance&lt;br /&gt;
| &amp;lt;code&amp;gt;20b962cd814444f7812e409e7c47f319&amp;lt;/code&amp;gt;&lt;br /&gt;
| Shows up in &amp;lt;code&amp;gt;rnpath&amp;lt;/code&amp;gt; and node maps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The node peers outward to &amp;lt;code&amp;gt;rebelnet.uk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rns.cybercore.uk&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rmap.world&amp;lt;/code&amp;gt;, so a client connected here can reach the rest of the public Reticulum network. See [[Who we peer with]].&lt;br /&gt;
&lt;br /&gt;
== Where the network is ==&lt;br /&gt;
&lt;br /&gt;
Where things actually are, rather than where we would like them to be. Updated by hand as things land.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Milestone&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Reticulum backbone online&#039;&#039;&#039;&lt;br /&gt;
| Public transport node at &amp;lt;code&amp;gt;rns.scotmesh.net:4242&amp;lt;/code&amp;gt;, peered into the wider network.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Reachable over I2P&#039;&#039;&#039;&lt;br /&gt;
| No port forwarding needed at either end.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Chat hub running&#039;&#039;&#039;&lt;br /&gt;
| RRC hub with the &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; room.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Propagation node running&#039;&#039;&#039;&lt;br /&gt;
| Offline message delivery for the region.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Web flasher for RNodes and nodes&#039;&#039;&#039;&lt;br /&gt;
| [https://rnode.scotmesh.net rnode.scotmesh.net], with both ScotMesh profiles built in.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;LoRa gateway on air&#039;&#039;&#039;&lt;br /&gt;
| First gateway in Fife, both profiles, linked to the backbone.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Standalone solar nodes&#039;&#039;&#039;&lt;br /&gt;
| [[ScotMesh firmware]]: managed and updated over the mesh. First units on the bench and going out.&lt;br /&gt;
|-&lt;br /&gt;
| ✘&lt;br /&gt;
| &#039;&#039;&#039;Coverage beyond Fife&#039;&#039;&#039;&lt;br /&gt;
| Needs gateways and relays elsewhere. [[Running your own transport node|Put one up]] and tell us.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Find your way ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I have never used Reticulum&#039;&#039;&#039;&lt;br /&gt;
| Read in order: [[What Reticulum is|what Reticulum is]] → [[How it compares|how it compares]] to Meshtastic, MeshCore and LoRaWAN → [[Connecting to ScotMesh|connecting to ScotMesh]] → [[Choosing a client|choosing a client]] → [[First steps|first steps]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I am connected. What can I do?&#039;&#039;&#039;&lt;br /&gt;
| Join [[The chat room|the chat room]], send messages that arrive even when the other person is offline via the [[Propagation node|propagation node]], or browse and host pages on [[Nomad Network]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to put a radio on air&#039;&#039;&#039;&lt;br /&gt;
| [[RNode]] for boards, flashing and the settings above; [[ScotMesh firmware]] for a solar relay you can look after from home; [[Antennas and siting|antennas and siting]] for making it actually reach anywhere.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to help carry traffic&#039;&#039;&#039;&lt;br /&gt;
| [[Running your own transport node]]. Tell us when it is up and we will peer with you.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Something is broken&#039;&#039;&#039;&lt;br /&gt;
| [[Troubleshooting]], then [[Known bugs and workarounds|known bugs and workarounds]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;What is ScotMesh building?&#039;&#039;&#039;&lt;br /&gt;
| The [[Project index|project index]]: the [[ScotMesh firmware]], the flasher, and [[MeshCore as a Reticulum Interface|MeshCore as a Reticulum interface]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to read and watch more&#039;&#039;&#039;&lt;br /&gt;
| [[Learning resources]]: the manual, talks, the community wiki, and where people talk.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;What does that word mean?&#039;&#039;&#039;&lt;br /&gt;
| The [[Glossary|glossary]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Say hello ==&lt;br /&gt;
&lt;br /&gt;
ScotMesh is a community, not a company. Most of us are on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord], the quickest place to ask anything, Reticulum or not, and there is also the [https://scotmesh.uk forum at scotmesh.uk]; [[The chat room|the chat room]] is where to find us on the network itself; and [[About ScotMesh]] says who we are and what we run. If a page here is wrong or unclear, say so, or fix it: [[ScotMesh Wiki:About|anyone can ask for an editing account]].&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Connecting_to_ScotMesh&amp;diff=127</id>
		<title>Connecting to ScotMesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Connecting_to_ScotMesh&amp;diff=127"/>
		<updated>2026-09-11T19:27:58Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: ScotMesh 868 moves to 869.4625 MHz (Ofcom 869.40-869.65 MHz sub-band)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page assumes you know nothing. If you have never heard of Reticulum, start with [[What Reticulum is|what Reticulum is]] and come back.&lt;br /&gt;
&lt;br /&gt;
== What you need ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;A computer or a phone.&#039;&#039;&#039; Windows, macOS, Linux or Android all work.&lt;br /&gt;
* &#039;&#039;&#039;An internet connection&#039;&#039;&#039; — home broadband, wifi or mobile data. Any of them.&lt;br /&gt;
* &#039;&#039;&#039;No radio, no hardware, no money.&#039;&#039;&#039; You do not need a LoRa device to join. That comes later if you want it.&lt;br /&gt;
* &#039;&#039;&#039;No account.&#039;&#039;&#039; There is nothing to sign up for, nobody to ask, and no approval step. This is not politeness — the network has no mechanism for registration.&lt;br /&gt;
&lt;br /&gt;
== What you are actually doing ==&lt;br /&gt;
&lt;br /&gt;
Reticulum is a piece of software that runs on your machine. On its own it can only talk to things on your local network, which is probably nothing.&lt;br /&gt;
&lt;br /&gt;
ScotMesh runs a machine that is permanently online and connected onward to the wider Reticulum network. &#039;&#039;&#039;Connecting means telling your Reticulum where to find ours&#039;&#039;&#039; — one small block of configuration giving it a hostname and a port. After that your machine can reach everything our machine can reach.&lt;br /&gt;
&lt;br /&gt;
The thing you add is called an &#039;&#039;&#039;interface&#039;&#039;&#039;. An interface is simply a way of reaching other Reticulum machines: over the internet, over a radio, over a cable. You can have several at once, and Reticulum will use whichever is working.&lt;br /&gt;
&lt;br /&gt;
== Two ways to do this ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  &lt;br /&gt;
! Use this if&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[#Out of the box: an app|Out of the box: an app]]&#039;&#039;&#039;&lt;br /&gt;
| You want it working in five minutes and never want to see a config file. Recommended.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[#Full installation: Reticulum yourself|Full installation]]&#039;&#039;&#039;&lt;br /&gt;
| You want to run it on a server, a Raspberry Pi, or anything without a screen; or you simply prefer to understand what you are running.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Both end up in the same place. The app does the same thing as the full installation, with the config file hidden from you.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Out of the box: an app ==&lt;br /&gt;
&lt;br /&gt;
These apps have Reticulum built in. You install one like any other program, tell it where ScotMesh is, and you are connected; there is no config file to see. Pick by what you have:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! App !! Runs on !! Get it&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MeshChatX&#039;&#039;&#039; || Windows, macOS, Linux, Android || [https://meshchatx.com meshchatx.com]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Sideband&#039;&#039;&#039; || Android, Windows, macOS, Linux || [https://github.com/markqvist/Sideband/releases GitHub releases]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Retichat&#039;&#039;&#039; or &#039;&#039;&#039;Columba&#039;&#039;&#039; || iPhone || [https://apps.apple.com/us/app/retichat/id6762225314 App Store], [https://github.com/torlando-tech/Columba-iOS GitHub]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MeshChatX (recommended) ===&lt;br /&gt;
&lt;br /&gt;
[https://meshchatx.com MeshChatX] does messaging, files, voice calls, chat rooms and Nomad Network pages, and runs on everything but iPhone. If in doubt, use this.&lt;br /&gt;
&lt;br /&gt;
==== 1. Download it ====&lt;br /&gt;
&lt;br /&gt;
Go to the [https://github.com/Quad4-Software/MeshChatX/releases releases page] and pick the file for your system:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! System&lt;br /&gt;
! File to download&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| the &amp;lt;code&amp;gt;win-installer.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| macOS, Apple Silicon (M1 and later)&lt;br /&gt;
| the &amp;lt;code&amp;gt;mac-arm64.dmg&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| macOS, Intel&lt;br /&gt;
| the &amp;lt;code&amp;gt;mac-x64.dmg&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Linux&lt;br /&gt;
| the &amp;lt;code&amp;gt;.deb&amp;lt;/code&amp;gt; on Debian or Ubuntu, otherwise the &amp;lt;code&amp;gt;.AppImage&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Android&lt;br /&gt;
| the &amp;lt;code&amp;gt;android-universal.apk&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== 2. Install and open it ====&lt;br /&gt;
&lt;br /&gt;
Normal installation. On Android you will need to allow installing from outside the Play Store. On macOS you may need to right-click the app and choose Open the first time, because it is not from the App Store.&lt;br /&gt;
&lt;br /&gt;
==== 3. Add ScotMesh ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Interfaces&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Add Interface&#039;&#039;&#039;.&lt;br /&gt;
# For the type, choose &#039;&#039;&#039;TCPClientInterface&#039;&#039;&#039;. (“TCP client” just means it reaches out over the internet to a machine that is listening.)&lt;br /&gt;
# &#039;&#039;&#039;Target Host&#039;&#039;&#039;: &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Target Port&#039;&#039;&#039;: &amp;lt;code&amp;gt;4242&amp;lt;/code&amp;gt;&lt;br /&gt;
# Save. Restart the app when it asks.&lt;br /&gt;
&lt;br /&gt;
Within a few seconds the interface should show as connected. Skip to [[#Did it work?|did it work]].&lt;br /&gt;
&lt;br /&gt;
=== Sideband ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/markqvist/Sideband Sideband] is a messaging client by Reticulum&#039;s author; best on Android, especially with an [[RNode]] paired over Bluetooth.&lt;br /&gt;
&lt;br /&gt;
# Install it from the [https://github.com/markqvist/Sideband/releases releases page] (an &amp;lt;code&amp;gt;.apk&amp;lt;/code&amp;gt; for Android; packages for Windows, macOS and Linux).&lt;br /&gt;
# Open &#039;&#039;&#039;Settings&#039;&#039;&#039;, then &#039;&#039;&#039;Connectivity&#039;&#039;&#039;.&lt;br /&gt;
# Turn on &#039;&#039;&#039;Connect via TCP&#039;&#039;&#039; and enter host &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;4242&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Go back; Sideband reconnects by itself. Your address and an announce button are on the main screen.&lt;br /&gt;
&lt;br /&gt;
=== iPhone ===&lt;br /&gt;
&lt;br /&gt;
Reticulum on iPhone is newer than on the other platforms. [https://apps.apple.com/us/app/retichat/id6762225314 Retichat] is on the App Store and [https://github.com/torlando-tech/Columba-iOS Columba] is on GitHub; both are messaging clients. In either, add a connection of type TCP with host &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt; and port &amp;lt;code&amp;gt;4242&amp;lt;/code&amp;gt;. We have not used them ourselves yet; if you do, tell us how it went.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Full installation: Reticulum yourself ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Install it ===&lt;br /&gt;
&lt;br /&gt;
Reticulum is a Python program. If you have Python and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt;, this is one command in a terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;pip install rns&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;On Ubuntu 24.04 and other recent Linux systems&#039;&#039;&#039; that command will refuse, with a message about an “externally managed environment”. This is deliberate on their part, not an error you caused. Use a virtual environment instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;sudo apt install python3-venv&lt;br /&gt;
python3 -m venv ~/reticulum&lt;br /&gt;
~/reticulum/bin/pip install rns&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Your commands then become &amp;lt;code&amp;gt;~/reticulum/bin/rnsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;~/reticulum/bin/rnstatus&amp;lt;/code&amp;gt; instead of plain &amp;lt;code&amp;gt;rnsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Android or iPhone&#039;&#039;&#039;, do not do this — install one of the apps above instead. Running Reticulum by hand on Android needs Termux and is a lot of work for no gain.&lt;br /&gt;
&lt;br /&gt;
=== 2. Run it once, to create the config file ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The config file does not exist yet.&#039;&#039;&#039; This trips people up: guides tell you to edit it, and you go looking, and there is nothing there. Reticulum writes it the first time it starts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;rnsd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
It will print a few lines and keep running. Leave it a few seconds, then stop it with &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039;. It has now created a config file and a couple of folders.&lt;br /&gt;
&lt;br /&gt;
=== 3. Find the config file ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! System&lt;br /&gt;
! Where it is&lt;br /&gt;
|-&lt;br /&gt;
| Linux, macOS&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.reticulum/config&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| &amp;lt;code&amp;gt;C:\Users\&amp;amp;lt;you&amp;amp;gt;\.reticulum\config&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The folder starts with a dot, which means it is hidden. On Linux and macOS use &amp;lt;code&amp;gt;ls -a&amp;lt;/code&amp;gt; to see it, or just open the path directly. On Windows, paste the path into Explorer&#039;s address bar.&lt;br /&gt;
&lt;br /&gt;
It is a plain text file with no extension. Open it with any text editor — &amp;lt;code&amp;gt;nano ~/.reticulum/config&amp;lt;/code&amp;gt; on Linux, TextEdit on macOS, Notepad on Windows.&lt;br /&gt;
&lt;br /&gt;
=== 4. Look at what is already there ===&lt;br /&gt;
&lt;br /&gt;
Near the bottom you will find a section that looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;[interfaces]&lt;br /&gt;
&lt;br /&gt;
  [[Default Interface]]&lt;br /&gt;
    type = AutoInterface&lt;br /&gt;
    enabled = Yes&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
That is one interface already configured. &amp;lt;code&amp;gt;AutoInterface&amp;lt;/code&amp;gt; finds other Reticulum machines on your own local network, which is useful but probably finds nothing today.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note the indentation.&#039;&#039;&#039; &amp;lt;code&amp;gt;[interfaces]&amp;lt;/code&amp;gt; is at the left margin, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Default Interface]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is indented two spaces, and its settings are indented four. This matters — the file will not load correctly if you get it wrong, and Reticulum will silently ignore the interface.&lt;br /&gt;
&lt;br /&gt;
=== 5. Add ScotMesh ===&lt;br /&gt;
&lt;br /&gt;
Underneath the existing interface, still inside &amp;lt;code&amp;gt;[interfaces]&amp;lt;/code&amp;gt;, add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;  [[ScotMesh Backbone]]&lt;br /&gt;
    type = TCPClientInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    target_host = rns.scotmesh.net&lt;br /&gt;
    target_port = 4242&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
So the whole section now reads:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;[interfaces]&lt;br /&gt;
&lt;br /&gt;
  [[Default Interface]]&lt;br /&gt;
    type = AutoInterface&lt;br /&gt;
    enabled = Yes&lt;br /&gt;
&lt;br /&gt;
  [[ScotMesh Backbone]]&lt;br /&gt;
    type = TCPClientInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    target_host = rns.scotmesh.net&lt;br /&gt;
    target_port = 4242&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The name in double brackets is yours to choose — it is only a label. Save the file.&lt;br /&gt;
&lt;br /&gt;
=== 6. Start it again ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;rnsd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Leave this running. Reticulum only works while it is running — close the terminal and you are off the network. See [[#Keeping it running|keeping it running]] for how to make it start by itself.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Did it work? ==&lt;br /&gt;
&lt;br /&gt;
Open a &#039;&#039;second&#039;&#039; terminal, leaving &amp;lt;code&amp;gt;rnsd&amp;lt;/code&amp;gt; running in the first, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;rnstatus&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You are looking for something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;TCPInterface[ScotMesh Backbone/rns.scotmesh.net:4242]&lt;br /&gt;
   Status  : Up&lt;br /&gt;
   Traffic : ↑1.2 KB  ↓14.8 KB&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Status: Up&#039;&#039;&#039; means connected. Traffic counters climbing means the network is talking to you. If it says Down, see below.&lt;br /&gt;
&lt;br /&gt;
To confirm you can actually reach something, ask for a path to our chat hub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;rnpath -t 004e5a15da221d9a236b0e8d74195f13&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A reply mentioning a number of hops means you are properly on the network. That long string is a &#039;&#039;&#039;destination hash&#039;&#039;&#039; — Reticulum&#039;s equivalent of an address, except it is derived from a cryptographic key rather than handed out by anybody.&lt;br /&gt;
&lt;br /&gt;
== Now what? ==&lt;br /&gt;
&lt;br /&gt;
Being connected is not obviously exciting on its own. Things you can now do:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Join the chat room.&#039;&#039;&#039; Our hub hosts a room called &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;. See [[The chat room|the chat room]].&lt;br /&gt;
* &#039;&#039;&#039;Message people.&#039;&#039;&#039; Install a client and you have an address others can reach. See [[Choosing a client|choosing a client]].&lt;br /&gt;
* &#039;&#039;&#039;Browse pages hosted inside the network.&#039;&#039;&#039; See [[Nomad Network]].&lt;br /&gt;
* &#039;&#039;&#039;Send and receive messages while offline&#039;&#039;&#039;, via our [[Propagation node|propagation node]].&lt;br /&gt;
&lt;br /&gt;
Give it a few minutes before judging it. Other nodes announce themselves periodically, so your view of the network fills in gradually rather than instantly.&lt;br /&gt;
&lt;br /&gt;
== Keeping it running ==&lt;br /&gt;
&lt;br /&gt;
On Linux, run it as a service so it survives a reboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;sudo tee /etc/systemd/system/rnsd.service &amp;amp;gt;/dev/null &amp;amp;lt;&amp;amp;lt;&#039;EOF&#039;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Reticulum Network Stack Daemon&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=YOUR_USERNAME&lt;br /&gt;
ExecStart=/usr/local/bin/rnsd&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=5&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
sudo systemctl enable --now rnsd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Replace &amp;lt;code&amp;gt;YOUR_USERNAME&amp;lt;/code&amp;gt; with your own, and check the &amp;lt;code&amp;gt;ExecStart&amp;lt;/code&amp;gt; path matches where &amp;lt;code&amp;gt;rnsd&amp;lt;/code&amp;gt; actually is — &amp;lt;code&amp;gt;which rnsd&amp;lt;/code&amp;gt; will tell you, and it will be different if you used a virtual environment.&lt;br /&gt;
&lt;br /&gt;
On Windows and macOS, or if you used MeshChatX, just leave the application running.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Other ways in ==&lt;br /&gt;
&lt;br /&gt;
Only read these if the ordinary route above does not suit you.&lt;br /&gt;
&lt;br /&gt;
=== Behind CGNAT, or a firewall you do not control ===&lt;br /&gt;
&lt;br /&gt;
Mobile networks, student halls and workplace wifi usually still allow outbound TCP, so try the normal route first. If it is blocked, I2P will almost certainly get through, because it needs no inbound connections at either end.&lt;br /&gt;
&lt;br /&gt;
Install an I2P router first:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;sudo apt install i2pd&lt;br /&gt;
sudo systemctl enable --now i2pd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then add, alongside your other interfaces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;  [[ScotMesh I2P]]&lt;br /&gt;
    type = I2PInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    peers = a3pswrtvpuro62ijhb7lwdt2n6aqgajglof27ynbonynmolzlz7q.b32.i2p&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Be patient.&#039;&#039;&#039; I2P builds tunnels before it can carry anything, which takes five to ten minutes on a fresh install. The interface showing Down for that long is expected, not broken. It is slower than TCP; that is the trade for getting through.&lt;br /&gt;
&lt;br /&gt;
=== Over LoRa radio ===&lt;br /&gt;
&lt;br /&gt;
ScotMesh&#039;s first LoRa gateway is on air in Fife; if you are within range of it, or of another ScotMesh relay, a radio with the right settings reaches the whole network with no internet at all. Coverage is small so far, so this section also covers using LoRa between your own machines.&lt;br /&gt;
&lt;br /&gt;
You need an [[RNode]]: a supported LoRa board flashed with RNode firmware. It is not a Meshtastic or MeshCore radio, though a lot of the same hardware can be reflashed into one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;  [[RNode LoRa]]&lt;br /&gt;
    type = RNodeInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    port = /dev/ttyUSB0&lt;br /&gt;
    frequency = 869462500&lt;br /&gt;
    bandwidth = 125000&lt;br /&gt;
    txpower = 22&lt;br /&gt;
    spreadingfactor = 9&lt;br /&gt;
    codingrate = 5&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Two things that catch everyone:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Every radio must match exactly&#039;&#039;&#039; on frequency, bandwidth, spreading factor and coding rate. These are not negotiated. A radio with different settings is not “weakly connected” — it is completely deaf to you, with no error to tell you so. If two of your own radios cannot hear each other, check these four lines before anything else.&lt;br /&gt;
* &#039;&#039;&#039;Transmit time is legally limited&#039;&#039;&#039; in the licence-free bands, and it is easy to exceed. Set &amp;lt;code&amp;gt;airtime_limit_short&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;airtime_limit_long&amp;lt;/code&amp;gt;. If you are a licensed amateur operating under your callsign, set &amp;lt;code&amp;gt;id_callsign&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;id_interval&amp;lt;/code&amp;gt; too.&lt;br /&gt;
&lt;br /&gt;
Higher spreading factors reach further and are dramatically slower — SF12 may carry a few hundred bits per second. Do not reach for it by default.&lt;br /&gt;
&lt;br /&gt;
=== Another machine on your network already has Reticulum ===&lt;br /&gt;
&lt;br /&gt;
Then you need no configuration at all. The &amp;lt;code&amp;gt;Default Interface&amp;lt;/code&amp;gt; already in your config finds it automatically. This is the tidy way to share one radio: put the LoRa hardware on a Raspberry Pi, and everything else in the house reaches the mesh through it.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== When it does not work ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! What you see&lt;br /&gt;
! What it usually means&lt;br /&gt;
|-&lt;br /&gt;
| No config file to edit&lt;br /&gt;
| You have not run &amp;lt;code&amp;gt;rnsd&amp;lt;/code&amp;gt; yet. It creates the file on first start.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rnsd: command not found&amp;lt;/code&amp;gt;&lt;br /&gt;
| Installed into a virtual environment — use the full path, e.g. &amp;lt;code&amp;gt;~/reticulum/bin/rnsd&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;error: externally-managed-environment&amp;lt;/code&amp;gt;&lt;br /&gt;
| Expected on modern Linux. Use the virtual environment method above.&lt;br /&gt;
|-&lt;br /&gt;
| Interface missing from &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt;&lt;br /&gt;
| Indentation is wrong, or it is outside the &amp;lt;code&amp;gt;[interfaces]&amp;lt;/code&amp;gt; section.&lt;br /&gt;
|-&lt;br /&gt;
| Status: Down on the TCP interface&lt;br /&gt;
| No route out, or a typo in the hostname. Check with &amp;lt;code&amp;gt;ping rns.scotmesh.net&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Status: Down on I2P, for ages&lt;br /&gt;
| Normal for the first five to ten minutes.&lt;br /&gt;
|-&lt;br /&gt;
| Up, but no traffic at all&lt;br /&gt;
| Fine for the first minute or two. Longer than that, something upstream is filtering.&lt;br /&gt;
|-&lt;br /&gt;
| No path to a destination&lt;br /&gt;
| Wait a couple of minutes. Nodes announce periodically and you cannot reach what has not announced.&lt;br /&gt;
|-&lt;br /&gt;
| A client hangs on “securing link”&lt;br /&gt;
| See [[Known bugs and workarounds|known bugs]] — this one has bitten us.&lt;br /&gt;
|-&lt;br /&gt;
| Two LoRa radios cannot hear each other&lt;br /&gt;
| Mismatched frequency, bandwidth, spreading factor or coding rate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Going further: carry traffic for other people ==&lt;br /&gt;
&lt;br /&gt;
Everything above makes you a &#039;&#039;&#039;client&#039;&#039;&#039;: you use the network, but nothing routes through you. A &#039;&#039;&#039;transport node&#039;&#039;&#039; also relays other people&#039;s traffic and announces the paths it knows.&lt;br /&gt;
&lt;br /&gt;
This is how the network stops depending on any one machine — including ours. If your computer is always on and has a decent connection, it is worth doing.&lt;br /&gt;
&lt;br /&gt;
The switch itself is one line, in the &amp;lt;code&amp;gt;[reticulum]&amp;lt;/code&amp;gt; section at the top of the config:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;[reticulum]&lt;br /&gt;
  enable_transport = Yes&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Two things matter beyond that. Others must be able to &#039;&#039;&#039;reach&#039;&#039;&#039; you, which means either opening a port with a &amp;lt;code&amp;gt;TCPServerInterface&amp;lt;/code&amp;gt; or using I2P if you cannot. And you must &#039;&#039;&#039;announce often enough to be found&#039;&#039;&#039; — the default is six hours, which in practice means nobody discovers you at all.&lt;br /&gt;
&lt;br /&gt;
The full walkthrough is in [[Running your own transport node|running your own transport node]]. If you set one up, tell us and we will peer with you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=The_ScotMesh_node&amp;diff=124</id>
		<title>The ScotMesh node</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=The_ScotMesh_node&amp;diff=124"/>
		<updated>2026-09-11T15:55:30Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Chat hub now keeps 7 days of history&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ScotMesh node&#039;&#039;&#039; is a public Reticulum [[Glossary#Transport node|transport node]] for Scotland, reachable as &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt;. Anyone can connect to it, there is no registration and it costs nothing. It is the front page of this book; the pages after it cover each service in turn.&lt;br /&gt;
&lt;br /&gt;
== What it does ==&lt;br /&gt;
&lt;br /&gt;
The node does four things:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Carries traffic.&#039;&#039;&#039; It is a transport node with &amp;lt;code&amp;gt;enable_transport&amp;lt;/code&amp;gt; on, so anything connected to it can reach anything it can reach: other ScotMesh users, and through [[Who we peer with|our peers]], the wider public Reticulum network. It relays encrypted packets only; it cannot read them.&lt;br /&gt;
* &#039;&#039;&#039;Hosts the chat room.&#039;&#039;&#039; An RRC (Reticulum Relay Chat) hub with the &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; room. See [[The chat room]].&lt;br /&gt;
* &#039;&#039;&#039;Serves pages.&#039;&#039;&#039; A [[Nomad Network]] node with connection details and news, browsable from inside Reticulum with no internet needed.&lt;br /&gt;
* &#039;&#039;&#039;Holds messages for people who are offline.&#039;&#039;&#039; An LXMF [[Propagation node|propagation node]], so a message sent to someone whose radio is off or who is out of range is delivered when they reappear.&lt;br /&gt;
&lt;br /&gt;
Every address is on [[Services and addresses]].&lt;br /&gt;
&lt;br /&gt;
== Where it is and what it runs on ==&lt;br /&gt;
&lt;br /&gt;
The node is hosted in Dalgety Bay, Fife. It runs on Ubuntu, with one Reticulum daemon (&amp;lt;code&amp;gt;rnsd&amp;lt;/code&amp;gt;) shared by the chat hub (&amp;lt;code&amp;gt;[https://github.com/thatSFguy/reticulum-relay-chat rrc-hub]&amp;lt;/code&amp;gt;), the propagation node (&amp;lt;code&amp;gt;lxmd&amp;lt;/code&amp;gt;), the Nomad Network node and an I2P router (&amp;lt;code&amp;gt;i2pd&amp;lt;/code&amp;gt;) for the [[Access over I2P|I2P entry point]].&lt;br /&gt;
&lt;br /&gt;
Its live status, updated every two minutes from the daemon itself, is on [https://rns.scotmesh.net rns.scotmesh.net] and at the top of this wiki&#039;s [[Main Page|home page]].&lt;br /&gt;
&lt;br /&gt;
== Ways in ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Use it when !! Details&lt;br /&gt;
|-&lt;br /&gt;
| TCP, &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt; port 4242 || You have an ordinary internet connection || [[Connecting to ScotMesh]]&lt;br /&gt;
|-&lt;br /&gt;
| I2P || You are behind CGNAT or a firewall you do not control || [[Access over I2P]]&lt;br /&gt;
|-&lt;br /&gt;
| LoRa radio || You are within range of a ScotMesh gateway || [[RNode]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What to expect ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Uptime.&#039;&#039;&#039; It is run by volunteers on a single machine. It is up almost all of the time, but it restarts for updates and it can go down. Reticulum copes with that: paths are found again when the node returns, and the [[Propagation node|propagation node]] delivers what was held.&lt;br /&gt;
* &#039;&#039;&#039;Reconnecting.&#039;&#039;&#039; Clients that reconnect quickly after a restart are welcome; the node&#039;s listener does not block them for it (see [[Known bugs and workarounds]] for why that needs saying).&lt;br /&gt;
* &#039;&#039;&#039;Privacy.&#039;&#039;&#039; The node sees which addresses are talking, as any transport node must, and nothing else. Messages, pages and files are encrypted end to end. Messages held by the propagation node are encrypted for their recipient. The chat hub keeps the chat room&#039;s messages for 7 days so newcomers can catch up; see [[The chat room]].&lt;br /&gt;
* &#039;&#039;&#039;Announces.&#039;&#039;&#039; The node&#039;s services announce themselves every hour, so once you are connected they appear in your client&#039;s lists by themselves.&lt;br /&gt;
&lt;br /&gt;
== When it breaks ==&lt;br /&gt;
&lt;br /&gt;
Check the status strip first. If it says the node is down, someone already knows. If it says up and you cannot connect, work through [[Troubleshooting]], then tell us on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord] or in the chat room once you are back on.&lt;br /&gt;
&lt;br /&gt;
== Running one yourself ==&lt;br /&gt;
&lt;br /&gt;
The network gets more resilient with every transport node that is not ours. [[Running your own transport node]] explains what it commits you to and how to peer with us.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=123</id>
		<title>The chat room</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=The_chat_room&amp;diff=123"/>
		<updated>2026-09-11T15:55:29Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Chat hub now keeps 7 days of history and sends @mention notifications&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ScotMesh runs a chat room called &#039;&#039;&#039;&amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&#039;&#039;&#039; on an &#039;&#039;&#039;RRC hub&#039;&#039;&#039; (Reticulum Relay Chat): rooms, nicknames, topics and operators, carried entirely over Reticulum. It is the place to say hello, ask for help, and find out who else is on.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Hub address || &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Room || &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Out of the box ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MeshChatX&#039;&#039;&#039; has chat built in. Once you are [[Connecting to ScotMesh|connected to ScotMesh]]:&lt;br /&gt;
&lt;br /&gt;
# Open the chat section.&lt;br /&gt;
# The ScotMesh hub appears in the list of hubs once its hourly announce has reached you. If it is not there yet, add it by the address above.&lt;br /&gt;
# Join the room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sideband and the iPhone apps are messaging clients and do not do rooms; use MeshChatX for chat, or one of the clients below.&lt;br /&gt;
&lt;br /&gt;
== Full installation ==&lt;br /&gt;
&lt;br /&gt;
With Reticulum installed yourself, any RRC client works: &#039;&#039;&#039;Ratspeak&#039;&#039;&#039;, &#039;&#039;&#039;rrc-tui&#039;&#039;&#039;, &#039;&#039;&#039;rrc-gui&#039;&#039;&#039;, &#039;&#039;&#039;WeeChat&#039;&#039;&#039; (with the RRC plugin) and &#039;&#039;&#039;Eridanus&#039;&#039;&#039;. Point the client at the hub address, then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;/join scotmesh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hub announces itself every hour, so a client that lists hubs will usually show it without the address being typed.&lt;br /&gt;
&lt;br /&gt;
== What to expect ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Catching up.&#039;&#039;&#039; When you join you see the latest 25 messages, and &amp;lt;code&amp;gt;/history&amp;lt;/code&amp;gt; shows up to 100 more. The hub keeps the room&#039;s messages for 7 days and then deletes them.&lt;br /&gt;
* &#039;&#039;&#039;@mentions reach you when you are away.&#039;&#039;&#039; Write &amp;lt;code&amp;gt;@nick&amp;lt;/code&amp;gt; in the room and, if that person is offline, the hub sends them a short LXMF message (through our [[Propagation node|propagation node]] if need be) so they know to come and look. To do this it keeps a list of the identities it has met: public key, last nickname and when it last saw them.&lt;br /&gt;
* &#039;&#039;&#039;Nicknames&#039;&#039;&#039; are yours to choose, and once you have used one it belongs to your Reticulum identity, even while you are offline, so nobody else can take it and @mentions reach one person. If you ask for a name someone already has, you get it with a number on the end (&amp;lt;code&amp;gt;Alex1&amp;lt;/code&amp;gt;). Each app or device has its own identity, so a phone and a laptop need different names.&lt;br /&gt;
* &#039;&#039;&#039;It can be quiet.&#039;&#039;&#039; Scotland is not a big place for Reticulum yet. If nobody answers, leave the window open, or ask on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord] instead.&lt;br /&gt;
&lt;br /&gt;
== Operators ==&lt;br /&gt;
&lt;br /&gt;
Room operators can set the topic and, if it ever comes to it, remove someone. Ask in the room or on the ScotMesh Discord if you would like operator rights for the &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; room; we are glad of the help.&lt;br /&gt;
&lt;br /&gt;
== Your own rooms ==&lt;br /&gt;
&lt;br /&gt;
Anyone connected can create a room on the hub with &amp;lt;code&amp;gt;/join&amp;lt;/code&amp;gt; followed by a new name. Rooms exist while someone is in them.&lt;br /&gt;
&lt;br /&gt;
== The wider community ==&lt;br /&gt;
&lt;br /&gt;
The Reticulum community runs its own RRC hub at &amp;lt;code&amp;gt;28c7c1a68c735693aa8e6b8193ed44b2&amp;lt;/code&amp;gt;; see [[Learning resources]] for that and the other places people talk.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=MediaWiki:Common.css&amp;diff=122</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=MediaWiki:Common.css&amp;diff=122"/>
		<updated>2026-09-11T15:39:20Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: MeshCore emblem instead of wordmark&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* ScotMesh: status strip and wide screenshots */&lt;br /&gt;
.sm-status { margin: 0.5em 0 1em; }&lt;br /&gt;
.mw-parser-output .wikitable { font-size: 0.95em; }&lt;br /&gt;
&lt;br /&gt;
/* Front page */&lt;br /&gt;
.sm-welcome { font-size: 1.08em; max-width: 72ch; margin-bottom: 1em; }&lt;br /&gt;
.sm-cards { display: flex; flex-wrap: wrap; gap: 1em; margin: 1em 0 1.5em; }&lt;br /&gt;
.sm-card { flex: 1 1 240px; padding: 0.2em 1.1em 0.6em; border: 1px solid var(--border-color-base, rgba(128,128,128,0.35)); border-radius: var(--border-radius-large, 10px); background: var(--color-surface-2, rgba(128,128,128,0.06)); }&lt;br /&gt;
.sm-card h3 { margin-top: 0.8em; border: 0; }&lt;br /&gt;
.sm-card .mw-headline { font-size: 1.05em; }&lt;br /&gt;
&lt;br /&gt;
/* Front-page banner */&lt;br /&gt;
.sm-hero { position: relative; overflow: hidden; margin: 0.4em 0 1.4em; padding: 2.2em 2.2em 2em; border-radius: 16px;&lt;br /&gt;
  background: linear-gradient(135deg, #0b2447 0%, #0a3a7a 55%, #005EB8 100%); color: #fff; }&lt;br /&gt;
.sm-hero::after { content: &amp;quot;&amp;quot;; position: absolute; inset: 0 0 0 38%; background: url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 520 300%22%3E%3Cline x1=%22375%22 y1=%2291%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22284%22 y1=%2228%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2272%22 y1=%2273%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2229%22 y2=%22131%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22392%22 y2=%22170%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2272%22 y2=%2273%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%22167%22 y2=%22174%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%22132%22 y2=%22171%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22500%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22329%22 y2=%22114%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22164%22 y1=%22239%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22273%22 y2=%22255%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22392%22 y1=%22170%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%2272%22 y2=%2273%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22439%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22273%22 y2=%22255%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22284%22 y2=%2228%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22164%22 y1=%22239%22 x2=%22167%22 y2=%22174%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22164%22 y2=%22239%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22500%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2272%22 y1=%2273%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22500%22 y1=%2243%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2282%22 y1=%2243%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%22100%22 y2=%22173%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22392%22 y1=%22170%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22132%22 y1=%22171%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22392%22 y2=%22170%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22273%22 y1=%22255%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22329%22 y2=%22114%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22299%22 y2=%22121%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22167%22 y1=%22174%22 x2=%22132%22 y2=%22171%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22284%22 y2=%2228%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22350%22 y2=%22130%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Ccircle cx=%22172%22 cy=%2252%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22335%22 cy=%2230%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22278%22 cy=%22112%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2239%22 cy=%22152%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%2229%22 cy=%22131%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2245%22 cy=%2235%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22222%22 cy=%22242%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2272%22 cy=%2273%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22324%22 cy=%22275%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22299%22 cy=%22121%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22498%22 cy=%2223%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22439%22 cy=%2291%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%2282%22 cy=%2243%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22164%22 cy=%22239%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22100%22 cy=%22173%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22329%22 cy=%22114%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22284%22 cy=%2228%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2240%22 cy=%2268%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22350%22 cy=%22130%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22167%22 cy=%22174%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22237%22 cy=%2294%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22407%22 cy=%22206%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22132%22 cy=%22171%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22273%22 cy=%22255%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22375%22 cy=%2291%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22500%22 cy=%2243%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22219%22 cy=%22222%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2286%22 cy=%22147%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2230%22 cy=%22197%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22392%22 cy=%22170%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22448%22 cy=%2298%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22358%22 cy=%22176%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22300%22 cy=%22138%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22430%22 cy=%22275%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3C/svg%3E&amp;quot;) right center / cover no-repeat; pointer-events: none; }&lt;br /&gt;
.sm-hero &amp;gt; * { position: relative; z-index: 1; }&lt;br /&gt;
.sm-hero-eyebrow { display: flex; align-items: center; gap: 0.55em; font-size: 0.8em; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #cfe3ff; }&lt;br /&gt;
.sm-hero-eyebrow .sm-saltire { display: inline-block; width: 1.9em; height: 1.15em; border-radius: 3px;&lt;br /&gt;
  background: #005EB8 url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=&#039;http://www.w3.org/2000/svg&#039; viewBox=&#039;0 0 60 36&#039;%3E%3Cpath d=&#039;M0 0L60 36M60 0L0 36&#039; stroke=&#039;%23fff&#039; stroke-width=&#039;7&#039;/%3E%3C/svg%3E&amp;quot;) center / 100% 100%;&lt;br /&gt;
  box-shadow: 0 0 0 1px rgba(255,255,255,.35); }&lt;br /&gt;
.sm-hero-title { font-size: 2.3em; font-weight: 750; line-height: 1.12; margin: 0.35em 0 0.3em; max-width: 16em; text-wrap: balance; color: #fff; }&lt;br /&gt;
.sm-hero-sub { font-size: 1.12em; line-height: 1.5; max-width: 34em; color: #e3ecfa; }&lt;br /&gt;
.sm-hero-actions { display: flex; flex-wrap: wrap; gap: 0.7em; margin-top: 1.4em; }&lt;br /&gt;
.sm-btn a { display: inline-block; padding: 0.62em 1.15em; border-radius: 999px; font-weight: 650; text-decoration: none !important; }&lt;br /&gt;
.sm-btn-primary a { background: #fff; color: #0a3a7a !important; }&lt;br /&gt;
.sm-btn-primary a:hover { background: #e6f0ff; }&lt;br /&gt;
.sm-btn-secondary a { color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.7); }&lt;br /&gt;
.sm-btn-secondary a:hover { background: rgba(255,255,255,.12); }&lt;br /&gt;
.sm-btn a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }&lt;br /&gt;
.sm-hero-facts { display: flex; flex-wrap: wrap; gap: 0.4em 1.4em; margin-top: 1.5em; font-size: 0.9em; color: #cfe3ff; }&lt;br /&gt;
.sm-hero-facts span::before { content: &amp;quot;✓ &amp;quot;; color: #8fd19e; font-weight: 700; }&lt;br /&gt;
@media (max-width: 640px) {&lt;br /&gt;
  .sm-hero { padding: 1.5em 1.3em 1.4em; }&lt;br /&gt;
  .sm-hero::after { inset: 45% 0 0 0; opacity: .6; }&lt;br /&gt;
  .sm-hero-title { font-size: 1.75em; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Site header on every page: the Saltire and the wiki&#039;s name, as on scotmesh.net */&lt;br /&gt;
#siteNotice { background: none !important; border: 0 !important; padding: 0 !important; margin: 0 0 0.6em !important; text-align: left !important; font-size: 1rem !important; }&lt;br /&gt;
.sm-header { display: flex; align-items: center; gap: 1rem; padding: 0.9rem 32px 0.9rem; }&lt;br /&gt;
.sm-header a { text-decoration: none !important; }&lt;br /&gt;
.sm-flag { display: block; width: 80px; height: 48px; border-radius: 5px; flex: none; background: url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=&#039;http://www.w3.org/2000/svg&#039; viewBox=&#039;0 0 60 36&#039;%3E%3Crect width=&#039;60&#039; height=&#039;36&#039; fill=&#039;%230065bd&#039;/%3E%3Cpath d=&#039;M0 0L60 36M60 0L0 36&#039; stroke=&#039;white&#039; stroke-width=&#039;6&#039;/%3E%3C/svg%3E&amp;quot;) center / 100% 100% no-repeat; box-shadow: 0 1px 3px rgba(0,0,0,.35); }&lt;br /&gt;
.sm-header-title { font-size: 1.75em; font-weight: 750; line-height: 1.15; }&lt;br /&gt;
.sm-header-title a { color: var(--color-emphasized, inherit) !important; }&lt;br /&gt;
.sm-header-sub { color: var(--color-subtle, #9ca3af); font-size: 0.98em; margin-top: 0.15em; }&lt;br /&gt;
@media (max-width: 640px) { .sm-header { padding: 0.8rem 16px; gap: 0.75rem; } .sm-flag { width: 60px; height: 36px; } .sm-header-title { font-size: 1.35em; } .sm-header-sub { font-size: 0.88em; } }&lt;br /&gt;
/* Pointer to the MeshCore / Meshtastic wiki (Main Page, above the hero) */&lt;br /&gt;
.sm-otherwiki { margin: 0.2em 0 1em; padding: 0.6em 1em; border: 1px solid #166534; border-radius: 10px; background: #15803d; color: #fff; font-size: 0.95em; display: flex; align-items: center; gap: 0.5em 0.85em; flex-wrap: wrap; line-height: 1.45; overflow-wrap: anywhere; box-shadow: 0 1px 2px rgba(0,0,0,.15); }&lt;br /&gt;
.sm-otherwiki b { color: #fff; }&lt;br /&gt;
.sm-otherwiki a, .sm-otherwiki a.external, .sm-otherwiki a:visited { color: #fff !important; font-weight: 700; white-space: nowrap; text-decoration: underline; text-underline-offset: 2px; background-image: none; padding-right: 0; }&lt;br /&gt;
.sm-otherwiki a:hover, .sm-otherwiki a:focus-visible { color: #dcfce7 !important; }&lt;br /&gt;
.sm-ow-logos { display: inline-flex; align-items: center; gap: 0.6em; flex: none; padding: 0.3em 0.65em; border-radius: 7px; background: #166534; }&lt;br /&gt;
.sm-ow-logo { display: block; background: center / contain no-repeat; }&lt;br /&gt;
.sm-ow-mt { width: 26px; height: 14px; background-image: url(&amp;quot;data:image/svg+xml,%3Csvg viewBox=%220 0 100 55%22 xmlns=%22http://www.w3.org/2000/svg%22 style=%22fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;%22%3E%3Cg transform=%22matrix(0.802386,0,0,0.460028,-421.748,-122.127)%22%3E%3Cg transform=%22matrix(0.579082,0,0,1.01004,460.975,-39.6867)%22%3E%3Cpath d=%22M250.908,330.267L193.126,415.005L180.938,406.694L244.802,313.037C246.174,311.024 248.453,309.819 250.889,309.816C253.326,309.814 255.606,311.015 256.982,313.026L320.994,406.536L308.821,414.869L250.908,330.267Z%22 style=%22fill:white;%22/%3E%3C/g%3E%3Cg transform=%22matrix(0.582378,0,0,1.01579,485.019,-211.182)%22%3E%3Cpath d=%22M87.642,581.398L154.757,482.977L142.638,474.713L75.523,573.134L87.642,581.398Z%22 style=%22fill:white;%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E&amp;quot;); }&lt;br /&gt;
.sm-ow-mc { width: 19px; height: 16px; background-image: url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%22-250 -205 500 410%22%3E%3Ccircle r=%2250%22 fill=%22white%22/%3E%3Cpath d=%22M63.6 -101.8A120 120 0 0 1 63.6 101.8M-63.6 -101.8A120 120 0 0 0 -63.6 101.8%22 fill=%22none%22 stroke=%22white%22 stroke-width=%2244%22/%3E%3Cpath d=%22M136.7 -174.9A222 222 0 0 1 136.7 174.9M-136.7 -174.9A222 222 0 0 0 -136.7 174.9%22 fill=%22none%22 stroke=%22white%22 stroke-width=%2252%22/%3E%3C/svg%3E&amp;quot;); }&lt;br /&gt;
.sm-ow-text { flex: 1 1 16em; min-width: 0; }&lt;br /&gt;
.sm-otherwiki + .sm-hero { margin-top: 0; }&lt;br /&gt;
@media (max-width: 640px) { .sm-otherwiki { font-size: 0.9em; padding: 0.5em 0.8em; } }&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Main_Page&amp;diff=121</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Main_Page&amp;diff=121"/>
		<updated>2026-09-11T15:34:34Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: MeshCore and Meshtastic logos on the other-wiki line&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ScotMesh Reticulum Wiki}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-otherwiki&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logos&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logo sm-ow-mt&amp;quot; title=&amp;quot;Meshtastic&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-logo sm-ow-mc&amp;quot; title=&amp;quot;MeshCore&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-ow-text&amp;quot;&amp;gt;Looking for &amp;lt;b&amp;gt;MeshCore&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Meshtastic&amp;lt;/b&amp;gt;? They have their own wiki at [https://wiki.scotmesh.uk wiki.scotmesh.uk] →&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-title&amp;quot;&amp;gt;A free, encrypted network for Scotland that anyone can join.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-sub&amp;quot;&amp;gt;Reticulum carries messages, chat, files and pages over the internet and over LoRa radio, and keeps working when the things underneath it do not. Connecting takes about five minutes.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-actions&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-btn sm-btn-primary&amp;quot;&amp;gt;[[Connecting to ScotMesh|Connect in five minutes →]]&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-btn sm-btn-secondary&amp;quot;&amp;gt;[[What Reticulum is|What is Reticulum?]]&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-facts&amp;quot;&amp;gt;&amp;lt;span&amp;gt;No sign-up&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;No hardware needed&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;Free, run by the community&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;Encrypted end to end&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-welcome&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome.&#039;&#039;&#039; ScotMesh runs the Reticulum backbone for Scotland and writes this wiki; you are very welcome to use both, and to add to either. Whether you have never heard of Reticulum or you want to put a solar relay on a hill, there is a page here for you. Pick where you are:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-cards&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I just want to try it ===&lt;br /&gt;
Install one app, type in one address, and you are on the network with everyone else: messaging, chat, files and pages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Connecting to ScotMesh|Connect in five minutes →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[First steps]]: say hello in the chat room and send your first message.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I want to understand it first ===&lt;br /&gt;
No addresses to configure, no accounts, no company in the middle. Reticulum is unusual, and it is worth knowing why.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[What Reticulum is|What Reticulum is →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[How Reticulum works]], [[How it compares]] with Meshtastic and MeshCore, and the [[Glossary]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I want to put a radio on air ===&lt;br /&gt;
A LoRa board becomes a Reticulum radio for your laptop or phone, or a self-contained relay you can look after from home.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[RNode|Flash a board →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[ScotMesh firmware]] for solar and hilltop relays, and [[Antennas and siting]] for making it reach.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The backbone right now ==&lt;br /&gt;
&lt;br /&gt;
Live from the node itself, the same feed as [https://rns.scotmesh.net rns.scotmesh.net], refreshed every two minutes. If the strip is blank or says unknown, treat the backbone as unconfirmed and check the node page directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;sm-status&amp;quot; class=&amp;quot;sm-status&amp;quot;&amp;gt;Live backbone status: [https://rns.scotmesh.net/status.html rns.scotmesh.net/status]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect now ==&lt;br /&gt;
&lt;br /&gt;
The backbone is a public Reticulum transport node in Dalgety Bay, Fife. Anyone may connect, there is nothing to register, and it costs nothing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Out of the box:&#039;&#039;&#039; install [https://meshchatx.com MeshChatX] (Windows, macOS, Linux, Android), [https://github.com/markqvist/Sideband/releases Sideband] (Android, Windows, macOS, Linux) or an iPhone app, add a connection of type &#039;&#039;&#039;TCPClientInterface&#039;&#039;&#039; with host &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt; and port &amp;lt;code&amp;gt;4242&amp;lt;/code&amp;gt;, and you are on. [[Connecting to ScotMesh#Out of the box: an app|Step by step]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full installation:&#039;&#039;&#039; add this to your Reticulum config:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;  [[ScotMesh Backbone]]&lt;br /&gt;
    type = TCPClientInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    target_host = rns.scotmesh.net&lt;br /&gt;
    target_port = 4242&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Behind CGNAT or a firewall you do not control?&#039;&#039;&#039; Use the I2P entry point instead; no port needs forwarding at either end. See [[Access over I2P]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Got a LoRa radio?&#039;&#039;&#039; ScotMesh&#039;s first gateway is on air in Fife, carrying both profiles below and linked to the backbone, and standalone [[ScotMesh firmware|solar nodes]] are going out. Coverage is small so far, so a radio built anywhere in Scotland will hear the others as they arrive. Every radio must match all five settings exactly: a board with a different spreading factor is not weakly connected, it is completely deaf, and nothing reports an error. [https://rnode.scotmesh.net rnode.scotmesh.net] applies either profile in one click.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! ScotMesh 433&lt;br /&gt;
! ScotMesh 868&lt;br /&gt;
|-&lt;br /&gt;
| Frequency&lt;br /&gt;
| 433.775 MHz&lt;br /&gt;
| 867.500 MHz&lt;br /&gt;
|-&lt;br /&gt;
| Bandwidth&lt;br /&gt;
| 125 kHz&lt;br /&gt;
| 125 kHz&lt;br /&gt;
|-&lt;br /&gt;
| Spreading factor&lt;br /&gt;
| 8&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| Coding rate&lt;br /&gt;
| 4/5&lt;br /&gt;
| 4/5&lt;br /&gt;
|-&lt;br /&gt;
| TX power&lt;br /&gt;
| 7 dBm&lt;br /&gt;
| 22 dBm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Whichever way in you chose: restart Reticulum, then check the interface shows &#039;&#039;&#039;Up&#039;&#039;&#039; (in &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt;, or on the app&#039;s interfaces page). If it does not, [[Troubleshooting]] lists the usual causes.&lt;br /&gt;
&lt;br /&gt;
== What runs on the backbone ==&lt;br /&gt;
&lt;br /&gt;
Once connected, these are the addresses to paste into your client. Each one is explained in [[The ScotMesh Backbone]]; [[Services and addresses]] has them all in one place.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Service&lt;br /&gt;
! Address&lt;br /&gt;
! Use it with&lt;br /&gt;
|-&lt;br /&gt;
| TCP entry point&lt;br /&gt;
| &amp;lt;code&amp;gt;rns.scotmesh.net:4242&amp;lt;/code&amp;gt;&lt;br /&gt;
| Any Reticulum client&lt;br /&gt;
|-&lt;br /&gt;
| I2P entry point&lt;br /&gt;
| &amp;lt;code&amp;gt;a3pswrtvpuro62ijhb7lwdt2n6aqgajglof27ynbonynmolzlz7q.b32.i2p&amp;lt;/code&amp;gt;&lt;br /&gt;
| Any Reticulum client, via i2pd&lt;br /&gt;
|-&lt;br /&gt;
| [[The chat room|Chat hub]] (RRC), room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;&lt;br /&gt;
| MeshChatX, &amp;lt;code&amp;gt;rrc&amp;lt;/code&amp;gt; clients&lt;br /&gt;
|-&lt;br /&gt;
| [[Propagation node|LXMF propagation node]]&lt;br /&gt;
| &amp;lt;code&amp;gt;c283b754e0acc11ce48d2f5e29167e0c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sideband, MeshChatX, Nomad Network&lt;br /&gt;
|-&lt;br /&gt;
| [[Nomad Network|Nomad Network node]]&lt;br /&gt;
| &amp;lt;code&amp;gt;10a839df2c50635bcb0c8a299b9ca0f8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Nomad Network, MeshChatX&lt;br /&gt;
|-&lt;br /&gt;
| Transport instance&lt;br /&gt;
| &amp;lt;code&amp;gt;20b962cd814444f7812e409e7c47f319&amp;lt;/code&amp;gt;&lt;br /&gt;
| Shows up in &amp;lt;code&amp;gt;rnpath&amp;lt;/code&amp;gt; and node maps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The node peers outward to &amp;lt;code&amp;gt;rebelnet.uk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rns.cybercore.uk&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rmap.world&amp;lt;/code&amp;gt;, so a client connected here can reach the rest of the public Reticulum network. See [[Who we peer with]].&lt;br /&gt;
&lt;br /&gt;
== Where the network is ==&lt;br /&gt;
&lt;br /&gt;
Where things actually are, rather than where we would like them to be. Updated by hand as things land.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Milestone&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Reticulum backbone online&#039;&#039;&#039;&lt;br /&gt;
| Public transport node at &amp;lt;code&amp;gt;rns.scotmesh.net:4242&amp;lt;/code&amp;gt;, peered into the wider network.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Reachable over I2P&#039;&#039;&#039;&lt;br /&gt;
| No port forwarding needed at either end.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Chat hub running&#039;&#039;&#039;&lt;br /&gt;
| RRC hub with the &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; room.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Propagation node running&#039;&#039;&#039;&lt;br /&gt;
| Offline message delivery for the region.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Web flasher for RNodes and nodes&#039;&#039;&#039;&lt;br /&gt;
| [https://rnode.scotmesh.net rnode.scotmesh.net], with both ScotMesh profiles built in.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;LoRa gateway on air&#039;&#039;&#039;&lt;br /&gt;
| First gateway in Fife, both profiles, linked to the backbone.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Standalone solar nodes&#039;&#039;&#039;&lt;br /&gt;
| [[ScotMesh firmware]]: managed and updated over the mesh. First units on the bench and going out.&lt;br /&gt;
|-&lt;br /&gt;
| ✘&lt;br /&gt;
| &#039;&#039;&#039;Coverage beyond Fife&#039;&#039;&#039;&lt;br /&gt;
| Needs gateways and relays elsewhere. [[Running your own transport node|Put one up]] and tell us.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Find your way ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I have never used Reticulum&#039;&#039;&#039;&lt;br /&gt;
| Read in order: [[What Reticulum is|what Reticulum is]] → [[How it compares|how it compares]] to Meshtastic, MeshCore and LoRaWAN → [[Connecting to ScotMesh|connecting to ScotMesh]] → [[Choosing a client|choosing a client]] → [[First steps|first steps]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I am connected. What can I do?&#039;&#039;&#039;&lt;br /&gt;
| Join [[The chat room|the chat room]], send messages that arrive even when the other person is offline via the [[Propagation node|propagation node]], or browse and host pages on [[Nomad Network]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to put a radio on air&#039;&#039;&#039;&lt;br /&gt;
| [[RNode]] for boards, flashing and the settings above; [[ScotMesh firmware]] for a solar relay you can look after from home; [[Antennas and siting|antennas and siting]] for making it actually reach anywhere.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to help carry traffic&#039;&#039;&#039;&lt;br /&gt;
| [[Running your own transport node]]. Tell us when it is up and we will peer with you.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Something is broken&#039;&#039;&#039;&lt;br /&gt;
| [[Troubleshooting]], then [[Known bugs and workarounds|known bugs and workarounds]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;What is ScotMesh building?&#039;&#039;&#039;&lt;br /&gt;
| The [[Project index|project index]]: the [[ScotMesh firmware]], the flasher, and [[MeshCore as a Reticulum Interface|MeshCore as a Reticulum interface]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to read and watch more&#039;&#039;&#039;&lt;br /&gt;
| [[Learning resources]]: the manual, talks, the community wiki, and where people talk.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;What does that word mean?&#039;&#039;&#039;&lt;br /&gt;
| The [[Glossary|glossary]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Say hello ==&lt;br /&gt;
&lt;br /&gt;
ScotMesh is a community, not a company. Most of us are on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord], the quickest place to ask anything, Reticulum or not, and there is also the [https://scotmesh.uk forum at scotmesh.uk]; [[The chat room|the chat room]] is where to find us on the network itself; and [[About ScotMesh]] says who we are and what we run. If a page here is wrong or unclear, say so, or fix it: [[ScotMesh Wiki:About|anyone can ask for an editing account]].&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=MediaWiki:Common.css&amp;diff=120</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=MediaWiki:Common.css&amp;diff=120"/>
		<updated>2026-09-11T15:34:33Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Other-wiki line: MeshCore and Meshtastic logos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* ScotMesh: status strip and wide screenshots */&lt;br /&gt;
.sm-status { margin: 0.5em 0 1em; }&lt;br /&gt;
.mw-parser-output .wikitable { font-size: 0.95em; }&lt;br /&gt;
&lt;br /&gt;
/* Front page */&lt;br /&gt;
.sm-welcome { font-size: 1.08em; max-width: 72ch; margin-bottom: 1em; }&lt;br /&gt;
.sm-cards { display: flex; flex-wrap: wrap; gap: 1em; margin: 1em 0 1.5em; }&lt;br /&gt;
.sm-card { flex: 1 1 240px; padding: 0.2em 1.1em 0.6em; border: 1px solid var(--border-color-base, rgba(128,128,128,0.35)); border-radius: var(--border-radius-large, 10px); background: var(--color-surface-2, rgba(128,128,128,0.06)); }&lt;br /&gt;
.sm-card h3 { margin-top: 0.8em; border: 0; }&lt;br /&gt;
.sm-card .mw-headline { font-size: 1.05em; }&lt;br /&gt;
&lt;br /&gt;
/* Front-page banner */&lt;br /&gt;
.sm-hero { position: relative; overflow: hidden; margin: 0.4em 0 1.4em; padding: 2.2em 2.2em 2em; border-radius: 16px;&lt;br /&gt;
  background: linear-gradient(135deg, #0b2447 0%, #0a3a7a 55%, #005EB8 100%); color: #fff; }&lt;br /&gt;
.sm-hero::after { content: &amp;quot;&amp;quot;; position: absolute; inset: 0 0 0 38%; background: url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 520 300%22%3E%3Cline x1=%22375%22 y1=%2291%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22284%22 y1=%2228%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2272%22 y1=%2273%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2229%22 y2=%22131%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22392%22 y2=%22170%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2272%22 y2=%2273%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%22167%22 y2=%22174%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%22132%22 y2=%22171%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22500%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22329%22 y2=%22114%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22164%22 y1=%22239%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22273%22 y2=%22255%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22392%22 y1=%22170%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%2272%22 y2=%2273%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22439%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22273%22 y2=%22255%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22284%22 y2=%2228%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22164%22 y1=%22239%22 x2=%22167%22 y2=%22174%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22164%22 y2=%22239%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22500%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2272%22 y1=%2273%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22500%22 y1=%2243%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2282%22 y1=%2243%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%22100%22 y2=%22173%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22392%22 y1=%22170%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22132%22 y1=%22171%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22392%22 y2=%22170%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22273%22 y1=%22255%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22329%22 y2=%22114%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22299%22 y2=%22121%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22167%22 y1=%22174%22 x2=%22132%22 y2=%22171%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22284%22 y2=%2228%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22350%22 y2=%22130%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Ccircle cx=%22172%22 cy=%2252%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22335%22 cy=%2230%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22278%22 cy=%22112%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2239%22 cy=%22152%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%2229%22 cy=%22131%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2245%22 cy=%2235%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22222%22 cy=%22242%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2272%22 cy=%2273%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22324%22 cy=%22275%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22299%22 cy=%22121%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22498%22 cy=%2223%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22439%22 cy=%2291%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%2282%22 cy=%2243%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22164%22 cy=%22239%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22100%22 cy=%22173%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22329%22 cy=%22114%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22284%22 cy=%2228%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2240%22 cy=%2268%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22350%22 cy=%22130%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22167%22 cy=%22174%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22237%22 cy=%2294%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22407%22 cy=%22206%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22132%22 cy=%22171%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22273%22 cy=%22255%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22375%22 cy=%2291%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22500%22 cy=%2243%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22219%22 cy=%22222%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2286%22 cy=%22147%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2230%22 cy=%22197%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22392%22 cy=%22170%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22448%22 cy=%2298%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22358%22 cy=%22176%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22300%22 cy=%22138%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22430%22 cy=%22275%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3C/svg%3E&amp;quot;) right center / cover no-repeat; pointer-events: none; }&lt;br /&gt;
.sm-hero &amp;gt; * { position: relative; z-index: 1; }&lt;br /&gt;
.sm-hero-eyebrow { display: flex; align-items: center; gap: 0.55em; font-size: 0.8em; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #cfe3ff; }&lt;br /&gt;
.sm-hero-eyebrow .sm-saltire { display: inline-block; width: 1.9em; height: 1.15em; border-radius: 3px;&lt;br /&gt;
  background: #005EB8 url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=&#039;http://www.w3.org/2000/svg&#039; viewBox=&#039;0 0 60 36&#039;%3E%3Cpath d=&#039;M0 0L60 36M60 0L0 36&#039; stroke=&#039;%23fff&#039; stroke-width=&#039;7&#039;/%3E%3C/svg%3E&amp;quot;) center / 100% 100%;&lt;br /&gt;
  box-shadow: 0 0 0 1px rgba(255,255,255,.35); }&lt;br /&gt;
.sm-hero-title { font-size: 2.3em; font-weight: 750; line-height: 1.12; margin: 0.35em 0 0.3em; max-width: 16em; text-wrap: balance; color: #fff; }&lt;br /&gt;
.sm-hero-sub { font-size: 1.12em; line-height: 1.5; max-width: 34em; color: #e3ecfa; }&lt;br /&gt;
.sm-hero-actions { display: flex; flex-wrap: wrap; gap: 0.7em; margin-top: 1.4em; }&lt;br /&gt;
.sm-btn a { display: inline-block; padding: 0.62em 1.15em; border-radius: 999px; font-weight: 650; text-decoration: none !important; }&lt;br /&gt;
.sm-btn-primary a { background: #fff; color: #0a3a7a !important; }&lt;br /&gt;
.sm-btn-primary a:hover { background: #e6f0ff; }&lt;br /&gt;
.sm-btn-secondary a { color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.7); }&lt;br /&gt;
.sm-btn-secondary a:hover { background: rgba(255,255,255,.12); }&lt;br /&gt;
.sm-btn a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }&lt;br /&gt;
.sm-hero-facts { display: flex; flex-wrap: wrap; gap: 0.4em 1.4em; margin-top: 1.5em; font-size: 0.9em; color: #cfe3ff; }&lt;br /&gt;
.sm-hero-facts span::before { content: &amp;quot;✓ &amp;quot;; color: #8fd19e; font-weight: 700; }&lt;br /&gt;
@media (max-width: 640px) {&lt;br /&gt;
  .sm-hero { padding: 1.5em 1.3em 1.4em; }&lt;br /&gt;
  .sm-hero::after { inset: 45% 0 0 0; opacity: .6; }&lt;br /&gt;
  .sm-hero-title { font-size: 1.75em; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Site header on every page: the Saltire and the wiki&#039;s name, as on scotmesh.net */&lt;br /&gt;
#siteNotice { background: none !important; border: 0 !important; padding: 0 !important; margin: 0 0 0.6em !important; text-align: left !important; font-size: 1rem !important; }&lt;br /&gt;
.sm-header { display: flex; align-items: center; gap: 1rem; padding: 0.9rem 32px 0.9rem; }&lt;br /&gt;
.sm-header a { text-decoration: none !important; }&lt;br /&gt;
.sm-flag { display: block; width: 80px; height: 48px; border-radius: 5px; flex: none; background: url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=&#039;http://www.w3.org/2000/svg&#039; viewBox=&#039;0 0 60 36&#039;%3E%3Crect width=&#039;60&#039; height=&#039;36&#039; fill=&#039;%230065bd&#039;/%3E%3Cpath d=&#039;M0 0L60 36M60 0L0 36&#039; stroke=&#039;white&#039; stroke-width=&#039;6&#039;/%3E%3C/svg%3E&amp;quot;) center / 100% 100% no-repeat; box-shadow: 0 1px 3px rgba(0,0,0,.35); }&lt;br /&gt;
.sm-header-title { font-size: 1.75em; font-weight: 750; line-height: 1.15; }&lt;br /&gt;
.sm-header-title a { color: var(--color-emphasized, inherit) !important; }&lt;br /&gt;
.sm-header-sub { color: var(--color-subtle, #9ca3af); font-size: 0.98em; margin-top: 0.15em; }&lt;br /&gt;
@media (max-width: 640px) { .sm-header { padding: 0.8rem 16px; gap: 0.75rem; } .sm-flag { width: 60px; height: 36px; } .sm-header-title { font-size: 1.35em; } .sm-header-sub { font-size: 0.88em; } }&lt;br /&gt;
/* Pointer to the MeshCore / Meshtastic wiki (Main Page, above the hero) */&lt;br /&gt;
.sm-otherwiki { margin: 0.2em 0 1em; padding: 0.6em 1em; border: 1px solid #166534; border-radius: 10px; background: #15803d; color: #fff; font-size: 0.95em; display: flex; align-items: center; gap: 0.5em 0.85em; flex-wrap: wrap; line-height: 1.45; overflow-wrap: anywhere; box-shadow: 0 1px 2px rgba(0,0,0,.15); }&lt;br /&gt;
.sm-otherwiki b { color: #fff; }&lt;br /&gt;
.sm-otherwiki a, .sm-otherwiki a.external, .sm-otherwiki a:visited { color: #fff !important; font-weight: 700; white-space: nowrap; text-decoration: underline; text-underline-offset: 2px; background-image: none; padding-right: 0; }&lt;br /&gt;
.sm-otherwiki a:hover, .sm-otherwiki a:focus-visible { color: #dcfce7 !important; }&lt;br /&gt;
.sm-ow-logos { display: inline-flex; align-items: center; gap: 0.6em; flex: none; padding: 0.3em 0.65em; border-radius: 7px; background: #166534; }&lt;br /&gt;
.sm-ow-logo { display: block; background: center / contain no-repeat; }&lt;br /&gt;
.sm-ow-mt { width: 26px; height: 14px; background-image: url(&amp;quot;data:image/svg+xml,%3Csvg viewBox=%220 0 100 55%22 xmlns=%22http://www.w3.org/2000/svg%22 style=%22fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;%22%3E%3Cg transform=%22matrix(0.802386,0,0,0.460028,-421.748,-122.127)%22%3E%3Cg transform=%22matrix(0.579082,0,0,1.01004,460.975,-39.6867)%22%3E%3Cpath d=%22M250.908,330.267L193.126,415.005L180.938,406.694L244.802,313.037C246.174,311.024 248.453,309.819 250.889,309.816C253.326,309.814 255.606,311.015 256.982,313.026L320.994,406.536L308.821,414.869L250.908,330.267Z%22 style=%22fill:white;%22/%3E%3C/g%3E%3Cg transform=%22matrix(0.582378,0,0,1.01579,485.019,-211.182)%22%3E%3Cpath d=%22M87.642,581.398L154.757,482.977L142.638,474.713L75.523,573.134L87.642,581.398Z%22 style=%22fill:white;%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E&amp;quot;); }&lt;br /&gt;
.sm-ow-mc { width: 90px; height: 10px; background-image: url(&amp;quot;data:image/svg+xml,%3Csvg viewBox=%220 0 134 15%22 xmlns=%22http://www.w3.org/2000/svg%22 style=%22fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;%22%3E%3Cpath d=%22M3.277,0.053C2.829,0.053 2.401,0.41 2.321,0.851L0.013,13.623C-0.067,14.064 0.232,14.421 0.681,14.421L3.13,14.421C3.578,14.421 4.006,14.064 4.086,13.623L5.004,8.54L6.684,13.957C6.766,14.239 7.02,14.421 7.337,14.421L10.58,14.421C10.897,14.421 11.217,14.239 11.401,13.957L15.043,8.513L14.119,13.623C14.038,14.064 14.338,14.421 14.787,14.421L17.236,14.421C17.684,14.421 18.112,14.064 18.192,13.623L20.5,0.851C20.582,0.41 20.283,0.053 19.834,0.053L16.69,0.053C16.373,0.053 16.053,0.235 15.87,0.517L9.897,9.473C9.803,9.616 9.578,9.578 9.528,9.41L7.074,0.517C6.992,0.235 6.738,0.053 6.421,0.053L3.277,0.053Z%22 style=%22fill:white;fill-rule:nonzero;%22/%3E%3Cpath d=%22M21.146,14.421C21.146,14.421 33.257,14.421 33.257,14.421C33.526,14.421 33.784,14.205 33.831,13.942L34.337,11.128C34.385,10.863 34.206,10.649 33.936,10.649L25.519,10.649C25.429,10.649 25.37,10.576 25.385,10.488L25.635,9.105C25.65,9.017 25.736,8.944 25.826,8.944L32.596,8.944C32.865,8.944 33.123,8.728 33.171,8.465L33.621,5.974C33.669,5.709 33.49,5.495 33.221,5.495L26.45,5.495C26.361,5.495 26.301,5.423 26.317,5.335L26.584,3.852C26.599,3.764 26.685,3.691 26.775,3.691L35.192,3.691C35.462,3.691 35.719,3.476 35.767,3.21L36.258,0.498C36.306,0.235 36.126,0.019 35.857,0.019L23.746,0.019C23.297,0.019 22.867,0.378 22.788,0.819L20.474,13.621C20.396,14.062 20.695,14.421 21.146,14.421Z%22 style=%22fill:white;fill-rule:nonzero;%22/%3E%3Cpath d=%22M45.926,14.419L45.926,14.421L46.346,14.421C48.453,14.421 50.465,12.742 50.839,10.67L51.081,9.327C51.456,7.256 50.05,5.576 47.943,5.576L41.455,5.576C41.186,5.576 41.007,5.363 41.054,5.097L41.218,4.192C41.266,3.927 41.524,3.713 41.793,3.713L50.569,3.713C51.018,3.713 51.446,3.356 51.526,2.915L51.9,0.85C51.98,0.407 51.68,0.05 51.232,0.05L41.638,0.05C39.531,0.05 37.519,1.73 37.145,3.801L36.88,5.267C36.505,7.339 37.91,9.018 40.018,9.018L46.506,9.018C46.775,9.018 46.954,9.231 46.907,9.497L46.785,10.176C46.737,10.441 46.479,10.655 46.21,10.655L37.189,10.655C36.741,10.655 36.313,11.012 36.233,11.453L35.841,13.621C35.761,14.062 36.061,14.419 36.51,14.419L45.926,14.419Z%22 style=%22fill:white;fill-rule:nonzero;%22/%3E%3Cpath d=%22M68.008,0.046C68.008,0.046 65.296,0.046 65.296,0.046C64.847,0.046 64.42,0.403 64.34,0.844L63.532,5.31C63.517,5.398 63.431,5.469 63.341,5.469L58.085,5.469C57.995,5.469 57.936,5.398 57.951,5.31L58.758,0.844C58.837,0.403 58.539,0.046 58.09,0.046L55.378,0.046C54.93,0.046 54.502,0.403 54.422,0.844L52.112,13.623C52.032,14.064 52.331,14.421 52.78,14.421L55.492,14.421C55.941,14.421 56.369,14.064 56.449,13.623L57.272,9.074C57.287,8.986 57.373,8.914 57.462,8.914L62.719,8.914C62.809,8.914 62.868,8.985 62.853,9.074L62.032,13.623C61.952,14.064 62.252,14.421 62.7,14.421L65.413,14.421C65.861,14.421 66.289,14.064 66.369,13.623L68.678,0.844C68.755,0.403 68.457,0.046 68.008,0.046Z%22 style=%22fill:white;fill-rule:nonzero;%22/%3E%3Cpath d=%22M72.099,14.421C72.099,14.421 80.066,14.421 80.066,14.421C80.515,14.421 80.943,14.064 81.022,13.623L81.414,11.453C81.494,11.012 81.194,10.655 80.746,10.655L73.828,10.655C73.559,10.655 73.38,10.441 73.427,10.176L74.51,4.215C74.558,3.951 74.815,3.736 75.082,3.736L82,3.736C82.448,3.736 82.876,3.379 82.956,2.938L83.34,0.817C83.42,0.376 83.12,0.019 82.672,0.019L74.724,0.019C72.622,0.019 70.614,1.691 70.236,3.757L68.965,10.665C68.587,12.738 69.99,14.421 72.099,14.421Z%22 style=%22fill:white;fill-rule:nonzero;%22/%3E%3Cpath d=%22M97.176,-0C97.176,0 88.882,0 88.882,0C86.775,0 84.763,1.68 84.389,3.751L83.139,10.67C82.765,12.741 84.169,14.421 86.277,14.421L94.571,14.421C96.678,14.421 98.69,12.741 99.064,10.67L100.314,3.751C100.689,1.68 99.284,-0 97.176,-0ZM94.798,10.178C94.75,10.443 94.492,10.657 94.223,10.657L87.978,10.657C87.709,10.657 87.529,10.443 87.577,10.178L88.659,4.192C88.707,3.927 88.964,3.713 89.234,3.713L95.477,3.713C95.747,3.713 95.926,3.927 95.878,4.192L94.798,10.178Z%22 style=%22fill:white;fill-rule:nonzero;%22/%3E%3Cpath d=%22M101.284,14.421L103.995,14.421C104.443,14.421 104.871,14.065 104.951,13.624L105.43,10.97C105.446,10.882 105.531,10.81 105.621,10.81L108.902,10.806C109.064,10.806 109.2,10.886 109.267,11.018L110.813,14.035C110.992,14.392 111.319,14.434 112.303,14.419C112.88,14.426 113.756,14.382 115.169,14.382C115.623,14.382 115.902,13.907 115.678,13.51L113.989,10.569C113.945,10.491 113.993,10.386 114.086,10.34C115.39,9.707 116.423,8.477 116.681,7.055L117.27,3.785C117.646,1.713 116.242,0.033 114.134,0.033L103.884,0.033C103.436,0.033 103.008,0.39 102.928,0.831L100.616,13.623C100.536,14.064 100.836,14.421 101.284,14.421L101.284,14.421ZM106.73,3.791C106.745,3.703 106.831,3.631 106.921,3.631L112.225,3.631C112.626,3.631 112.891,3.949 112.821,4.343L112.431,6.494C112.359,6.885 111.979,7.204 111.58,7.204L106.276,7.204C106.186,7.204 106.127,7.133 106.142,7.043L106.73,3.791Z%22 style=%22fill:white;fill-rule:nonzero;%22/%3E%3Cpath d=%22M118.277,14.421C118.277,14.421 130.388,14.421 130.388,14.421C130.657,14.421 130.915,14.205 130.963,13.942L131.468,11.128C131.516,10.863 131.337,10.649 131.068,10.649L122.65,10.649C122.56,10.649 122.501,10.576 122.516,10.488L122.766,9.105C122.781,9.017 122.867,8.944 122.957,8.944L129.728,8.944C129.997,8.944 130.254,8.728 130.302,8.465L130.753,5.974C130.801,5.709 130.621,5.495 130.352,5.495L123.581,5.495C123.492,5.495 123.432,5.423 123.448,5.335L123.715,3.852C123.73,3.764 123.816,3.691 123.906,3.691L132.324,3.691C132.593,3.691 132.851,3.476 132.898,3.21L133.389,0.498C133.437,0.235 133.257,0.019 132.988,0.019L120.877,0.019C120.428,0.019 119.999,0.378 119.919,0.819L117.605,13.621C117.527,14.062 117.827,14.421 118.277,14.421Z%22 style=%22fill:white;fill-rule:nonzero;%22/%3E%3C/svg%3E&amp;quot;); }&lt;br /&gt;
.sm-ow-text { flex: 1 1 16em; min-width: 0; }&lt;br /&gt;
.sm-otherwiki + .sm-hero { margin-top: 0; }&lt;br /&gt;
@media (max-width: 640px) { .sm-otherwiki { font-size: 0.9em; padding: 0.5em 0.8em; } }&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=MediaWiki:Common.css&amp;diff=119</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=MediaWiki:Common.css&amp;diff=119"/>
		<updated>2026-09-11T15:32:53Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Other-wiki line: green so it stands out&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* ScotMesh: status strip and wide screenshots */&lt;br /&gt;
.sm-status { margin: 0.5em 0 1em; }&lt;br /&gt;
.mw-parser-output .wikitable { font-size: 0.95em; }&lt;br /&gt;
&lt;br /&gt;
/* Front page */&lt;br /&gt;
.sm-welcome { font-size: 1.08em; max-width: 72ch; margin-bottom: 1em; }&lt;br /&gt;
.sm-cards { display: flex; flex-wrap: wrap; gap: 1em; margin: 1em 0 1.5em; }&lt;br /&gt;
.sm-card { flex: 1 1 240px; padding: 0.2em 1.1em 0.6em; border: 1px solid var(--border-color-base, rgba(128,128,128,0.35)); border-radius: var(--border-radius-large, 10px); background: var(--color-surface-2, rgba(128,128,128,0.06)); }&lt;br /&gt;
.sm-card h3 { margin-top: 0.8em; border: 0; }&lt;br /&gt;
.sm-card .mw-headline { font-size: 1.05em; }&lt;br /&gt;
&lt;br /&gt;
/* Front-page banner */&lt;br /&gt;
.sm-hero { position: relative; overflow: hidden; margin: 0.4em 0 1.4em; padding: 2.2em 2.2em 2em; border-radius: 16px;&lt;br /&gt;
  background: linear-gradient(135deg, #0b2447 0%, #0a3a7a 55%, #005EB8 100%); color: #fff; }&lt;br /&gt;
.sm-hero::after { content: &amp;quot;&amp;quot;; position: absolute; inset: 0 0 0 38%; background: url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 520 300%22%3E%3Cline x1=%22375%22 y1=%2291%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22284%22 y1=%2228%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2272%22 y1=%2273%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2229%22 y2=%22131%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22392%22 y2=%22170%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2272%22 y2=%2273%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%22167%22 y2=%22174%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%22132%22 y2=%22171%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22500%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22329%22 y2=%22114%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22164%22 y1=%22239%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22273%22 y2=%22255%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22392%22 y1=%22170%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%2272%22 y2=%2273%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22439%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22273%22 y2=%22255%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22284%22 y2=%2228%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22164%22 y1=%22239%22 x2=%22167%22 y2=%22174%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22164%22 y2=%22239%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22500%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2272%22 y1=%2273%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22500%22 y1=%2243%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2282%22 y1=%2243%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%22100%22 y2=%22173%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22392%22 y1=%22170%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22132%22 y1=%22171%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22392%22 y2=%22170%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22273%22 y1=%22255%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22329%22 y2=%22114%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22299%22 y2=%22121%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22167%22 y1=%22174%22 x2=%22132%22 y2=%22171%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22284%22 y2=%2228%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22350%22 y2=%22130%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Ccircle cx=%22172%22 cy=%2252%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22335%22 cy=%2230%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22278%22 cy=%22112%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2239%22 cy=%22152%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%2229%22 cy=%22131%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2245%22 cy=%2235%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22222%22 cy=%22242%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2272%22 cy=%2273%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22324%22 cy=%22275%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22299%22 cy=%22121%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22498%22 cy=%2223%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22439%22 cy=%2291%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%2282%22 cy=%2243%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22164%22 cy=%22239%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22100%22 cy=%22173%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22329%22 cy=%22114%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22284%22 cy=%2228%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2240%22 cy=%2268%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22350%22 cy=%22130%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22167%22 cy=%22174%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22237%22 cy=%2294%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22407%22 cy=%22206%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22132%22 cy=%22171%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22273%22 cy=%22255%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22375%22 cy=%2291%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22500%22 cy=%2243%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22219%22 cy=%22222%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2286%22 cy=%22147%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2230%22 cy=%22197%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22392%22 cy=%22170%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22448%22 cy=%2298%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22358%22 cy=%22176%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22300%22 cy=%22138%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22430%22 cy=%22275%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3C/svg%3E&amp;quot;) right center / cover no-repeat; pointer-events: none; }&lt;br /&gt;
.sm-hero &amp;gt; * { position: relative; z-index: 1; }&lt;br /&gt;
.sm-hero-eyebrow { display: flex; align-items: center; gap: 0.55em; font-size: 0.8em; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #cfe3ff; }&lt;br /&gt;
.sm-hero-eyebrow .sm-saltire { display: inline-block; width: 1.9em; height: 1.15em; border-radius: 3px;&lt;br /&gt;
  background: #005EB8 url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=&#039;http://www.w3.org/2000/svg&#039; viewBox=&#039;0 0 60 36&#039;%3E%3Cpath d=&#039;M0 0L60 36M60 0L0 36&#039; stroke=&#039;%23fff&#039; stroke-width=&#039;7&#039;/%3E%3C/svg%3E&amp;quot;) center / 100% 100%;&lt;br /&gt;
  box-shadow: 0 0 0 1px rgba(255,255,255,.35); }&lt;br /&gt;
.sm-hero-title { font-size: 2.3em; font-weight: 750; line-height: 1.12; margin: 0.35em 0 0.3em; max-width: 16em; text-wrap: balance; color: #fff; }&lt;br /&gt;
.sm-hero-sub { font-size: 1.12em; line-height: 1.5; max-width: 34em; color: #e3ecfa; }&lt;br /&gt;
.sm-hero-actions { display: flex; flex-wrap: wrap; gap: 0.7em; margin-top: 1.4em; }&lt;br /&gt;
.sm-btn a { display: inline-block; padding: 0.62em 1.15em; border-radius: 999px; font-weight: 650; text-decoration: none !important; }&lt;br /&gt;
.sm-btn-primary a { background: #fff; color: #0a3a7a !important; }&lt;br /&gt;
.sm-btn-primary a:hover { background: #e6f0ff; }&lt;br /&gt;
.sm-btn-secondary a { color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.7); }&lt;br /&gt;
.sm-btn-secondary a:hover { background: rgba(255,255,255,.12); }&lt;br /&gt;
.sm-btn a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }&lt;br /&gt;
.sm-hero-facts { display: flex; flex-wrap: wrap; gap: 0.4em 1.4em; margin-top: 1.5em; font-size: 0.9em; color: #cfe3ff; }&lt;br /&gt;
.sm-hero-facts span::before { content: &amp;quot;✓ &amp;quot;; color: #8fd19e; font-weight: 700; }&lt;br /&gt;
@media (max-width: 640px) {&lt;br /&gt;
  .sm-hero { padding: 1.5em 1.3em 1.4em; }&lt;br /&gt;
  .sm-hero::after { inset: 45% 0 0 0; opacity: .6; }&lt;br /&gt;
  .sm-hero-title { font-size: 1.75em; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Site header on every page: the Saltire and the wiki&#039;s name, as on scotmesh.net */&lt;br /&gt;
#siteNotice { background: none !important; border: 0 !important; padding: 0 !important; margin: 0 0 0.6em !important; text-align: left !important; font-size: 1rem !important; }&lt;br /&gt;
.sm-header { display: flex; align-items: center; gap: 1rem; padding: 0.9rem 32px 0.9rem; }&lt;br /&gt;
.sm-header a { text-decoration: none !important; }&lt;br /&gt;
.sm-flag { display: block; width: 80px; height: 48px; border-radius: 5px; flex: none; background: url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=&#039;http://www.w3.org/2000/svg&#039; viewBox=&#039;0 0 60 36&#039;%3E%3Crect width=&#039;60&#039; height=&#039;36&#039; fill=&#039;%230065bd&#039;/%3E%3Cpath d=&#039;M0 0L60 36M60 0L0 36&#039; stroke=&#039;white&#039; stroke-width=&#039;6&#039;/%3E%3C/svg%3E&amp;quot;) center / 100% 100% no-repeat; box-shadow: 0 1px 3px rgba(0,0,0,.35); }&lt;br /&gt;
.sm-header-title { font-size: 1.75em; font-weight: 750; line-height: 1.15; }&lt;br /&gt;
.sm-header-title a { color: var(--color-emphasized, inherit) !important; }&lt;br /&gt;
.sm-header-sub { color: var(--color-subtle, #9ca3af); font-size: 0.98em; margin-top: 0.15em; }&lt;br /&gt;
@media (max-width: 640px) { .sm-header { padding: 0.8rem 16px; gap: 0.75rem; } .sm-flag { width: 60px; height: 36px; } .sm-header-title { font-size: 1.35em; } .sm-header-sub { font-size: 0.88em; } }&lt;br /&gt;
/* Pointer to the MeshCore / Meshtastic wiki (Main Page, above the hero) */&lt;br /&gt;
.sm-otherwiki { margin: 0.2em 0 1em; padding: 0.6em 1em; border: 1px solid #166534; border-radius: 10px; background: #15803d; color: #fff; font-size: 0.95em; line-height: 1.45; overflow-wrap: anywhere; box-shadow: 0 1px 2px rgba(0,0,0,.15); }&lt;br /&gt;
.sm-otherwiki b { color: #fff; }&lt;br /&gt;
.sm-otherwiki a, .sm-otherwiki a.external, .sm-otherwiki a:visited { color: #fff !important; font-weight: 700; white-space: nowrap; text-decoration: underline; text-underline-offset: 2px; background-image: none; padding-right: 0; }&lt;br /&gt;
.sm-otherwiki a:hover, .sm-otherwiki a:focus-visible { color: #dcfce7 !important; }&lt;br /&gt;
.sm-otherwiki + .sm-hero { margin-top: 0; }&lt;br /&gt;
@media (max-width: 640px) { .sm-otherwiki { font-size: 0.9em; padding: 0.5em 0.8em; } }&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Main_Page&amp;diff=118</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Main_Page&amp;diff=118"/>
		<updated>2026-09-11T15:22:34Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Point MeshCore/Meshtastic readers to wiki.scotmesh.uk&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ScotMesh Reticulum Wiki}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-otherwiki&amp;quot;&amp;gt;Looking for &amp;lt;b&amp;gt;MeshCore&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Meshtastic&amp;lt;/b&amp;gt;? They have their own wiki at [https://wiki.scotmesh.uk wiki.scotmesh.uk] →&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-title&amp;quot;&amp;gt;A free, encrypted network for Scotland that anyone can join.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-sub&amp;quot;&amp;gt;Reticulum carries messages, chat, files and pages over the internet and over LoRa radio, and keeps working when the things underneath it do not. Connecting takes about five minutes.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-actions&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sm-btn sm-btn-primary&amp;quot;&amp;gt;[[Connecting to ScotMesh|Connect in five minutes →]]&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;sm-btn sm-btn-secondary&amp;quot;&amp;gt;[[What Reticulum is|What is Reticulum?]]&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-hero-facts&amp;quot;&amp;gt;&amp;lt;span&amp;gt;No sign-up&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;No hardware needed&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;Free, run by the community&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;Encrypted end to end&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-welcome&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome.&#039;&#039;&#039; ScotMesh runs the Reticulum backbone for Scotland and writes this wiki; you are very welcome to use both, and to add to either. Whether you have never heard of Reticulum or you want to put a solar relay on a hill, there is a page here for you. Pick where you are:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-cards&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I just want to try it ===&lt;br /&gt;
Install one app, type in one address, and you are on the network with everyone else: messaging, chat, files and pages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Connecting to ScotMesh|Connect in five minutes →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[First steps]]: say hello in the chat room and send your first message.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I want to understand it first ===&lt;br /&gt;
No addresses to configure, no accounts, no company in the middle. Reticulum is unusual, and it is worth knowing why.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[What Reticulum is|What Reticulum is →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[How Reticulum works]], [[How it compares]] with Meshtastic and MeshCore, and the [[Glossary]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm-card&amp;quot;&amp;gt;&lt;br /&gt;
=== I want to put a radio on air ===&lt;br /&gt;
A LoRa board becomes a Reticulum radio for your laptop or phone, or a self-contained relay you can look after from home.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[RNode|Flash a board →]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Then [[ScotMesh firmware]] for solar and hilltop relays, and [[Antennas and siting]] for making it reach.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The backbone right now ==&lt;br /&gt;
&lt;br /&gt;
Live from the node itself, the same feed as [https://rns.scotmesh.net rns.scotmesh.net], refreshed every two minutes. If the strip is blank or says unknown, treat the backbone as unconfirmed and check the node page directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;sm-status&amp;quot; class=&amp;quot;sm-status&amp;quot;&amp;gt;Live backbone status: [https://rns.scotmesh.net/status.html rns.scotmesh.net/status]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect now ==&lt;br /&gt;
&lt;br /&gt;
The backbone is a public Reticulum transport node in Dalgety Bay, Fife. Anyone may connect, there is nothing to register, and it costs nothing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Out of the box:&#039;&#039;&#039; install [https://meshchatx.com MeshChatX] (Windows, macOS, Linux, Android), [https://github.com/markqvist/Sideband/releases Sideband] (Android, Windows, macOS, Linux) or an iPhone app, add a connection of type &#039;&#039;&#039;TCPClientInterface&#039;&#039;&#039; with host &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt; and port &amp;lt;code&amp;gt;4242&amp;lt;/code&amp;gt;, and you are on. [[Connecting to ScotMesh#Out of the box: an app|Step by step]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full installation:&#039;&#039;&#039; add this to your Reticulum config:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;  [[ScotMesh Backbone]]&lt;br /&gt;
    type = TCPClientInterface&lt;br /&gt;
    enabled = yes&lt;br /&gt;
    target_host = rns.scotmesh.net&lt;br /&gt;
    target_port = 4242&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Behind CGNAT or a firewall you do not control?&#039;&#039;&#039; Use the I2P entry point instead; no port needs forwarding at either end. See [[Access over I2P]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Got a LoRa radio?&#039;&#039;&#039; ScotMesh&#039;s first gateway is on air in Fife, carrying both profiles below and linked to the backbone, and standalone [[ScotMesh firmware|solar nodes]] are going out. Coverage is small so far, so a radio built anywhere in Scotland will hear the others as they arrive. Every radio must match all five settings exactly: a board with a different spreading factor is not weakly connected, it is completely deaf, and nothing reports an error. [https://rnode.scotmesh.net rnode.scotmesh.net] applies either profile in one click.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! ScotMesh 433&lt;br /&gt;
! ScotMesh 868&lt;br /&gt;
|-&lt;br /&gt;
| Frequency&lt;br /&gt;
| 433.775 MHz&lt;br /&gt;
| 867.500 MHz&lt;br /&gt;
|-&lt;br /&gt;
| Bandwidth&lt;br /&gt;
| 125 kHz&lt;br /&gt;
| 125 kHz&lt;br /&gt;
|-&lt;br /&gt;
| Spreading factor&lt;br /&gt;
| 8&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| Coding rate&lt;br /&gt;
| 4/5&lt;br /&gt;
| 4/5&lt;br /&gt;
|-&lt;br /&gt;
| TX power&lt;br /&gt;
| 7 dBm&lt;br /&gt;
| 22 dBm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Whichever way in you chose: restart Reticulum, then check the interface shows &#039;&#039;&#039;Up&#039;&#039;&#039; (in &amp;lt;code&amp;gt;rnstatus&amp;lt;/code&amp;gt;, or on the app&#039;s interfaces page). If it does not, [[Troubleshooting]] lists the usual causes.&lt;br /&gt;
&lt;br /&gt;
== What runs on the backbone ==&lt;br /&gt;
&lt;br /&gt;
Once connected, these are the addresses to paste into your client. Each one is explained in [[The ScotMesh Backbone]]; [[Services and addresses]] has them all in one place.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Service&lt;br /&gt;
! Address&lt;br /&gt;
! Use it with&lt;br /&gt;
|-&lt;br /&gt;
| TCP entry point&lt;br /&gt;
| &amp;lt;code&amp;gt;rns.scotmesh.net:4242&amp;lt;/code&amp;gt;&lt;br /&gt;
| Any Reticulum client&lt;br /&gt;
|-&lt;br /&gt;
| I2P entry point&lt;br /&gt;
| &amp;lt;code&amp;gt;a3pswrtvpuro62ijhb7lwdt2n6aqgajglof27ynbonynmolzlz7q.b32.i2p&amp;lt;/code&amp;gt;&lt;br /&gt;
| Any Reticulum client, via i2pd&lt;br /&gt;
|-&lt;br /&gt;
| [[The chat room|Chat hub]] (RRC), room &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;004e5a15da221d9a236b0e8d74195f13&amp;lt;/code&amp;gt;&lt;br /&gt;
| MeshChatX, &amp;lt;code&amp;gt;rrc&amp;lt;/code&amp;gt; clients&lt;br /&gt;
|-&lt;br /&gt;
| [[Propagation node|LXMF propagation node]]&lt;br /&gt;
| &amp;lt;code&amp;gt;c283b754e0acc11ce48d2f5e29167e0c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sideband, MeshChatX, Nomad Network&lt;br /&gt;
|-&lt;br /&gt;
| [[Nomad Network|Nomad Network node]]&lt;br /&gt;
| &amp;lt;code&amp;gt;10a839df2c50635bcb0c8a299b9ca0f8&amp;lt;/code&amp;gt;&lt;br /&gt;
| Nomad Network, MeshChatX&lt;br /&gt;
|-&lt;br /&gt;
| Transport instance&lt;br /&gt;
| &amp;lt;code&amp;gt;20b962cd814444f7812e409e7c47f319&amp;lt;/code&amp;gt;&lt;br /&gt;
| Shows up in &amp;lt;code&amp;gt;rnpath&amp;lt;/code&amp;gt; and node maps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The node peers outward to &amp;lt;code&amp;gt;rebelnet.uk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rns.cybercore.uk&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rmap.world&amp;lt;/code&amp;gt;, so a client connected here can reach the rest of the public Reticulum network. See [[Who we peer with]].&lt;br /&gt;
&lt;br /&gt;
== Where the network is ==&lt;br /&gt;
&lt;br /&gt;
Where things actually are, rather than where we would like them to be. Updated by hand as things land.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Milestone&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Reticulum backbone online&#039;&#039;&#039;&lt;br /&gt;
| Public transport node at &amp;lt;code&amp;gt;rns.scotmesh.net:4242&amp;lt;/code&amp;gt;, peered into the wider network.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Reachable over I2P&#039;&#039;&#039;&lt;br /&gt;
| No port forwarding needed at either end.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Chat hub running&#039;&#039;&#039;&lt;br /&gt;
| RRC hub with the &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; room.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Propagation node running&#039;&#039;&#039;&lt;br /&gt;
| Offline message delivery for the region.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Web flasher for RNodes and nodes&#039;&#039;&#039;&lt;br /&gt;
| [https://rnode.scotmesh.net rnode.scotmesh.net], with both ScotMesh profiles built in.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;LoRa gateway on air&#039;&#039;&#039;&lt;br /&gt;
| First gateway in Fife, both profiles, linked to the backbone.&lt;br /&gt;
|-&lt;br /&gt;
| ✔&lt;br /&gt;
| &#039;&#039;&#039;Standalone solar nodes&#039;&#039;&#039;&lt;br /&gt;
| [[ScotMesh firmware]]: managed and updated over the mesh. First units on the bench and going out.&lt;br /&gt;
|-&lt;br /&gt;
| ✘&lt;br /&gt;
| &#039;&#039;&#039;Coverage beyond Fife&#039;&#039;&#039;&lt;br /&gt;
| Needs gateways and relays elsewhere. [[Running your own transport node|Put one up]] and tell us.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Find your way ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I have never used Reticulum&#039;&#039;&#039;&lt;br /&gt;
| Read in order: [[What Reticulum is|what Reticulum is]] → [[How it compares|how it compares]] to Meshtastic, MeshCore and LoRaWAN → [[Connecting to ScotMesh|connecting to ScotMesh]] → [[Choosing a client|choosing a client]] → [[First steps|first steps]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I am connected. What can I do?&#039;&#039;&#039;&lt;br /&gt;
| Join [[The chat room|the chat room]], send messages that arrive even when the other person is offline via the [[Propagation node|propagation node]], or browse and host pages on [[Nomad Network]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to put a radio on air&#039;&#039;&#039;&lt;br /&gt;
| [[RNode]] for boards, flashing and the settings above; [[ScotMesh firmware]] for a solar relay you can look after from home; [[Antennas and siting|antennas and siting]] for making it actually reach anywhere.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to help carry traffic&#039;&#039;&#039;&lt;br /&gt;
| [[Running your own transport node]]. Tell us when it is up and we will peer with you.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Something is broken&#039;&#039;&#039;&lt;br /&gt;
| [[Troubleshooting]], then [[Known bugs and workarounds|known bugs and workarounds]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;What is ScotMesh building?&#039;&#039;&#039;&lt;br /&gt;
| The [[Project index|project index]]: the [[ScotMesh firmware]], the flasher, and [[MeshCore as a Reticulum Interface|MeshCore as a Reticulum interface]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;I want to read and watch more&#039;&#039;&#039;&lt;br /&gt;
| [[Learning resources]]: the manual, talks, the community wiki, and where people talk.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;What does that word mean?&#039;&#039;&#039;&lt;br /&gt;
| The [[Glossary|glossary]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Say hello ==&lt;br /&gt;
&lt;br /&gt;
ScotMesh is a community, not a company. Most of us are on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord], the quickest place to ask anything, Reticulum or not, and there is also the [https://scotmesh.uk forum at scotmesh.uk]; [[The chat room|the chat room]] is where to find us on the network itself; and [[About ScotMesh]] says who we are and what we run. If a page here is wrong or unclear, say so, or fix it: [[ScotMesh Wiki:About|anyone can ask for an editing account]].&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=MediaWiki:Common.css&amp;diff=117</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=MediaWiki:Common.css&amp;diff=117"/>
		<updated>2026-09-11T15:22:33Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Style for MeshCore/Meshtastic pointer (sm-otherwiki)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* ScotMesh: status strip and wide screenshots */&lt;br /&gt;
.sm-status { margin: 0.5em 0 1em; }&lt;br /&gt;
.mw-parser-output .wikitable { font-size: 0.95em; }&lt;br /&gt;
&lt;br /&gt;
/* Front page */&lt;br /&gt;
.sm-welcome { font-size: 1.08em; max-width: 72ch; margin-bottom: 1em; }&lt;br /&gt;
.sm-cards { display: flex; flex-wrap: wrap; gap: 1em; margin: 1em 0 1.5em; }&lt;br /&gt;
.sm-card { flex: 1 1 240px; padding: 0.2em 1.1em 0.6em; border: 1px solid var(--border-color-base, rgba(128,128,128,0.35)); border-radius: var(--border-radius-large, 10px); background: var(--color-surface-2, rgba(128,128,128,0.06)); }&lt;br /&gt;
.sm-card h3 { margin-top: 0.8em; border: 0; }&lt;br /&gt;
.sm-card .mw-headline { font-size: 1.05em; }&lt;br /&gt;
&lt;br /&gt;
/* Front-page banner */&lt;br /&gt;
.sm-hero { position: relative; overflow: hidden; margin: 0.4em 0 1.4em; padding: 2.2em 2.2em 2em; border-radius: 16px;&lt;br /&gt;
  background: linear-gradient(135deg, #0b2447 0%, #0a3a7a 55%, #005EB8 100%); color: #fff; }&lt;br /&gt;
.sm-hero::after { content: &amp;quot;&amp;quot;; position: absolute; inset: 0 0 0 38%; background: url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 520 300%22%3E%3Cline x1=%22375%22 y1=%2291%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22284%22 y1=%2228%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2272%22 y1=%2273%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2229%22 y2=%22131%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22392%22 y2=%22170%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2272%22 y2=%2273%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%22167%22 y2=%22174%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%22132%22 y2=%22171%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22500%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22329%22 y2=%22114%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22237%22 y2=%2294%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22164%22 y1=%22239%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22273%22 y2=%22255%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22300%22 y2=%22138%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22392%22 y1=%22170%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%2272%22 y2=%2273%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22498%22 y1=%2223%22 x2=%22439%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22100%22 y1=%22173%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22273%22 y2=%22255%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22284%22 y2=%2228%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22164%22 y1=%22239%22 x2=%22167%22 y2=%22174%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22222%22 y1=%22242%22 x2=%22164%22 y2=%22239%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22500%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2272%22 y1=%2273%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22500%22 y1=%2243%22 x2=%22448%22 y2=%2298%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22350%22 y1=%22130%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2282%22 y1=%2243%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2239%22 y1=%22152%22 x2=%22100%22 y2=%22173%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22392%22 y1=%22170%22 x2=%22430%22 y2=%22275%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22132%22 y1=%22171%22 x2=%2286%22 y2=%22147%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22407%22 y1=%22206%22 x2=%22392%22 y2=%22170%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22273%22 y1=%22255%22 x2=%22219%22 y2=%22222%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2229%22 y1=%22131%22 x2=%2230%22 y2=%22197%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%2245%22 y1=%2235%22 x2=%2240%22 y2=%2268%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22299%22 y1=%22121%22 x2=%22329%22 y2=%22114%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22172%22 y1=%2252%22 x2=%2282%22 y2=%2243%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22278%22 y1=%22112%22 x2=%22299%22 y2=%22121%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22167%22 y1=%22174%22 x2=%22132%22 y2=%22171%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22335%22 y1=%2230%22 x2=%22284%22 y2=%2228%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22439%22 y1=%2291%22 x2=%22375%22 y2=%2291%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22324%22 y1=%22275%22 x2=%22358%22 y2=%22176%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Cline x1=%22329%22 y1=%22114%22 x2=%22350%22 y2=%22130%22 stroke=%22white%22 stroke-opacity=%22.16%22 stroke-width=%221.2%22/%3E%3Ccircle cx=%22172%22 cy=%2252%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22335%22 cy=%2230%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22278%22 cy=%22112%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2239%22 cy=%22152%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%2229%22 cy=%22131%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2245%22 cy=%2235%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22222%22 cy=%22242%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%2272%22 cy=%2273%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22324%22 cy=%22275%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22299%22 cy=%22121%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22498%22 cy=%2223%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22439%22 cy=%2291%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%2282%22 cy=%2243%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22164%22 cy=%22239%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22100%22 cy=%22173%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22329%22 cy=%22114%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22284%22 cy=%2228%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2240%22 cy=%2268%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22350%22 cy=%22130%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22167%22 cy=%22174%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22237%22 cy=%2294%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22407%22 cy=%22206%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22132%22 cy=%22171%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22273%22 cy=%22255%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22375%22 cy=%2291%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22500%22 cy=%2243%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22219%22 cy=%22222%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2286%22 cy=%22147%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%2230%22 cy=%22197%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22392%22 cy=%22170%22 r=%223.6%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22448%22 cy=%2298%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.5%22/%3E%3Ccircle cx=%22358%22 cy=%22176%22 r=%222.2%22 fill=%22white%22 fill-opacity=%220.35%22/%3E%3Ccircle cx=%22300%22 cy=%22138%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3Ccircle cx=%22430%22 cy=%22275%22 r=%222.8%22 fill=%22white%22 fill-opacity=%220.7%22/%3E%3C/svg%3E&amp;quot;) right center / cover no-repeat; pointer-events: none; }&lt;br /&gt;
.sm-hero &amp;gt; * { position: relative; z-index: 1; }&lt;br /&gt;
.sm-hero-eyebrow { display: flex; align-items: center; gap: 0.55em; font-size: 0.8em; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #cfe3ff; }&lt;br /&gt;
.sm-hero-eyebrow .sm-saltire { display: inline-block; width: 1.9em; height: 1.15em; border-radius: 3px;&lt;br /&gt;
  background: #005EB8 url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=&#039;http://www.w3.org/2000/svg&#039; viewBox=&#039;0 0 60 36&#039;%3E%3Cpath d=&#039;M0 0L60 36M60 0L0 36&#039; stroke=&#039;%23fff&#039; stroke-width=&#039;7&#039;/%3E%3C/svg%3E&amp;quot;) center / 100% 100%;&lt;br /&gt;
  box-shadow: 0 0 0 1px rgba(255,255,255,.35); }&lt;br /&gt;
.sm-hero-title { font-size: 2.3em; font-weight: 750; line-height: 1.12; margin: 0.35em 0 0.3em; max-width: 16em; text-wrap: balance; color: #fff; }&lt;br /&gt;
.sm-hero-sub { font-size: 1.12em; line-height: 1.5; max-width: 34em; color: #e3ecfa; }&lt;br /&gt;
.sm-hero-actions { display: flex; flex-wrap: wrap; gap: 0.7em; margin-top: 1.4em; }&lt;br /&gt;
.sm-btn a { display: inline-block; padding: 0.62em 1.15em; border-radius: 999px; font-weight: 650; text-decoration: none !important; }&lt;br /&gt;
.sm-btn-primary a { background: #fff; color: #0a3a7a !important; }&lt;br /&gt;
.sm-btn-primary a:hover { background: #e6f0ff; }&lt;br /&gt;
.sm-btn-secondary a { color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.7); }&lt;br /&gt;
.sm-btn-secondary a:hover { background: rgba(255,255,255,.12); }&lt;br /&gt;
.sm-btn a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }&lt;br /&gt;
.sm-hero-facts { display: flex; flex-wrap: wrap; gap: 0.4em 1.4em; margin-top: 1.5em; font-size: 0.9em; color: #cfe3ff; }&lt;br /&gt;
.sm-hero-facts span::before { content: &amp;quot;✓ &amp;quot;; color: #8fd19e; font-weight: 700; }&lt;br /&gt;
@media (max-width: 640px) {&lt;br /&gt;
  .sm-hero { padding: 1.5em 1.3em 1.4em; }&lt;br /&gt;
  .sm-hero::after { inset: 45% 0 0 0; opacity: .6; }&lt;br /&gt;
  .sm-hero-title { font-size: 1.75em; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Site header on every page: the Saltire and the wiki&#039;s name, as on scotmesh.net */&lt;br /&gt;
#siteNotice { background: none !important; border: 0 !important; padding: 0 !important; margin: 0 0 0.6em !important; text-align: left !important; font-size: 1rem !important; }&lt;br /&gt;
.sm-header { display: flex; align-items: center; gap: 1rem; padding: 0.9rem 32px 0.9rem; }&lt;br /&gt;
.sm-header a { text-decoration: none !important; }&lt;br /&gt;
.sm-flag { display: block; width: 80px; height: 48px; border-radius: 5px; flex: none; background: url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=&#039;http://www.w3.org/2000/svg&#039; viewBox=&#039;0 0 60 36&#039;%3E%3Crect width=&#039;60&#039; height=&#039;36&#039; fill=&#039;%230065bd&#039;/%3E%3Cpath d=&#039;M0 0L60 36M60 0L0 36&#039; stroke=&#039;white&#039; stroke-width=&#039;6&#039;/%3E%3C/svg%3E&amp;quot;) center / 100% 100% no-repeat; box-shadow: 0 1px 3px rgba(0,0,0,.35); }&lt;br /&gt;
.sm-header-title { font-size: 1.75em; font-weight: 750; line-height: 1.15; }&lt;br /&gt;
.sm-header-title a { color: var(--color-emphasized, inherit) !important; }&lt;br /&gt;
.sm-header-sub { color: var(--color-subtle, #9ca3af); font-size: 0.98em; margin-top: 0.15em; }&lt;br /&gt;
@media (max-width: 640px) { .sm-header { padding: 0.8rem 16px; gap: 0.75rem; } .sm-flag { width: 60px; height: 36px; } .sm-header-title { font-size: 1.35em; } .sm-header-sub { font-size: 0.88em; } }&lt;br /&gt;
/* Pointer to the MeshCore / Meshtastic wiki (Main Page, above the hero) */&lt;br /&gt;
.sm-otherwiki { margin: 0.2em 0 1em; padding: 0.55em 0.95em; border: 1px solid var(--border-color-base, rgba(128,128,128,.28)); border-radius: 10px; background: var(--color-surface-2, rgba(128,128,128,.08)); color: var(--color-base, inherit); font-size: 0.95em; line-height: 1.45; overflow-wrap: anywhere; }&lt;br /&gt;
.sm-otherwiki b { color: var(--color-emphasized, inherit); }&lt;br /&gt;
.sm-otherwiki a.external { font-weight: 600; white-space: nowrap; }&lt;br /&gt;
.sm-otherwiki + .sm-hero { margin-top: 0; }&lt;br /&gt;
@media (max-width: 640px) { .sm-otherwiki { font-size: 0.9em; padding: 0.5em 0.8em; } }&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=MediaWiki:Sitenotice&amp;diff=116</id>
		<title>MediaWiki:Sitenotice</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=MediaWiki:Sitenotice&amp;diff=116"/>
		<updated>2026-09-11T15:22:32Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Header title: ScotMesh Reticulum Wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;sm-header&amp;quot;&amp;gt;[[Main Page|&amp;lt;span class=&amp;quot;sm-flag&amp;quot; title=&amp;quot;ScotMesh Reticulum Wiki&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;div class=&amp;quot;sm-header-text&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;sm-header-title&amp;quot;&amp;gt;[[Main Page|ScotMesh Reticulum Wiki]]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;sm-header-sub&amp;quot;&amp;gt;Reticulum in Scotland: free, encrypted, run by the community&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=The_ScotMesh_node&amp;diff=115</id>
		<title>The ScotMesh node</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=The_ScotMesh_node&amp;diff=115"/>
		<updated>2026-09-11T15:22:07Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Chat hub now runs rrc-hub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ScotMesh node&#039;&#039;&#039; is a public Reticulum [[Glossary#Transport node|transport node]] for Scotland, reachable as &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt;. Anyone can connect to it, there is no registration and it costs nothing. It is the front page of this book; the pages after it cover each service in turn.&lt;br /&gt;
&lt;br /&gt;
== What it does ==&lt;br /&gt;
&lt;br /&gt;
The node does four things:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Carries traffic.&#039;&#039;&#039; It is a transport node with &amp;lt;code&amp;gt;enable_transport&amp;lt;/code&amp;gt; on, so anything connected to it can reach anything it can reach: other ScotMesh users, and through [[Who we peer with|our peers]], the wider public Reticulum network. It relays encrypted packets only; it cannot read them.&lt;br /&gt;
* &#039;&#039;&#039;Hosts the chat room.&#039;&#039;&#039; An RRC (Reticulum Relay Chat) hub with the &amp;lt;code&amp;gt;scotmesh&amp;lt;/code&amp;gt; room. See [[The chat room]].&lt;br /&gt;
* &#039;&#039;&#039;Serves pages.&#039;&#039;&#039; A [[Nomad Network]] node with connection details and news, browsable from inside Reticulum with no internet needed.&lt;br /&gt;
* &#039;&#039;&#039;Holds messages for people who are offline.&#039;&#039;&#039; An LXMF [[Propagation node|propagation node]], so a message sent to someone whose radio is off or who is out of range is delivered when they reappear.&lt;br /&gt;
&lt;br /&gt;
Every address is on [[Services and addresses]].&lt;br /&gt;
&lt;br /&gt;
== Where it is and what it runs on ==&lt;br /&gt;
&lt;br /&gt;
The node is hosted in Dalgety Bay, Fife. It runs on Ubuntu, with one Reticulum daemon (&amp;lt;code&amp;gt;rnsd&amp;lt;/code&amp;gt;) shared by the chat hub (&amp;lt;code&amp;gt;[https://github.com/thatSFguy/reticulum-relay-chat rrc-hub]&amp;lt;/code&amp;gt;), the propagation node (&amp;lt;code&amp;gt;lxmd&amp;lt;/code&amp;gt;), the Nomad Network node and an I2P router (&amp;lt;code&amp;gt;i2pd&amp;lt;/code&amp;gt;) for the [[Access over I2P|I2P entry point]].&lt;br /&gt;
&lt;br /&gt;
Its live status, updated every two minutes from the daemon itself, is on [https://rns.scotmesh.net rns.scotmesh.net] and at the top of this wiki&#039;s [[Main Page|home page]].&lt;br /&gt;
&lt;br /&gt;
== Ways in ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Way in !! Use it when !! Details&lt;br /&gt;
|-&lt;br /&gt;
| TCP, &amp;lt;code&amp;gt;rns.scotmesh.net&amp;lt;/code&amp;gt; port 4242 || You have an ordinary internet connection || [[Connecting to ScotMesh]]&lt;br /&gt;
|-&lt;br /&gt;
| I2P || You are behind CGNAT or a firewall you do not control || [[Access over I2P]]&lt;br /&gt;
|-&lt;br /&gt;
| LoRa radio || You are within range of a ScotMesh gateway || [[RNode]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What to expect ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Uptime.&#039;&#039;&#039; It is run by volunteers on a single machine. It is up almost all of the time, but it restarts for updates and it can go down. Reticulum copes with that: paths are found again when the node returns, and the [[Propagation node|propagation node]] delivers what was held.&lt;br /&gt;
* &#039;&#039;&#039;Reconnecting.&#039;&#039;&#039; Clients that reconnect quickly after a restart are welcome; the node&#039;s listener does not block them for it (see [[Known bugs and workarounds]] for why that needs saying).&lt;br /&gt;
* &#039;&#039;&#039;Privacy.&#039;&#039;&#039; The node sees which addresses are talking, as any transport node must, and nothing else. Messages, pages and files are encrypted end to end. Messages held by the propagation node are encrypted for their recipient.&lt;br /&gt;
* &#039;&#039;&#039;Announces.&#039;&#039;&#039; The node&#039;s services announce themselves every hour, so once you are connected they appear in your client&#039;s lists by themselves.&lt;br /&gt;
&lt;br /&gt;
== When it breaks ==&lt;br /&gt;
&lt;br /&gt;
Check the status strip first. If it says the node is down, someone already knows. If it says up and you cannot connect, work through [[Troubleshooting]], then tell us on the [https://discord.gg/ytxfyuDmSt ScotMesh Discord] or in the chat room once you are back on.&lt;br /&gt;
&lt;br /&gt;
== Running one yourself ==&lt;br /&gt;
&lt;br /&gt;
The network gets more resilient with every transport node that is not ours. [[Running your own transport node]] explains what it commits you to and how to peer with us.&lt;br /&gt;
&lt;br /&gt;
[[Category:The ScotMesh Backbone]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
	<entry>
		<id>https://wiki.scotmesh.net/index.php?title=Glossary&amp;diff=114</id>
		<title>Glossary</title>
		<link rel="alternate" type="text/html" href="https://wiki.scotmesh.net/index.php?title=Glossary&amp;diff=114"/>
		<updated>2026-09-11T15:22:07Z</updated>

		<summary type="html">&lt;p&gt;ScotMesh: Chat hub now runs rrc-hub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The vocabulary of Reticulum and of this wiki, a sentence or two each. [[How Reticulum works]] puts most of these together into one explanation.&lt;br /&gt;
&lt;br /&gt;
; Announce&lt;br /&gt;
: A small signed packet a [[#Destination|destination]] sends to make itself known: its address, public key and optionally a little data such as a node&#039;s name. [[#Transport node|Transport nodes]] pass announces on and remember where they came from, which is how [[#Path|paths]] are built.&lt;br /&gt;
&lt;br /&gt;
; Address&lt;br /&gt;
: See [[#Destination hash|destination hash]].&lt;br /&gt;
&lt;br /&gt;
; Bearer&lt;br /&gt;
: Anything that can carry Reticulum traffic: LoRa, Wi-Fi, the internet, I2P, a serial cable, packet radio. See [[What Reticulum is]].&lt;br /&gt;
&lt;br /&gt;
; Destination&lt;br /&gt;
: Something that can be reached on the network: your messaging inbox, a Nomad Network node, a chat hub. Each belongs to an [[#Identity|identity]] and has its own address.&lt;br /&gt;
&lt;br /&gt;
; Destination hash&lt;br /&gt;
: A destination&#039;s address: 16 bytes, written as 32 hexadecimal characters, such as &amp;lt;code&amp;gt;10a839df2c50635bcb0c8a299b9ca0f8&amp;lt;/code&amp;gt;. It is derived from the identity&#039;s public key, so nobody else can claim it.&lt;br /&gt;
&lt;br /&gt;
; Gateway mode&lt;br /&gt;
: An [[#Interface mode|interface mode]] for a node that connects clients to a wider network. It answers path requests on its clients&#039; behalf.&lt;br /&gt;
&lt;br /&gt;
; Identity&lt;br /&gt;
: A pair of cryptographic keys, one for encryption and one for signing, created by your own software. Nobody issues or registers them. Being &#039;&#039;identified&#039;&#039; to a node means proving you hold a particular identity.&lt;br /&gt;
&lt;br /&gt;
; Interface&lt;br /&gt;
: A configuration block that connects Reticulum to a [[#Bearer|bearer]]: a TCP connection, an I2P tunnel, an [[#RNode|RNode]]. In the config file each one starts with its name in double brackets, such as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[ScotMesh Backbone]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; Interface mode&lt;br /&gt;
: How a node treats announces and path requests on an interface: full, gateway, access point, roaming or boundary.&lt;br /&gt;
&lt;br /&gt;
; Link&lt;br /&gt;
: An encrypted, verified connection between two parties, set up with fresh keys each time (forward secrecy). Browsing pages and transferring files use links.&lt;br /&gt;
&lt;br /&gt;
; LXMF&lt;br /&gt;
: The message format Reticulum applications use for messaging. Sideband, MeshChatX and Nomad Network all speak it, so their users can message each other.&lt;br /&gt;
&lt;br /&gt;
; Micron&lt;br /&gt;
: The lightweight markup [[Nomad Network]] pages are written in.&lt;br /&gt;
&lt;br /&gt;
; microReticulum&lt;br /&gt;
: An implementation of Reticulum that runs on small microcontroller boards rather than computers. The [[ScotMesh firmware]] is built on it.&lt;br /&gt;
&lt;br /&gt;
; MTU&lt;br /&gt;
: The largest packet a network carries. Reticulum&#039;s is 500 bytes, which is why pages for LoRa are kept small.&lt;br /&gt;
&lt;br /&gt;
; Nomad Network&lt;br /&gt;
: Pages, files and messaging that live entirely inside Reticulum, with no DNS or hosting. See [[Nomad Network]].&lt;br /&gt;
&lt;br /&gt;
; Path&lt;br /&gt;
: What a node knows about reaching a destination: which neighbour to send to, and how many hops away it is.&lt;br /&gt;
&lt;br /&gt;
; Propagation node&lt;br /&gt;
: A node that holds [[#LXMF|LXMF]] messages for people who are offline and delivers them when they reappear. It stores them encrypted and cannot read them. See [[Propagation node]].&lt;br /&gt;
&lt;br /&gt;
; RNode&lt;br /&gt;
: A LoRa radio running the RNode firmware, used by a computer or phone as a Reticulum interface. See [[RNode]].&lt;br /&gt;
&lt;br /&gt;
; RRC&lt;br /&gt;
: The chat protocol used by ScotMesh&#039;s chat room, run by a hub program called &amp;lt;code&amp;gt;rrc-hub&amp;lt;/code&amp;gt;. See [[The chat room]].&lt;br /&gt;
&lt;br /&gt;
; rnsd, rnstatus, rnpath, rnprobe&lt;br /&gt;
: The Reticulum daemon, and the utilities that show its interfaces, look up a path, and test whether a destination answers.&lt;br /&gt;
&lt;br /&gt;
; Transport node&lt;br /&gt;
: A Reticulum node that forwards traffic for others, because its owner set &amp;lt;code&amp;gt;enable_transport = Yes&amp;lt;/code&amp;gt;. It only ever handles encrypted packets.&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>ScotMesh</name></author>
	</entry>
</feed>