Réparation d’un voltmètre HP 419A

J’ai trouvé sur la baie un Hewlett Packard 419A DC Null Voltmeter. Il s’agit d’un voltmètre analogique à zéro central, pouvant mesurer des tensions continues positives et négatives, de 3µV à 1000V pleine échelle. Une source de tension interne permet de mesurer des tensions par comparaison ce qui rend théoriquement son impédance infinie dans ce mode. Il peut également mesurer des courants continus de 30pA à 30nA. Il aurait été mis sur le marché en 1965.

Ce modèle était utilisé en interne chez HP pour calibrer les voltmètres et comparer les références de tensions.

Le chapitre 5 de la note d’application 69 « Which DC Voltmeter » évoque son utilisation dans le laboratoire de calibrage de HP :

Principe de fonctionnement

Il était à l’époque plus simple de construire un amplificateur alternatif qu’un amplificateur continu : la construction des amplificateurs en composants discrets engendre des tensions d’offsets et donc des erreurs de mesure en continu, qui sont annulées en alternatif. C’est pourquoi le 419A utilise un hacheur optique.

Le hacheur est un bloc plein au sein duquel deux néons éclairent chacun deux photo-résistances alternativement. Cela forme un modulateur continu vers alternatif et un démodulateur alternatif vers continu.

État de l’appareil

Le vendeur avait indiqué « S’allume mais ne mesure pas ». Cet appareil disposant de batteries qui servent au filtrage de l’alimentation ainsi que d’une pile pour la référence interne de tension, il est sujet aux coulures de batteries. Un autre problème récurrent sur cette série d’appareils est l’usure de néons du hacheur optique qui ne se déclenchent plus alternativement.

Une fois le colis ouvert, pas de doutes, les batteries ont coulé, et une fois l’appareil sous tension, pas de doutes non plus, l’aiguille file à droite hors échelle, le hacheur ne fonctionne probablement pas …

Un test rapide des condensateurs de la carte principale révèle que les électrolytiques sont en piteux état, leur résistance en continu descends pour certains à 20k …

Réparations

Pour les coulures une seule solution : retirer les composants abîmés, nettoyer, neutraliser toute trace d’oxydant, réparer les composants/pistes.

Pour les condensateurs, pas de mystère un changement s’impose :

La carte A4 avec ses condensateurs changés

Le problème des néons à déjà été résolu de deux manières différentes :

La solution de Mr Carlson, l’emploi de LEDs, me plaît beaucoup plus que de conserver des néons. Contrairement à lui, je dispose de la plaquette d’origine pour implanter deux LEDs « Super bright » en lieu et place des néons. Il est nécessaire de rendre les LEDs diffusantes en les ponçant légèrement. Pour les alimenter en avec un Arduino en 5V, les résistances de 20K doivent êtres changées pour des résistances de 100 ohms, et on peut ponter l’emplacement des diodes.

La carte du hacheur optique

Pressé de vérifier le fonctionnement du chopper, j’ai câblé un Arduino Uno pour faire clignoter les LEDs et vérifier si l’appareil montrait des signes de vie. L’alimentation étant démontée j’ai alimenté, à l’aide de mon alimentation HP 6237B, le voltmètre en +13/-13 et l’Arduino en +5V.

Le programme de l’Arduino Uno est simplissime la seule contrainte étant sur les timings que l’on trouve dans le Service Manual, Figure 5-4, page 23. On y constate qu’un cycle complet fais 6ms, soit 166Hz, et qu’un cycle comporte l’allumage de chacun des deux néons avec une pause entre deux allumages. Ce qui amène à des pauses de 1ms et des temps d’allumages de 2ms.

Ayant monté les LEDs à l’envers, j’ai du inverser les sorties.

Premiers essais :

1mV sur le calibre 1mV
1mV sur le calibre 3mV
3mV sur le calibre 3mV

Les résultats sont prometteurs, il reste à nettoyer les contacts du sélecteur de calibre, refaire une alimentation car les accus utilisés sont introuvables, remplacer la pile qui sert de référence pour le null, et empêcher la dégradation du cadran qui commence à se décoller.

Manuel de service

Une autre version, moins propre mais plus récente :

Le code de l’Arduino Uno

const int LED_0 = 8;
const int LED_1 = 9;

// Service Manual, Figure 5-4, page 23 :
// DELAY_ON + DELAY_OFF + DELAY_ON + DELAY_OFF = 6ms => 166Hz 

const int DELAY_ON = 2;
const int DELAY_OFF = 1;

void setup() {
  pinMode(LED_0, OUTPUT);
  pinMode(LED_1, OUTPUT);
}

void loop() {
  digitalWrite(LED_0, 1);
  digitalWrite(LED_1, 1);
  delay(DELAY_OFF);
  digitalWrite(LED_0, 1);
  digitalWrite(LED_1, 0);
  delay(DELAY_ON);
  digitalWrite(LED_0, 1);
  digitalWrite(LED_1, 1);
  delay(DELAY_OFF);
  digitalWrite(LED_0, 0);
  digitalWrite(LED_1, 1);
  delay(DELAY_ON);
}