Skip to content

Firmware for ESP32-based LEDswarm controllers which use DWM3000 ultra-wideband for decimeter-level ranging

License

Notifications You must be signed in to change notification settings

LEDswarm/firmware_uwb

Repository files navigation

breadboard prototype illustration

This repository contains the main firmware for LEDswarm controllers, although currently only on the Makerfabs DW3000 board. More board support will come soon.

Getting Started

Make sure you have cargo-espflash installed, then simply run make to build and flash to a connected ESP32 device:

    make

Prerequisites

Install cargo-espflash:

    cargo install cargo-espflash

Controller States

1. Discovery

The controller is currently trying to find nearby devices to build a mesh with. If no devices are found within 30 seconds, the controller will switch itself into Master mode, start a new mesh network using the ultra-wideband radio and wait for other controllers to join the session over UWB.

Status Code

Blinks cyan for a second followed by a pause of equal length.

timeline of 1-second cyan blinking followed by pause of equal length

2. Connecting

The controller has found a nearby mesh and is currently trying to join the existing session.

Status Code

Blinks cyan for a half a second followed by a pause of equal length, the same as the previous code but twice as fast.

timeline of half-second cyan blinking followed by pause of equal length

3. Client

The controller is currently connected to an UWB mesh in client (non-master) mode.

Status Code

Three quick green blinks to indicate a successful connection.

timeline of half-second cyan blinking followed by pause of equal length

4. Server Meditation

The controller is managing a mesh network along with a Wi-Fi hotspot and waits for other controllers to join the session so that it can start a game.

Status Code

The server meditates with a circulating rainbow until a second UWB device joins the session.

timeline of half-second cyan blinking followed by pause of equal length

Releases

No releases published

Packages

No packages published