Thu, 05 Nov 2020 22:15:16 +0100
Fix several inter-document links
and normalize use of absolute path for {static} and {filename} links.
58
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
1 | ================================= |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
2 | HP 34970A Data Acquisition Unit |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
3 | ================================= |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
4 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
5 | :Author: David Douard |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
6 | :Category: Electronics |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
7 | :Tags: HP, 34970A, DMM, repair, test equipment |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
8 | :series: HP 34970A repair |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
9 | :series_index: 1 |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
10 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
11 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
12 | I recently "scored" a HP 34970A with the DMM included and 2 plugin |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
13 | cards (HP 34901A and HP 34907A) for less than 200€. The plugins should |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
14 | be in working condition, but the main switch unit was almost "given" |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
15 | with the plugin modules since it is non functional. |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
16 | |
115
6b6e13653348
content: use {static} instead of {filename} in image paths
David Douard <david.douard@sdfa3.org>
parents:
58
diff
changeset
|
17 | .. image:: {static}/images/hp34970a/front-view.jpg |
58
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
18 | :alt: front view of the HP 34970A data acquisition unit |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
19 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
20 | It's in very good shape, the front panel and the push buttons are |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
21 | clean. The knob is nice but it has a rough step when turning it for a |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
22 | complete revolution. |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
23 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
24 | When powered up, however, things are a bit nastier... The VFD is, as |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
25 | often with these equipment, very dim and the digits tend to puke on |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
26 | the others. In fact, it's mostly unreadable, and the unit beeps |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
27 | several times, signs of errors (which I cannot really read them see on |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
28 | the display). |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
29 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
30 | Internals |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
31 | ========= |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
32 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
33 | The unit consists in 4 parts: |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
34 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
35 | - the main logic/cpu board on the bottom left side, |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
36 | - the DMM module, juste above the main board, |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
37 | - the frontpanel and |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
38 | - the back plane where plugin modules are connected. |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
39 | |
115
6b6e13653348
content: use {static} instead of {filename} in image paths
David Douard <david.douard@sdfa3.org>
parents:
58
diff
changeset
|
40 | .. image:: {static}/images/hp34970a/bottom-view.jpg |
58
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
41 | :alt: bottom view of the HP 34970A |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
42 | |
115
6b6e13653348
content: use {static} instead of {filename} in image paths
David Douard <david.douard@sdfa3.org>
parents:
58
diff
changeset
|
43 | .. image:: {static}/images/hp34970a/top-view.jpg |
58
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
44 | :alt: top view of the HP 34970A with DMM removed |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
45 | |
115
6b6e13653348
content: use {static} instead of {filename} in image paths
David Douard <david.douard@sdfa3.org>
parents:
58
diff
changeset
|
46 | .. image:: {static}/images/hp34970a/dmm.jpg |
58
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
47 | :alt: DMM module of the HP 34970A |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
48 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
49 | The front panel hold the keyboard, the rotary encoder and the diplay system. |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
50 | |
115
6b6e13653348
content: use {static} instead of {filename} in image paths
David Douard <david.douard@sdfa3.org>
parents:
58
diff
changeset
|
51 | .. image:: {static}/images/hp34970a/front-panel.jpg |
58
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
52 | :alt: front panel of the HP 34970A |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
53 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
54 | The front panel is managed by a 80C51 (a 87C51 actually) |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
55 | microcontroller. It's responsible for handling the keyboard and |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
56 | feeding the shift registers of the VFD drivers (a pair of |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
57 | HV518PJ). The communication with the main CPU is a serial line with |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
58 | opamps to adjust the signal levels. |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
59 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
60 | The chips are PLCC44 located under the VFD are the drivers: |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
61 | |
115
6b6e13653348
content: use {static} instead of {filename} in image paths
David Douard <david.douard@sdfa3.org>
parents:
58
diff
changeset
|
62 | .. image:: {static}/images/hp34970a/front-panel-pcb.jpg |
58
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
63 | :alt: front panel PCB of the HP 34970A |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
64 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
65 | On my unit, the voltage levels for the VFD are fine. I suspected that |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
66 | one of the 2 VFD drivers (the one responsible for driving the grids) |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
67 | were partially failing, so I ordered a pair of new drivers, as well as |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
68 | some PLCC sockets. It was my first real smd revork. I though that it |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
69 | might be easier to cut the pins of the soldered chip, but it was not a |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
70 | good idea, I peeled 2 pads on the PCB. Thanksfully, they were not |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
71 | broken. So I've undoldered the other VFD with my new cheap hot air |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
72 | soldering station, and it's been way easier and did not damage the PCB |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
73 | at all... Lesson learned. |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
74 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
75 | After that first real SMD unsoldering experiment came the first SMD |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
76 | soldering: install the plastic made PLCC sockets... I was not sure |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
77 | wether to use the hot air gun or my Weller soldering iron, nor what a |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
78 | correct temperature for the hot air station whould be adequate. The |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
79 | informations on the socket datasheet were not very clear to me. |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
80 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
81 | So I gave a try (I think at around 280°C). The sockets seemed properly |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
82 | soldered, but in fact, a few pins were not making contact. So I |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
83 | decided to cut the bottom of the socket (which is essentially useless) |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
84 | so I can more easily rework these "cold" pins with my soldering iron. |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
85 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
86 | The tricky part of installing these PLCC sockets is that decoupling |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
87 | capacitors (C6, C7, C9 and C10) are a bit too close, so I had to move |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
88 | them. |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
89 | |
115
6b6e13653348
content: use {static} instead of {filename} in image paths
David Douard <david.douard@sdfa3.org>
parents:
58
diff
changeset
|
90 | .. image:: {static}/images/hp34970a/front-panel-sockets.jpg |
58
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
91 | :alt: PLCC sockets for the VFD drivers of the HP 34970A |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
92 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
93 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
94 | Now I had to try to rejuvenate the tungsten filaments. Like for old |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
95 | CRT (and even for triodes), the filament, which is responsible for |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
96 | emiting electrons toward the anode (coated with phosphor) tend to be |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
97 | polluted and loose their emissive power. A common trick to "clean" |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
98 | them is to apply a much higher voltage than rated so they shine for a |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
99 | few seconds. One mst be careful not to burn them, otherwise the VFD is |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
100 | definitively lost. |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
101 | |
115
6b6e13653348
content: use {static} instead of {filename} in image paths
David Douard <david.douard@sdfa3.org>
parents:
58
diff
changeset
|
102 | .. image:: {static}/images/hp34970a/vfd-back.jpg |
58
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
103 | :alt: back side of the VFD (probably dead) module |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
104 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
105 | So I tried such a rejuvenation on my VFD module. I wasn't sure what |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
106 | color the filaments must be heated to (between a light orange to an |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
107 | almost white yellow). I was doing this using my `Lambda PSU |
128
aba381b2bac9
Fix several inter-document links
David Douard <david.douard@sdf3.org>
parents:
115
diff
changeset
|
108 | <{filename}/LPD422FM.rst>`_ raising the voltage while looking at the |
58
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
109 | filaments. |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
110 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
111 | The results are very disappointing. The VFD is a little bit brighter, |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
112 | but the spilling over between digits is now much worse... |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
113 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
114 | I guess this VFD module cannot be saved, after all... |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
115 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
116 | So I've been thinking of a plan B, and I think I'll try to replace the |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
117 | VFD display with a blue 256x32 OLED module. It's smaller (I cannot |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
118 | find a module near the size of the VFD display), but it should still |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
119 | be quite readable. Indeed, that requires a bit of work: I plan to |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
120 | build an arduino-based adapter (using an arduino micor) that will take |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
121 | place of the VFD drivers (then be fed by the serial-to-shift registers |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
122 | outputs of the 80C51). One other solution is to replace the 80C51 with |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
123 | a newly programmed one, but I think reverse ingineering the serial |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
124 | communication between the front-panel microcontroller and the main CPU |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
125 | would require much more work. Since it's a 87C51, I doubt I can easily |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
126 | dump it's ROM... |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
127 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
128 | |
58e79464cd09
[hp34970a] new blog post about the HP 34970A
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
129 | Meanwhile, next step is to take care of all these errors. |