How I built my 6-digit multimeter - Page 1
Forum section: electronics / projects

author: jaromir
author_rank: Unknown
timestamp: September 26, 2020, 10:49:51 pm
content: IntroductionSince the inception of my first long-scale AD converter , I thought of making my own multimeter as a good final platform for it. While1 thinking hard and making big plans for perfect multimeter, contest from Hackaday appeared and I immediately knew what to do. For those who don't want to go through the original contest call  - the aim was to make tech at home, that is - build whatever interesting out of parts you have at home.Design constraintsI took this call seriously and decide to build 6 digit multimeter out of parts I had at home, preferably reusing old components from PCB scrap or new old stock - mostly Czechoslovakian production from before 1990 - or leftovers from other projects. I knew that reusing old components (with parameters much worse than contemporary semiconductor industry offers) and keeping the circuit on prototype boards will have impact on multimeter performance. I started working on the project, but unfortunately a few days before contest deadline, life hit me and I was unable to finish everything into desired state. Until the contest deadline I was able to upload a few project logs and partial documentation , being below of what was considered complete project, as well as below my standards for contest projects. When my life got back to normal, contest was long over and my motivation to work on this one evaporated. On the other hand, the project wasn't complete failure; it helped me to understand some design aspects of benchtop multimeters with hands-on experience and I'm pretty sure it's going to help me with design and build of next multimeter model. Fun fact is that during the design and build of this junkbox multimeter I never had any schematics drawn on paper, with exception of printed pinouts that got a lot of wear during night building/testing sessions. Afterwards I decided to redraw the schematics until my memory is relatively fresh, so that others can learn from my mistakes.ResultsI'm not new to multimeter-ish design  and I decided to copy proven parts of this into new bench multimeter and add new necessary circuits, like power supply and current shunts with befitting circuitry. Not surprisingly, the electrical circuit of multimeter is only half of the work, I had to put some thoughts into thermal design, gather and solve mechanical constraints while keeping it manufacturable in my 10 sqm of home workshop.The build itself took a few interesting turns, mostly because it was centered around parts I had; unlike the usual flow, where I design with anything that fits the needs. For example I never breadboarded FPGA, never used germanium transistors with FPGA in one circuit.Oh and I made first gear with clickity-clack power switch with long rod transferring user operation to switch lever. Take a look Things left to doIt does basic job of multimeter - measurements of volts (3 ranges), current (3 ranges) and resistance (4 ranges). Calibration is currently "hardwired" into MCU sources and can't be done from user side. That is definitely missing feature. Not much of communication interface is used other than dumping measured values through serial port. Since we are living in 21th century, I planned to employ USB interface and ethernet, but from aforementioned reasons this didn't happen. The firmware could use a lot of spit and polish. Massive spit and furious polish, I mean.When not doing the device for show in contest, I'd use a lot more modern components. Thermal stability would improve much, as well as noise and probably linearity. Of course, making this multimeter on protoboards is nonsense. For good performanc it has to be done on proper PCB with all the shielding, good grounding and guarding.PerformanceAs explained earlier, this multimeter wasn't built with high performance in mind and due to problems before and disillusion after contest deadline, I never got to real performance verification. From quick comparison to my golden HP34401A it looks to be reasonable linear and stable for 6 digit multimeter, at least at DCV ranges. Current range is OK, too. Resistance measurement suffers from drift after powerup, but that is expected; in my  I used much more recent opamps that gave the circuit much better stability. Noise is somehow worse than , but that is probably to be expected. Since the project is shelved, I have no intention to dig into it deeper.ResoucesMy totally messy sources and schematics (kicad sources as well as PDF output) are attached to this post. Use it as you wish.ResumePower switches with rod are fun, building contest stuff from junk is fun too. But now it's over, and it's time for something more serious. -https://www.eevblog.com/forum/metrology/diy-6-5-digit-voltmeter/ -https://hackaday.com/2020/04/30/new-contest-making-tech-at-home/ -https://hackaday.io/project/174022-diy-6-digit-multimeter -https://imgur.com/a/SP2ehh3 -https://www.eevblog.com/forum/metrology/diy-6-digit-handheld-volohmmeter/ -https://imgur.com/a/l3KgHns

author: jaromir
author_rank: Unknown
timestamp: September 26, 2020, 10:50:54 pm
content: Since this forum is not very suitable for larger dump of photos, here is collection for you -https://imgur.com/a/b9xxdzj

