RPM and Bus Channels

Besides analog inputs, most acquisition frontends provide pulse (tacho) inputs, one or two CAN buses and a GPS input. This page explains how to configure a speed channel, what raw pulse recording gives you, how to decode CAN signals with a DBC database, and how GPS is enabled.

Tacho pulse train → speed Time → (pulses get closer as speed rises) edge ÷ tips/rev RPM curve Stored: raw pulse channel full edge resolution, re-decodable later Stored: decoded RPM curve ready to use, unit rpm Both channels are written for every enabled pulse input

Channel Types Beyond Analog

When you select a frontend, the channel table is populated with every input that device provides. Non-analog rows behave differently from analog rows: their Range, Supply, Highpass and Unit cells show —, and the TEDS, calibration and assign-sensor buttons are not shown, because those concepts do not apply.

Row typeTypical namesNotes
Pulse (tacho)Pulse 1, Pulse 2The Sensitivity cell holds pulses per revolution. Unit is rpm.
CANCAN 1 (FD), CAN FD 1Carries a DBC button instead of the sensor buttons.
Decoded CAN signalThe DBC signal nameAdded to the bottom of the table when you select signals from a DBC.
FlexRayFlexRayConfiguration row.
GPSGPS, GPS 1Configuration row.

RPM / Tacho Channels

A tacho channel converts a pulse train — from a gear-tooth sensor, an optical encoder, a reflective tape sensor or an ignition pickup — into rotational speed.

Setting pulses per revolution

  1. Tick the On box of the pulse row.
  2. Double-click its Sensitivity cell. On a pulse row this cell holds the pulses per revolution, and the tooltip states it explicitly: "Pulse rows: pulses per revolution (tacho teeth / encoder lines) — double-click to edit. Analog rows: sensor sensitivity (mV/unit)."
  3. Type the number of pulses your sensor produces per full revolution — the number of gear teeth, encoder lines, or reflective marks. The default is 1; the smallest accepted value is 1.
  4. The cell then displays 1 pulse/rev or, for example, 60 pulses/rev.
Pulses per revolution scales the speed directly. If it is wrong by a factor of two, every RPM value and every order in your analysis is wrong by the same factor. Count the marks on the rotating part and verify against a hand tachometer before a long measurement.

Checking the speed live

During Preview and recording an RPM (<pulse row name>) channel appears in the Online Monitor with unit rpm. It feeds the RPM trend, Level vs RPM and FFT vs RPM display elements. Use it to confirm the reading before you record: spin the shaft at a known speed and compare.

The live speed trace is interpolated within each data block so that it reads smoothly. This affects the display only — the recorded data is unchanged.

Changing pulses per revolution afterwards

The value is pushed to the decoder while the stream runs, so you can correct it during Preview and see the effect immediately. It is also stored in the channel settings file (.dpcs) along with the rest of the table.

Raw Pulse Recording

There is no separate switch for raw pulse recording: simply tick On for the pulse row. Pulse capture then starts at the same instant as the analog buffers, for both Preview and recording, so the tacho stays time-aligned with the analog channels.

For every enabled pulse input, the recording contains two channels:

ChannelNameContent
Raw pulseThe name of the pulse row, e.g. Pulse 1The pulse train itself, at full edge resolution, together with the pulses-per-revolution setting.
Decoded speed<row name> RPM, e.g. Pulse 1 RPMThe speed curve in rpm, ready to use.

Why this matters

The Acquisition Log confirms what was written, for example [Pulse] saved 2 raw pulse + 2 RPM curve channel(s) to .dpsa.

A recording with no analog channels at all is allowed. If you enable only a tacho input, a pulse-only file is written and the log notes [Save] Pulse-only recording (no analog channels).

Exporting recordings that contain pulses

Target formatRaw pulse channels
.dpsa (native)Preserved.
HEAD HDFPreserved, with the tacho metadata, so speed-based analyses work on the converted file.
Siemens LMS .ldsfSkipped — the format has no equivalent channel type. The skipped channel names are listed in the event log.
ASAM ODS .atfxSkipped, and channels are trimmed to the shortest length.
If you need the raw pulses downstream, stay in .dpsa or convert to HDF. Exporting to LDSF or ATFX discards them, and there is no way to recover them from the exported file.

CAN Bus Channels

CAN inputs appear in the channel table as ordinary rows. Which frontends have CAN, and how many buses:

Frontend categoryCAN buses
High-end portable recorders2 (CAN FD)
Standard portable recorders1
Modular system controllers1–2 (depends on the controller)
Compact recorders, USB audio devices, general-purpose DAQ cards, offline frontendsnone

The actual count comes from the device itself — once connected, the channel table is built from what the hardware really reports.

Tick the On box of a CAN row to enable that bus. There is no baud-rate control in the channel table — the bus parameters you document for a project belong in the Sensor Library's CAN/OBD tab (Bit Rate, Bit Rate FD, Protocol, Listen Only).

The CAN port listens passively. Deepsona does not transmit onto the bus, so connecting it cannot disturb the vehicle or test bench network.

Loading a DBC and Selecting Signals

