This program DMM.EXE allows read-out and display of data
out of (mostly) (Chinese) Uni-Trend multimeters.
For further processing of data, this program incorporates a DDE interface.
This program has a Plugin interface (*.dmm files) for user-specific multimeters.
This interface is currently undocumented because it's not stable.
If desired, refer available source code to write your own plugin.
Installation (Vista/2008/7/8: Elevated rights may be required depending on target directory):
* Windows 2000/XP/2003/Vista/2008/7 (32 bit):
- Copy dmm.exe, he2325u.dll and *.dmm into a random directory, e.g.
to "C:\Program Files\DMM"
* Windows 95/98/Me:
- Copy Win98Me\dmm.exe, he2325u.dll and *.dmm into a random directory, e.g.
to "C:\Program Files\DMM"
* Windows XP/2003/Vista/2008/7/8 (64 bit):
- Copy x64\Win98Me\dmm.exe, x64\he2325u.dll and x64\*.dmm into a random directory, e.g.
to "C:\Program Files\DMM"
Note that the 64-bit version is not always up-to-date as the 32-bit version.
The reason is that I don't like Visual Studio 2008.
- optional: Install unit-a2.ttf to Fonts folder, e.g. using
Control Panel, Fonts, File, Install new font
(This is for seven-segment charaters, if you like this)
- Create a shell link in desktop area, start menu and/or quick launch area
- Vista/2008/7/8: Every time you connect a new USB multimeter, or change
the used USB ports, HE2325U.dll tries to assign human-readable port numbers
to each new (not-yet-assigned) HID device and needs elevated rights.
In such a case, the annoying UAC dialog pops up automatically (since 110209).
Problems may arise due to space character in "Program Files" directory
and Rundll32 invocation. That's not tested.
If so, try do move at least HE2325U.dll to a directory without spaces.
For normal operation, regular (non-elevated) rights are sufficient.
TODO: Other solution!
If you are in doubt, start DMM.EXE with elevated rights.
In this case, another settings are in effect,
as registry access for configuration data (HKLM) is no more redirected.
DMM.EXE is a DDE server serving following data:
Application name: DMM
Topic name: <multimeter>@<interface>, see window title text
Item names: value0 measured value, including SI prefix, e.g. 1.5E-7 for 150 nF
unit0 measured unit, SI prefix stripped # *
trace0 scope data as numerical array
min0 minimum possible value in current range,
mostly 0 except for DC and temperature measurements #
max0 maximum possible value in current range #
feature additional displays #
ea0 absolute error ## (always positive, to be implemented)
er0 relative error ## (always positive, to be implemented)
ec0 current error (always positive, to be implemented)
range0 DdeAdvise item when range has been changed # (to be implemented)
More indices für secondary, tertiary etc. readouts.
The appended zero can be omitted for the first or only value.
Indices may separated from name string with one non-alphanumeric character,
e.g. "value", "value 1", "value?1" etc.
Name strings may be abbrevated,
e.g. "V" instead of "value0", "mi1" in place of "min1" etc.
Case sensitivity is off (required by DDE).
Items can be concatenated to get multiple values by one DDE request
(To be implemented).
# This item changes only when rangeX changes too.
## This item generally changes on range changes only but may change for some
temperature areas according to device specification.
If a transition occurs, a range change event will be raised too.
* If the current CF_ANSI code page supports the degree character (°),
temperature is reported as °C or °F, otherwise, as degC or degF.
For CF_UNICODE, always °C / °F is reported, to distinguish from Farad.
Temperature differences (in °C) and absolute temperatures are reported
in K (Kelvin).
Clipboard formats (available for all items):
Application example (Excel):
Set cell value to "=DMM|'ut61e@com2'!v".
This shows the measurement value.
You can place the unit into the next cell: "=DMM|'ut61e@com2'!u".
DMM.EXE has a command-line option to select the multimeter and the interface.
Simply append <multimeter>@<interface> to the executable file name.
You may even omit <multimeter> or @<interface> for a partial search.
The program picks up further configurations, like window position, size and
appearance, out of it's configuration memory (i.e. registry).
If no entry is found, the program uses default values.
If no command-line option is given, DMM.EXE uses the next unused configuration
ever saved inside the registry.
So you can start multiple instances of DMM.EXE without command-line parameter
distinction, and all copies would use different multimeters (and window positions).
* Due to rearranging of code, some multimeters may be dead.
I have not all multimeters available for testing.
If you detect such a problem, please inform me.
But don't forget to activate data transmission by pressing the
appropriate multimeter button!
+131009 Added UT60F
*131009 Log files have now an ISO8601 time string, with local time
and positive time zone for eastern hemisphere
-131120 Capture contiguously sent (DMM-stored) data of UT61D
+131127 Save DMM-stored data with correct time scale
+1408xx Added demo multimeter generating low-frequency sine wave with noise
+141027 Added Fluke 8808A support (to be tested)
|Detected encoding: ANSI (CP1252)||4