How To Use A Digital Multimeter (DMM)

Digital Multimeters (DMMs) are quite versatile devices. Typically, they can be used to measure voltage, current, and resistance. Many DMMs are also capable of other measurements, such as continuity (an extension of the resistance function, actually) and frequency. Some are also capable of basic math operations on the measurements performed, including null offset and maximum/minimum readings. Here is a brief guide to using a DMM — specifically, an HP/Agilent 34401A. This type of meter is a “bench” meter — meaning that it is intended for use on an electronics workbench. It is somewhat portable, and includes a handle, but is significantly bulkier (and a bit more fragile) than handheld meters, so it is usually found on a workbench or in a lab. On the plus side, it is far more accurate than most handheld meters.

The Agilent 34401 Digital Multimeter (DMM). (Click for larger.)

 

Measurement of voltage

The most basic function of a DMM is as a basic voltmeter. Most DMMs are autoranging, meaning that they automatically select the correct voltage range (millivolts, volts, etc) based on the measurement being made at the time. To measure DC voltage with the 34401A:

  • Turn on the meter using the power switch on the left end of the front panel.
  • Press the “DC V” button (if you will be measuring DC voltages.)
  • Connect the negative probe (typically black in color) to the rightmost black “LO” port. (The two ports in the left column are used for four-wire resistance measurements, which are not covered in this guide.)
  • Connect the positive probe (typically red) to the upper right “HI” port.
  • Connect the probes to the circuit under test. Voltage is measured in parallel with a component, so you would not break the circuit to measure voltage.
  • Read the voltage data on the meter.

Connect the voltmeter in parallel with the resistor to measure volts. (Click for larger.)

 

Measurement of current

Another useful function of a DMM is as an ammeter — a meter designed to measure current flow. Since current flow is measured within a conductor, the meter must be actually inserted in the circuit in order to measure this flow. (There are “clamp” ammeters which do not work this way, but they are not covered here.) Because of this requirement, measuring current in a circuit is done differently than measuring voltage — the connections are made differently. Instead of simply clipping on to a circuit, the DMM replaces one of the wires in the circuit, and the current is made to flow through the meter. It is important to make sure that the meter replaces a wire of the circuit in this way, or else it could cause a short circuit. (That is, you need to break a connection, then insert the DMM in the gap.)
To measure DC current with the 34401A:

  • Turn on the meter
  • Press the blue SHIFT button once, then press the DC V button. This will put the meter into “DC I” (DC current) mode.
  • Connect the negative lead to the right “LO” port
  • Connect the positive lead to the right “I” port (at the lower right).
  • Disconnect power to the circuit to be tested
  • Choose a wire in your circuit where you will measure current. Disconnect it.
  • Connect the black lead to one end of where the wire was (ideally, its more negative end.)
  • Connect the red lead to the other end of where the wire was (ideally, its more positive end.)
  • Reconnect power to the circuit to be tested.
  • Read the current value on the meter’s display. (Note mA or A, as well.)

Connect the DMM in series with the resistor to measure current. (Click for larger.)

 

Measurement of resistance

DMMs can also function as ohmmeters, allowing the measurement of resistance. Unlike measurements of voltage and current, this must be done with power disconnected from the circuit. (In fact, since parallel resistances can affect the measurement, resistance is usually measured with the component disconnected from the circuit, at least at one end.) When measuring resistance, the meter passes a small amount of current through the resistor and measures the resulting voltage. To measure resistance with the 34401A:

  • Turn on the meter
  • Press the “Ω 2W” button.
  • Connect the negative lead to the right “LO” port
  • Connect the positive probe (typically red) to the upper right “HI” port.
  • Disconnect at least one end of the resistor to be tested from the circuit.
  • Connect one probe to one lead of the resistor to be tested.
  • Connect the other probe to the resistor’s other lead. (Direction doesn’t matter.)
  • Read the resistance value on the meter’s display. (Note mΩ, Ω, kΩ, or MΩ.)

To measure resistance, disconnect the power supply and connect the DMM across the resistor to be measured. (Click for larger.)

 

The 34401A has many other measurement capabilities (frequency, continuity, four-wire resistance, diode check, etc.) It can even connect to a computer via RS232 or GPIB for automated measurements.

 

Posted in Analog, Drexel, EET201, Electronics, Fundamentals, HOW-TO, Tools | Leave a comment

Short And Sweet

As any Linux aficionado can attest, “less is more.” While this is not always true of everything, it certainly applies to URLs. “www.paleotechnologist.net” is a cool domain name, but it doesn’t readily lend itself to terse media such as QR codes.

I therefore present a new, shorter site alias:   pt0.us (with a zero, not an “o.”)

Scan me!

URLs at pt0.us point to the same content as paleotechnologist.net (and paleoengineer.net and paleoengineer.org, for that matter). New and existing content will be available at all of these domains.

Why PT0? Simple:

  • PT stands for PaleoTechnologist;
  • Zero is the most central, the most unique, and possibly the most important of the integers;
  • …and while .us is geographically appropriate as a TLD, I chose it for its shortness.

Rumors that this is in preparation for site-related QR code generation are completely unsubstantiated. That’s not to say that they are incorrect, however!

Posted in Internet | Tagged , , | Leave a comment

BMP file format

Since uncompressed bitmaps are a one-to-one representation of pixels in an image, they are one of the simplest formats to generate, if you are writing your own code. Here is a description (plus FreeBASIC code, which works well enough as pseudocode) of how to output a .bmp file, given an array of pixels.

