Mari is a lightweight wireless connectivity solution designed for dense IoT networks, with a focus on supporting real-time interactions and fast over-the-air (OTA) updates.
The driving use case for the design of Mari is the OpenSwarm Testbed of 1,000 DotBots. Mari is suitable for any dense IoT deployment requiring low-latency communication.
- TSCH over BLE: Implements Time-Synchronized Channel Hopping (TSCH) over Bluetooth Low Energy (BLE) 2 Mbps PHY
- Multi-Gateway Architecture: Allows scaling the network by adding more gateways
- Non-Coordinated Gateways: Gateways are independent, so the infrastructure setup is very simple
- Fast Handovers: Enables quick transitions between gateways as nodes move
- Low-Power Operation: Designed for energy-efficient operation in battery-powered devices (BLE radio)
- Real-Time Communication: Achieves 100-150 ms average latency with 100 nodes per gateway
- Reasonable Throughput for OTAP: About 10 Kb/s downlink
- Quick Network Join: Best and worst -case join time of 150 ms and 6 seconds, respectively
- Dense Network Support: Scales for networks with hundreds to thousands of nodes
mari/
├── app/ # Example applications and tests
│ ├── 03app_gateway/ # Gateway implementation example
│ ├── 03app_node/ # Node implementation example
│ └── ... # Various test applications
├── drv/ # Hardware drivers
├── mari/ # Core protocol implementation
└── nRF/ # Nordic Semiconductor SDK files
Gateway initialization:
mari_init(MARI_GATEWAY, MARI_NET_ID_DEFAULT, schedule, event_callback);Node initialization:
mari_init(MARI_NODE, MARI_NET_ID_PATTERN_ANY, schedule, event_callback);Mari has been validated with the following Nordic Semiconductor chips:
- nRF52833
- nRF52840
- nRF5340
The project includes configuration files for:
- Segger Embedded Studio (
.emProjectfiles) - Code formatting (
.clang-formatfile, please useclang-formatversion 15) - Git hooks (
.pre-commit-config.yaml)
1- To run Mari network on your computer follow the instructions at : https://github.com/DotBots/mari/wiki/Getting-started#running-mari-network-on-your-computer
This project is licensed under the terms included in the LICENSE file.
- Fedrecheski et al., "Mari: Connecting Large Scale Robot Swarms over BLE using TSCH with Multiple Independent Gateways", CrystalFreeIoT Workshop 2025 [Forthcoming]
This project has received funding from the EU's Horizon Europe Framework Programme under Grant Agreement No. 101093046.
Part of the source code in this repository is developed within the frame and for the purpose of the OpenSwarm project. This project has received funding from the European Unioan's Horizon Europe Framework Programme under Grant Agreement No. 101093046.
