{"id":20,"date":"2025-11-05T09:19:20","date_gmt":"2025-11-05T09:19:20","guid":{"rendered":"https:\/\/angrypotato.xyz\/?p=20"},"modified":"2025-11-05T09:51:06","modified_gmt":"2025-11-05T09:51:06","slug":"victoria-meshcore-goes-narrowband","status":"publish","type":"post","link":"https:\/\/angrypotato.xyz\/index.php\/2025\/11\/05\/victoria-meshcore-goes-narrowband\/","title":{"rendered":"Victoria Meshcore goes Narrowband"},"content":{"rendered":"\n<p>This article, drawn from discussions in the Meshcore discord from the Australia\/Melbourne community, it reflects months of collaboration, testing, and live deployments across Victoria that refined the Meshcore configuration pushing real\u2011world performance limits.<\/p>\n\n\n\n<p>By systematically adjusting parameters such as bandwidth, spreading factor, and coding rate, the community achieved a configuration that significantly improved range, responsiveness, and overall network stability and reliability \u2014 demonstrating that Meshcore, when properly engineered, can deliver robust, wide area mesh connectivity across both regional and metropolitan environments.<\/p>\n\n\n\n<p>The result of these collective efforts is the \u201cAustralia: Victoria\u201d preset \u2014 a finely tuned setup optimized for long-range, high-reliability operation across Victoria\u2019s diverse geography. <\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>From Wideband to Narrowband \u2014 The Evolution of MeshCore in Victoria<\/strong><\/h3>\n\n\n\n<p>When the Victorian MeshCore network first went live, it operated using the standard Australian wideband configuration \u2014<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>915.8 MHz<\/li>\n\n\n\n<li>Spreading Factor 10 (SF10)<\/li>\n\n\n\n<li>Bandwidth 250 kHz, <\/li>\n\n\n\n<li>Coding Rate 5 (CR5).<\/li>\n<\/ul>\n\n\n\n<p>While this setup worked well as a baseline, it quickly became clear that it wasn\u2019t ideal for a distributed, high-density mesh:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Extended airtime<\/strong> from SF10 caused delays and collisions<\/li>\n\n\n\n<li><strong>Wide bandwidth<\/strong> increased susceptibility to noise and interference<\/li>\n\n\n\n<li><strong>Range<\/strong> was inconsistent, especially in mixed elevation or suburban terrain<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Why Stay Close to 915 MHz?<\/strong><\/h3>\n\n\n\n<p>The decision to shift frequency to <strong>916.575 MHz<\/strong> was both technical and practical. <\/p>\n\n\n\n<p>Many affordable\/budget LoRa antennas are factory-tuned for this frequency, and even small deviations can degrade VSWR and reduce effective gain.<\/p>\n\n\n\n<p>Before locking in the final frequency, the team conducted noise floor scans using SDRs (Software Defined Radios) across Victoria. From Creswick to Melbourne\u2019s eastern suburbs, results showed a consistently clean spectrum around 916 MHz \u2014 ideal for long-range mesh communication with minimal interference.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>LoRa Fundamentals and Key Parameters<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Parameter<\/strong><\/th><th><strong>Function<\/strong><\/th><th><strong>Impact on Performance<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>Bandwidth (BW)<\/strong><\/td><td>Determines channel width<\/td><td>Lower BW = higher sensitivity, lower throughput<\/td><\/tr><tr><td><strong>Spreading Factor (SF)<\/strong><\/td><td>Number of chirps per symbol<\/td><td>Higher SF = longer range, slower data rate<\/td><\/tr><tr><td><strong>Coding Rate (CR)<\/strong><\/td><td>Error correction level<\/td><td>Higher CR = better reliability, longer airtime<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Typical Sensitivity vs. Time-on-Air<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Spreading Factor<\/strong><\/th><th><strong>Sensitivity (125 kHz)<\/strong><\/th><th><strong>Time on Air<\/strong><\/th><\/tr><\/thead><tbody><tr><td>SF7<\/td><td>\u2212123 dBm<\/td><td>41 ms<\/td><\/tr><tr><td>SF8<\/td><td>\u2212126 dBm<\/td><td>72 ms<\/td><\/tr><tr><td>SF9<\/td><td>\u2212129 dBm<\/td><td>144 ms<\/td><\/tr><tr><td>SF10<\/td><td>\u2212132 dBm<\/td><td>288 ms<\/td><\/tr><tr><td>SF11<\/td><td>\u2212134.5 dBm<\/td><td>577 ms<\/td><\/tr><tr><td>SF12<\/td><td>\u2212137 dBm<\/td><td>991 ms<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Higher SF values provide superior range, but increase airtime exponentially \u2014 a critical factor in a mesh where hundreds of nodes share the same channels.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Testing and Tuning Toward the New Preset<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Original Configuration<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>915.800 MHz<\/strong>, <strong>SF10<\/strong>, <strong>BW 250 kHz<\/strong>, <strong>CR5<\/strong>\n<ul class=\"wp-block-list\">\n<li>Standard for wideband Australian setups<\/li>\n\n\n\n<li>High airtime and congestion under mesh load<\/li>\n\n\n\n<li>Range limited by noise and antenna mismatch<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Intermediate Testing<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><strong>916.575<\/strong> MHz<\/strong>, <strong>SF8<\/strong>, <strong>BW 62.5 kHz<\/strong>, <strong>CR8<\/strong>\n<ul class=\"wp-block-list\">\n<li>Substantial range improvement<\/li>\n\n\n\n<li>Slightly longer airtime led to slower routing responsiveness<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Final \u201cAustralia: Victoria\u201d Preset<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>916.575 MHz<\/strong>, <strong>SF7<\/strong>, <strong>BW 62.5 kHz<\/strong>, <strong>CR8<\/strong>\n<ul class=\"wp-block-list\">\n<li>Reduced airtime and packet collision rate<\/li>\n\n\n\n<li>Excellent stability across all node types<\/li>\n\n\n\n<li>Strong, repeatable long-range performance<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Testing showed that lower CR settings (below CR8) slightly reduced airtime but created synchronization instability when mixed CR values. CR8 proved to be the sweet spot \u2014 maintaining reliable error correction without reducing interoperability.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Why 62.5 kHz, SF7, and CR8 Work So Well<\/strong><\/h3>\n\n\n\n<p>Based on real world testing, this configuration delivers the ideal balance between range and responsiveness for a shared ISM-band mesh:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Narrowband (62.5 kHz):<\/strong> Increases link budget and reduces adjacent-channel interference<\/li>\n\n\n\n<li><strong>SF7:<\/strong> Keeps airtime short for fast, collision-free routing<\/li>\n\n\n\n<li><strong>CR8:<\/strong> Ensures error-tolerant operation even in noisy conditions<\/li>\n\n\n\n<li><strong>915 MHz center frequency:<\/strong> Maximizes antenna efficiency and output power<\/li>\n<\/ul>\n\n\n\n<p>These characteristics have made the new \u201cAustralia: Victoria\u201d preset the benchmark for MeshCore deployments across the region \u2014 offering both urban reliability and rural range without needing per-region customization.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h3>\n\n\n\n<p>Through months of experimentation, real\u2011world testing, and parameter optimization, the Victorian MeshCore community created a configuration worthy of standardization.<\/p>\n\n\n\n<p>Looking ahead, the network\u2019s continued growth will inevitably bring new challenges and opportunities. <\/p>\n\n\n\n<p>As coverage expands into regions where other users may already be operating on 916.575\u202fMHz, frequency adjustments and tuning will be necessary to ensure coexistence and avoid interference. In these cases, most likely bridges will play a critical role, allowing traffic to shift seamlessly between frequencies and enabling interoperability across different meshes. Far from being a limitation, this bridging strategy is expected to become a cornerstone of the mesh as it scales outward and connects with other established MeshCore networks, ensuring that the community\u2019s work remains adaptable, resilient, and ready for state\u2011wide and even inter\u2011regional integration.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article, drawn from discussions in the Meshcore discord from the Australia\/Melbourne community, it reflects months of collaboration, testing, and live deployments across Victoria that refined the Meshcore configuration pushing real\u2011world performance limits. By systematically adjusting parameters such as bandwidth, spreading factor, and coding rate, the community achieved a configuration that significantly improved range, responsiveness,&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-20","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/angrypotato.xyz\/index.php\/wp-json\/wp\/v2\/posts\/20","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/angrypotato.xyz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/angrypotato.xyz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/angrypotato.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/angrypotato.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=20"}],"version-history":[{"count":10,"href":"https:\/\/angrypotato.xyz\/index.php\/wp-json\/wp\/v2\/posts\/20\/revisions"}],"predecessor-version":[{"id":33,"href":"https:\/\/angrypotato.xyz\/index.php\/wp-json\/wp\/v2\/posts\/20\/revisions\/33"}],"wp:attachment":[{"href":"https:\/\/angrypotato.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=20"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/angrypotato.xyz\/index.php\/wp-json\/wp\/v2\/categories?post=20"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/angrypotato.xyz\/index.php\/wp-json\/wp\/v2\/tags?post=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}