HP75000 Series B (Agilent E1300A) VXI-Mainframe

The text below describes a HP75000 Series B mainframe.
I also have a file describing a HP75000 Series C mainframe.

HP 75000 in general

The HP75000 is a VXI mainframe. A VXI mainframe is a standardized infrastructure where individual measurement devices can be simply plugged in and used. This is only possible because the two important areas of standardization have been addresses by VXI:

  • Hardware: VXI defines the physical layer where devices, even from different vendors can be integrated. The hardware layer includes electrical characteristics, wire protocols and such.
  • Software: VXI defines the software related characteristics to access and control the devices plugged into a mainframe.

By having standardized both software and hardware characteristics, devices can be developed by big Vendors like HP and used in any VXI infrastructure.

Each HP75000 system offers several slots to plug in devices. Besides the backplane offering the slots for devices, a mainframe contains a controller („command module“) which coordinates the devices plugged in and which communicates with the outer world, e.g. with a PC connected. For HP75000, the following features are important:

  • Devices like Multimeters, Frequency Generators, Digital I/O Boards and Switch-Boxes (Multiplexers) can be inserted
  • Access from a PC or whatever to the VXI mainframe

HP75000 were sold in three versions, named  „Series A“, „Series B“, and „Series C“.

HP 75000 Series B

The HP75000 series B is a VXI mainframe and offers 7 free „B-sized“ slots for measurement devices. A command module controlling the devices is already built in. The command module coordinates the devices plugged in and communicates with the outer world, e.g. with a PC connected. For HP75000 Series B, the following features are important:

  • Devices like Multimeters, Frequency Generators, Digital I/O Boards and Switch-Boxes (Multiplexers) can be inserted
  • Access from PC to the VXI mainframe is (for the HP75000) via RS232 or GPIB

