Skip to content

Hewlett-Packard 3478A

Hewlett-Packard

3478A

5.5-digit digital multimeter with HP-IB (proprietary command set)

multimeter Proprietary
Fourteen-segment LCD display on HP 3478A multimeter
Binarysequence, CC BY-SA 3.0, via Wikimedia Commons
Default Address 22
Termination LF
IEEE 488.2 No
IDN Patterns
*,3478A,*,**,3478*,*,*

The HP 3478A is a 5.5-digit bench multimeter produced from 1981 to the late 1990s. It uses a proprietary HP-IB command set consisting of short ASCII codes (F1, R3, T1, N5, etc.) — it predates both IEEE 488.2 and SCPI. There is no *IDN? query; the instrument must be identified by GPIB address or manual assignment. The idn_patterns field contains speculative patterns for systems that may synthesize IDN-like responses, but the 3478A itself will not respond to *IDN?. Multiple command codes can be concatenated into a single string (e.g., 'F1RAT1N5Z1'). Calibration commands (C prefix) are intentionally omitted from this catalog entry. The 3478A remains popular in hobbyist and small-lab settings due to its reliability, low cost on the used market, and adequate performance for general-purpose measurements.

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
Data ReadyRQSInvalid CalFront Panel SRQHardware ErrorSyntax ErrorUnusedFront Panel SRQ
New measurement reading is availableRequesting service (set when SRQ line asserted)Invalid calibration data detectedFront panel SRQ button pressedInternal hardware error detectedCommand syntax error detectedNot usedSRQ generated from front panel button

Read via serial poll (++spoll). This instrument predates IEEE 488.2 — there is no *STB? or *SRE command. Use the M0/M1 commands to configure the SRQ mask. Bit 7 (Data Ready) is the most commonly used for measurement synchronization.

Select the measurement function. Commands are single-byte codes sent directly over GPIB (no query form). The instrument echoes no response; it simply changes mode.

Command Type Description
F1 command Select DC Volts measurement function
F2 command Select AC Volts measurement function
F3 command Select 2-wire Ohms measurement function
F4 command Select 4-wire Ohms measurement function
F5 command Select DC Current measurement function
F6 command Select AC Current measurement function
F7 command Select Extended Ohms measurement function (guard terminal active)
Details
Note: Extended Ohms uses the guard terminal for high-resistance measurements with better noise rejection

Select the measurement range. Range codes are function-dependent. RA selects autorange. Specific range codes use R followed by an exponent-like number (R-2 through R7). Invalid range codes for the current function will produce a syntax error.

Command Type Description
RA command Enable autoranging for the current measurement function
R-2 command Select 30mV range (DC Volts only)
Details
Note: Only valid for DC Volts (F1)
R-1 command Select 300mV range (DC Volts, AC Volts) or 300mA range (DC/AC Current)
Details
Note: DC Volts: 300mV, AC Volts: 300mV, DC Current: 300mA, AC Current: 300mA
R0 command Select 3V range (DC/AC Volts) or 3A range (DC/AC Current)
Details
Note: DC Volts: 3V, AC Volts: 3V, DC Current: 3A, AC Current: 3A
R1 command Select 30V range (DC/AC Volts) or 30 ohm range (Ohms)
Details
Note: DC Volts: 30V, AC Volts: 30V, Ohms: 30 ohm
R2 command Select 300V range (DC/AC Volts) or 300 ohm range (Ohms)
Details
Note: DC Volts: 300V, AC Volts: 300V, Ohms: 300 ohm
R3 command Select 3k ohm range (Ohms functions only)
R4 command Select 30k ohm range (Ohms functions only)
R5 command Select 300k ohm range (Ohms functions only)
R6 command Select 3M ohm range (Ohms functions only)
R7 command Select 30M ohm range (Ohms functions only)

Select the trigger mode. Controls how and when the instrument takes measurements.

Command Type Description
T1 command Internal trigger — instrument free-runs, taking continuous measurements
T2 command External trigger — measurement triggered by rear-panel external trigger input
T3 command Single trigger — one measurement per Group Execute Trigger (GET) or Talk
Details
Note: After the reading is taken, the instrument holds until the next trigger event
T4 command Trigger hold — instrument stops triggering until another trigger mode is selected
Details
Note: Useful to freeze the instrument while changing configuration
T5 command Fast trigger — like internal trigger (T1) but at maximum conversion speed
Details
Note: Fastest reading rate. Display may not update on every reading.

Set the display resolution (number of digits). Fewer digits means faster measurement speed.

Command Type Description
N3 command Set 3.5-digit resolution (fastest readings)
Details
Note: Fastest measurement speed, lowest resolution
N4 command Set 4.5-digit resolution (balanced speed/resolution)
N5 command Set 5.5-digit resolution (highest resolution, slowest readings)
Details
Note: Maximum resolution, approximately 2.7 readings/second on 60Hz line

Control the autozero function. Autozero corrects for thermal drift and offset errors by periodically measuring the internal zero reference.

Command Type Description
Z0 command Disable autozero — doubles measurement speed but allows offset drift
Details
Note: Disabling autozero approximately doubles the reading rate. Offset errors will accumulate over time and temperature changes.
Z1 command Enable autozero (default) — each measurement includes an internal zero correction

Control the front panel display. Writing text to the display can be useful for operator prompts during automated test sequences.

