Skip to content

Luxnode

Luxnode is an open spectroscopy stack: handheld hardware, firmware, Python analysis, module-specific algorithms, and cloud workflows that stay inspectable.

The repository is split into two layers:

  • lux: core numerical spectroscopy algorithms and domain modules.
  • luxspec: public Python SDK for Luxnode devices, telemetry frames, clients, version compatibility, and user-facing analysis.

Current V0 Scope

  • Hamamatsu C12880MA VIS/NIR first-light path.
  • Optional UV/VIS module planning around C16767MA and quartz cuvettes.
  • Serial JSON acquisition from ESP32-S3 firmware.
  • Dark/reference correction, absorbance, reflectance, smoothing, baseline correction, peak picking, matching, and module metrics.
  • Tutorials for plants, minerals, beer, kombucha, and raw Lux Cloud jobs.

Install

pip install luxspec

For the repository checkout:

git clone https://github.com/su3-labs/lux.git
cd lux
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,serial,docs]"

First Python Object

from luxspec import LuxFrame

frame = LuxFrame.from_mapping({
    "device": "luxnode-v0",
    "kind": "raw",
    "pixels": [101, 104, 108, 120, 119],
})

spectrum = frame.to_spectrum()