Grayson Bellamy

Building typed, async Python for scientific instruments and fire-science data.

I write open-source tooling for controlling lab instruments and turning their raw output into analyzable data — from serial/Modbus device drivers to file parsers and full acquisition applications.

Applications

capa

Python

Control & DAQ for a custom controlled-atmosphere pyrolysis instrument. Async workers drive NI-DAQ, Watlow heaters, Alicat MFCs, Sartorius balances, and cameras; every run seals into a self-contained bundle.

Instrument drivers

alicatlib

Python

Typed Python library for Alicat Scientific instruments over serial — flow & pressure, meters & controllers, gas & liquid, plus CODA.

sartoriuslib

Python

Async Python client for Sartorius lab balances over RS-232/USB — SBI & xBPI protocols, streaming reads, persistent SQLite sinks, and a typed CLI.

servomexlib

Python

Async Python driver for Servomex SERVOPRO 4000-series gas analysers — one channel-oriented API over Continuous ASCII, Modbus RTU, and Modbus ASCII.

watlowlib

Python

Async Python driver for Watlow temperature controllers — one API over Standard Bus (BACnet MS/TP) and Modbus RTU, with auto-detect and drift-free streaming.

nidaqlib

Python

Typed, lifecycle-managed NI-DAQmx acquisition for Python — declarative task specs, async/sync APIs, TDMS/Parquet/SQLite logging, and hardware-free testing.

dtollib

Python

Typed async acquisition layer for Data Translation DT9805/DT9806 USB modules — ctypes binding to the DataAcq SDK with software thermocouple linearization.

Comms foundations

anyserial

Python

Low-latency async serial I/O for Python, built on AnyIO.

anymodbus

Python

Async-native Modbus RTU client on AnyIO + anyserial — runs under asyncio, uvloop, or trio. Strict-typed, with hardware-free test helpers.

Analysis & data

pyngb

Python

Parse and analyze NETZSCH STA NGB files in Python.

pyhfm

Python

Read and analyze Heat Flow Meter (HFM) data files in Python.

psplines

Python

P-splines (penalized B-splines) implementation for Python.

pyfds

Python

Python interface to the NIST Fire Dynamics Simulator (FDS).