Capmeter – Kapazitätsmessgerät mit dem AVR

Kapazitätsmessgeräte („C-Meter“) kann man kaufen. Man kann sich aber auch eines mit einem Mikrocontroller selbst basteln.

Auf der Suche nach einem nachbaufähigem Projekt im Internet bin ich auf das Projekt von Lars Pontoppidan (http://pontoppidan.info/lars/index.php?proj=capmeter) gestoßen. Das Gerät ist mit einem AVR – Controller aufgebaut und misst Kapazitäten zwischen einigen Picofarad und einigen Tausend Microfarad. Ich beschloss nach diesem Bauvorschlag vorzugehen. Das Gerät baut allerdings auf dem ATmega8 auf und es ist kein Platinendesign mitveröffentlicht. Daher habe ich mir dort im wesentlichen nur das Grundprinzip geholt und ein ähnliches Gerät mit dem ATmega32 aufgebaut. Die Software habe ich komplett neu geschrieben.

Im folgenden zunächst Erläuterungen in deutsch, dahinter meinen englischer Text aus dem Source-Code, der auch detaillierter auf die Software eingeht.

Theorie zum Messverlauf

Die Zeit, die ein Kondensator braucht, um aufgeladen zu werden steht in einer Beziehung zur Kapazität des Kondensators. Während der Aufladung gibt es einen Bereich, indem die Ladespannung nach einer bekannten Funktion ansteigt. Aus der Steigung der Kurve kann man die Kapazität des Kondensators berechnen.

Die folgende Skizze stellt den Messvorgang genauer dar. Der Kondensator wird entladen, dann wird mit dem Laden begonnen. Die Y-Achse stellt die Spannung, die am Kondensator erreicht wurde, dar. Die X-Achse ist die Zeit.


Verlauf einer Messung. Entladung bis deutlich unter Schwellwert 1 (T1).
Dann Start der Ladung des Kondensators. Messung der Zeitpunkte „Threshold 1 erreicht“ und „Threshold 2 erreicht“.
Aus den beiden Zeitwerten kann dann die Kapazität berechnet werden.

Der Ladevorgang startet in der Nähe von 0V, bei einem festen Spannungswert „Threshold 1“. Die Ladung wird durchgeführt bis ein bestimmter weiterer Spannungswert „Threshold 2“ erreicht ist. Die Zeit, die zwischen dem Durchgang durch die beiden Thresholds vergeht, wird gemessen.

Die beiden Threshold-Spannungen werden durch einen Spannungsteiler aus der Betriebsspannung +5V gewonnen. Der Spannungsteiler stellt drei Spannungen bereit.


Der Spannungsteiler für die Referenzspannungen.

Die Schaltung des Messgeräts ist in untigem Bild dargestellt.

Der zu messende Kondensator Cx wird über die Widerstände 1M8 bzw. 1K8 geladen. Die erreichte Spannung am Kondensator wird über den analogen Eingang AIN0 des AVRs gemessen. Die LED leuchtet im Original während des Messvorgangs.

Der oben erläuterte Referenzspannungsteiler wird an die analogen Eingänge ADC1..3 angeschlossen.

In blau ist der Anschluss eines Quarzes und an die Versorgungsspannung dargestellt. Wenn man ein vorhandenes Experimentierboard wie das Pollin-Board einsetzt. braucht man diese Anschlüsse nicht beschalten.

Am Port C wurde das LCD-Display (hier SEIKO 2432) angeschlossen.


Beschaltung des ATmega32
Das folgende Bild zeigt den fliegenden Aufbau des Spannungsteilers und der Lade/Messschaltung.

Erster Experimentalaufbau

Im folgenden ist beispielhaft der zeitliche Verlauf des Messzyklus dargestellt. Die Entladung erfolgt in etwa 25ms bis auf den Schwellwert 880mV des Spannungsteilers (weiße Linie). Dann beginnt die Aufladung. Ist diese (nach hier ca. 75ms) beendet, beginnt nach kurzer Zeit der Messzyklus von vorn. Bei der gewählten Kapazität wird mit einer Frequenz von ~3,8Hz die Messung wiederholt. Mit anderen Kapazitäten ergeben sich andere Zeitwerte, das Prinzip bleibt aber gleich.

Der Experimentalaufbau wurde bald auf Lochrasterplatine wiederholt. Im folgenden Bild ist die analoge Beschaltung des AVRs sowie das LCD-Display dargestellt. Der AVR selbst sitzt auf einem Pollin-Board (im Bild nicht dargestellt).

Der gemessene Kondensator hat einen aufgedruckten Wert von 6800µF. (Dieser Kondensator weicht relativ stark nach oben von seinem Sollwert ab)

Für das Capmeter wurde eine kleine Platine entworfen. Der auf der Lochraster-Platine aufgebaute Teil sollte aber weiter verwendet werden. Daher habe ich einen Entwurf gemacht, der bezüglich der verwendeten Pins zum Pollin-Board kompatibel ist, so dass die Lochraster-Platine ohne Änderung an das neue Board angeschlossen werden kann.


Entwurf der Platine mit Eagle. Übrigens meine erste Platine mit Eagle überhaupt.

Beim Belichten der Platine habe ich nur eine Transparentfolie (statt der empfohlenen übereinanderliegenden zwei oder drei) verwendet. Die Platine hat daher viele kleine Löcher im Kupfer, war nach Prüfung mit dem Ohmmeter aber dennoch verwendbar.

Einbau in ein Gehäuse: Das LCD-Display wird ins Gehäuse eingeklebt. Die Platine mit dem AVR wird mit Abstandsbolzen befestigt und die Lochrasterplatine aufrecht stehend angebracht.


Zwischenstand während des Einbaus ins Gehäuse

Erster Test im Gehäuse noch ohne Frontplatte

Im folgenden Erläuterungen zur Software. Diese sind den Sourcedateien entnommen und in Englisch.

Capacitance Meter with AVR

Introduction

This code implements a capacitance meter using an AVR and some external parts. The idea and the hardware is based on the capmeter described at: http://pontoppidan.info/lars/index.php?proj=capmeter

The capmeter is able to measure from small capacitors of some picofarads up to large ones of at least >7000microfarads. My largest Capacitor is 6800 Microfarads (which measures itself as a 7200uF value), so I cannot test it for larger values than this. I assume that even values of lets say 50000uF can be measured.

Usage

Automatic calibration

Switch the device on. The device does a self calibration at startup (displaying this state as „Calibration“ at the LCD display). During self-calibration, nothing should be attached to the probes (otherwise all subsequent measurements will display wrong results). After calibration, the device enters the measurement loop.

Doing Measurements

After calibration finished, the device will just repeat measurements. If nothing is attached to the probes, the device will display „0pF“. If something is attached to the probes, it will display the state of the measurement and the last result measured. Measurement time increases with cap size, a large cap will need some seconds to be measured.

These are all things to be known for doing measurements.

Hardware

See config.h for pin assignments. This software uses 4 Pins.

  • Discharge Pin and Analog Comparator Pin (both functions on one pin)
  • Charge Pin for „high current“ charging (via 1K8 resistor)
  • Charge Pin for low current charging (via 1M8 resistor)
  • LED Pin. Led lights during measurement. Not very important, because the LCD shows the same info.

There is a resistor network that creates three reference voltages for the comparator. The resistor network creates the following voltages: 0,88, 1,77, 2,65V.

For charging there are two resistors and for discharging there is one resistor.

Basic idea is to measure the time that is needed by the capacitor-in-measurement („CX“). to be loaded from one voltage level to a higher voltage level. The time is somewhat proportional/linear to the capacity.

Time measurement is done incrementing a timer start running if the load crosses the lower threshold (voltage level) and stop running if the higher threshold is crossed.

Because for small capacities the time for loading is very short, for these the low current charging is used. For high capacities the „high current“ charging is used. All measurement cycles are started assuming a small cap. The cap is loaded with low current. If a timeout is reached without having crossed the higher threshold, it is assumed that the cap is a large one. Then the cap is discharged and loaded with high current.

Theory of operation

The loading of a capacitor via a resistor is e.g. described here: http://en.wikipedia.org/wiki/RC_time_constant (German: RC-Glied, http://de.wikipedia.org/wiki/RC-Glied)

The time constant „tau“ can be calculated from

tau = R*C.

The voltage at the capacitor during loading is described by the formula:

        U(t) = Umax * (1 - e^(-t/tau))

This can be changed to

        t = -tau*ln(1-U(t)/Umax)

Using the voltages resulting from the resistor network, the following values for t can be calculated: (All these things are taken from http://pontoppidan.info/lars/index.php?proj=capmeter, all credits go to Lars Pontoppidan. I just repeated it to understand what he was doing.)

Ti=Threshold i
All Values "x" in the table should be used as "tau*x"


Ti  | t for 0..Ti | t for Ti-1..Ti | T for T0..Ti
----+---------------------------------------------
 0  |0.191891     |        -       |       -
 1  |0.43261      | 0,2401         | 0.2401
 2  |0.7461127    | 0.313502       | 0.554


Umax=5,04V (from a 7805 voltage regulator).

The timer creates a time value „tclocks“.

What we need is a formula capacitance = f(tclocks).

For the interested reader, to get that, please follow the next steps:

The time t actually spent in charging can be derived from tclocks using the xtal frequence of the AVR „F_CPU“:

 0. t=tclocks/F_CPU

For tau we know two things:

 1. tau*K = t , where K is 0,2401 or 0,554 from the table above
 2. tau=R*C

Using these three input formulas 0,1 and 2, we can proceed:

 C=tau/R (using 2.) = t/(K*R) (using 1.) = tclocks/(K*R*F_CPU) (using 0.)

For low current charging, R=1800 Ohms. For high current charges, R=1.800.000 Ohms. (You can measure and use the real values of your resistors with a good ohm-meter to get the best results).

So we have everything to calculate C from tclocks value.

Software

The software uses the UART lib for rs232 output and the LCD Lib for LCD access. These two libs are from Peter Fleury.

The software offers some basic functions to control the ports:

  • discharge()
  • charge()
  • led()

charge allows three different ways of charging:

  • charging via high pin (high current mode, via 1K8 resistor)
  • charging via low pin (low current mode, via 1M8 resistor)
  • supporting discharge using internal pullup resistors of AVR (not really a „charge“ mode)

There are several init_*() funtions for initializing different things

  • init_devices()
  • init_timer()
  • init_comparator()
  • init_vars()
  • init_uart()

There are two controlling functions

  • do_measure()
  • do_discharge()

These two functions start measuring/discharging. They do not wait until completion. Completion can be checked using state variables.

Finally there is main(), which does:

  • Initialisation
  • Calibration
  • Repeat measuring cycle
  • Print out on LCD and RS232

One measurement cycle includes the following steps:

  • Discharge cap below lower threshold
  • Charging using low current from LO to MID Threshold
  • If a result can be measured, it is print out and the cycle starts from beginning
  • If no result could be got (a timeout was reached), cap is discharged again
  • Charging using high current from MID to HI Threshold
  • If a result can be measured, it is print out and the cycle starts from beginning
  • Anyway, the cycle starts from beginning

The device does an automatic calibration at startup, i.e. starts after switching on device or after a reset. Precondition for a correct calibration: nothing is attached to the probes. A number (Default: 20) of measurements („samples“) are taken and the average value of these „measurements of nothing“ is calculated and stored. This stored value is then used for subtracting it from the value obtained from the later measurements.

In fact, calibration eliminates the capacity created by the board, the probe cables etc.

During the calibration, displays second line shows the text „Calibration…“.

Weiterführende Links

Bastelecke: Wägezellen

Wägezellen sind Kraftsensoren, mit denen z.B. elektrische Waagen aufgebaut werden.

Mit dem Typ „Doppelbiegebalkenfederkörper“ habe ich experimentiert.

Wägezellen eines Typs werden für unterschiedliche Nennlasten (z.B. 5, 10, 50, 90 KG) gefertigt.

Einsatzgebiete sind Messsysteme wie Dosierwaagen, Plattformwaagen, Abfüllwaagen.

Meine Wägezellen

Modell 1015

Hersteller unbekannt. Dieses Zellenmodell ist eines der ersten industriell gefertigten Modelle überhaupt. Laut http://www.soemer.de/waegezellen/waegezelle-1015.html sind bisher mehr als 10 Millionen dieser Zellen gefertigt worden. Nennlasten im Bereich von 3-90 KG werden angeboten. Mein Modell hat eine Nennlast von 5 KG.


Wägezelle von außen

 


Links Befestigungsbohrungen für eine Wiegeplattform

 


Im Innern: Hier ist der Dehnungsmeßstreifen zusammen mit den drei Präzisionswiderständen angebracht, alles in roter Paste geschützt

 

 

 

 


Und von ganz nah. Widerstand Vermutlich 200 Ohm 1%.

 

Anschlüsse, ungetestet, aus Vergleich mit anderen Zellen abgeleitet:

Blau +SENSE
Grün +V IN
Rot +Signal OUT
Schwarz -V IN
Gelb -SENSE
Weiß -Signal OUT
Masse

Modell TEDEA Huntleigh 1040

Das Modell 1041 ist ein ebenfalls sehr verbreitetes Modell, erhältlich für Nennlasten 5-100KG. Mein Modell hat eine Nennlast von 5 KG.

 

 

 

Messprinzip

To be done. Wheatstonsche Brücke, x mv/V, R, Spannung.

Messverstärker Penko FMD-2PC

Penko ist u.a. der Produzent zahlreicher Messverstärker. Mein älteres Modell „FMD-2PC“ ist von der Bedienung her ganz ähnlich zum Modell „FMD-g“, zu
dem man das Handbuch im Internet findet.

Der FMD-2PC bietet einen Eingang speziell für Wiegezellen, RS232 Schnittstelle, analoge Ausgänge und Schaltausgänge. Mittels Display
und Eingabetasten kann er eingestellt und bedient werden, dies ist ebenso auch via RS232 möglich.

Die analogen Ausgänge können eine Spannung proportional zum aufliegenden Gewicht abgeben. Sie werden vom intern vorhandenen digitalen
Gewichtswert via DAC versorgt.

Die Schaltausgänge können zwei bestimmte Gewichtswerte zugeordnet werden. (z.B. Minimal- und Maximalgewicht).

Über die Eingabetaster kann das Gerät eingestellt werden.

Auf dem Ausgabedisplay kann der momentane Messwert sowie während der Einstellung, der Einstellungsdialog dargestellt werden.

Via RS232 kann mittels eines einfachen Protokolls das Gerät ebenfalls bedient werden.


PMD-2PC Frontseite. 5 stellige LED-Anzeige, 8 LEDs zum Anzeigen von Zuständen, 4 Taster zur Dateneingabe/Steuerung.

 


Teil der Rückseite des PMD-2PC. Unten Leiste zum Anschluss der Wägezelle, oben Steuerausgänge, links RS232 Buchse. Buchse unten rechts ist zum Anschluss an 230V vorgesehen.

Kalibrierung

Kalibrierung bedeutet einstellen des Messverstärkers auf die verwendete Wägezelle. Man kann bis zu 4 Kalibrierpunkte festlegen.
Konkret legt man ein Gewicht auf die Zelle, z.B. 100g und stellt dann ein, welchen Wert der Verstärker dann anzeigen soll (also
100). Durch das Kalibrieren werden kleine Nichtlinearitäten der Wägezelle korrigiert. Der Messverstärker macht dies, indem er auf den
gelieferten Wert der Wägezelle eine Approximationsfunktion anwendet.

Versuchsaufbau

Die Wägezelle wurde in einen Schraubstock eingespannt, eine kleine Aluplatte als Plattform für zu messende Objekte angeschraubt und die Zelle mit ihren 6 Anschlüssen zuzüglich Schirmung mit dem Messverstärker verbunden.

Nach einer Kalibrierung konnten erfolgreich diverse Gewichte zwischen 1 Gramm und 1 Kilogramm gemessen werden.


Kein Gewicht

 


100 Gramm

 


200 Gramm

 


1000 Gramm

 


50 Gramm

 


20 Gramm

Einbau der Wägezelle in ein Gehäuse

Nach der dritten chinesischen Küchenwaage, die bei uns das zeitliche gesegnet hat wollte ich so eine Schrottflunder nicht mehr haben. Warum also nicht die Wägezelle einfach in ein Gehäuse einbauen, schon ist die Waage da!


Gehäuse aus HDF Platte 10mmm gesägt und geklebt

 


Oben kommt die Zelle hin, unten der Meßverstärker

 


Und so siehts fertig aus.

 

GPIB COMMPACK Reparatur für den Logik Analysator Tektronix 1241

Für meinen Logik Analysator Tektronix 1241 habe ich mir über ebay aus Israel das GPIB-Interface gekauft. Nach einiger Zeit stellte sich aber leider heraus, dass das Interface eine Macke hat. Manchmal werden Zeichen nicht korrekt übertragen, es kommt nur Schrott an. Empfangen wird scheinbar korrekt. Beispielsweise sollte das Kommando „id?“ in etwa folgenden String zurückliefern: „ID TEK/1241,V…“. Im Fehlerfall kam aber:

 > id?
command: id?
Query. Will check for answer.
{IEaUEKoqsuqmWyqoqmSYS{WqoqmCOMM{WqoqmACQ{q{q{s{s{

Hier sind einige Zeichen korrekt und andere nicht. Eine Analyse zeigte, dass auf dem Datenbus die Bits 0 und 7 (D1 und D6 von GPIB) immer als 0 gelesen wurden. Da auf dem Bus inverse Logik anliegt und alle gelesenen Bits vor der Weiterverarbeitung invertiert werden müssen, werden die Nullen zu Einsen, d.h. Bit 7 und Bit 0 ist immer Eins. Aus einem Space 0x20 wird so 0x61 und aus ‚A‘ wird ‚B‘ etc.

Da ich wenig Sinn sah, das Teil nach Israel zurückzusenden, stand als nächstes das Öffnen des Commpacks an.

Dort werkelt der TMS9914, ein GPIB Controller. Ausgabeseitig sind ein 75160/161 verbaut, zwei GPIB-Bus-Transceiver. Ich habe an den Eingängen des 75160AN gemessen. Dort liegen für alle Leitungen noch gleiche Pegel von etwa 3,2 Volt an. Die Abbildung unten zeigt zwei Signale auf dem Bus (D2 oben, D1 unten), dabei D1 mit nur 1,2 Volt Amplitude.

Der 75160 ist also defekt. Für einen Austausch ist das Entlöten erforderlich, dass man mit einem heißen Lötkolben (ich habe 380 Grad genommen) und Entlötpumpe vorsichtig machen kann. Die Lötstellen immer mindestens 5 Sekunden (ich habe bis 10 gezählt) erhitzen, so dass das Zinn schön flüssig ist.

Nach dem Entlöten kann das IC vorsichtig mit kleinen Schraubenziehern ausgehebelt werden. Keinesfalls Gewalt anwenden, es muss LEICHT gehen!

Danach habe ich eine Fassung eingelötet.

Schließlich habe ich, da ich das Ersatz-IC noch nicht habe, das alte IC wieder eingesetzt. Funktionsprobe zeigt, dass es genauso gut (bzw. schlecht) wie vorher funktioniert.

Ersatz-IC ist bestellt.

Elektronik Tutorial: Messen diverser Größen (Spulen)

nach http://www.sprut.de/electronic/switch/lc/lc.html#lmess

Dort ist auch der Bau eines LC-Meßgeräts (mit PIC Microcontroller) beschrieben: http://www.sprut.de/electronic/pic/projekte/lcmeter/lcmeter.htm.

Man kann die Induktivität einer Spule  ganz einfach bestimmen, indem ein  LC-Schwingkreis aufgebaut wird und diesem eine Sinusspannung variabler Frequenz zugeführt wird. Der Schwingkreis dämpft alle Frequenzen ausserhalb seiner eigenen Resonanzfrequenz, d.h. die Amplitude der Sinusspannung wird unterschiedlich stark gedämpft. Wenn die angelegte Frequenz gleich der Resonanzfrequenz des Schwingkreises ist, wird die angelegte Sinusspannung auch gedämpft, aber nur minimal.

Diverse Spulen

Die anzulegende Sinusspannung muß in etwa zwischen 1 und 100 Khz regelbar sein.  Die eigentliche Schaltung ist in folgendem Bild zu sehen.

Testschaltung. Links die Signalquelle (Signalgenerator),
in der Mitte der Schwingkreis mit der zu testenden Spule LUT,
rechts das Oszilloskop.

C2 sollte einen nicht zu kleinen Wert haben, z.B. 1µF oder größer. C2 darf kein Elko sein, sondern ein ungepolter Kondensator. Ich habe 1µF genommen. Durch Messen habe ich aus einer ganzen Reihe von 1µF-Kondensatoren einen Kondensator herausgesucht, der 1,009µF hat, also möglichst nah am Sollwert liegt. Der angelegte Signalgenerator sollte niederohmig sein (z.B. 50 Ohm). Statt eines Oszilloskops kann auch ein Voltmeter und ein Frequenzmesser genommen werden. Mein Oszi zeigt aber bequem Frequenz und Amplitude direkt an.

Gemäß der Gleichung L = 1 / (39,5 * C2 * f2 )
kann nun aus C und f der Wert L in Henry berechnet werden.

Bei gegebenem Kondensator C2 mit dem Wert von 1µF lassen sich übrigens aus der umgestellten Tabelle folgende Sollwerte für die Frequenz in Abhängigkeit von L berechnen:

Frequenz [Hz] L [µH]
159111 1
50315 10
22501 50
15911 100
7339 470
5031 1 mH
1591 10 mH

Beispiele

Die folgenden Bilder zeigen den Amplitudenverlauf am Oszilloskop beim Durchstimmen in der Nähe der Resonanzfrequenz. Diese liegt -ermittelt bei der maximalen Amplitude- bei 15,38 Khz.

14,29Khz, Amplitude nur 140mV

 

15,38Khz, Amplitude ist an diesem Punkt maximal, bei 280mV. Dies ist also die Resonanzfrequenz des entstandenen RL-Kreises.

 

17,86Khz, Amplitude ist wieder gefallen auf 152mV

Aus dem abgelesenen Wert f=~15,4Khz lässt sich nun L berechnen:
L= 1 / (39,5 * 0,000001 * 154002 ) = 1,067 * 10-4 = 106µH. Aufgedruckt auf der Spule ist der Wert 100µH.

Weitere Beispiele:

  • Spule 2 (aufgedruckter Wert 15µH (Farbringe)):
    max. Amplitude bei 40Khz. L = … = 1,58*10-5 = 15,8µH.
  • Spule 3 (aufgedruckter Wert 5600µH (Zahl „562“ = 5600)):
    max. Amplitude bei 2,19Khz. L = … = 5,278 * 10-3 = 5278µH .
  • Spule 4 (aufgedruckter Wert  680 µH (Text  „681K“ = 680)):
    max. Amplitude bei 6,0Khz. L = … = 7,03*10-4 = 703µH.

Fazit: Alle Testmessung führten mit dieser einfachen Methode zu ziemlich guten Ergebnissen, so dass auch eine unbekannte Spule recht gut gemessen werden kann.

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

Contents

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:
VXI:CONF:DLAD?
0,+24,+25,+26,+64,+72,+80,+144

Details for devices:

VXI:CONF:DLIS?
+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:

SYSü
 Testing ROM
 Testing 256K Bytes RAM
 Passed
 Testing CPU
 CPU Self Test Passed
 HPIB Address: 09
 Talk/Listen
 Logical Address = 0
 Servant Area = 255
 Searching for static devices
 Mapping A24 memory
 Searching for pseudo devices
 SYSTEM INSTALLED AT SECONDARY ADDR  0
 VOLTMTR INSTALLED AT SECONDARY ADDR  3
 ARB INSTALLED AT SECONDARY ADDR 10
 DIG_IO INSTALLED AT SECONDARY ADDR 18
 SYSTEM instrument started

VXI:CONF:DLAD?
+0,+24,+25,+26,+80,+144

VXI:CONF:DLIS?CONFIG?
 +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";
DIAG:DRIV:LIST:ALL?
 ARB,E1340A,A.01.02,RAM;

DIG_IO,DIG_IO,A.05.04,RAM;
 SYSTEM,E1300A,A.07.00,ROM;
 UNKNOWN,UNKNOWN,0,ROM;
 VOLTMTR,E1326A,A.05.00,ROM;
 SWITCH,SWITCHBOX,A.06.00,ROM;
 COUNTER,E1332A,A.04.01,ROM;
 COUNTER,E1333A,A.04.01,ROM;
 DIG_I/O,E1330A,A.04.02,ROM;
 D/A,E1328A,A.04.01,ROM;

Memory information

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

DIAG:DRAM:CRE MAX

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

DIAG:BOOT:WARM

And inquire the amount of reserved RAM.

DIAG:DRAM:CRE?

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

or

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
 
SYSTEM_0: busy SYSTEM_0: SYST:COMM:SER:PACE:THR:STOP? MAX +99 SYST:COMM:SER:PACE:THR:STOP 79 SYST:COMM:SER:PACE:THR:STOP? +79 SYST:COMM:SER:PACE:THR:STAR 0 -222,"Data out of range" SYST:COMM:SER:PACE:THR:STAR MIN SYST:COMM:SER:PACE:THR:STAR? +1 DIAG:DRAM:CRE 75000 DIAG:DRAM:CRE? +0,+0 DIAG:DRIV:LIST:RAM? NONE,NONE,0,RAM

(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
*RST
DIAG:DRIV:LOAD:CHEC #800144482

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:
^D

si system

DIAG:BOOT

Yippie, after the boot, the new driver can be seen :
diag:driv:list:ram?

ARB,E1340A,A.01.02,RAM

And all drivers:
 DIAG:DRIV:LIST:ALL?

ARB,E1340A,A.01.02,RAM;
 SYSTEM,E1300A,A.07.00,ROM;
 UNKNOWN,UNKNOWN,0,ROM;
 VOLTMTR,E1326A,A.05.00,ROM;
 SWITCH,SWITCHBOX,A.06.00,ROM;
 COUNTER,E1332A,A.04.01,ROM;
 COUNTER,E1333A,A.04.01,ROM;
 DIG_I/O,E1330A,A.04.02,ROM;
 D/A,E1328A,A.04.01,ROM

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.

Contents

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…

Documents

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.

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

 

 

 

PA-7100LC CPU @ 100Mhz

SCSI cable, some socketed PROMs containing the Boot code

 

RAM

 

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.

Documents

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.:

user:root:crwit

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

Documents

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
xterm

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 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 */
iclose(dvm);
}

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

Documents

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).

Documents

HP E1411A Service Manual

Misc

  • 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

FAG Kugelfischer SV500

Hier ein paar Fotos von einem Geigerzähler SV500 der Firma FAG Kugelfischer. Diese Geräte wurden über viele Jahre in großer Zahl durch die Bundeswehr genutzt.

Das Gerät hat exzellente mechanische Qualität und ist insgesamt ohne Rücksicht auf die Kosten entworfen und gefertigt.

Für das SV500 gibt es unterschiedliche Zählrohre, die je nach Strahlungsart gewechselt werden können. Neben dem internen Zählrohr, das ebenfalls einfach getauscht werden kann, kann ein externes Zählrohr angeschlossen werden.  Dieses kann dann in die Nähe der zu untersuchenden Gegenstände gebracht werden.

Sowohl Nutzerhandbuch als auch „Service-Guide“ des SV500 sind im Internet verfügbar.

Das Gerät verwendet für die beiden hohen Bereiche (1000 rad/h und 50 rad/h) ein anderes Zählrohr. D.h. in dem Zählrohrbehälter sind zwei Zählrohre eingebaut, eines für starke Strahlung und eines für schwächere Strahlung.

Das Gerät zeigt mit dem Messinstrument eigentlich eine Impulsrate an. Die Impulsrate ist über die Zählrohreingenschaften in einen Strahlungsmeßwert umrechenbar. Ich habe durch Ausprobieren ermittelt, daß 1000 rad/h einer Zählrate von rund 130000 Impulsen/s entspricht, 1 mrad/h entspricht rund 8,69 Impulsen/s. Der Hersteller hat aus den ihm vorliegenden Informationen die Skala abgeleitet und das Gerät geeicht. Wenn ein anderes Zählrohr verwendet wird, stimmen die Werte auf der Skala natürlich nicht mehr. Hier muss man sich einen Korrekturfaktor selbst bestimmen.

Im folgenden einige Bilder des Geräts.


Batterie und Sondenbuchse.

 


Anzeige: Auszustand

 

 


Anzeige 0..5 rad/h

Anzeige 0..500 mrad/s

 


Anzeige: 0..50 mrad/h, kombiniert mit 0..2000 imp/min

Anzeige: 0..5 mrad/h, kombiniert mit 0..2000 imp/min

Im folgenden einige Bilder vom Innern des Geräts.


Die Walze hinter dem Messinstrument

 


Sicht auf Bereichsschalter (links unten)

 


Hauptplatine, beidseitig

 

 

 


Sondenbuchse Anschlüsse

 


Drei der 5 Ebenen des Bereichsschalters

 


Trimmer zum Kalibrieren des Gerätes (für 5, 50 und 1000 R/h)

 


Schwellwertmechanik

 


Hauptplatine Bestückung

 


Warnsignal-Platine unter der Hauptplatine

 

 

 

 

 


Abgenommene Gehäuseunterschale

 


Gehäuseunterschale von außen. Sichtbar die Einschübe für internes Zählrohr und Batteriehalter.

 


Gehäuse von unten.

 

Oben Batteriefach, unten Sondenfach ohne Sonde.

Sondensignal

Das Sondenkabel hat einen sehr ungewöhnlichen Stecker. Diesen habe ich entfernt und durch einen Standard-DIN-Stecker aus Vollmetall ersetzt. Für das Kabel gilt folgende Farbbelegung:

Kabelfarbe Bedeutung
Gelb Hochspannung 530 Volt
Braun Masse
Weiß Vcc (3V)
Grau Signal Sonde 1 (Niedrigenergetisch bis 5rad/h)
Grün Signal Sonde 2 (Hochenergetisch) (ab 50 rad/h)

 


Meine DIN-Stecker/Buchsenbelegung. Aufsicht auf Kontaktseite.

Das einzuspeisende Signal wird vom SV500 über einen Kondensator eingekoppelt, der Signaloffset spielt daher keine Rolle. Ich habe als Testsignal ein Rechtecksignal genommen. Dies wird vom Zähler ab ca. 84mV Vpp erkannt. Die folgenden Tests wurden mit 250mV Vpp Rechteck durchgeführt.

Ich habe für alle Bereiche die für die jeweiligen Strahlungswerte erforderliche Frequenz ermittelt. Ermittlung durch Ablesen der Skala und einstellen der Frequenz mit einem Funktionsgenerator. Die Werte sind also nur ungefähr.

Skala 1000 rad/h

Signal an Kabel ‚Grün‘

rad/h Frequenz am Geräteeingang [Hz]
1000 130.000
700 114.000
500 100.000
200 65.720
100 42700
70 33.610
50 26.540
40 22.500
30 17.700

Skala 50 rad/h

Signal an ‚Grün‘

rad/h Frequenz am Geräteeingang [Hz]
50 19.690
40 16.740
30 13.710
20 10.830
10 5.890
5 3.210
3 1.920

Skala 5 rad/h

Signal an Kabel ‚Grau‘

rad/h Frequenz am Geräteeingang [Hz]
5 14.360
2 9.090
1 5.850

Skala 500 mrad/h

Signal an ‚Grau‘

mrad/h Frequenz am Geräteeingang [Hz]
500 3.530
400 2.904
300 2.230
200 1.560
100 783

Skala 50 mrad/h

Signal an ‚Grau‘

mrad/h Frequenz am Geräteeingang [Hz]
50 373
30 237
20 170
10 87
5 49

Skala 5 mrad/h

Signal an ‚Grau‘

mrad/h Frequenz am Geräteeingang [Hz] Rechnerischer Wert aus imp/min berechnet
5 38
4 31
3 23,7 21,6
2 16,7 15
1 8,69 7,3
0,5 4,88

Der Hersteller hat für die 5mrad/h und die 50 mrad/h Skala zusätzlich die Impulse/min mitangegeben. Daraus kann man die notwendige Frequenz auch berechnen. Am Beispiel der 5mrad/h Skala habe ich einige der Werte mit den berechneten verglichen.

Verwendung alternativer Zählrohre am SV500

Die fabrikseitig verfügbaren Zählrohre sind für Gammastrahlung und Gamma/Beta-Strahlung geeignet.

Mit technischem Geschick lässt sich praktisch jedes übliche Zählrohr mit dem SV500 verwenden. Besonders interessant sind dabei hochempfindliche Sonden, die auch Alpha-Strahlen nachweisen können.

„Pancake-Sonden“ sind solche hochempfindlichen Sonden. Sie haben diesen Namen, weil sie nicht in Form eines schmalen Rohres, sondern als flache Scheibe (Pfannkuchen) gebaut werden. Dadurch ist die empfindliche Fläche ein Vielfaches größer als bei einem einfachen Zählrohr.
Das alleine würde aber nicht ausreichen, um Alpha-Strahlen nachzuweisen. Diese werden nämlich bereits durch das normale Glas bzw. Metall des Zählrohrkörpers blockiert. Das Fenster der Pancake-Sonde  besteht daher aus einem speziellen Material (Glimmer) und ist extrem dünn (rund zehn Mikrometer, also 0,01 mm).

Ich habe mir das SV500 ohne Sonde gekauft und dazu eine Pancake-Sonde SI-8B in der Ukraine bestellt. Dort gibt es noch unbenutzte Sonden aus den 80ern und 90ern aus Sowjetproduktion.


SI-8B, mit Blitz fotografiert. Sechs Drahtringe sind zu einer gemeinsamen Anode zusammengeschlossen.

 


Ohne Blitz fotografiert, sieht man interessante Farbeffekte, die die hauchdünne Glimmer-Oberfläche produziert

 

 


Unterseite der Sonde.

SI-8B Anschlussbelegung

Zwischen SV500 Sondenanschluss und dem Zählrohr braucht man eine kleine Adapterschaltung. Diese hat 2 Aufgaben:

  • Aufbereitung der korrekten Hochspannung aus dem 530V-Ausgang des SV500
  • Aufbereitung des Ausgangssignals der Sonde, so dass es vom SV500 genutzt werden kann.

Beispielhaft finden sich solche Adapterschaltungen schon im Service Handbuch des SV500. Eine alternative schöne Schaltung habe ich hier gefunden und nachgebaut.


BILD: Schaltung von http://www.chirio.com/SV500.htm.

Dazu habe ich ein Platinenlayout im Format 57x42mm entworfen.

 

Platinenlayout Ätzvorlage. Platinenmaße 57x42mm.
Achtung: A und K des Zählrohrs sind im Aufdruck leider falsch, nämlich vertauscht!!!


Platinenlayout Bestückung

 

Die Adapterplatine. Sie ist deutlich kleiner als die Sonde und passt unterhalb der Sonde in das Sondengehäuse.

 Die mechanisch empfindliche Sonde wird in ein handliches Gehäuse eingebaut. Dieses nimmt im dickeren Teil die Sonde und die Elektronik auf. Das dünnere Teil dient als Handgriff, an dessen Ende befindet sich die erwähnte Vollmetall DIN Buchse für das Verbindungskabel zum SV500.

Rohversion des Sondengehäuses. Die Sonde wird hier zum Testen mit einer Kunststoffscheibe abgedeckt. Später soll dieses durch ein grobes Metallgitter ersetzt werden.

 

 

to be continued

Weiterführendes

 

Mein Lomo MBS-9 Stereo Mikroskop

Für meine SMD-Arbeiten war ich auf der Suche nach einem brauchbaren Mikroskop.

Die Vergrößerung sollte nicht zu stark sein, für SMD Arbeiten sind Werte von 2x bis 10x, vielleicht in Sonderfällen mal 20x sinnvoll. Ich hatte bereits Erfahrungen mit einer Kopflupe, die den Bereich von 1,5-4x abdeckte. Dabei hatte ich gemerkt, dass man nicht wesentlich mehr an Vergrößerung benötigt.

Neue günstigere Geräte lagen mit ihren Vergrößerungswerten bei über 20x, so dass der zusätzliche Kauf weiterer, schwächerer Linsen notwendig gewesen wäre. In Summe kommt dann ein günstiges Mikroskop (ca. 120 Euro) zuzüglich der Linsen (60 Euro) und Versand auf knapp 200 Euro.

Für dieses Geld bekommt man bereits professionelle Gebrauchtgeräte. Deren optische und mechanische Qualität ist normalerweise unvergleichlich besser.

Die russische Firma produziert seit Jahrzehnten hochwertige optische Geräte in Russland, u.a. Teleskope, Mikroskope und Laser.

Auf eBay fand ich ein russisches Mikroskop der Firma Lomo, und zwar mit der aufgedruckten Typenbezeichnung die aussah wie „O?M3-N2“ ( ОГМЭ-П2), das Zeichen unter ? sah in etwa aus wie eine seltsame „7“. Der amerikanische Anbieter inserierte das Gerät unter dem Namen „Lomo M3-N2“. Darunter fand ich aber keine Informationen im Internet. Erst nach Studium des kyrillischen Alphabets kam heraus, dass das Gerät in westlichen Buchstaben „PHAE-P2“ heißt. PHAE-P2 ist aber die Bezeichnung des Objektivkopfs des Lomo MBS-9. Damit stand fest, dass ich ein Lomo MBS-9 erstanden habe. Es fehlen aber einige Teile die bei einem „Standard-„-MBS-9 dabei sind.

Das Mikroskop erlaubt ein Zoomen, man kann die Vergrößerung variieren. Das Okular hat eine Vergrößerung von 8x. Hinzukommen die Vergrößerungen der Linsen mit Werten von 0.6x, 1x, 2x, 4x, 7x. Ich kann also zwischen 4.8x und 56x variieren.

Beim vollständigen MBS-9 sind weitere Linsen dabei, so dass man Vergrößerungen bis über 100x erreichen kann. Dieser Linsensatz ist bei meinem Exemplar nicht mit dabei. Desweiteren fehlen auch Dinge wie Belichtung, Armstützen, Trafo für Belichtung etc. Naja, brauche ich alles nicht wirklich. Vor allem die antike Beleuchtung mit einer 8 Volt Lampe würde ich ohnehin durch eine LED-Beleuchtung ersetzen.

Mit Versand und Zoll und Einfuhrsteuer kommt mein Gerät auf fast genau 200 Euro, liegt damit also auf der selben Höhe wie ein qualitativ weit schlechteres Gerät, das MBS-9 bietet darüber hinaus noch ein bequemes Zoomen an, was das einfachere Neugerät nicht könnte.

Die folgende Tabelle stellt die verschiedenen Vergrößerungen und die eingebaute Skala gegenüber.

Vergrößerung

 

Unit

 

mm

 

0.6 1 1,75
1 1 1
2 1 0,5
4 1 0,25
7 1 1/7mm=0,1

Masse des Tubus: 56mm Durchmesser.

Wenn man eine Digitalkamera direkt auf das Okularloch hält, kann man brauchbare Fotos machen, allerdings mit schwarzer runder „Vignette“

 

Ein anderes Foto, hier innerhalb der Vignette ausgeschnitten

Im folgenden ein paar Bilder vom Mikroskop.

 

 

 


Die Sechskantschraube links ist nicht Original

 


OGME-P2 / PHAE P2
made in CCCP

 

 

Der Kopf wird durch eine Schraube fokussiert und kann so leicht entfernt werden

 

 

 

Weiterführende Infos

Beleuchtung für Lomo MBS-9 Stereo Mikroskop

Bei meinem Lomo Mikroskop war die Originallampe nicht dabei. Ich habe daher eine passende Lampe gebaut, die mit 10 superhellen LEDs ausgerüstet ist und mit 6-9 Volt betrieben werden kann.

Beleuchtung am Mikroskop befestigt

 

Ätzvorlage

 


Bestückung

Schaltplan. Je nach verwendeter LED müssen die Widerstände evtl. verändert werden, so dass bei einer gegebenen Betriebsspannung der Maximalstrom für eine LED nicht überschritten wird

Wie macht man eine Platine in der Form einer Kreisscheibe?

Z.B. mit einer feinen Stichsäge oder so wie ich es gemacht habe.
Da ich eine Fräse und einen Drehtisch mein Eigen nenne, kann man die Platine am Mittelpunkt in ein Drehfutter einspannen, das auf dem Drehtisch befestigt ist. Dann kann man einfach durch Kurbeln mit einem Fräser auf den beiden Umkreisen die Platine ausschneiden.


Die Platine wurde im Kreismittelpunkt durchbohrt und ins Drehfutter eingespannt.

Das Drehfutter ist auf dem Drehtisch montiert.

 


Ausfräsen des äußeren Kreises

Nach dem Bestücken wurde experimentiert, wie die Lampe befestigt werden kann. Das Lomo Mikroskop hat einen drehbaren Ring mit einer Öse. Daran habe ich zunächst die Lampe mittels eines Stahlwinkels befestigt.


Erster Befestigungsversuch – die Lampe ragt etwas weit in den freien Raum unter dem Objektiv hinein.

Die LEDs sind in diesem Foto nicht stark genug nach innen gebogen eingesetzt, so dass sie nicht in der Mitte des Objektivbildes fokussieren.

Die LEDs wurden in einem zweiten Durchgang stärker nach innen gebogen, so dass sie ausreichend Licht in der Objektivmitte fokussieren.

Außerdem wurde der Winkel nun auf der anderen Seite der Platine befestigt, so dass die Lampe insgesamt deutlich höher sitzt und nicht mehr in den freien Raum unter dem Objektiv hineinragt.

 

Unten die endgültige Version der Befestigung.

 

Weiterführende Infos