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.

The Mad Science Fair

Participated in the
The Mad Science Fair

Hack It! Challenge

Participated in the
Hack It! Challenge