In order to make the process as straightforward as possible, I will make several (hopefully reasonable) assumptions:

  • The image exists in memory, in a format (an array, for instance) which can be easily read in random-access order;
  • A color depth of 24 bits is used (eight bits each for Red, Green, and Blue);
  • BITMAPCOREHEADER (the simplest header) is used; and
  • The height and width of the image are reasonable and known.
    (I will call these variables XSIZE and YSIZE.)

Values given here are in hexadecimal. All multi-byte values in BMP files are little-endian.

Bitmap files consist of three parts:

  • The bitmap header;
  • The DIB header; and
  • The pixel data array.

The bitmap header is straightforward enough:

  • Two bytes to denote a bitmap file: ASCII “BM”, or hex 0x42 0x4D
  • Four bytes, representing the size of the BMP file in bytes.
  • Two bytes reserved: these can safely be 0x00 0x00.
  • Two more bytes reserved: these can also be 0x00 0x00.
  • Four bytes for the offset address of the pixel data.
    (If using BITMAPCOREHEADER, this is 0x1A 0x00.)

The BITMAPCOREHEADER is next, and also relatively simple:

  • Four bytes for the size of the header (14 bytes, so 0x0E 0x00 0x00 0x00).
  • Two bytes for the image width in pixels;
  • Two bytes for the image height in pixels;
  • Two bytes for the number of pixel planes (must be 0x01 0x00); and
  • Two bytes for the bits per pixel (0x18 0x00 in our 24-bit example.)

The last structure is the bitmap data itself. This is three bytes per pixel, with each row padded to the next multiple of four bytes, as needed. Each pixel is in BBGGRR order.

We now have all of the pieces of information we need to create the bitmap file…

  • Output ASCII “BM” (0x42 0x4D)to the file
  • Calculate the size of the file:
  • – 14 bytes for the bitmap header, plus
  • – 12 bytes for the DIB header, plus
  • – The number of rows (image height) times the row size in bytes.
    (The row size is the image width, times three, rounded up to
    the next multiple of four, if needed.)
  • Write this figure to the file, in little-endian hex, using four bytes.
  • Write 0x00 0x00 0x00 0x00 to the file, for the two reserved fields.
  • Write 0x1A 0x00 (representing the 26-byte offset for the start of data.)
  • Write 0x0C 0x00 0x00 0x00 (representing the DIB header size.)
  • Write XSIZE in two-byte little-endian hex.
  • Write YSIZE in two-byte little-endian hex.
  • Write 0x01 0x00 for the number of pixel planes;
  • Write 0x18 0x00 to represent 24 bits per pixel.
  • Loop over the number of rows (YSIZE) in the image:
  • – For each pixel in that row, write its image value in little-endian hex (BBGGRR)
  • – At the end of the row, pad it with zero to three extra bytes to make the number of bytes in the row a multiple of four.
  • Close the file. You’re done!

Here is an example in FreeBASIC, which produces a simple 3×3 bitmap.



Posted in BASIC, Coding, HOW-TO | Leave a comment

Novus 4525

You never know what you’ll find in thrift stores. The other day, I found an interesting old calculator at a local Goodwill. The LED display and single-function keys hinted that it was of 1970s or 1980s vintage — but an unusual “load/step/run” switch implied that it was in fact a programmable calculator or simple computer. Sequences of operations up to 100 steps long can be loaded in and then run. It’s not really a proper computer — more of a calculator with macro capability.

The Novus 4525 and case. Not shown: the $0.97 Goodwill price tag. (Click for larger.)

True computer or not, this was apparently one hell of a calculator, back in 1975. According to the April 1975 issue of IEEE Spectrum, the Novus 4525 retailed for $169.95. That’s about $723 in 2012 dollars.

The first step in getting it running again, since it didn’t come with its AC adapter, was to determine what kind of power supply it needed. Looking inside the case, the barrel connector appears to be directly connected across a three-cell NiCd battery — with the tip connected to the positive terminal. The battery is a Radio Shack replacement pack number 23-170 (three 900mAh NiCd AA cells in series.) Since this doesn’t seem to be the original battery pack, it’s hard to say what that was — perhaps a sealed lead-acid pack? At any rate, a roughly 4VDC power supply should do the trick. For now, I just charged up the NiCd pack with a bench power supply.

One of the distinguishing features of the Novus is its use of Reverse Polish notation (RPN), also known as “postfix notation.” In order to, for example, add four and five, the user enters 4, ENTER, 5, +. Postfix notation is associated with a stack, and therefore the Novus implements a four-position stack. Mathematical expressions can be entered unambiguously (no need for rules such as PEMDAS), as long as the user is careful not to overflow the stack.

For someone used to modern calculators, the Novus’ accuracy can be somewhat disquieting in certain situations. Performing a straightforward operation like 3*3 gives the expected result of 9. A slightly more complex method such as 3^2, however, gives an answer of 8.9999988 — and takes just over two seconds to come up with this dubious answer.

According to the manual, the Novus’ programming capabilities seem relatively limited. Operations that could normally be entered manually can be executed semi-automatically — but the calculator seems to lack any looping or branch control functionality, making it not Turing-complete. That functionality would have to wait a few more years, for calculators like the Tandy Pocket Computers. Still, it’s pretty impressive for a pocket calculator from 1975.

 

Posted in Digital, Nostalgia, Reviews, Toys | 1 Comment