Why a scope beats a gauge
A normal channel in NSP gives you a number: RPM, voltage, pressure. That's fine until the number is wrong and you need to know why. An oscilloscope draws the actual voltage against time, so you can see the shape of a signal: whether a crank sensor is producing clean teeth, whether a missing-tooth gap is where it should be, whether noise is creeping in, and how the crank and cam line up with each other.
The scope built into current Haltech Elite and Nexus ECUs does this inside NSP, using the inputs the ECU is already reading. For most trigger and sensor diagnosis it saves you from pulling out a standalone scope.
Getting connected
- Install NSP on your laptop if you haven't already. It's available from Haltech's website.
- Connect the ECU to the laptop with the USB cable.
- Turn the ignition on, but don't start the engine yet.
- Open NSP, connect to the ECU and open the oscilloscope tool.
Setting everything up with key on, engine off gives you time to choose channels and scales before the signals start moving. Then crank or start the engine and watch.
The settings, grouped by job
Choosing what to look at
| Setting | What it does | Our advice |
|---|---|---|
| Channel 1-4 | Picks the signal on each of the four traces: trigger voltage, home voltage, an ignition or injector output, SPI voltage and so on | For a no-start, put trigger on one channel and home on another |
| Show Channel 1-4 | Turns each trace on or off | Hide what you don't need so the rest is easier to read |
Sizing the picture
| Setting | What it does | Our advice |
|---|---|---|
| Scale | Volts per vertical grid division. At 1 V/div, each horizontal grid line is one volt apart | Match it to the signal. A 12V square wave reads well at 5 or 10 V/div. At 1 V/div it fills the screen and crowds the other channels |
| Y-offset | Slides each trace up or down relative to the others | Stack traces so you can compare the edges of two signals at a glance |
| Time base | Time per horizontal grid division. At 50 ms/div, each vertical grid line is 50 milliseconds apart | At an idle of roughly 900 RPM, 50 ms/div shows about one full engine cycle, which is one turn of the cam. Shorten it as RPM rises |
Freezing the display at the right moment
The trigger settings decide when the scope draws a new picture. Without them, a fast signal just scrolls past. With them, you can hold the waveform steady on a particular event.
| Setting | What it does |
|---|---|
| Trigger channel | Which of the four traces the scope watches to decide when to capture |
| Trigger threshold | The voltage on that channel that starts a capture |
| Trigger mode: Auto | Keeps redrawing all the time, whether or not the threshold is crossed |
| Trigger mode: Normal | Redraws each time the threshold is crossed |
| Trigger mode: Single | Captures once, on the first crossing, then holds |
| Rising / falling edge | In Normal and Single, whether the crossing counts when the voltage is going up through the threshold or coming down through it |
| Trigger horizontal position | Moves where the trigger point sits on screen. The "T" marker along the bottom shows it |
| Force Trigger | Ignores all of the above and starts drawing immediately |
Auto is the easiest place to start. Once you can see the signal, switch to Normal and set the threshold part way up the waveform to lock the display. Single is ideal for catching one rare event, such as an intermittent dropout, because it holds the evidence on screen instead of drawing over it.
Measuring and saving
- Show Time Cursors adds two vertical lines you can drag across the trace. The readout gives the time between them, which is how you measure tooth spacing, pulse width or the delay between crank and cam events.
- Start Logging to PC (F6) records the scope trace into an NSP PC log so you can replay it later or send it to your tuner.
- Run scope pauses and resumes the live display.
A worked example: checking a crank and cam signal
Say an engine cranks but won't fire and the trigger error counter is climbing. Here's how we'd approach it:
- Set channel 1 to trigger voltage and channel 2 to home voltage. Turn channels 3 and 4 off.
- Pick a scale that suits each sensor. A reluctor's output grows with speed, so start with a larger V/div and zoom in if it looks small. A Hall sensor's square wave should sit comfortably inside a 5 V/div scale.
- Use Y-offset to put the crank trace above the cam trace.
- Set the time base so you can see more than one cam event at cranking speed, then crank the engine.
- Look for evenly spaced crank teeth, a clear missing-tooth gap if the wheel has one, and a cam pulse that lands in the same place every cycle.
- Hit F6 to log it so you have a record.
Ragged or missing teeth usually mean a sensor, air gap or wiring issue. Spikes between teeth point to electrical noise, which is where the trigger glitch filter and proper shielding come in.
Troubleshooting
| Symptom | Usually |
|---|---|
| Flat line on a channel | Wrong channel selected, channel hidden, or no signal reaching the ECU |
| Trace clipped or off the screen | Scale set too small for the signal, or Y-offset pushing it out of view |
| Signal just a blur | Time base far too long for the engine speed |
| Display never updates | Normal or Single mode with a threshold the signal never reaches. Try Auto or Force Trigger |
Oscilloscope FAQ
Does the built-in scope replace a standalone oscilloscope?
For signals the ECU already reads, it covers most everyday diagnosis. For probing wires the ECU can't see, a dedicated scope like the USB Stingray 2-channel scope is still handy.
Can I send my scope capture to a tuner?
Yes. Log it with F6 and send the PC log. If you're stuck on a trigger problem, get in touch and we'll take a look. See also our engine trigger systems explained article.




