SignalExpress was the no-code way to log data without writing LabVIEW. NI stopped developing it. Here is what fills the gap, what each option costs, and how to move your existing steps.

NI SignalExpress is discontinued. NI ended active development and removed it from the current product line. Existing installations generally still run, but there are no new releases, no support for new instruments or operating systems, and no fixes. If it is in your validation flow, it is a dependency with no future.
That matters because SignalExpress filled a specific need: taking measurements and logging data without writing a program. This post covers what replaced it officially, what actually fills the gap, and how to move your existing steps.
It was the answer to a real question: an engineer needs a voltage logged every second for six hours, with a plot, and does not want to learn LabVIEW to do it.
SignalExpress worked on steps. You added an acquire step, a processing step, and a log step, configured each in a dialog, and pressed run. No block diagram, no wires, no compile. For a large population of hardware engineers that was exactly the right level of abstraction.
The tools that replaced it mostly did not preserve that. They either went up in complexity (write LabVIEW, write Python) or narrowed in scope (one vendor's instruments only).
FlexLogger. It is a configuration-based application for sensor data acquisition and logging, and it is genuinely good at what it targets: wiring up NI DAQ hardware with sensor scaling, units, and calibration, then logging to TDMS.
Where it is not a replacement:
If your SignalExpress use was DAQ channel logging, FlexLogger is a fair upgrade. If it was general bench instrument work, it is not the same tool. See NI FlexLogger alternatives for that comparison in full.
Free. Drives any instrument that speaks SCPI over USB, LAN, GPIB, or serial, plus NI DAQ hardware through nidaqmx.
import pyvisa, time, csv
rm = pyvisa.ResourceManager()
dmm = rm.open_resource("USB0::0x2A8D::0x1301::MY57200001::INSTR")
dmm.write("CONF:VOLT:DC 10,0.0001")
with open("log.csv", "w", newline="") as f:
w = csv.writer(f)
w.writerow(["t_s", "vdc"])
t0 = time.time()
for _ in range(21600): # six hours at 1 Hz
w.writerow([round(time.time() - t0, 2), float(dmm.query("READ?"))])
time.sleep(1)Good for: anyone who can write twenty lines of Python. Free, vendor-neutral, version-controllable.
Gives up: the no-code property that made SignalExpress useful to non-programmers. This is a real loss, not a technicality.
Verdict: the right answer for half the former user base and the wrong answer for the other half. See the PyVISA tutorial to start.
Browser-based and vendor-neutral, with the no-code property SignalExpress had. You pick the instrument, give its VISA address, and describe what to measure in plain English. The agent writes the automation, runs it, streams the values, and exports the report.
Good for: the original SignalExpress audience, engineers who want the measurement without the program, on a mixed-vendor bench.
Gives up: offline desktop operation for the browser workflow, and it is not a DAQ sensor-configuration tool in the way FlexLogger is.
Verdict: the closest match to what SignalExpress was for, updated for mixed benches.
Application-based, no code, strong on Keysight hardware. Data logger, scope, power supply, and DMM apps each configure through a UI and export to CSV or Excel.
Good for: Keysight benches. The experience is close to what SignalExpress felt like.
Gives up: vendor neutrality and money. Apps are licensed individually and the cost adds up across a bench. Third-party instrument support exists but is not the point of the product.
Verdict: good fit for a Keysight-heavy lab. See Keysight BenchVue alternatives for where it stops.
If your measurement is oscilloscope-shaped, PicoScope's software is free with the hardware and does logging, maths, and export well. Tektronix, Rigol, and Siglent all ship free desktop utilities for their own instruments.
Good for: single-vendor, single-instrument tasks.
Gives up: everything the moment your bench has two vendors on it, which is most benches.
Verdict: fine as a point solution, not a platform.
| SignalExpress | FlexLogger | Python | BenchVue | TestFlow | |
|---|---|---|---|---|---|
| Status | Discontinued | Current | Current | Current | Current |
| Cost | Was free tier | Subscription | Free | Per app licence | Free version, then paid |
| No code required | Yes | Yes | No | Yes | Yes |
| Third-party instruments | Limited | Limited | Any SCPI | Some | Any SCPI |
| NI DAQ hardware | Yes | Yes | Via nidaqmx | No | Via SCPI instruments |
| Sweeps and stimulus | Basic | Weak | Yes | Some apps | Yes |
| Pass and fail limits | Basic | Weak | You code it | Some apps | Yes |
| Report output | Basic | TDMS logs | You build it | CSV, Excel | PDF and CSV |
The migration is easier than most because SignalExpress projects were rarely large.
Export your step lists. Open each project and write down, per step, the instrument, the measurement, the rate, and the limits. This is usually one page per project.
Sort by hardware. NI DAQ channel work and bench instrument work go to different destinations. Do not look for one tool that does both equally well, because SignalExpress did not either.
Rebuild the highest-frequency project first. Whichever one runs weekly. Prove the numbers match on the same DUT before porting anything else.
Keep the old machine. Do not uninstall or upgrade the OS on the SignalExpress box until every project is ported and verified. It is the only way to reproduce an old result.
Archive the logs, not the tool. Export historical data to CSV or TDMS now, while the application still opens. This is the step people skip and regret.
Some teams find SignalExpress is not a convenience tool but a dependency in a shipping process. That changes the priority order.
Image the machine. A full disk image of the working SignalExpress PC, stored somewhere safe. This is not a migration step, it is insurance, and it costs an hour. Every year that machine stays alive without an image is a risk you are carrying for free.
Freeze the operating system. No Windows feature updates, no driver updates, no antivirus that auto-updates its kernel hooks. Document that this machine is frozen and why, where the next person will find it.
Export the configuration in a readable form. Screenshots of every step dialog, saved alongside the project files. When you rebuild, the dialogs are the specification and they will not open on any other machine.
Then migrate at a normal pace. With an image and a documented configuration, the deadline pressure disappears and you can port properly.
The failure mode is the machine dying before any of this happens, which turns a planned migration into an outage.
If you are moving from SignalExpress and your hardware is NI DAQ, the decision is essentially FlexLogger versus Python. A short way to settle it:
| Question | FlexLogger | Python |
|---|---|---|
| Does anyone on the team write code? | Not required | Required |
| Are there third-party SCPI instruments on the bench? | Poor fit | Good fit |
| Is sensor scaling complex (thermocouples, bridges, IEPE)? | Strong | Manual work |
| Does the test need stimulus as well as logging? | Weak | Good |
| Must it run unattended in CI or on a schedule? | Awkward | Natural |
| Is there budget for a per-seat subscription? | Required | Free |
Three or more answers in the right-hand column means the code route, or a platform that removes the code requirement without the hardware restriction.
Before assuming SignalExpress was free for you, check which edition you were running. There were two, and they behaved differently at end of life.
The limited free edition shipped alongside NI hardware and was restricted in step count and save capability. The full edition was licensed. Teams that built serious projects were usually on the licensed version, which means there is an active or lapsed licence somewhere in procurement, and that licence may still entitle you to something in a migration conversation with NI.
It is worth ten minutes with the procurement record before you plan around a cost you may not actually be paying, or before you pay again for a replacement you already have rights to.
The projects that ran on SignalExpress were mostly the same shape: configure an instrument, take readings on a timer, apply limits, write a file. That shape is about forty lines of Python, which is why the migration fear is usually larger than the migration.
import csv, time
import pyvisa
rm = pyvisa.ResourceManager()
dmm = rm.open_resource("USB0::0x2A8D::0x1301::MY57200001::INSTR")
dmm.timeout = 10000
dmm.write("*RST")
dmm.write("CONF:VOLT:DC 10,0.0001") # 10 V range, 100 uV resolution
dmm.write("TRIG:SOUR IMM")
LIMITS = (3.20, 3.40)
INTERVAL_S = 1.0
DURATION_S = 3600
with open("soak_log.csv", "w", newline="") as fh:
w = csv.writer(fh)
w.writerow(["timestamp", "vout_v", "verdict"])
t0 = time.time()
while time.time() - t0 < DURATION_S:
v = float(dmm.query("READ?"))
verdict = "PASS" if LIMITS[0] <= v <= LIMITS[1] else "FAIL"
w.writerow([f"{time.time() - t0:.3f}", f"{v:.6f}", verdict])
fh.flush()
time.sleep(INTERVAL_S)
dmm.close()Three things this gets you that SignalExpress never did: the configuration is in version control, fh.flush() means a crash at hour nine does not lose hours one to eight, and the whole thing runs unattended on a schedule. The pyVISA tutorial covers the resource string format, and the SCPI command cheat sheet covers the commands for other instrument classes.
The honest cost: you are now maintaining code, and the person who wrote it needs to still be there or to have documented it. That is the same dependency SignalExpress had on the person who built the project, just written down.
The comparison that matters at renewal, for one engineer on one station.
| Route | Year 1 | Ongoing | Main hidden cost |
|---|---|---|---|
| FlexLogger | Subscription, four figures | Same, annually | NI hardware only, so the bench is locked |
| Python with pyVISA | Zero | Zero | 2 to 6 weeks of build, then maintenance |
| TestFlow | Free version, then paid | Paid tier | Not a real-time or DAQ-channel tool |
| Vendor bench software | Per-app, three to four figures | Per app, per vendor | One licence per vendor on a mixed bench |
| Stay on the frozen PC | Zero | Zero | The machine dies eventually, without warning |
The last row is the one most teams are actually on, and it is the only one with an unbounded downside. See NI software licensing costs for how the NI-side numbers stack across the rest of the toolchain.
The reason SignalExpress had users is that not every engineer wants to write a program to take a measurement. That need did not go away when NI discontinued it, and it is exactly what TestFlow is built around.
Connect your instruments. Pick the manufacturer and model, paste the VISA address (USB, LAN, GPIB, or serial), and the agent knows what is on your bench. No bench yet? Use a placeholder address, build the full automation, and swap in the real address when you are in the lab.
Tell the agent what to test, in plain English. For example, "run a VI sweep from 1 to 10 V in 1 V steps at 0.5 A load current," or "suggest the tests for a power-management device."
The agent builds the complete workflow in seconds. Instrument-aware automation appears on the canvas, with the generated scripts visible in a code panel you can inspect and edit.
Run it in your lab. Click Run and the status panel streams results step by step, with measured values inline (VOUT = 3.301 V, asserted 3.2 to 3.4 V, PASS). One click exports a structured PDF report, or the raw results as CSV.


The step-by-step walkthrough, VISA address formats, and Test Planner prompts are all in the TestFlow product guide.
Yes. NI stopped active development and removed it from the current product line. Existing installations keep working, but there are no new versions, no new hardware support, and no fixes, so it is a dead end for new systems.
NI positioned FlexLogger as the successor for configuration-based data logging, though FlexLogger is a paid subscription and is focused on sensor data acquisition rather than general instrument control.
Yes. Python with pyVISA is free and drives any SCPI instrument. Keysight BenchVue and Tektronix have free tiers of their own utilities for their own hardware. TestFlow has a free version that is vendor-neutral.
An existing install will usually still run, but it will not support new instruments or new operating systems, and there is no support path. Treat it as legacy and plan the move rather than waiting for it to break mid-programme.
Configuration-based data logging and quick measurements without writing LabVIEW code. You added steps, pointed them at instruments or DAQ channels, and it logged and plotted the result.
No. FlexLogger is stronger on sensor configuration and scaling for NI DAQ hardware, but it is narrower on general benchtop instrument control, and it is a paid subscription where SignalExpress had a free tier.
Connect your instruments, describe a test in plain English, and TestFlow builds and runs it in minutes.
A new way for testing, from specs to automated sequences, capture clean data, and accelerate your validation cycle.