A repository teaching you how to use and implement the BITS framework
This comprehensive tutorial takes beamline scientists from understanding their EPICS IOCs to creating a fully functional BITS deployment with their own GitHub repository.
Target Audience: Beamline scientists with EPICS IOCs who want to implement Bluesky data acquisition
Prerequisites:
- Running EPICS IOCs (we provide containerized examples)
- Basic Python knowledge
- Git/GitHub familiarity
- Linux/macOS environment
Time Commitment: ~2-3 hours for complete tutorial
End Result: Production-ready BITS deployment in your own GitHub repository
| Step | Topic | Duration | Deliverable |
|---|---|---|---|
| 00 | Introduction & Prerequisites | 10 min | Environment setup |
| 01 | IOC Exploration & Device Discovery | 20 min | Device inventory |
| 02 | Device Configuration | 30 min | Working devices |
| 03 | Scan Plan Development | 25 min | Custom plans |
| 04 | IPython Interactive Use | 15 min | Live operation |
# 1. Start the demo IOCs
cd bits_demo/scripts
./start_demo_iocs.sh
# 2. Explore your IOCs
python explore_iocs.py
# 3. Follow the tutorial step by step
# Start with tutorial/00_introduction.md- IOC Understanding: How to discover and categorize devices in your IOCs
- BITS Architecture: Complete understanding of the BITS framework
- Device Integration: Map EPICS PVs to Bluesky devices
- Plan Development: Create custom scan plans for your experiment
By the end of this tutorial, you'll have:
- Working Instrument Package: Complete BITS deployment controlling your IOCs
- GitHub Repository: Professionally deployed repository with documentation
- Custom Scan Plans: Tailored to your experimental needs
- Data Analysis Tools: Jupyter notebooks and visualization setup
- Remote Capabilities: Queue server for unattended operation
- Validation Framework: Tools to verify system functionality
- Scripts: Automated validation and troubleshooting tools in
scripts/ - Examples: Working examples for all concepts in
examples/ - Templates: Ready-to-use templates in
templates/ - Documentation: Comprehensive guides in
tutorial/
If you encounter issues:
- Check the troubleshooting section in each tutorial step
- Run validation scripts in
scripts/ - Review the FAQ in the final verification step
This tutorial includes two containerized IOCs for learning:
- adsim IOC (
adsim:): Area Detector simulation with 2D detector - gp IOC (
gp:): General purpose IOC with 20 motors, 3 scalers, and support records
These provide a realistic learning environment without requiring physical hardware.
After completing this tutorial:
- Adapt the examples to your actual hardware
- Customize scan plans for your scientific requirements
- Deploy to your beamline environment
- Share with your team through GitHub
- Extend with additional devices and capabilities
Ready to start? → Begin with Tutorial Introduction