Details on slots: B-size VXI Mainframe with a built-in command module. It has 9 slots (7 external, 2 internal, and 3 external A-size, all with Connector P1. While the 1301B has a front panel, the 1300B can only be controlled via GPIB or RS232.

The HP7500 series B is -compared to a mainframe of series C- really small and needs not much power to run. There is even a battery-supplied version. In this respect, it can be used even in a mobile context, let’s say, in a car. The series C is much larger and I would say nobody would use it in a mobile environment.

My HP75000 B came with the following modules:

  • 2x HP E1345A 16 Channel relay MUX
  • HP E1326B 5 1/2 Digits multimeter with multimeter adapter
  • HP E1330B Quad 8-Bit Digital Input/Output
  • HP E1340A 12 Bit 42M samples arbitrary function signal generator

Later I added:

  • 2x HP E1352 32 Channels FET MUX
  • HP E1333A 3-Channel Universal Counter , a 1Ghz Counter / Totalizer


Addresses of cards

Mainframe GPIB address: 9 (primary) and 0 (secondary). „0“ is actual the secondary adress pointing to the E1300 controller.

HP75000 secondary addresses are the GPIB addresses multiplied by 8. This means a device returned by the VXI command VXI:CONF:DLAD? with an address value of 24 has GPIB address 3. HP uses this approach to group devices in a „master-slave“ configuration. All cards where address%8==0 are master cards, e.g. 24%8==0 and this is a master card (here E1326 multimeter). A card where address%8!=0 is a slave card and controlled by a master  with a lower master address. For example, a card with address 25 is a slave and is controlled by a card with address 24. In my Mainframe, a Multimeter card at address 24 (GPIB address 3) controls the Relay MUX cards with addresses 25 and 26.

List of devices:

Details for devices:

+0,-1,+4095,+1300,-1,+0,HYB,NONE,#H00000000,#H00000000,READY,"","","","SYSTEM INSTALLED AT SECONDARY ADDR  0";
+24,+0,+4095,+65344,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","VOLTMTR INSTALLED AT SECONDARY ADDR  3";
+25,+0,+4095,+65280,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","VOLTMTR INSTALLED AT SECONDARY ADDR  3";
+26,+0,+4095,+65280,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","VOLTMTR INSTALLED AT SECONDARY ADDR  3";
+64,+0,+4095,+65300,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","SWITCH INSTALLED AT SECONDARY ADDR  8";
+72,+0,+4095,+65296,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","SWITCH INSTALLED AT SECONDARY ADDR  9";
+80,+0,+4095,+65440,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","ARB INSTALLED AT SECONDARY ADDR 10";
+144,+0,+4095,+65361,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","DIG_I/O INSTALLED AT SECONDARY ADDR 18"

HP E1300 Mainframe

The complete system  seems sometimes called HP75000, sometimes HP E1300…

Some images:



Note the brown/orange accumulator pack at the left… see text!

The mainframe uses an accumulator pack to keep data in RAM. Furthermore there is a RTC that is operated from battery pack.

I removed the accumulator pack to check if it is still working. The  pack in my device is 28 (twenty eight) years old and STILL WORKS. I measured about 4.1 Volts (it is a 3 cell 3.6V NiCd  pack). Compare this to the LiIon crap we buy today. If that lasts 5 years were happy….

A slots


B slots


Accumulator pack… see text…




HP 1300B command module

The HP E1300B is the controller module for the whole system. It runs a HP proprietary operating system on top of a 68000 processor. The operating system is located in 2 or 4 (2MBit-) EPROMs, depending on system options.
Besides the operating system, that fits in two ROMs, the controller can run HPs IBASIC, which needs another two ROMs. Using IBASIC, small scripts can be written for tayloring measurement tasks.
From the documentation it is said that IBASIC needs at least 512KBytes of RAM. My HP E1300 has only 256KBytes, so maybe IBASIC will not run on it…

On connector bottom right, the external connections are connected (GPIB, RS232, …). The left connector is intended for keyboard and display of the E1301 version.
The upper left connector is the P2 connector of VXI bus. The two black connectors in the right part of the  pcb are for RAM extension.


At the left, the four EPROM sockets can be seen. My system has no IBASIC and so there are only 2 EPROMs present (labeled E1300-88831 and E1300-88832).


The two connectors for RAM extension mezzanine card.


HP E1326B 5 1/2 digits multimeter

This module is a programmable digital multimeter. It allows more than 13000 measurements per second! The measurement features are comparable to them of the HP3478 standalone multimeter. So its quite a good measurement device.

Module consists of two cards mounted together.





HP E1330B Quad 8-Bit digital Input/Output

A simple digital input/output module. 32 pins can be controlled.





HP E1333 3 -Channel Universal Counter

This is a programmable counter with 3 independent channels. Channels 1 and 2 go from DC up to 100 Mhz, channel 3 goes from 75Mhz up to 1Ghz.

User Guide (148 pages)
Service Guide (96 pages)




HP E1340A 12 Bit 42M samples arbitrary function signal generator

This is a digital signal generator. It has many built-in waveforms but also allows to upload digital waveform data. Depending on the complexity of the waveform,, output frequency goes up to about 15 Mhz. A waveform can consist of up to 4 segments, each segment can hold up to 4096 values. So every thinkable waveform can be generated.

User Guide HP E1340A (295 pages)

HP E1340A datasheet (3 pages)











HP E1345A 16 channel relay MUX

This is a multiplexer. This means it can be controlled which of the 16 inputs is connected to the single output of the MUX. This allows to measure for example 16 input values with a single voltmeter. Because the MUX uses relays, the read speed is not superfast, but for many real world cases fast enough. Doc says it can switch 600 times per second – superfast relays!?! But relays do not live forever. If one needs faster switching, you need the FET MUX module.

HP 1345 User and programming guide, 93 pages



Three connectors connected to the MUX module (Ground and two inputs)- The MUX module is connected to a Voltmeter module via Analog Bus.


HP E1352 32 channel FET MUX

This is a 32 channel multiplexer module, like the HP E1345. While the E1345 uses relays, this module type uses MOSFETs for switching. So it can switch much faster than relays. More than 100.000 switches/s are possible.






Screen shots

Output during boot:

 Testing ROM
 Testing 256K Bytes RAM
 Testing CPU
 CPU Self Test Passed
 HPIB Address: 09
 Logical Address = 0
 Servant Area = 255
 Searching for static devices
 Mapping A24 memory
 Searching for pseudo devices
 SYSTEM instrument started


 +0,-1,+4095,+1300,-1,+0,HYB,NONE,#H00000000,#H00000000,READY,"","","","SYSTEM INSTALLED AT SECONDARY ADDR  0";
 +24,+0,+4095,+65344,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","VOLTMTR INSTALLED AT SECONDARY ADDR  3";
 +25,+0,+4095,+65280,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","VOLTMTR INSTALLED AT SECONDARY ADDR  3";
 +26,+0,+4095,+65280,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","VOLTMTR INSTALLED AT SECONDARY ADDR  3";
 +80,+0,+4095,+65440,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","ARB INSTALLED AT SECONDARY ADDR 10";
 +144,+0,+4095,+65361,-1,+0,REG,A16 ,#H00000000,#H00000000,READY,"","","","DIG_IO INSTALLED AT SECONDARY ADDR 18";


Memory information

My model has 256 KByte memory. To get the amount of free memory in the running system, enter


This will reserve the available maximum of ram to the DRAM segment on next warm boot. Now execute the warm boot:


And inquire the amount of reserved RAM.


For my system without any installed RAM drivers I get

+167216,+8 i.e. 167.216 bytes free.

The E1301 version includes HP IBASIC and requires a minimum 512KBytes of RAM. I inserted the E1301 ROMs into my 1300 system and made a reboot. The system comes up.

Installing device drivers for HP7500 / HP1300 / HP1301

HP75000 comes with preinstalled device drivers for most of the modules. These preinstalled drivers reside in ROM.

It is possible to add

a) additional drivers for modules not supported by the preinstalled drivers


