C program for automated voltage/current control and data acquisition from the Agilent E3600 series dual-output power supply unit, built for a noise measurement system.
Automates control of a benchtop dual-output power supply over GPIB/VISA, setting precise voltage and current outputs and logging response data in real time. Part of a multi-instrument noise characterization pipeline built for MSc research (2020 - 2022).
The Agilent E3649A supports dual outputs (0–35V / 0–60V), and this code manages channel switching, output sequencing, and data capture without manual intervention.
This project demonstrates:
- Instrument communication over GPIB/VISA — the same protocol model used in network device management (SNMP, Netconf, serial CLI) where a controller program sends structured commands to a remote device and parses its responses
- Real-time data acquisition and logging — directly analogous to log collection pipelines and telemetry systems in IT operations
- C systems programming — memory management, I/O handling, and tight hardware-software integration at a level most software developers don't work at
- Automated test and control loops — the same pattern used in infrastructure automation: define state, issue commands, verify response, handle errors
- Instrument: Agilent E3649A Dual Output Power Supply (100W)
- Interface: GPIB via National Instruments VISA
- Language: C (NI-VISA library)
Built as part of a noise measurement DAQ system for semiconductor material characterization at MSc level. The PSU was one node in a multi-instrument pipeline also including a spectrum analyzer and source-measure unit — each controlled by separate DAQ programs coordinated to run IV and noise sweeps on photovoltaic and RF material samples.
🖥️🪫🔬🥼🔎
See Equipment Resource https://www.keysight.com/ca/en/support/E3649A/100w-dual-output-power-supply-two-35v-1-4a-60v-0-8a.html