---
title: System Requirements & Compatibility
description: Supported operating systems, tools, and hardware for the SandGrain SDK, including Nordic nRF54L15 boards and the git branches each setup path uses.
---

[Skip to content](https://portal.sandgrain.eu/knowledge-base/system-requirements-compatibility#main-content)

English

Show submenu for translations

![SandGrain\_Logo\_RGB\_white-bijgesneden (1)](https://portal.sandgrain.eu/hs-fs/hubfs/SandGrain_Logo_RGB_white-bijgesneden%20(1).png?width=427&height=83&name=SandGrain_Logo_RGB_white-bijgesneden%20(1).png)

Open main navigation

Close main navigation

- English
  
  Show submenu for translations
- [Contact us](https://portal.sandgrain.eu/login)

[Contact us](https://portal.sandgrain.eu/login?hsLang=en)

 How can we help you?

- There are no suggestions because the search field is empty.

1. [Knowledge Base](https://portal.sandgrain.eu/knowledge-base?hsLang=en)
2. [SDK](https://portal.sandgrain.eu/knowledge-base/sdk?hsLang=en)
3. [SandGrain SDK](https://portal.sandgrain.eu/knowledge-base/sdk?hsLang=en#sandgrain-sdk)

October 6, 2026

# System Requirements & Compatibility

**Who this is for:** Anyone preparing a machine to run the SandGrain SDK.

**What you'll accomplish:** Confirm your operating system, tools, and hardware are supported before you install.

### Supported operating systems

The SDK runs on:

- **Windows** (through WSL, the Windows Subsystem for Linux)
- **Linux** (Ubuntu/Debian, Fedora/RHEL/Rocky/Alma, Arch/Manjaro)
- **macOS** (Apple Silicon or Intel)
- **Raspberry Pi** (any 64-bit model, Pi 4 / Pi 5 / Pi 400, running 64-bit Raspberry Pi OS or Ubuntu Server; ARMv7 works too but builds are slower)

The Device and Gateway are compiled with GCC as Linux binaries (`test_device` / `test_gw`). They do **not** compile or run on native Windows, that's why Windows uses WSL.

#### Languages

- **C**: the Device and Gateway SDK
- **Python**: the Cloud SDK agent

#### Required tools

| Tool | Why you need it | Minimum |
| --- | --- | --- |
| **Git** | Clone the repository | Any recent version |
| **Node.js LTS** | The TrustBridge backend seed runner uses ts-node; the frontend uses Vite | v20 or higher |
| **Docker** (Engine + Compose v2, or Docker Desktop) | Runs the database, MQTT broker, backend, frontend, and Cloud SDK as containers | Any recent version |
| **WSL** (Windows only) | Provides the Linux environment the firmware, broker, and Python need | WSL 2 |
| **GCC / make / libmosquitto / libftdi** | Build the C device-side SDK | Only needed if you have SandGrain hardware |

#### Hardware

- **1× SandGrain USB Token** for the device node. The unit running in **Device mode** must have the Token attached via USB/SPI. The Gateway does not require its own Token by default.
- For a **split (two-machine) setup**: two hosts on the same network, one for the Gateway, one for the Device with the Token. The Raspberry Pi walkthrough uses two Pis plus a laptop for the TrustBridge stack.

### Bluetooth LE / Nordic board variant

There is also a Bluetooth LE variant where the device SDK runs on Nordic boards instead of a USB Token on a PC. If that's your setup, you'll also need:

- **Hardware:** one or more **Nordic nRF54L15-DK** boards (each fitted with its SGB security chip and a USB cable), and a Raspberry Pi *with built-in Bluetooth* to act as the gateway.
- **Board build tools:** Nordic's **nRF Connect SDK v3.3.0** (installed via the nRF Connect for VS Code extension pack, or nRF Connect for Desktop), plus the **SEGGER J-Link** driver. On Linux, also install Nordic's `nrf-udev` USB permission rules.
- **A serial terminal** that can send keystrokes (PuTTY, VS Code Serial Monitor, or `miniterm`) at **115200** baud.

> **Different branch.** The BLE variant runs on `release/v3.6.1`.
> 
> See [Nordic nRF54L15 over BLE](https://portal.sandgrain.eu/knowledge-base/what-question-is-your-article-answeringwalkthrough-nordic-nrf54l15-boards-over-bluetooth-le?hsLang=en).

### LTE / cellular variant (Nordic nRF9151-DK)

There is also a cellular variant where a single Nordic nRF9151-DK board runs the gateway-mode SDK and talks MQTT over LTE directly to a hosted TrustBridge stack, with no gateway, laptop, or local Docker. If that's your setup, you'll also need:

- **Hardware:** an **nRF9151-DK** with the LTE antenna fitted, an **SGT1001 crypto chip** with six jumper wires (wired to the SPI header), and an **activated SIM** with data in LTE-M or NB-IoT coverage.
- **Build tools (build machine only):** Nordic's **nRF Connect SDK v3.3.0** (via the Toolchain Manager), the **SEGGER J-Link** driver, and **nRF Util**. A machine that only flashes a prebuilt hex needs nRF Util and J-Link, nothing else. On Linux/macOS the flash script needs **PowerShell 7**, or you can drive `west` and `nrfutil` by hand.
- **A serial terminal** that can send keystrokes (PuTTY, VS Code Serial Monitor, or `miniterm`) at **115200** baud.
- **Network access to the hosted broker** over plain TCP on port 1883 (outbound only).

> **Different branch.** The cellular variant runs on `release/v3.6.2`.
> 
> See [*Nordic nRF9151-DK over LTE / Cellular*](https://portal.sandgrain.eu/knowledge-base/walkthrough-nordic-nrf9151-dk-over-lte-/-cellular?hsLang=en).

### Latest supported version

- **`release/v3.6.0`**: this is the branch the USB-Token walkthroughs assume. Keep your clone on this branch.

### Quick pre-flight

You'll verify each tool during setup, but the versions you're aiming for are:

```
git --version node --version        # v20.x or higher npm --version docker --version docker compose version gcc --version         # only if you'll build the SDK 
```

None of these should report "not found."

- [User Documentation](https://portal.sandgrain.eu/knowledge-base/user-documentation?hsLang=en#main-content)

    - [Quick Starter Guide](https://portal.sandgrain.eu/knowledge-base/user-documentation?hsLang=en#quick-starter-guide)
    - [User Manual](https://portal.sandgrain.eu/knowledge-base/user-documentation?hsLang=en#user-manual)
    - [Whitepaper](https://portal.sandgrain.eu/knowledge-base/user-documentation?hsLang=en#whitepaper)
    - [Token Leaflet](https://portal.sandgrain.eu/knowledge-base/user-documentation?hsLang=en#token-leaflet)
    - [Claim Token Procedure](https://portal.sandgrain.eu/knowledge-base/user-documentation?hsLang=en#claim-token-procedure)
    - [Daisy Chain](https://portal.sandgrain.eu/knowledge-base/user-documentation?hsLang=en#daisy-chain)
    - [Release Note](https://portal.sandgrain.eu/knowledge-base/user-documentation?hsLang=en#release-note)
    - [Naming Convention](https://portal.sandgrain.eu/knowledge-base/user-documentation?hsLang=en#naming-convention)
    - [SandGrain SDK](https://portal.sandgrain.eu/knowledge-base/user-documentation?hsLang=en#sandgrain-sdk)
    - [TrustBridge](https://portal.sandgrain.eu/knowledge-base/user-documentation?hsLang=en#trustbridge)
- [API Documentation](https://portal.sandgrain.eu/knowledge-base/api-documentation?hsLang=en#main-content)

    - [Device API Integration](https://portal.sandgrain.eu/knowledge-base/api-documentation?hsLang=en#device-api-integration)
    - [Daisy Chain and Attestation](https://portal.sandgrain.eu/knowledge-base/api-documentation?hsLang=en#daisy-chain-and-attestation)
- [SDK](https://portal.sandgrain.eu/knowledge-base/sdk?hsLang=en#main-content)

    - [Core Functions](https://portal.sandgrain.eu/knowledge-base/sdk?hsLang=en#core-functions)
    - [SandGrain SDK](https://portal.sandgrain.eu/knowledge-base/sdk?hsLang=en#sandgrain-sdk)

[![SandGrain\_Logo\_RGB\_white-bijgesneden (1)-1](https://portal.sandgrain.eu/hs-fs/hubfs/SandGrain_Logo_RGB_white-bijgesneden%20(1)-1.png?width=427&height=83&name=SandGrain_Logo_RGB_white-bijgesneden%20(1)-1.png "SandGrain_Logo_RGB_white-bijgesneden (1)-1")](https://portal.sandgrain.eu/?hsLang=en)

<https://www.facebook.com/> <https://www.twitter.com/> <https://www.instagram.com/> <https://podcasts.apple.com/> [mailto:email@email.com](mailto:email@email.com)

Copyright © 2026, sandgrain.eu