A DBC database describes the messages and signals on a CAN bus. Loading one turns raw CAN frames into named, scaled physical quantities.

  1. In the channel table, click the DBC button in the Sensitivity cell of the CAN row — tooltip Load CAN DBC for this CAN bus (select signals → add to channel list).
  2. Choose a .dbc file in the Load CAN DBC... file dialog.
  3. The Load CAN DBC — Select Signals window opens. The header reports how many signals the file contains.
  4. Tick the signals you want. Use Select All or None for bulk changes.
  5. Click OK. Each selected signal is appended to the channel table as a new enabled row, named after the signal and carrying the signal's unit.
ColumnContent
AddCheck box. Data signals are pre-checked; multiplexor switch signals are not.
SignalSignal name from the database.
MessageThe CAN message the signal belongs to.
UnitUnit from the database. A signal with no unit becomes — in the channel table.
Muxswitch for a multiplexor switch signal, m<N> for a multiplexed sub-signal, blank for a plain signal.

The Acquisition Log records the outcome, for example [CAN/DBC] engine.dbc: 214 signal(s) parsed, 6 added to channel list.

What the DBC provides

Value tables are not applied. A signal that a DBC defines with named states is shown as its raw numeric value, not as text. Multiplexed sub-signals are also not gated by the multiplexor switch: on a bus that alternates multiplex values, a sub-signal updates whenever its message arrives, so interpret it together with the switch signal.
Only one DBC is active at a time. Loading another replaces the previous signal set. Decoded CAN signal values are shown live in the Online Monitor; the analog and pulse channels are what get written into the recording file.

Built-in OBD-II Quantities

Common OBD-II quantities are decoded without any DBC. If OBD responses are present on the bus, these channels appear in the Online Monitor automatically:

ChannelUnitChannelUnit
Engine RPM (OBD)rpmEngine Load (OBD)%
Vehicle Speed (OBD)km/hEngine Coolant Temp (OBD)°C
Throttle Position (OBD)%Intake Air Temp (OBD)°C
Because the CAN port is a passive listener, it never requests OBD data itself. These values appear only if something else on the bus — a scan tool, a logger, or a broadcasting control unit — is producing OBD responses. If the channels stay empty, that is why.

DBC decoding and OBD decoding run in parallel on the same frames, so you can use both at once.

GPS

Frontends that provide a GPS input show a GPS row in the channel table: portable recorders and modular system controllers. Enable it with the row's On box before starting Preview or recording.

Enabling GPS includes the GPS stream in the acquisition and carries the row through the channel table and the .dpcs channel-settings file, so the configuration is preserved with the rest of your setup.

The GPS stream is a plain NMEA text stream carried in the scan frame. Deepsona decodes it into four quantities: speed (km/h, from RMC), latitude and longitude (degrees, from GGA / GLL / RMC) and altitude (m, from GGA). Sentences whose checksum fails, and readings taken while the receiver reports no fix, are discarded rather than being turned into zeros.

Speed decoded from GPS is a useful abscissa for run-up style analyses when no tacho is available — but note it is a vehicle speed, not a shaft speed, and it updates only as often as the receiver sends (typically once per second).
On modular systems the GPS row is switched off by default when you enter the recorder; the Acquisition Log notes this. Tick it explicitly if you need it. GPS occupies bandwidth in the acquisition stream, so leave it off when it is not required.

Bus and Tacho Metadata in the Sensor Library

The Sensor Library holds richer descriptions for documentation and exchange:

TabFields
Pulse SensorsName, Quantity, Unit, Pulse Logic, Sensor Type, Tips, Duty, Pulse Step, Transmission, TDC, Dead Time, Comment
CAN/OBDName, Listen Only, Bit Rate, Bit Rate FD, Protocol, DBC/ARXML, Comments
FlexRayName, Data Rate, ARXML/XML, Update Bus Params, Comments
EthernetName, ARXML, Comments
These entries document the hardware you used and travel with the library when you export it. The value the recorder applies while acquiring is the pulses per revolution in the channel table.

Troubleshooting

SymptomCause and remedy
Speed reads zeroThe pulse row is not enabled, the sensor is not powered or not aimed at the target, or the gap to the target is too large. Check the pulse row's On box first.
Speed is a constant multiple of the true valuePulses per revolution is wrong. Correct it in the Sensitivity cell — you can do this during Preview and watch the reading change.
Speed is noisy or jumpsThe tacho signal is marginal: check sensor alignment and distance, reflective tape condition, and cable routing away from power leads.
Orders appear at half or double the expected order numberSame cause as above — pulses per revolution, or a transmission ratio between the tacho and the shaft you are interested in.
"No signals could be parsed from this DBC file."The file contains no readable message/signal definitions, or is not a DBC. Confirm the file with its supplier.
DBC loaded but signals stay emptyThe messages carrying those signals are not present on the bus, or the bus is not physically connected. Check the CAN row is enabled and the wiring.
A DBC signal shows numbers instead of state namesExpected — value tables are not applied. Refer to the database for the meaning of each value.
OBD channels never appearNothing on the bus is producing OBD responses. Connect a scan tool or logger that requests them.
Speed channel missing from an exported fileLDSF and ATFX cannot carry raw pulse channels. Use .dpsa or HDF instead.

Related: Recorder Setup · Sensor Library and TEDS


© 2026 Deepsona. All Rights Reserved.