b) drivers with newer versions than the preinstalled ones.

These drivers are installed into RAM. If you remove the battery pack, then all RAM-resident drivers disappear.

I removed the battery pack, lost the drivers in RAM and found that there is no driver for the HPE1340A arbitrary function generator in ROM.
So I needed to re-install the driver 🙁

The driver itself can be downloaded at HP/Keysight web site (SCPI drivers), no problem.
HP offers several tools that run on DOS and Windows 95. Hm.

We have 2015 and I have Linux.

The solution is simpler than I believed. There is a document „Installing SCPI drivers“ (manual E1401-90022, see at end of page). On page 16 there is a description for a HP-UX Unix „transferring device drivers using a cat command“. This is the way to go.

Before transferring, some commands must be entered at the mainframe. I connected with minicom, set the required RS232 parameters (8N1, 9600 baud).

si system

(Bold lists the required commands)
Now the mainframe is prepared to receive the driver file. You can keep the minicom session open all the time to see whats going on.

The driver file comes in two versions, the one ending with .dc is the one usable for RS232 transmission, in my case „arb.dc“.

This file can be sent to the mainframe uing the following commands (RS232 port is /dev/ttyS0, device driver file is arb.dc).
( cat < arb.dc > /dev/null; sleep 1000 )&
stty -opost 9600 ixon -ixoff cs8 -cstopb ignpar < /dev/ttyS0
cat arb.dc >/dev/ttyS0

Using minicom, you can follow somehow the transfer. It starts with two readable lines

and then many carriage returns are printed. After some time -maybe two minutes- the Linux shell comes back (i.e. the cat command is finished). The minicom does not show anything special at the end of the transmission.

After that, I made a cold boot:

si system


Yippie, after the boot, the new driver can be seen :


And all drivers:


Time for a coffee or a beer…

Other documents

HP75000 Series C (Agilent E8401A) VXI Mainframe

The text below describes a HP75000 Series C mainframe. I also have a file describing a HP75000 Series B mainframe.

Meanwhile this beast occurred in my lab…

This is a large, noisy, but super-flexible VXI solution. All 14xx modules from HP and all older 13xx modules (with adapters) can be used inside this mainframe.

HP 75000 in general

The HP75000 is a VXI mainframe. A VXI mainframe is a standardized infrastructure where individual measurement devices can be simply plugged in and used. This is only possible because the two important areas of standardization have been addresses by VXI:

  • Hardware: VXI defines the physical layer where devices, even from different vendors can be integrated. The hardware layer includes electrical characteristics, wire protocols and such.
  • Software: VXI defines the software related characteristics to access and control the devices plugged into a mainframe.

By having standardized both software and hardware characteristics, devices can be developed by big Vendors like HP and used in any VXI infrastructure.

Each HP75000 mainframe has a backplane offering several slots to plug in devices.  A mainframe needs a controller („command module“) which coordinates the devices plugged in and which communicates with the outer world, e.g. with a PC connected.

HP75000 were sold in three versions, named  „Series A“, „Series B“, and „Series C“.

HP 75000 Series C

The HP75000 series C is a VXI mainframe offering 13 „C-size“ slots for modules.
There is no built-in command module (like in Series B). A Command module must be added in Slot 0. This module can be a command module with RS232 and GPIB input or a specialized single board computer that fits into a Series C slot. The module in Slot 0 is responsible to control the devices and to communicate with the outer world.

For HP75000 Series C, the following features are important:

  • Devices like Multimeters, Frequency Generators, Digital I/O Boards and Switch-Boxes (Multiplexers) can be inserted
  • Access from PC to the VXI mainframe is (for the HP75000) via multiple ways like LAN or RS232

Details on slots: 13 C-Size slots, all with P1 and P2 connectors.


HP Agilent E8401A C-Size VXI Mainframe

Up to 13 modules can be inserted. The Mainframe supervises power condition. For example, I soldered my AUI transceiver adapter cable together in a wrong way, thus shorting the +12V and GND lines :-((( . This was no problem at all, the mainframe came up with SYSFAIL condition and nothing else happened…


HP E1498A Controller

This is a real beauty on its own. The HP E1498A is a complete VME-Slot-sized  UNIX workstation. Inside there is a single CPU (PA-7100LC, PA-RISC version 1.1c 32bit) with 100Mhz and up to 128MB RAM.

Regarding names The CPU and/or Board occurs in documents as „s700“. The board seems also often to be called V743 or V743i. But, at least I have seen a board called also v743 in B size formfactor.The hardware offers the usual connectivity like:

  • Keyboard, Mouse (standard PS/2 connectors)
  • Video
  • Network (AUI)
  • SCSI (50 pin HD connector)

Because its an VXI controller we also have:

  • GPIB
  • several system clock and trigger connectors

The operating system is a real UNIX from the old days, namely HP-UX 10.2.

Below are some pictures of the HP E1498A.

HP E1498A

Right : CPU with cooler. Mid: 4 RAM modules 4x32MB=128MB.




PA-7100LC CPU @ 100Mhz

SCSI cable, some socketed PROMs containing the Boot code




There are two multi-pin connectors for mezzanine cards



NVRAM/RTC battery


3 big FPGAs are doing the peripheral work like SCSI, network etc.


Boot ROMs




HP-UX 10.2

Note that HP-UX 11.x will not run on the CPU.

HP-UX 10.2 is from the late 1990ies. But no worries. I have used Linux the last 25 years and also Solaris, AIX and even HP-UX on 9000-workstations. From today, it’s fascinating how modern the HP-UX 10.2 is. If you’re familiar with Linux command line, you can use it right away. Some things are different, but not too different. After having worked several days now with HP-UX 10.2 I think it’s a pity that it was not free in the 1990ies. Many people would have liked to work with it, remember that Linux was then in it’s very early days and not as much comfortable as HP-UX 10.2 then was.

A bad thing from today’s hobbyist perspective is that all connectors of the E1498A (besides: Keyboard, Mouse and SCSI) are of a very special form factor. All are „Micro Sub D“.

Some of those Micro Sub D connectors. You can see that the complete RS232 connector contact area is about 5mm size

HP sold in the old days adapter cables (I suppose 1 adapter cable for a large gold nugget 🙂 ) and you can today buy those connectors from various sources.  If you’re a millionaire or otherwise crazy, this is an option – a single connector is not below 40 Euros!!!

I created the connectors I required myself from scratch…

Dimensions of the RS232 connector in mm.

Each DIY connector consists of the correctly sized small plates (from PCB material). They are glued together, between them the pins are hold in place by the glue. For the pins itself I used transistor pins.

DIY connector with 9 pins for RS232

After the successful creation of a 9 pin connector (RS232) I built the 15 pin one (LAN connector).

The connectors I created have no screws to mount them to the E1498 connectors, so they require a friendly environment 🙂

Standard transistors (e.g. BC557) have 1.27mm pin pitch. So I glued 3 transistors together on a plate. They are the 8 pin line of the 15 pin connector after 1 pin (leg) was removed.
A second plate was glued on top of the transistor pins for fixation.


Three further transistors with 2 legs removed were glued on the other side of the inner plate and fixed with a third plate.


I would not fly to the moon with these connectors but for installation and friendly use its stable enough.


Set up HP-UX 10.2 Operating System

My HP E1498A came from USofA without anything. No cables, no software, no nothing. So I ordered old HP-UX 10.2 installation disks via eBay – from Australia. HP licensed per machine/CPU in the old days, so if you have the hardware you’re safe. From those disks, a „cold install“ can be done.

First boot, without disc or anything attached. I just put the oscilloscope probe to the RS232 Tx pin and switched my Rigol to RS232 decoding. The E1498A dumps ~360 bytes which I can read before its hanging waiting for boot devices. The decoded line here (green) says „All rights reserved“. So it’s working 🙂

A SCSI disk must be attached as installation target and a SCSI CD drive as installation source (there are other options like network installation but I decided to keep it simple).

The mainframe, on top of it SCSI CD-ROM and harddisk. Network connectivity via AUI-Transceiver.

Installation arrangement: SCSI CDROM drive plus self-made external SCSI harddisk.

At the beginning of installation, the partition sizes (logical volumes) can be define. The default values are crazy small, some megabytes here and some megabytes there. You must change these values, otherwise it will give very soon problems when adding OSS software etc. I made partitions not smaller than 512MB, for /usr, /opt and /home several GB sizes. There are some volume group parameter values to tweak in the installation gui for such large sizes named pe_size and max_pe, see here.

After the base installation from a single CD, other applications can be installed from software depots (CD-ROMs, files, network).

Online software depots are almost gone for HP-UX 10.2. There are still some ftp Servers offering compiled packages for gcc, bash, bzip2 and more.

Using the „sam“ tool, many administration tasks can be executed.

CD-ROM mount

Checking all disk devices:


% ioscan -fnC disk

Class     I  H/W Path   Driver      S/W State   H/W Type     Description
disk      0  2/0/1.4.0  sdisk       CLAIMED     DEVICE       HP 18.2GST318406LW
                       /dev/dsk/c0t4d0   /dev/rdsk/c0t4d0
disk      1  2/0/1.5.0  sdisk       CLAIMED     DEVICE       YAMAHA  CDR400t
                       /dev/dsk/c0t5d0   /dev/rdsk/c0t5d0

The mount command is then

mount -o ro /dev/dsk/c0t5d0 /cdrom

# df

/cdrom               (/dev/dsk/c0t5d0     ):        0 blocks         0 i-nodes 
/home                (/dev/vg00/lvol4     ):  7385992 blocks    673591 i-nodes 
/opt                 (/dev/vg00/lvol5     ):  3520138 blocks    335703 i-nodes 
/tmp                 (/dev/vg00/lvol6     ):   882914 blocks    237891 i-nodes 
/usr                 (/dev/vg00/lvol7     ):  3179068 blocks    324120 i-nodes 
/var                 (/dev/vg00/lvol8     ):  1558032 blocks    469323 i-nodes 
/stand               (/dev/vg00/lvol1     ):   424334 blocks     41070 i-nodes 
/                    (/dev/vg00/lvol3     ):   890816 blocks     80391 i-nodes

Mount harddisk in mainframe slot

HP offered 1-slot modules with harddisk+floppy. I used an B-Size – To – C-Size Adapter and mounted there a harddisk inside. The P1 connector of the adapter has the required voltages for the harddisk (5V, 12V and GND). I connected the harddisk there and a SCSI cable connects the harddisk with the V743 module.

As soon as NFS works, the external  CD ROM is not really required anymore.

Software installation

The command swlist lists all installed packages. Below is the output after base installation:

# swlist
# Initializing...
# Contacting target "vxi1"...
# Target:  vxi1:/
# Bundle(s):
#  B3782EA               B.10.20        HP-UX Media Kit (Reference Only. See Description)
   HPUXEngCR700          B.10.20        English HP-UX CDE Runtime Environment

The command swinstall serves to install software. Start it with a source argument or without any arguments and enter interactively the required values. Finally the command can be started from inside sam.

 swinstall -s <hostname>:/<source-path>

If the user is not allowed to install software (I had this for root at some point) you can extend the „Software Access Control List“ with swacl.

Export current ACL to a text file:

swacl -l host > swacl.host

Add with an text editor a line for the user that should be added to the ACL, e.g.:


Re-import extended file to ACL system:

swacl -l host -F swacl.host

Adding of patch bundles and other software

There are many patches for HP-UX 10.20. Some of them are patch bundles containing hundreds of patches in one big chunk. Bundles can be installed like any other software using the swinstall tool. Look for the „General release“ and „ACE“ bundles.

Patches I installed:

      • XSW700GR1020 (more than 100 products)
      • ACE workstation (updating ~116 products, i.e. packages)
      • ACE networking (seems to be contained more or less 🙂 in the workstation patch bundle)

I hoped the ACE patches raises nfs to v3, but it does not.

After base installation I have installed several things:

      • Java (JRE+JDK)  (super-old version 1.0.3),
      • A Patch bundles named „XSW700GR1020“ (General Release Patches for HP-UX 10.20 Workstations)
      •  B6378DA:Networking ACE and B6193EA Workstation ACE patch
      • E2091F: HP  I/O Libraries (see below)
      • Several OSS tools like bash, gcc etc.
 # Initializing...
 # Contacting target "vxi1"...
 # Target:  vxi1:/
 # Bundle(s):
 B3782EA                       B.10.20        HP-UX Media Kit (Reference Only. See Description)
 B5455AA_APZ                   B.01.03        HP-UX Development Kit for Java* (S700)
 B5457AA_APZ                   B.01.03        HP-UX Virtual Machine for Java* (S700)
 B6193EA                       ACE.199912.01  Workstation ACE for HP-UX 10.20 (December 1999)
 B6378DA                       ACE.199912.01  Networking ACE for HP-UX 10.20 (December 1999)
 E2091F                        G.01.02        HP I/O Libraries for HP-UX
 HPUXEngCR700                  B.10.20        English HP-UX CDE Runtime Environment
 XSW700GR1020                  B.10.20.33     Extension Software Patch Bundle
 # Product(s) not contained in a Bundle:
 bash                          4.3.30         bash
 binutils                      2.9.1-1        GNU binutils
 bzip2                         1.0.6          bzip2, bunzip2 - a block-sorting file compressor
 gcc                           4.2.2          gcc
 grep                          2.21           grep
 gzip                          1.3.9          gzip
 lsof                          4.80           lsof
 tar                           1.20           tar


Set Up Networking

HP E1498A contains everything required for network access. It has a 15 pin AUI connector in the Micro Sub D form factor (female).

Get a male connector for that and a female 15 pin Sub D connector. Wire pin numbers 1:1 together. Then an AUI-Transceiver can be connected to the female connector. The other side of the AUI Transceiver is 10Base-T, which can be connected to any modern network. AUI-Transceiver pin numbering is standardized, so you can use every transceiver you want.

My used CentreCOM 210TS AUI-Transceiver, bought from China for ~6 Euros.
On the left you can see the yellow 10Base-T cable, on the right the 15 pin connector. The transceiver is powered via the 15 pin connector from the E1498A.

Using sam, the LAN interface („lan0“) can be configured with an IP address, DNS server etc. Having done this, the interface is immediately up and running.

HP-UX can run several network services, e.g. telnet or nfs (v2), automounter can be used out of the box.

Note: Change nsswitch order (in sam, to take /etc/hosts first). Otherwise the machine may not find itself 🙂

ntp time synchronization

When trying to set up ntp, the client program refuses to synchronize to my time server (a fritz box which synchronizes itself from a public time server). During installation, it was not possible to enter a date behind 1999 and so I entered a date from 1996 (today-20 years). When later setting up ntp, xntpd did not like this and prints out:

Aug 28 01:10:49 vxi1 xntpd[5826]: Clock appears to be 631564685 seconds slow, something may be wrong

Aug 28 01:10:49 vxi1 xntpd[5826]: system event 2: System or hardware fault.

To overcome this a sync can be forced using this command:
     ntpdate <time_server_ip_address>

After that the system clock is correct and will be correctly synchronizing in the future.

Set up X Windows

The HP E1498A runs X11R6. If a keyboard and a mouse and a monitor is attached to it, the X X Server is started. Otherwise  X clients can only be used with a remote display (i.e. X Server). The base installation has only a few x clients to run.

On OpenSuse Leap 42 I was not able (easily) to let the X Server  listen to port 6000, which is required for X clients without a ssh connection. I use a socket forwarding command like this:

socat -d -d TCP-LISTEN:6000,fork UNIX-CONNECT:/tmp/.X11-unix/X0

After this, clients can connect in this way:

export DISPLAY=my-pc:0.0

Error messages: /var/dt/Xerrors

Set up VXI software

To control VXI devices from the HP E1498A, two things are needed:

  • Hardware:
    • Either a GPIB controller that fits into the mainframe. This thing is called HP E1406A.
    • Or use the VXI backplane together with ISCPI interface (see below)
  • Software: HP provided all the required software on a CD called „E2091F I/O Libraries for HP-UX 10.20“.

This software is not anymore provided by Keysight. You have to buy it somewhere else, eBay is your friend here.

After install, use the tool iosetup (an X Windows client) to configure the VXI- and the HPIB device inside the V743 board. iosetup will reconfigure those as new interfaces and recompile the Kernel. After a reboot, note that /dev/sicl is populated with many new devices.

Also, add ISCPI (Interpreted SCPI) as an interface. This allows to control HP measurement devices directly via VXI backplane, even without the need for a command module. This approach translates transparently SCPI commands to register-based calls.

iosetup GUI after adding vxi, hpib and iscpi interfaces (click right mouse button ‚open image‘ to enlarge)

After having all done this, devices in the mainframe can be accessed. The following C code accessed my HP E1411B digital multimeter at logical address 8 (code taken from HP documentation). It uses the ISCPI interface by using the device address „iscpi,8“ .

#include <sicl.h>
#include <stdio.h>

void main()
INST dvm;
char strres[20];

/* Print message and terminate on error */
ionerror (I_ERROR_EXIT);

/* Open the multimeter session */
dvm = iopen („iscpi,8„);
itimeout (dvm, 10000);

/* Initialize dvm */
iwrite (dvm, „*RSTn“, 5, 1, NULL);

/* Take measurement */
iwrite (dvm,“MEAS:VOLT:AC? 1, 0.001n“, 23, 1, NULL);

/* Read measurements */
iread (dvm, strres, 20, NULL, NULL);

/* Print the results */
printf(„Result is %sn“, strres);

/* Close the multimeter session */

Compile this with HP’s cc or gcc.
gcc vximesdev.c -o vximesdev -L /opt/sicl/lib/ -lsicl

Output looks like this:
bash-4.3$ ./vximesdev

Result is +1.220703E-002


Installation and Configuration Guide for Linux I/O Libraries (41 pages, for Linux, but you get idea for HP-UX too)

HP E1411A Digital Multimeter

This is like the HP E1326A but in a C-sized form factor.

Jumpers for GPIB secondary address (here: 8) and IRQ (here: 1).


HP E1411A Service Manual


  • Micro D / Micro D-Sub / Micro Sub-Dmale layouts document
  • Micro D / Micro D-Sub / Micro Sub-D 9 female pin layout document
  • Micro D / Micro D-Sub / Micro Sub-D 15 female pin layout document

Further readings

http://www.datadisk.co.uk/html_docs/hp/hpux_cs.htm – HP-UX Cheat Sheet

Controlling a HP75000 VXI Mainframes with HTML5 and Java technology

This home project shows how an old but still powerful VXI mainframe and its integrated measurement devices can be accessed with todays tools and technology.

I have described the wonderful HP75000 here: http://spurtikus.de/basteln/devs/hp75000/index.html

Overall architecture approach

The HP75000 and technologies around it are a complex scenario. After having created several island-like solutions for different GPIB-controlled devices, I tried a new and integrated approach based on the following ideas:

  • A standard web browser as the only front end to control and access VXI devices. No platform specific code on the front end side. Use of HTML5, JavaScript and WebSockets for client side functionality.
  • The „Delegate“ which accesses the VXI mainframe is implemented as a platform independent Java application. My name for the delegate is „VXI Server“.
  • Communication between browser (front end) and VXI Server with standard Web technologies, namely REST, HTTP and WebSocket protocol. So the VXI Server can be seen as a Webserver offering access to VXI devices via a REST and a WebSocket interface.
  • Implementation of the VXI Server for a USB-based GPIB-Controller. This allows the software to run on any platform which has a USB-Connector. E.g. Notebooks and the Raspberry mini computer.
  • By using Standard Web technologies for the server, access to VXI devices is LAN/WLAN based. So every client capable of running a browser can access all VXI devices. This includes also tablets and even smart phones.
  • The VXI Server can execute JavaScript files

The picture below show the overall system architecture.

Architectural overview

The picture below shows the software architecture overview. On top there is a standard web browser, running e.g. on a tablet. The tablet is connected via WLAN to a bigger LAN structure where also the VXI Server process runs. The VXI Server looks like a standard web server and serves REST and WebSocket requests. It accesses a GPIB controller using USB.

Software architecture


Some pictures from the ongoing work


HP E1326 Multimeter; Voltage measurement on 2 channels
The two channels are displayed in a graph (graph2d from vis.js) and as seven-segment digits. The channels are coming from two E1345 relay mux cards and can also be selected.


HP E1340 Arbitrary Function generator control interface.

This small movie shows how to interact with the Multimeter user interface.


Because Java contains the feature to execute scripting languages, I added JavaScript executing to the VXI server. This means that a client can create a JavaScript program and let the server execute it.

As an example, the following two lines make a voltage measurement and return it to the client (the browser).

var result = voltmeter.measureSingle();
se.Print.printMessage("Value: " + result);

The VXI Server binds the devices found in the HP75000 (later: the devices found on the GPIB bus) to variables like „voltmeter“. All methods defined for those Java objects can be executed from JavaScript. In the example, a method „measureSingle()“ is called. This method does a simple measurement, returned as a float value. The script prints out this value just for demonstrational purpose. Values from a script can be returned to the client by simply assigning them to the „result“ variable. This variable is bound to the result value and is used by the VXI Server to return the result value. A result can be anything e.g. a map of value lists or whatever. Using this machanism,  the client (usually the browser) can get the result of even complex measurements and display them.

Executing a script means that everything can be done, even without any client (after the script has arrived at the VXI Server). So this is a very powerful feature and can replace somehow the „IBASIC“ execution in the HP E1300.

Unordered things

Ohms mode

2 wire nur mit scanning mode
CONF:RES 20000 (@100)
MEAS:RES? (@100)
An HI/LO von Eingang 100 den R anschliessen.
Gewählten Range anzeigen mit:

Voltage range change

CONF:VOLT:DC 58.1,(@100) oder CONF:VOLT:DC 50,(@100)
CONF:VOLT:DC:RANGE 100 (@100) <== ob man das braucht?
CONF? zeigt nun den Range an
MEAS:VOLT? (@100)
MEAS:VOLT:DC? man kann „:DC“ weglassen weil DC ist der Default
Es geht auch: MEAS:VOLT:DC? 100,MAX,(@100)

HP E1345 Connector

This is a standardized DIN41612 3×32 pin connector where the pins 33..64 are not used (i.e. only outer pin rows are used).

For the 15 channels, three terminals H, L, G (for High, Low, Ground) are present.

Usually, a terminal block plugs into this connector. These terminal blocks are very rare. So their prices are today often higher than those of the cards itself.

HP E1345 Connector

HP E1330 Connector

These are 2 Standard PC/104 connectors with 2×30 pins.

HP E1330 Connector view

HP E1330 Connector, Pins


GPIB Controller UI


Prologix GPIB-to-USB Controller

kermit: ok
minicom: failed!


set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set handshake none
set flow-control /direct-serial rts/cts
set terminal echo local
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5

Prologix GPIB-USB Controller version 6.107
++addr 9 99  <– See note regarding addr command

MEAS:VOLT:DC? (@100,101,102,103,104,105,106)

Note to addr command: for secondary, enter (secondary address + 96). E.g. for address 3, enter 96+3 = 99.

Spurtikus.de GPIB Controller

GPIB Controller (Rev.0.8) (c) spurtikus.de 2008-2015
Internal commands:
.a – set prim./second. address of remote device.
.e – dump error queue.
.f – find partners.
.h – print help.
.i – dump info about controller state.
.r – toggle SRQ enablement.
.s secondary – set secondary address of remote device.
.x – toggle Xon/Xoff flow control.
.+ primary secondary – add partner device address to list of known devices.
.- primary secondary – remove partner device address from list of known devices.

Measurement Server

Measurement Client

Weiterführende Informationen