APS Bluesky Software Ecosystem Overview#
This document provides an overview of key GitHub repositories maintained and used by the APS for integrating the Bluesky data acquisition framework into beamline operations.
BITS Ecosystem Diagram#
The following figure describes the relationships among the various repositories and modules that compose or support the BITS framework at APS.
![digraph BITS_Ecosystem {
rankdir=LR;
node [shape=box style=filled fillcolor=lightgrey fontname="Arial"];
{rank=min;
BITS [label="BITS\n(Main Package)", shape=ellipse, fillcolor=lightblue];
training [label="Bluesky_training\n(Training Resources)", shape=ellipse, fillcolor=lightblue];
}
apsbits [label="apsbits\n(Core Functionality)", shape=ellipse, fillcolor=lightyellow];
demo_instr [label="demo_instrument\n(Standard Instrument)"];
demo_qserver [label="demo_qserver\n(Standard QServer)"];
{rank=same;
apstools [label="apstools\n(Devices, Plans, Callbacks)", shape=ellipse, fillcolor=lightblue];
guarneri [label="guarneri\n(Ophyd Loader)", shape=ellipse, fillcolor=lightblue];
hklpy2 [label="hklpy2\n(Diffractometer Support)", shape=ellipse, fillcolor=lightblue];
}
{rank=same;
BITS_Starter [label="BITS-Starter\n(Starter Repo)", shape=ellipse, fillcolor=lightblue];
guarneri_maker [label="guarneri_maker\n(Ophyd Loader Maker)", shape=ellipse, fillcolor=lightyellow];
apst_devices [label="apstools_devices\n(Devices)", shape=ellipse, fillcolor=lightyellow];
apst_plans [label="apstools_plans\n(Plans)", shape=ellipse, fillcolor=lightyellow];
apst_callbacks [label="apstools_callbacks\n(Callbacks)", shape=ellipse, fillcolor=lightyellow];
apst_utils [label="apstools_utils\n(Utils)", shape=ellipse, fillcolor=lightyellow];
}
new_instrument [label="new_instrument\n(New Instrument)", shape=ellipse, fillcolor=lightblue];
BITS -> apsbits [label="includes"];
{demo_instr demo_qserver} -> BITS_Starter [label="source for"];
BITS_Starter -> new_instrument [label="template for"];
apsbits -> {demo_instr demo_qserver} [label="provides"];
BITS -> apstools [label="uses"];
apstools -> {apst_devices apst_plans apst_callbacks apst_utils} [label="includes"];
{apst_devices apst_plans apst_callbacks apst_utils} -> new_instrument [label="provides"];
BITS -> guarneri [label="uses"];
guarneri -> guarneri_maker [label="includes"];
guarneri_maker -> new_instrument [label="provides"];
BITS -> hklpy2 [label="uses"];
training -> BITS [label="supports"];
}](_images/graphviz-1689f547901b3415b842ed05f85176bf3d6dc054.png)
Repository Descriptions#
-
The central repository for APS efforts to integrate Bluesky into beamline environments. It provides configuration, utilities, and architectural support for deploying Bluesky-based instruments at the APS.
-
A template repository for creating new BITS-compatible Bluesky instruments. Offers a boilerplate structure to streamline deployment.
apsbits (submodule in BITS)
Core BITS functionality. Encapsulates the logic and base configurations used by BITS instruments.
apsbits/demo_instrument: A reference Bluesky instrument showcasing a standard BITS-compliant setup.
apsbits/demo_qserver: A reference QServer that integrates with the demo instrument.
-
A general-purpose utility library with reusable Bluesky components:
apstools.devices: Collection of commonly used Ophyd devices across APS beamlines.
apstools.plans: Frequently used Bluesky plans tailored to APS experiments.
apstools.callbacks: Ready-made Bluesky callbacks for logging, visualization, and monitoring.
-
A device registry and dynamic loader for Ophyd. Simplifies the instantiation and reuse of instrument configurations.
-
Diffractometer as ophyd PseudoPositioner. Supports Bluesky operations with various diffractometer geometries in both reciprocal space and real space.
`Bluesky_training` (Work In Progress)
A complete training suite developed to support APS beamline scientists and users adopting the Bluesky ecosystem. Includes examples, tutorials, and curriculum materials.
Summary#
These packages form a modular and extensible software stack supporting the transition to Bluesky at APS. They emphasize reuse, standardization, and training, enabling robust and scalable data acquisition workflows across beamlines.