nu-manager aims to be the next generation of Micro-manager.
- Pure Rust implementation. This gives the speed of C++ but without the gun
- Just a driver collection - a single GUI cannot cover all use cases well, so it's out of scope
- No "core". It's hard to make one-fits-all model of all hardware, so this is delegated to downstream
- A full DAG (direct acyclic graph) of drivers, enabling implementation of metadrivers (autofocus etc)
- All kinds of lab hardware is in scope, as at some point you might want to connect the microscope to a robot or other hardware
- All operation are asynchronous
- Native protocol backends whenever feasible
Under development: APIs and device coverage are still changing. Real hardware validation is still needed for most drivers. Device pages state what has and has not been tested.
Use the software-test GUI or the generic workflow examples first. If behavior differs from the device page, capture the device model, firmware version, configuration, command output, and any hardware log or trace that can anchor a fix.
Example commands and recorded outputs are listed in
docs/run_examples.md.
nu-manager treats each instrument as a set of typed devices and operations. A
controller can expose several logical devices, such as a camera, stage, light
source, filter wheel, or autofocus provider, while the driver keeps the hardware
protocol details behind the API.
Applications normally read or set typed properties, invoke capabilities such as
capture or stage movement, and listen for completion/events from the runtime.
The detailed API vocabulary is in docs/core_model.md.
Detailed support, provenance, capability, and property tables live under
docs/devices/. The cross-driver evidence and
validation audit is tracked in docs/devices/evidence.md.
The hardware table below is the implementation checklist. Each row states the
support currently implemented from available protocol evidence; the hardware
marker only records whether that implementation has also been validated on a
real device. ✓ means validated on hardware, and - means not yet validated.
Unknown hardware operations fail explicitly when the device page does not
record enough protocol evidence for an implementation.
| Driver family | Implemented support | Tested on hardware |
|---|---|---|
| ABS legacy USB cameras | Runtime-package evidence, writable exposure, explicit software trigger, opt-in vendor-runtime capture, and repeated-capture stream | - |
| Agilent/Keysight Laser Combiner | Laser control and readback | - |
| Andor SDK2 cameras | USB discovery, firmware/runtime package checks, EP0 control helpers, opt-in live Mono16 capture, and vendor-runtime exposure/detector/cooler control | - |
| Andor SDK3 cameras | USB discovery, hidden FX3 firmware init, EP0 status readback, runtime package checks, vendor-runtime feature control, and Mono16 capture | - |
| Arduino controller | Firmware protocol control plus opt-in real serial read/write | - |
| Arduino Counter | Counter/pulse protocol control plus opt-in real serial readback | - |
| ASI MS-2000/Tiger | Serial stage, Tiger TTL/ring-buffer, and CRISP autofocus control/readback | - |
| Bluebox Optics niji | Serial light output and status | - |
| Cephla Squid/Octopi | Serial controller motion, illumination, trigger, autofocus, and status | - |
| 3Z Optics IRIS | Source-backed Modbus-style serial light-source control and readback | - |
| Chuo Seiki QT stages | Serial stage startup, control, and status | - |
| ITK Corvus stages | Serial stage control and status | - |
| Cobolt/Hubner lasers | Serial laser control and telemetry | - |
| Coherent OBIS lasers | Serial laser control and telemetry | - |
| CoolLED pE series | Serial illumination control and readback | - |
| ESP32 controller | Serial GPIO, PWM/shutter, ADC, and XY/Z stage control/readback | - |
| Euresys eGrabber frame grabbers | Configured GenTL producer checks plus default-off SDK interface/device inventory | - |
| Evident/Olympus IX85 | Serial focus, state-device, shutter, timing endpoints, and body readback/control | - |
| GenICam node maps | Node-map execution model with maintenance filtering and local frame source | - |
| GigE Vision cameras | GVCP/GVSP model plus opt-in UDP GVCP mapped-property and raw-register access | - |
| Hamilton Serial MVP valves | Serial valve control and readback | - |
| Lumencor Spectra/SpectraX/CIA | Serial illumination control and readback | - |
| Lumenera Lu130 / Bio-Rad Gel Doc EZ cameras | USB discovery and hidden firmware initialization; imaging capture/control awaits wire-protocol evidence | - |
| Marzhauser TANGO/L-Step | Serial stage control and status | - |
| Mad City Labs MicroDrive/NanoDrive | USB descriptor discovery, MicroDrive raw encoder/status readback, fixed-length raw control read/actions, and firmware/runtime package checks | - |
| Modbus mapped IO | Modbus RTU/TCP mapped IO with explicit real transport | - |
| Mightex buffered USB cameras | Runtime-package evidence, writable capture settings, opt-in vendor-runtime Mono16/Raw16 capture, and repeated-capture stream | - |
| Mightex Sirius BLS/SLC | HID light output, trigger/strobe setup, and rule/readback helpers | - |
| Okolab environmental controllers | Serial environmental control and readback | - |
| Omicron serial lasers | Serial laser control and telemetry | - |
| Opentrons OT-2 | HTTP health, inventory/readback, run actions, gantry home/move, temperature-module control, and camera snapshot | - |
| OpenStage | Serial XYZ motion, settings, and readback | - |
| OpenUC2 Feather | JSON-line motion/light control plus opt-in real serial | - |
| OS/platform cameras | Descriptor-only V4L2 discovery plus explicit V4L2 read capture and local frame source | - |
| Photometrics/QImaging PVCAM cameras | USB discovery, verified PVCAM runtime discovery, one-shot capture, repeated-capture stream, and temperature setpoint control | - |
| PI GCS/GCS2 | Serial stage motion/home/stop, servo/profile/reference/status readback, typed velocity/acceleration settings, and timing endpoint hooks | - |
| Prior ProScan/OptiScan | Serial stage, NanoScan Z, filter, shutter, TTL, Lumen, native speed/acceleration, and readback helpers | - |
| Spark Cyto | TDCL/CAN graph and transaction model for plate, detector, environment, imaging-head, and camera-binding workflows | - |
| Spectral LMM5 | Serial light-source control and readback | - |
| Standa 8SMC4 | Serial single-axis motion, status, and settings readback | - |
| Starlight Xpress filter wheels | Spec-backed serial and explicit/autodiscovered USB HID control | - |
| Sutter/Ludl-compatible stages | Serial stage control and readback | - |
| Sutter MP-285 | Serial stage control and readback | - |
| Teensy pulse generator | Binary pulse control plus opt-in real serial readback | - |
| Thorlabs APT motors | Serial APT motion/home/stop, status, position, identity, velocity profile, and keep-alive helpers | - |
| Thorlabs DC LED controllers | Serial/USBTMC LED control and readback | - |
| Thorlabs KURIOS | Serial filter control and readback | - |
| Thorlabs SC10 | Serial shutter control and readback | - |
| TriggerScope | Serial TTL/camera trigger, DAC, focus, and timing-program control | - |
| Trinamic TMCL stages | Serial motion and readback | - |
| Toupcam/AmScope cameras | Config-backed geometry plus live userspace USB camera backend and local frame source | ✓ |
| USB3 Vision cameras | U3V command/stream model plus opt-in USB open, endpoint catalog, and live command ReadMem/WriteMem path | - |
| Velleman K8055/VM110 and K8061/VM140 IO boards | USB analog, digital, PWM, and counter IO | - |
| Warwick Open-Source Microscope | v0.900 command-page-backed TCP stage, switch/shutter, light, and digital input plus legacy switch-sequence, blanking, pull-up, and raw analog readback | - |
| Xeryon ASCII piezo stages | ASCII serial stage motion, velocity, status, and readback | - |
| Xeryon integrated CANopen stages | CiA 402 transaction planning, optional live SocketCAN/SLCAN NMT/SDO execution, and EDS object parsing | - |
| Zaber ASCII stages | ASCII motion and readback | - |
| Device family | Scope |
|---|---|
| Autofocus providers | Provider-neutral autofocus capability implemented by Squid/Octopi, ASI Tiger CRISP, and SutterStage, with composed simulation listed below |
| Device family | Scope |
|---|---|
| Biological system simulation | Biological-model-oriented system simulation |
| Laser-scanning microscope simulation | Confocal capture, image stream, and signal stream output over the shared procedural cell-culture model |
| Composed microscope and LSM simulation | Brightfield camera and LSM APIs in one simulator driver with shared stage, focus, objective, lamp, and specimen state |
| Brightfield microscope simulation | One composed microscope over a shared procedural cell-culture model: camera, XY/Z motion, three-position objective turret, transmitted-light lamp, and a published optical calibration chain |
MIT if nothing else mentioned
Exceptions under data/third_party/ are third-party data and are not
covered by this repository's common license terms.
Note that the code is largely AI-generated. Thus please review code in any scenario when the license is especially important (e.g., if you copy parts of it).