author: Yansi
author_rank: Super Contributor
timestamp: September 26, 2020, 11:39:18 pm
content: What the hell on earth are those germanium transistors doing there?Very nice build indeed.

author: jaromir
author_rank: Unknown
timestamp: September 27, 2020, 12:03:24 am
content: Switching bistable relays.Almost any PNP would do the job. The contest was about reusing stuff I had at home and somehow I had a few of those in my junkbox (as well as vast majority of the components I used).

author: Kleinstein
author_rank: Super Contributor
timestamp: September 28, 2020, 04:12:22 pm
content: It's a nice simple circuit for the input stage.The protection for the 100 Ohms shunt looks a bit weak / odd. As shown there would be only the fuse for protection. The more standard protection is before the relay and limiting the voltage to some 2 or 3 (mainly for AC) diode drops. This way the fuse could be a more robust 1 A type.

author: jaromir
author_rank: Unknown
timestamp: September 29, 2020, 08:32:57 pm
content: Well spotted, Kleinstein. There was mistake in my schematics - the circuit should be indeed connected before the relay.The circuit around U5 works like this. Forget R18 and R19 resistors for a moment. In case of gross overcurrent, when voltage on shunt (either R15 alone or R14+R15 in series, depending on relay K4) reaches roughly 6,8V + twice voltage drop on Si diode (D4/5 and D6/D7 depending on polarity), the whole string of D4/D5 + D6 + D7 starts to conduct, fuse blows and everybody is happy. The problem is that the diode string has leakage current (may be problematic on 100uA range). The leakage depends on temperature, so it can't be calibrated out easily. That's why I included U5 - it acts as voltage follower, so during normal operation it keeps voltage at point D4/D5/D6/R19 at the same potential as on its input (plus offset voltage), therefore keeping current via D4/D5 low. Total leakage is given by U5 input bias current and D4/D5 leakage at low forward voltage (given by U5 offset).During overcurrent event, the current available via R19 will be too low and will be overdriven, both R19 and R18 act as U5 protection against overvoltage.I measured a few random diodes I had in my drawer (BYX55, BYW54 and 1N4007) and concluded that among those 1N4007 has lowest current at low forward voltages, see attachment.I went though a few changes during the design/build and D6/D7 value is probably leftover from those changes - protection kicking in at ~8V is indeed too high, shunt would cook itself. D6 and D7 should probably have indeed lower breaking voltage, perhaps two or three Si diodes in series would be fine and current shunt would survive overcurrent.Regarding the input stage - it works, but I'm not completely happy with the input selector switch. The switch has leakage of a few tens of pA, I'd love to see lower number here (DG211B used in my portable voltohmmeter had somehow better leakage of ~15pA). Perhaps switching with JFETs is the solution - those could be selected to leakage of 1pA and less.

author: ebclr
author_rank: Super Contributor
timestamp: September 30, 2020, 02:32:56 am
content: Where did you find that nice switchs, I like that

author: Kleinstein
author_rank: Super Contributor
timestamp: September 30, 2020, 09:54:11 am
content: For lower leakage, there are DG508 MUX chips (though usually more expensive) instead of the DG408. A problem with the 8:1 mux is that there are quite a few switches involved. So the DG211 has it easier to get low leakage.Small JFETs can have lower leakage (especially when on), but it takes extra effort for the control. One could combine JFETs for the more critical paths (voltage in, Ohms sense high and the connection to the rest) and a CMOS MUX.Part of the relatively high drift in ohms ranges can be due to the rather low voltage (0.7 V) to be applied to the resistors to set the final current. A little higher voltage (e.g. 3 V) there could make the final OP less critical. However it would need larger resistors, that may not be part of the array. If wanted one could have started from the full +15, as the OPs and switches in this area would not need the negative supply and could run from +22 and GND instead.

author: jaromir
author_rank: Unknown
timestamp: September 30, 2020, 09:58:13 pm
content: Quote from: ebclr on September 30, 2020, 02:32:56 amI found it in control panel from old sewing machine, but it's Marquardt 6450 - I used those in both linked projects.https://www.mouser.sk/Electromechanical/Switches/Pushbutton-Switches/_/N-5g30?Keyword=6450&FS=True

author: l3VGV
author_rank: Contributor
timestamp: January 25, 2021, 02:43:50 pm
content: Quote from: Yansi on September 26, 2020, 11:39:18 pmopa134 and ne5534 - audio stuff.

