Skip to content

Repository files navigation

nu-manager

nu-manager aims to be the next generation of Micro-manager.

Design philosophy

  • 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.

Testing devices on your hardware

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.

Run Examples

Example commands and recorded outputs are listed in docs/run_examples.md.

Core Model

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.

Device Index

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.

Hardware devices

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 -

Metadevices

Device family Scope
Autofocus providers Provider-neutral autofocus capability implemented by Squid/Octopi, ASI Tiger CRISP, and SutterStage, with composed simulation listed below

Simulators

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

License

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).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages