Building Lab Software

Last Updated: June 4, 2026

Guides, not snippets. Where the reference pages give you a working example to adapt, these walk through building lab software — the design decisions, the trade-offs, and the structure that keeps a growing project maintainable. They build on each other, so read them in order the first time.

  1. Instrument Wrapper Classes — wrapping an instrument in a reusable Device class; subclassing for a specific model.
  2. Sharing an Instrument Across Processes — a socket server that arbitrates access so multiple scripts or threads can use one bus without conflict.
  3. Structuring a Data-Acquisition App — organizing files, acquisition loops, and threading into a maintainable data-taking application.
  4. Building a GUI — a live-plotting desktop app with PySide6 + PyQtGraph (with a note on Tkinter for lighter needs).
  5. Architecting a Lab App (MVC) — separating View, Model, and Controller; hardware abstraction; thread-safety via signals; offline/mock mode.

Back to Python for Lab Work