Command Type Description
D1 command Normal display mode — show measurement readings
D2 command Show stored display text (previously written with D3)
D3{text} command Write text to display memory (up to 12 characters)
Details
Parameters
  • text (string) — Up to 12 characters of ASCII text to display. Use D2 to show.
Example D3TESTING 123
Note: Characters are limited to the segments available on the LED display. The text is stored but not shown until D2 is sent.

Read instrument status and configure service request (SRQ) behavior. The HP 3478A uses a proprietary status byte and SRQ mask system (not IEEE 488.2 *STB?/*SRE).

Command Type Description
B query Read status byte — returns a single byte encoding the instrument status
Details
Returns (ASCII) — Single ASCII-encoded status byte. Decode using the status byte bit definitions.
Example: 1
Note: This is a programming command, not a serial poll. For SRQ-driven operation, use serial poll (++spoll on AR488). The B command can be sent at any time to read the current status.
M0 command Disable all SRQ sources — clear the SRQ mask so no conditions assert SRQ
M1 command Enable SRQ on Data Ready (bit 7) — SRQ asserts when a new measurement is available
Details
Note: This is the most common SRQ configuration. Combined with single trigger (T3), this allows efficient measurement synchronization without polling.

Reading measurement data from the HP 3478A. The instrument outputs readings in ASCII when addressed to talk. No explicit read command is needed — simply address the instrument to talk after a trigger. On AR488, use ‘++read eoi’ to fetch the current reading.

Command Type Description
++read eoi query Read measurement result from the instrument (AR488 bridge command)
Details
Returns (numeric) — ASCII floating-point measurement value with leading sign, digits, and exponent
Example: +1.23456E+1
Note: This is an AR488 controller command, not a native HP 3478A command. The 3478A outputs readings when addressed to talk. The reading format is sign, digits, E, sign, exponent (e.g., +1.23456E+1 for 12.3456).

Multiple configuration codes can be concatenated into a single command string and sent in one write. The HP 3478A parses each code sequentially. This is more efficient than sending individual commands.

Command Type Description
F{n}R{r}T{t}N{d}Z{z} command Set function, range, trigger, digits, and autozero in a single command string
Details
Parameters
  • n (enum) — Function code: 1=DCV, 2=ACV, 3=2WR, 4=4WR, 5=DCI, 6=ACI, 7=ExtR Values: 1, 2, 3, 4, 5, 6, 7
  • r (string) — Range code: A (auto), -2, -1, 0, 1, 2, 3, 4, 5, 6, 7
  • t (enum) — Trigger code: 1=internal, 2=external, 3=single, 4=hold, 5=fast Values: 1, 2, 3, 4, 5
  • d (enum) — Digits: 3=3.5, 4=4.5, 5=5.5 Values: 3, 4, 5
  • z (enum) — Autozero: 0=off, 1=on Values: 0, 1
Example F1RAT1N5Z1
Note: Any subset of codes can be concatenated in any order. For example, 'F1RA' sets DC Volts with autorange, 'T3N5' sets single trigger with 5.5 digits. The instrument parses left to right.

Configure for DC voltage measurement at maximum resolution with autorange, then read a measurement

1

Set DC Volts function with autorange, internal trigger, 5.5-digit resolution, autozero on

F1RAT1N5Z1
2

Wait for instrument to settle and take a reading

++read eoi
Expected: +X.XXXXXE+X
Wait 500ms
The reading format is ASCII floating point with sign, 5-6 digits, and exponent

Configure for AC voltage measurement with autorange at full resolution

1

Set AC Volts function with autorange, internal trigger, 5.5 digits

F2RAT1N5Z1
2

Wait for AC settling time then read

++read eoi
Expected: +X.XXXXXE+X
Wait 1000ms
AC measurements require longer settling time than DC due to RMS conversion

Configure for 4-wire (Kelvin) resistance measurement for best accuracy. Uses separate sense and source pairs to eliminate lead resistance errors.

1

Set 4-wire Ohms with autorange, internal trigger, 5.5-digit resolution, autozero on

F4RAT1N5Z1
2

Wait for measurement and read

++read eoi
Expected: +X.XXXXXE+X
Wait 500ms

Configure for maximum-speed DC voltage readings by reducing resolution and disabling autozero. Useful for capturing transients or building measurement arrays.

1

Set DC Volts, autorange, fast trigger, 3.5 digits, autozero off

F1RAT5N3Z0
2

Read measurements in a loop — each ++read eoi returns the latest reading

++read eoi
Expected: +X.XXXE+X
At 3.5 digits with autozero off and fast trigger, the 3478A can exceed 300 readings/second. Read as fast as the bus allows.

Use SRQ and single trigger for precise measurement timing. The instrument asserts SRQ when a reading is ready, avoiding wasteful polling.

1

Configure: DC Volts, autorange, single trigger, 5.5 digits, autozero on

F1RAT3N5Z1
2

Enable SRQ on Data Ready

M1
3

Send Group Execute Trigger to start one measurement

++trg
The AR488 ++trg command sends a Group Execute Trigger (GET) to the addressed device
4

Poll for SRQ until Data Ready bit is set

++spoll
Expected: Bit 7 set (value >= 128)
When serial poll returns a value with bit 7 set, the reading is ready
5

Read the measurement result

++read eoi
Expected: +X.XXXXXE+X

Write a message to the instrument front panel display — useful for operator prompts during automated test sequences

1

Write text to display memory

D3PASS
2

Switch display to show stored text

D2
3

Return to normal measurement display when done

D1
Send D1 to restore normal reading display after the operator has acknowledged the message