Introduction: DMM Piggyback (add RS-232)

Picture of 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

Picture of 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)

Step 2: The Circuit

Picture of 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


Step 3: The Dial Encoder

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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.


umbk (author)2013-05-25

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.

zeffur (author)umbk2015-10-13

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:

Thanks in advance!

harayz (author)2015-02-08

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~

nicksteen (author)2013-11-16

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?

jazzzzzz (author)nicksteen2013-11-16

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.

nicksteen (author)jazzzzzz2013-11-16

Oh that's beautiful, so I can read everything from that single pin? Amazing, thanks a lot! And thanks for that incredibly fast answer

jazzzzzz (author)nicksteen2013-11-17

No problem, let me know if you need any help with anything else.

mario59 (author)2013-08-25

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! ;-)

jazzzzzz (author)2013-05-30

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)

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.

zapro (author)2012-09-29

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.

rharding64 (author)2012-09-12


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.



jazzzzzz (author)rharding642012-09-13

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

jazzzzzz (author)jazzzzzz2012-09-13


kwilliams38 (author)2011-11-25


I have been wanting to get something like this for a long time. This is excellent.

fgugliuzza (author)2011-11-12

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.

jazzzzzz (author)fgugliuzza2011-11-14

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)

wstdffrts69 (author)2011-11-13

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

jazzzzzz (author)wstdffrts692011-11-13

oops it is 11x I forgot the +1
And i always mess up my schematics

jazzzzzz (author)jazzzzzz2011-11-13

fixed them

wstdffrts69 (author)wstdffrts692011-11-13

For some reason the provided Web Site Links were not included in the posted Reply.

(1) - LM358 Specification Sheets: and

(2) - National Instruments 'NI Multisim 11.0'. -

mattbeddow (author)2011-11-12

nice, but can i ask, how did you work out which pin on the ic you needed to tap into?

jazzzzzz (author)mattbeddow2011-11-12

I noticed most of the top and right side went to the elastomeric connector for the LCD so I ignored them.
I set up a potentiometer as a variable voltage supply and tested voltages on the remaining pins.
Then changed the voltage and tested again. I found a pin that changed so I held my meter on it and adjusted the pot.
Sure enough the voltage on that pin changed in proportion to the pot’s, locating the “golden pin”.

mattbeddow (author)jazzzzzz2011-11-13

Ok cool, seemes like as agood a way as any to find it :)

815turbo (author)2011-11-11

Hey, i have this meter, grabbed at harbor freight for around $5. Excellent mod. I have looked at it and began considering "What else could be done"?

I have a few of these "La Fonera" routers which have RS-232 headers. I am considering taking this mod to the next level and connecting it to the router to have a wifi meter>

Nerdz (author)2011-11-10

Very Awesome Hack. Makes me want to buy one of those cheap meters on ebay and poke around inside.

Ohh! Idea: USB 2.0 Support! But on the comp side things might be a bit more difficult to get to..

jazzzzzz (author)Nerdz2011-11-11

I bought a PIC18F2455 for USB 2.0, I guess it acts as a serial port so the same program should work

c_madsen (author)Nerdz2011-11-10

Have a look at and search for "USB to RS232 Serial Port Adapter". - There is your USB support.

jazzzzzz (author)c_madsen2011-11-11

Yeah I got a SIIG usb to serial converter $20

agis68 (author)2011-11-11

really nice hack....i will try it.....sometime

c_madsen (author)2011-11-10

Nice hack, we don’t see these to often.

About This Instructable




More by jazzzzzz:Wooden LegosLego Electric ConnectorCorona Fluid
Add instructable to: