Introduction: DMM Piggyback (add RS-232)
There are mods that give a multimeter serial connectivity by soldering some pins but, it only works if it already has RS-232 ability. So I decided rather than building a PIC multimeter from scratch, I would Piggyback off a $4 DMM.
I used:
one PIC16F688
one LM358
a button and a 100k potentiometer
3 resistors (1k 10k 20k)
A PCB, piece of thin plastic, and hardware
Despite the low part count assembly and programing can be a little troublesome.
Step 1: The Theory
This mod uses all the Voltage, Current, Resistance, and hFE circuitry of the original DMM.
Since the meter is relatively cheap it has bed of nails test points (found on electronics with a "blob" IC)
These points are a circuit benders dream.
I just pulled the input to the original chip (I will call the golden pin) amped it, ran it through the PIC, and sent it through serial. I also used a potentiometer to encode the selector dial.
The golden pin is the middle pin of the left side (circled in red)
DO NOT SOLDER TO THE LARGE PAD EVEN THOUGH ITS CONNECTED TO THE PIN THOUGH A CAPACITOR
Step 2: The Circuit
Power is supplied by the power pin to the original IC (on bottom 4th from the right) and the common lead (banana jack). It gives 6V and uses the built in power switch.
The op amp is set up as 11x voltage amp from the golden pin. I used an amp because the pin only gives 200mV on full DC voltage signal. The amp feeds AN0 of the pic. The pot goes to AN7 no amp needed and hooks to the same power as the PIC and OP AMP
USE ONLY LM358 OR EQUIVALENT. LM741 DOES NOT WORK!
Step 3: The Dial Encoder
This was probably the hardest part to figure out, and my solution is far from perfect.I used a PCB mount micro pot (1.69 at radio shack) and curled the leads around to mount it. (this also makes it continues rotation)
To mount it cut a thin plastic sheet (like the DMM's container) to fit to the screw holes.
then cut a hole for the pot (make it a tight fit) I also cut a hole for the diode, lead board solder, and power leads
take out the screws slip the pot in the plastic and screw it down.(I pre drilled screw holes)
I used a screw and cut the head flat(see last pic keep green part) to couple the dial and pot together.
The screw fits nice in the hollow center of the dial.
The flat head goes into the flat-head screw hole on the pot.
I suggest using red lock tight because if the screw losens the encoder stops working.
Step 4: Board Fab
I used a no trace proto board with the copper rings. The placement of components is not crucial but leave room for the pot hole(13mm or 1/2in) Of course a 14 PIN DIP Socket is used for the PIC MCU, optional on the OP AMP.
I stood the resistors up for higher density
Red - To power PIN (+)
Black - To com (-)
Green - Tx
White - Golden pin
Wire curving on top is positive
Step 5: Adding Data Log Function
You may not always be next to a computer when you want to log a measure. So we might as well use the PIC's EEPROM. By simply adding a button and resistor we get some internal nonvolatile memory.
I used a tactile button with a long "presser" and spaced it with a washer. The second pic shows where I drilled.
I used a wire case under the PCB to wedge the button into place( I had no glue, but it would work)
Step 6: DB-9 Connector
I had a nice template to install the port. (from a video card) I put it in wider side down, but I do not suggest this because the RX TX and GND are all on that side and if there at the top you have more clearance with the screen.
I happen to have some nice port screws too!
A small amount of the back cover must be removed to.
If you do not have a rotary tool this step may be a challenge.
Step 7: Firmware/Software
The firmware is simple just gather analog readings and send(if you do not want logging)
If you want logging just add the button press subroutine to the continues loop
also a data retrieval for the stored values.(that is why RX is wired up)
I will post my hex files for the PIC If wanted (I programed in basic, if you know a good c IDE for the PIC let me know)
I am currently working on some GUI software in C++ for this project. With an analog digital and graphic in one (there separate now and crash often)
The top bar in the pic is the dial and the bottom the voltage. (nice for watching caps charge)
I have simple console window program working, but I do not really want to post that. I will If someone wants it though (voltage only)
The computer software is ware the calibration occurs. I used a pot and changed the voltage while monitoring the raw 8 bit(can go to 10 bit but serial would be a little more difficult) out from the PIC in console window. Plotted these on mt TI-83 (stats easy than on an 89) and found the linear regression equation. Input the equation in my C++ and compared voltages. (they where no more than .01V off)
Be careful of significant digits (keep the same number of decimal places as the DMM screen ie. 1.3342 on the computer is guessing the last two digits)
Step 8: Finished Meter
Well now you have a data logging serial interfaced DMM.
If you turn it on with 20V range and it says 0.91V it is working.
It is a tight fit and there may be a small bulge, but the board is not going anywhere.
Plus with your own MCU in it you can give the multimeter a back light, continuity test, battery level, or auto power off (I will update accordingly)
I would also like to try an auto-ranging meter
Remember if you are not up to programing I will give you my files.
Feel free to ask any questions.

Participated in the
Hack It! Challenge

Participated in the
The Mad Science Fair
30 Comments
9 years ago on Step 7
Very nice. I've been collecting these meters (free with coupon), thinking of making VU meters and maybe trying to add auto-scaling. I would appreciate your source code for interfacing with the chip and the knob.
Reply 6 years ago
Did you get a copy of the source code? I would like to see it also! If you get a copy or the author of this instructable sees this message please email a copy of the source code to my address: zeffur713@gmail.com
Thanks in advance!
7 years ago on Introduction
i am about to modify my DMM and put CP2102 in it. If you (or anyone else) have any advice thought and/or suggestion, i would like to hear them. Thank you~
8 years ago on Introduction
Hi
Very nice to see this is is possible, but afaict, only the voltage is transmitted, right? Or am I missing something? Because I'd like to have all data (resistance, current, voltage, continuity etc) to be transmitted. Is this possible?
Reply 8 years ago on Introduction
All of the data is able to be transmitted, the pot on the selector dial is there to differentiate the measurements. This way the raw and dial position data is sent. The dial selects the formula used to calculate voltage, amperage, resistance, ect. from the raw data.
Reply 8 years ago on Introduction
Oh that's beautiful, so I can read everything from that single pin? Amazing, thanks a lot! And thanks for that incredibly fast answer
Reply 8 years ago on Introduction
No problem, let me know if you need any help with anything else.
8 years ago on Introduction
FAN
TAS
TIC
and *SIMPLE* datalogger Modification!
Congratulations! You could never imagine how many times I've thought about this kind of mod and never dare it!
Very nice hint to follow!!!
Bravo! ;-)
9 years ago on Step 7
The Firmware I have written is very simplistic. And is in basic (a free c compiler is a little challenging to find I might have found one and if I get it working will post some C code)
SampleLoop:
TX_VAL = 83
SerSend 1, TX_VAL
TX_VAL = ReadAD(AN0)
SerSend 1, TX_VAL
TX_VAL = ReadAD(AN2)
SerSend 1, TX_VAL
Wait 100 ms
Goto SampleLoop
After the initialization it is just an infinite sampling loop. The raw values are faster to convert on a computer, and both values are necessary regardless where conversion occurs. Sending the ‘S’ (83) is so the computer knows the next byte is AN0 or the knob.
9 years ago on Introduction
Cool project. I have one thing to add. The points around the Blob IC isn't test points . They are made for the "Real" IC the instrument is designed for. This way the manufacturer can use what's available on the market at the time of manufacture, a smart decision. Some times you can't get the parts, only the dies.
9 years ago on Introduction
hello,
I am M2M(machine to machine) design specialist on the job, This work is well done here. My congratulations to the author.
Myself, on my day job, I design/build smart terminal emulator applications for various types of devices, OEM test gear, microcontroller, ect.since 2006. I do use RS232 at my current job, but prefer to use D2XX MS .NET library in C# with bitbang i/o, and a mode called 'MPSSE'(Multi-protocol synchronous serial engine)- allows for JTAG, I2C to name a couple of protocols.
consider that many of today's circuits use many protocols like 1 Wire, I2C, JTAG, I2S, CAN, ECT, it becomes important to add these capabilities to as many of our existing toolsets as possible. i am working on designing such applications on both pic device and associated desktop application to provide intuitive, easy to use controls.
So to continue on my own build project i also visited the Hardware sales as well, and i got the bigger brother DMM, actually 2 of them; the CEN-TECH P37772. i am taking bigger steps here; actually taking these two DMMs and creating another DMM with much more built inside; solid state switches, latching relays, microcontroller/FTDI USB using D2XX library,, 200Msps 12 bit A/D converters, larger Color LCD as well.
if folks are interested learning more about my complete package approach, please contact me.
cheers
RH
Reply 9 years ago on Introduction
Sounds like you do not even need the CEN-TECH's. I would like to build one from scratch ( because it could do anything I think I might need). You should think about a wi-fi modual, that or Ethernet is my next step
Reply 9 years ago on Introduction
module
10 years ago on Introduction
jazzzzzz,
I have been wanting to get something like this for a long time. This is excellent.
10 years ago on Introduction
I strongly recommend optoisolating those RS232 lines... without doing so, if you connect the RS232 to a computer and the COM terminal to a high potential point, all sorts of bad things may happen.
Reply 10 years ago on Introduction
I built an external optoisolator
I use it on everything I make (after I fried my first com adapter)
Running positive to Data Carrier Detect Would power the isolator
(did not show for people that strait connected it to com)
10 years ago on Introduction
Please note:
01. National Instruments Literature, (1), and software, (2), do not agree with the Pin assignments used in the Schematic.
LM358 Pins (as per the Files listed below):
1 - Output of OpAmp 1, of 2
2 - Inverting Input of OpAmp 1, of 2
3 - Non-Inverting Input of OpAmp 1, of 2
4 - Ground
5 - Non-Inverting Input of OpAmp 2, of 2
6 - Inverting Input of OpAmp 2, of 2
7 - Output of OpAmp 2, of 2
8 - Vcc
02. That the LM358, in the Article's Schematic, is not configured as a 10X non-inverting amplifier. Instead, it is wired as a Rail to Rail (~Vcc to Ground) zero Voltage cross over Detector (Polarity Switcher).
To be a 10X Non-Inverting Amplifier - the 10 KΩ Resistor should be connected between the Output Pin, Pin 1, and Inverting Input Pin, Pin 2, of the LM358; and not to Ground.
For a true 10X Gain the 1KΩ Resistor should be 910Ω, and the 10KΩ Resistor should be 8.2KΩ.
G = ( Rf / Ri ) + 1 = ( 8.2KΩ / 910Ω ) + 1 = 10.01.
---------------
(1) - , ,
and .
(2) - National Instruments 'NI Multisim 11.0'.
Reply 10 years ago on Introduction
oops it is 11x I forgot the +1
And i always mess up my schematics
Reply 10 years ago on Introduction
fixed them
Reply 10 years ago on Introduction
For some reason the provided Web Site Links were not included in the posted Reply.
(1) - LM358 Specification Sheets: http://www.national.com/ds/LM/LM158.pdf and http://www.farnell.com/datasheets/3634.pdf
(2) - National Instruments 'NI Multisim 11.0'. - http://www.ni.com/multisim/