What is Nyx?

The Nyx project introduces a protocol, backward-compatible with INDI 1.7, for controlling astronomical hardware.

It enhances INDI by supporting multiple independent nodes, each with its own embedded protocol stack. The nodes can communicate via an MQTT broker, a Redis cache (low latency streams) or directly over TCP, offering flexibility and scalability for distributed systems.

The core library is written in C99 and requires no dependencies in a POSIX environment. Its low footprint makes it suitable for deployment on microcontrollers (ESP, Cortex-M, ...).


↪ Installing Nyx

Open source

Nyx is released under GPL 2.0 for the POSIX / Windows layer and under LGPL 3.0 for the Arduino one.

Cross-platform

The core library compiles in any POSIX, Windows, Arduino or GNU Radio environment.

Distributed and scalable

Nyx allows drivers to be controlled locally or remotely. The infrastructure scales by deploying parallel nodes.

Easy development

Easy design of driver skeletons using our dedicated wizard. Two versions are available: desktop and Web.

↪ Launch the Web app.

Client agnostic

Nyx drivers can be controlled using any INDI 1.7-compliant software. Two versions of our dedicated software are also available: desktop and Web.

↪ Launch the Web app.

Documentation

The documentation provides an introduction to the ecosystem enabling fast and easy driver development.

↪ Read the documentation


Example of Nyx architecture

Getting started

Design a driver/node with Nyx Assistant and generate the code skeleton.

Deploying a Nyx node

Deploy a Nyx driver/node on a POSIX or Arduino system.

Controlling Nyx devices

Use Nyx Dashboard or any INDI 1.7-compliant software.

GNU Radio integration