<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Wireless Protocols | Geovane Fedrecheski</title>
    <link>https://fedrecheski.com/tags/wireless-protocols/</link>
      <atom:link href="https://fedrecheski.com/tags/wireless-protocols/index.xml" rel="self" type="application/rss+xml" />
    <description>Wireless Protocols</description>
    <generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 22 Sep 2025 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://fedrecheski.com/media/icon_hu_645fa481986063ef.png</url>
      <title>Wireless Protocols</title>
      <link>https://fedrecheski.com/tags/wireless-protocols/</link>
    </image>
    
    <item>
      <title>Mari: scaling BLE to 1,000 robots</title>
      <link>https://fedrecheski.com/project/mari/</link>
      <pubDate>Mon, 22 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://fedrecheski.com/project/mari/</guid>
      <description>&lt;h2 id=&#34;what-it-is&#34;&gt;What it is&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mari&lt;/strong&gt; (Micro-Robot Access Radio Infrastructure) is a custom wireless link layer that scales Bluetooth Low Energy (BLE) to &lt;strong&gt;100 nodes per gateway&lt;/strong&gt;. It runs baremetal C on Nordic nRF52/nRF53 chips and replaces the whole BLE stack &lt;em&gt;above the radio&lt;/em&gt;: connection setup, scheduling, association, handover. The result is a purpose-built radio fabric for dense, real-time, mobile IoT.&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/AXdZniSUftc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;h2 id=&#34;what-i-built&#34;&gt;What I built&lt;/h2&gt;
&lt;p&gt;I designed and implemented Mari end-to-end as Lead Research Engineer at Inria Paris:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Slot frame and TSCH scheduler&lt;/strong&gt; — TDMA + frequency hopping across 40 BLE channels, 1.7 ms slots&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-gateway architecture&lt;/strong&gt; — capacity-aware gateway selection, parallel RSSI monitoring, sub 50 ms handover with hysteresis&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Join / association protocol&lt;/strong&gt; — IDLE → SCANNING → SYNCED → JOINING → JOINED, with backoff&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Firmware&lt;/strong&gt; — baremetal C on Nordic nRF52833 / nRF52840 / nRF5340&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/DotBots/marilib&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Marilib&lt;/a&gt;&lt;/strong&gt; — Python host library for messaging and telemetry, enabling integration with &lt;a href=&#34;https://github.com/DotBots/swarmit&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tools for OTAP&lt;/a&gt; on the 1,000 DotBot testbed&lt;/li&gt;
&lt;li&gt;First author on the journal paper and the EWSN demo&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;why-its-hard&#34;&gt;Why it&amp;rsquo;s hard&lt;/h2&gt;
&lt;p&gt;At hundreds of robots, off-the-shelf BLE simply doesn&amp;rsquo;t fit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BLE GATT&lt;/strong&gt; is limited to roughly 7–32 connections per host&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WiFi&lt;/strong&gt; collapses under collisions in dense, mobile scenarios&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6TiSCH / SmartMesh&lt;/strong&gt; don&amp;rsquo;t meet mobility with sub-second latency requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mari rebuilds everything above the BLE radio: a deterministic TSCH scheduler, a join state machine, and a multi-gateway design - all using only 20 kB of RAM.&lt;/p&gt;
&lt;h2 id=&#34;numbers&#34;&gt;Numbers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;100 nodes per gateway&lt;/strong&gt;, several gateways per testbed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;0.3 s&lt;/strong&gt; end-to-end latency, &lt;strong&gt;&amp;gt;90%&lt;/strong&gt; packet delivery ratio, &lt;strong&gt;&amp;lt;50 ms&lt;/strong&gt; handovers&lt;/li&gt;
&lt;li&gt;Deployed at &lt;strong&gt;700+ robots&lt;/strong&gt; in the &lt;a href=&#34;../dotbots/&#34;&gt;DotBots Testbed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🏆 &lt;a href=&#34;https://www.ewsn25.cs.kuleuven.be/awards&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Best Demo Award&lt;/strong&gt;, EWSN 2025&lt;/a&gt; — a 120-device live demo&lt;/li&gt;
&lt;li&gt;426 commits, 6 releases (latest v0.8.0, Jan 2026) - open source&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;publications&#34;&gt;Publications&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mari: Responsive Wireless Communication for Low-Power Large-Scale Robot Swarms.&lt;/strong&gt; G. Fedrecheski, Y. Gao, F. Maksimovic, A. Abadie, M. Vučinić, T. Chang, T. Watteyne. &lt;em&gt;Ad Hoc Networks Journal&lt;/em&gt;, to appear. &lt;a href=&#34;https://papers.ssrn.com/sol3/papers.cfm?abstract_id=6571600&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;[Preprint]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Demo: Mari Allows Connecting Large Scale Robot Swarms over BLE using TSCH with Fast Handovers and Multiple Independent Gateways.&lt;/strong&gt; G. Fedrecheski, A. Abadie, M. Vučinić, F. Maksimovic, S. Alvarado-Marin, T. Watteyne. &lt;em&gt;EWSN 2025&lt;/em&gt;, Leuven, Belgium. 🏆 Best Demo Award. &lt;a href=&#34;https://hal.science/hal-05280262/document&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;[PDF]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;links&#34;&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/DotBots/mari&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mari firmware (GitHub)&lt;/a&gt; — baremetal C&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/DotBots/marilib&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Marilib host library (GitHub)&lt;/a&gt; — Python&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://crystalfree.atlassian.net/wiki/spaces/Mari/overview?homepageId=3309044104&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Documentation (wiki)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
  </channel>
</rss>