author: kripton2035
author_rank: Super Contributor
timestamp: January 25, 2021, 03:43:26 pm
content: nice stuff ... I still don't understand how the ADC works (and even what's its resolution ?) but nice stuff !

author: l3VGV
author_rank: Contributor
timestamp: January 25, 2021, 05:38:14 pm
content: Quote from: kripton2035 on January 25, 2021, 03:43:26 pmGeneral idea is unbelievable simple.1) u discharge The Capacitor. That is job for U20D2) for a fixed and well known amount of time u charge The Capacitor thru input resistor, U20A will do that3) u discharge The Capacitor with ur reference voltage, and count how much time it take, switch U20B and C to do so. Comparator U27 is to tell when to stop counting.Now u know charge time, discharge time, and Vref. Vref*discharge time/charge time = ValueOversimplified.

author: Kleinstein
author_rank: Super Contributor
timestamp: January 25, 2021, 09:35:42 pm
content: A more detailed describtion to the ADC is in one of the links given in the 1 st post. It is a kind of multislope ADC with roughly 22-24 bits of resolution. Noise wise it should be about comparabe to a typical 6 digit DMM, like in between the HP 34401 and HP34410. The ohms part is a little more limited. For A DIY solution this is quite good performance, though not really cheap.The general concept for the ADC is relatively simple: balance the carge going in from the input and reference, but things get complicated with the details. It is relatively simple to build at 5 digit level, but gets more tricky from there. Suddenly you have to think about those small effects with the switches, resistors and OPs one normally ignores.The audio OPs (OPA134 and 5534) are not so bad for the purpose they are used for. The OPA134 is still a relatively good JFET OP available in DIP - not the highest performance, but good enough. Similar the NE5534 is cheap good enough for the job - actuall quite a few older DMMs use the same type of OP the same purpose (slope amplifier to support the comparator). The more limiting parts in the circuit are more the CMOS switches and the reference, not so much the OPs. Also the resistors are quite critical.

author: jaromir
author_rank: Unknown
timestamp: January 26, 2021, 11:04:55 am
content: Also, I'd like to emphasis that the project was done as entry for "do something from leftovers and scrap" Hackaday challenge. Many aspects of the design are sub-optimal, to comply with the given theme; most of components are from COMECON NOS or salvaged from e-waste, that's why many components belong to era few decades ago.Having access to more modern components nowadays makes some design choices easier.

author: Yansi
author_rank: Super Contributor
timestamp: January 26, 2021, 11:20:35 am
content: How did you test the leakage of the input switch? Do you have a SMU, or any other simpler method?

author: Kleinstein
author_rank: Super Contributor
timestamp: January 26, 2021, 11:53:58 am
content: For testing leagage at the input one can use the meter itself. This also applies to a quick test for a commercial meter with high Z input. There are 2 ways:1) with a high value resistor, like 10 M (could be even the internal divider). The input bias shifts the zero reading.2) with a low DA capacitor of some 1-10 nF at the input and looking at the drift rate. With 1 nF a bias current of 1 pA would give 1 mV/s of drift rate, which is easy to measure / see even withpout recording the data.For isolating the switch part one could have an additional one at the input, or maybe remove the switch from the circuit.For the bias currents it is about the order of magnitude, not the exact value. So 20% resistors and caps are good enough.

author: jaromir
author_rank: Unknown
timestamp: January 26, 2021, 11:55:53 am
content: Quote from: Yansi on January 26, 2021, 11:20:35 amI built a simple pico-ammeter with LMC662 and 3,5d panel meter, similar to this onehttp://www.vk2zay.net/article/251Good indication of summary leakage is also drop on internal input divider.

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: January 26, 2021, 02:19:08 pm
content: Thanks for sharing

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: January 26, 2021, 02:24:22 pm
content: Can we take a look at FPGA and MCU source codes?

author: Yansi
author_rank: Super Contributor
timestamp: January 26, 2021, 08:34:32 pm
content: Do you have the LMC662 connected there as a TIA with large FB resistor (or the feedback divider trick)?

author: jaromir
author_rank: Unknown
timestamp: January 26, 2021, 10:54:00 pm
content: TIA with large FB resistor, set to produce 1V/1nA, single range; followed by 1/10 resistor divider, so that 200mV range meter will display 1.999nA at full range (1999 displayed). Switch can bypass the divider, bringing sensitivity to 199,9pA for 1999 displayed.Multi-gang switch takes care of range switching, on/off and proper decimal point switching.There is already quite long thread discussing this topic herehttps://www.eevblog.com/forum/projects/picoammeter-design/