Skip to content

Changelog¤

1.1.0 (2026-07-06)¤

Features¤

  • cli: add --version listing installed instro packages (#228) (baea5fd)
  • cli: report backend and interface coverage in discover (#226) (abe1b1b)
  • publishers: add jsonl format and deprecate the array-JSON writer (#227) (ce5a1b9)
  • rearrange README, add badges, and add unstable extra (#207) (98c4103)

Bug Fixes¤

1.0.1 (2026-07-02)¤

Bug Fixes¤

  • visa: quiet pyvisa-py fallback on the healthy path (#192) (e3c675d)

1.0.0 (2026-07-02)¤

Miscellaneous¤

0.14.0 (2026-06-30)¤

⚠ BREAKING CHANGES¤

  • scope: graduate InstroScope from instro-unstable to core (#167)

Features¤

  • ethernetip: graduate EtherNet/IP out of unstable into a dedicated package (#178) (4f716e4)
  • psu: add support for matrix WPS300s [closes #124] (#125) (5e84286)
  • scope: graduate InstroScope from instro-unstable to core (#167) (787a8ba)

Bug Fixes¤

  • ethernetip: kill cpppo simulator process tree on test teardown (#174) (f9e00e8)

0.13.0 (2026-06-25)¤

⚠ BREAKING CHANGES¤

  • 149 bug documentation for get channel does not match behavior (#151)

Features¤

  • cli: add instro discover command (#99) (699648c)
  • instrument: auto-prepend instrument name in get_channel (#152) (e807209), closes #147

Bug Fixes¤

  • 149 bug documentation for get channel does not match behavior (#151) (f4f3966)
  • closes #149. First, updates documentation about timeout behavior. (f4f3966)
  • transports: disable Nagle on raw TCP sockets for pyvisa-py (#157) (e1ce26a)

0.12.1 (2026-06-24)¤

Bug Fixes¤

  • dmm: apply Agilent34401A manual range without requiring set_digits (#148) (563aabb)
  • dmm: record measurement function only after driver accepts it (#146) (d720cf1)
  • ethernetip: disable cpppo UDP in simulator tests (#137) (4048fbf)
  • ethernetip: remove strings from Python EIP surface (#128) (c133d81)
  • visa: catch pyvisa errors so @ivi to @py fallback fires correctly (#136) (9329df6)

0.12.0 (2026-06-22)¤

Features¤

0.11.0 (2026-06-17)¤

⚠ BREAKING CHANGES¤

  • psu: update bk 914X with OVP, OCP, and remote sense (#93)
  • psu: remove default channel selection from psu drivers (#106)

Features¤

  • psu: add OVP, OCP, remote sense to bk 9115 (#94) (783f753)
  • psu: add Rigol DP800 ovp, ocp, and remote sense (#114) (d1f1587)
  • psu: update bk 914X with OVP, OCP, and remote sense (#93) (df0e28f)
  • psu: update tdk genesys with ovp, ocp, remote sense (#104) (1bd22a0)

Bug Fixes¤

  • build: resolve Git Bash for just recipes on Windows (#110) (8c8ae6b)
  • daq: guard NI fetch_analog against fetch before start() (#116) (2e2f4bc)
  • daq: make close() tolerant of double-close and failed open (#108) (5474c98)
  • daq: mcc fetch path integrity fix (#113) (aa68289)
  • daq: raise clear error when DAQ methods are called before open() (#97) (9f9ed5d)
  • lib: bundle every pyvisa-py backend for clean-install VISA support (#103) (60604dc)
  • psu: remove default channel selection from psu drivers (#106) (45c6423)

0.10.0 (2026-06-12)¤

⚠ BREAKING CHANGES¤

  • psu: support simulated protection and sense (#47)
  • psu: add tui for sim and refactor command set for ovp ocp and remote sense (#30)

Features¤

  • ethernetip: batch reads (#68) (0afb900)
  • psu: add tui for sim and refactor command set for ovp ocp and remote sense (#30) (16f89b2)
  • psu: support simulated protection and sense (#47) (0ad4cf0)

Bug Fixes¤

  • test: bind ephemeral port in simulated PSU socket test (#98) (0658721)

0.9.0 (2026-06-10)¤

⚠ BREAKING CHANGES¤

  • daq: decouple acquisition start from the daemon thread (#62)
  • daq: make driver channel/timing state private and read-only (#56)

Features¤

  • daq: make driver channel/timing state private and read-only (#56) (c34cf0d)
  • psu: add Keysight E36100 support (#48) (417035e)
  • psu: update Siglent SPD3303X driver and tests (#55) (a07f0f3)
  • scope: add hardware-validated Siglent SDS1104X-E driver (#74) (b572a87)

Bug Fixes¤

  • daq: stop kwarg crash and samples_per_channel=0 below 10 Hz (#83) (6539284)
  • dmm: accept the Keithley 2400 signed +0 no-error reply (#85) (2af65da)
  • lib,daq: make Instrument start/stop/start restartable (#81) (eb60201)
  • lib: stop closing the shared pyvisa ResourceManager in VisaDriver (#79) (1865d61)

Miscellaneous¤

  • daq: decouple acquisition start from the daemon thread (#62) (52c9f8b)

0.8.0 (2026-06-02)¤

⚠ BREAKING CHANGES¤

  • daq: split digital line and port configuration into separate methods (#36)
  • daq: require fully-qualified NI physical channel names (#41)
  • daq: remove InstroDAQFacade; driver owns channel/timing state (#19)

Features¤

  • daq: implement digital port read/write for NI and Keysight drivers (#50) (3150ae0)
  • daq: require fully-qualified NI physical channel names (#41) (a9dbdfd)
  • psu: add ovp, ocp, and remote sense method signatures (#31) (ecd4071)

Bug Fixes¤

  • psu: expect "+0" from TDK Lambda SYST:ERR? response (#54) (5f9e4a9)
  • tests: add tests/init.py so pyaardvark's bundled tests package stops shadowing (#44) (d755f95)

Miscellaneous¤

  • daq: remove InstroDAQFacade; driver owns channel/timing state (#19) (cd43847)
  • daq: split digital line and port configuration into separate methods (#36) (52c8c44)

0.7.0 (2026-05-27)¤

Features¤

0.6.0 (2026-05-01)¤

Features¤

  • add CD workflow to publish instro-unstable to GemFury (#167) (b210ccd)
  • add core logging capabilities (#148) (98c7c05)
  • add experimental workspace package for in-development features (#154) (e1a4b82)
  • add mccdaq driver (#82) (c6acfee)
  • add instro-unstable package alongside experimental (#165) (e57c218)
  • ethernetip: add experimental rust bindings (#164) (6ec03b0)
  • modbus: add config types foundation for InstroModbus (#155) (0aab181)
  • modbus: add config validation for swaps, scale, and overlaps (#157) (2c5d86b)
  • modbus: add InstroModbus core read/write (#156) (97a18f7)
  • modbus: add read groups, bitmap extraction, background polling (#159) (8ddc7a0)
  • modbus: add write safety — value maps, limits, type checking (#158) (1cf0301)
  • scope: add Keysight 1200X oscilloscope driver (#175) (34bfb2e)
  • scope: add InstroScope instrument class (#172) (5e21937)
  • scope: add oscilloscope types and driver base classes (#171) (ce666f2)
  • scope: add scope public API and driver discovery (#173) (502b259)
  • scope: add Tektronix 2 Series MSO driver (#174) (855a61e)
  • use absolute timestamps for fetch waveform data (#187) (ddced95)

Bug Fixes¤

  • add actions read permission (#153) (dc696eb)
  • dmm: don't start reading from DMM if not fully configured (#145) (e56db93)

0.5.2 (2026-03-20)¤

Bug Fixes¤

  • daq: fix DAQ data integrity due to poor timestamp algorithm (#134) (db67690)

0.5.1 (2026-02-23)¤

Features¤

  • adding relay for the keysight_34980a (#114) (0f25773)
  • reduce NominalConnectPublisher import path (#120) (d6ca816)

Bug Fixes¤

  • dmm: fix InstroDMM daemon not starting (#93) (51cadee)

  • daq: raise exceptions with verbose messages instead of failing silently, including for unconfigured channels in write_digital_line() (#118) (ce6cf81)

  • daq: support multiple channels with same physical channel (#87) (aa069b6)
  • keysight: correct logic polarity comparison in digital channel config (#116) (976800b)

0.5.0 (2026-02-04)¤

Features¤

0.4.0 (2025-12-19)¤

Features¤

  • Handle bad network conditions by writing to fallback file (#66) (b7c3e4c)
  • add .avro file logging capabilities (#70) (7b0c9a9)
  • add package name and version tag to measurements/commands(#74) (d2e018a)
  • add support for terminal config in InstroDAQ (#62) (f92a712)
  • add configuration selection for visa backends (#63) (ab3051e)
  • data access from main thread to background daemons (#68) (0a04d6f)
  • software timed analog output for daq (#72) (1a5f443)

Bug Fixes¤

  • labjack STREAM_ACTIVE and segfault (#77) (c9b7551)
  • prevent nominal core publisher from raising rust runtime error on exit (#76) (510decb)
  • remove analog input channels to avoid multiple channels with same physical channel (#65) (5d5ed50)
  • nominaldaq loop rate lies when background enable is false (#75) (ca48db6)

Documentation¤

  • add example and reference documentation (#56) (6f7d307)

0.3.0 (2025-11-20)¤

Features¤

0.2.0 (2025-11-05)¤

Features¤

  • i2c (#33) (d61c69f)
  • interface for drivers to HAL (#48) (02ecafe)
  • public abilities to define background daemon functions (#50) (36a155d)
  • unifying the instrument, driver, data_handler and factory patterns across HALs (#45) (a8c720f)

Bug Fixes¤

0.1.0 (2025-10-15)¤

Features¤

Bug Fixes¤