-
Notifications
You must be signed in to change notification settings - Fork 2
UNI-T ut70d serial cable communiction software (LINUX only)
License
popovec/ut70d
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Documentation for ut70d multimeter communication protocol. Copyright (c) 2010 Peter Popovec This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Cable pins: RS232 name 1 NC Carier detect 2 green RX 3 white TX 4,6 orange DTR(4),DSR(6) 5 yelow GND 7,8 blue RTS(7),CTS(8) 9 NC Ring indikator IR head on head IR transmitter and IR receiver can be found. Cable get out from head on side of IR receiver Communication: Send one byte 0-127, get echo of this value For value 128 to 150 response paket can be received: Paket format: 0 = echo from command 1 = mode (rotary switch position+subfunction by yellow button) 2,3,4 bit mapped fields, see bellow, n-2 checksum n-1 0xa0 - end of paket checksum calculation, because UNI-t doc is very difficult to read. (what is bit 8 in Uni-T doc ? ). Based on experiments and Uni-T doc following algorhithm can be used to check paket: 1. X=0 2. X = X XOR byte[Y] iterate Y from 0 to n-3 3. X[bit4] = X[bit4] xor X[bit6] 4. X[bit5] = X[bit5] xor X[bit7] 5. clear X[bit6],X[bit7] 6. X -= byte[n-2] 7. X += 0x22 8. X==0 ? paket ok. byt 1 MODE ----- F8 1111 1000 V~ F0 1111 0000 V= E8 1110 1000 mV E0 1110 0000 R/C E1 1110 0001 F D8 1101 1000 Dio A8 1010 1000 A= A9 1010 1001 A~ B0 1011 0000 mA= B1 1011 0001 mA~ byt 2 RANGE and UNITS ----- bit 7 always 1 ? bit 6 manual/auto bit 5,4,3 range .. bit 2,1,0 0 = F-capacitance, 1=? 2= V,A,OHM 3 =? 4 = Hz frequency, 5 = % 6= ? 7 = ? byt 3 ----- 7 always 1 ? 6 "REC" 5 always 0 ? 4,3 00 - none 01 MAX 10 MIN 11 AVG 2 1=beeper on 1 always 0 ? 0 always 0 ? byt4 binary maped: ---- 7 always 1 ? 6 always 0 ? 5 1 = low bat 4 1 = + 0 = - 3 1 = overflow (0L on display) 2 1 = Hz 0 = no Hz 1 always 0 ? 0 1 = hold 0 = sample Example response pakets: 128 reply paket len 11 ADC readimg SUM1 in FS970X *Direct reading sum1 80 F0 82 80 80 80 A0 8E 90 5E 0A 129 reply paket len 11 81 F0 82 80 80 80 A1 B8 80 3C 0A 130 reply paket len 11 ADC readimg SUM2 in FS970X *direct reading sum2 82 F0 82 80 80 80 A2 88 80 4C 0A 131 reply paket len 11 83 F0 82 80 80 85 B7 BE 80 2F 0A 132 reply paket len 11 *positive peak 84 F0 82 80 80 8A B7 BE 80 27 0A 133 reply paket len 11 85 F0 82 80 80 A0 87 B4 80 36 0A 134 reply paket len 11 *negative peak 86 F0 82 80 80 A0 87 B4 80 39 0A 135 reply paket len 15 87 F0 82 80 80 80 80 80 80 80 80 80 80 27 0A *UNI-T doc ktb and ksg (check FS900X doc) 136 reply paket len 15 88 F0 82 80 80 80 80 80 80 80 80 80 80 2C 0A 137 reply paket len 12 89 F0 82 80 80 3F 30 33 32 33 58 0A *curent displey read 138 reply paket len 8 8A F0 82 80 80 81 4B 0A <<bargraph read (value 81, byte 5, 80=0 A8=40=max) 139 reply paket len 12 8B F0 82 80 80 3E 36 3B 33 35 5E 0A *dual display read 140 reply paket len 12 8C F0 82 80 80 3F 30 33 32 33 55 0A 141 reply paket len 12 8D F0 82 80 80 3F 30 33 32 33 54 0A 142 reply paket len 12 8E F0 82 80 80 3F 30 33 32 33 53 0A 143 reply paket len 12 8F F0 82 80 80 3F 30 33 32 33 52 0A 144 reply paket len 12 90 F0 82 80 80 3F 30 33 32 33 51 0A 145 reply paket len 12 91 F0 82 80 80 3F 30 33 32 33 50 0A 146 reply paket len 12 92 F0 82 80 80 3F 30 33 32 33 4F 0A 147 reply paket len 12 93 F0 82 80 80 3F 30 33 32 33 4E 0A 148 reply paket len 12 94 F0 82 80 80 3F 30 33 32 33 4D 0A 149 reply paket len 7 95 F0 82 80 80 39 0A 150 reply paket len 12 96 F0 82 80 80 3F 30 33 32 33 4B 0A Summary: 5 paket types can be received: 128 to 134 11 byte response 135,136 15 byte response - unkown data 137,139-148,150 12 byte response 138 8 byte response bargraph read (byte 5 values 80-A8 = 0-40), on real bargraph for value 0 firs position is active, for value 1 two bargraph "positions" is signalized etc .. for 40 all 41 bargaph positions is signalized 149 7 byte response 151 to 159: only echo can be received 160 echo can be received, switch "autorange" on 161 echo can be received, multimeter "RANGE" button 162 echo can be received, unknown fcion (*UNI-T doc: Hz button .. but this not work) 163 echo can be received, multimeter "Hz" button 164 echo can be received, unknown fcion (*UNI-T doc: Hold button .. but this not work) 165 echo can be received, multimeter "Hold" button 166 echo can be received, unknown fcion (*UNI-T doc: REL button .. but this not work) 167 echo can be received, multimeter "REL" button 168 echo can be received, disable "MAX/MIN" 169 echo can be received, multimeter "MAX MIN" button 170 ?? (*UNI-T doc: Peak key, untested) 171 beep on (untested) (*UNI-T doc: Peak key, untested) 172 ?? (*UNI-T doc: Select key, untested) 173 AC-DC-Cap (untested) (*UNI-T doc: Select key, untested) 174..207 echo only 208,209 (UNI-T doc Read and write EEPROM - untested) 210-255 only echo --------------------------------------------------------------------------------- Send 0x89, get 12 byt response: byt 0 (0x89) byt 5,6,7,8,9 - display characters ------------- byt 10 - checksum ------ byt 11 ------ Always 0x0a ?? Send 0x8A get 8 byt reponse Send 0x9B 12 byt response range range unit display multiply to ohm 800 ohm 0 2 xxx.x *1 8 kohm 1 2 x.xxx *1000 80 kohm 2 2 xx.xx *1000 800 kohm 3 2 xxx.x *1000 8mohm 4 2 x.xxx *1000000 80mohm 5 2 xx.xx *1000000 800 nS 6 2 xx.xx Warning, on range switch from 800ohm to 8kohm, some wrong display data can be sampled. Example pakets: R Manual 0 2 _ _ _ _ SAMPLE _ +<3 0 > <3 0> 810.3 [89 E0 C2 80 80 3F 38 31 30 33 60 0A] R Manual 0 2 _ _ _ _ SAMPLE _ +<3 0 > <3 0> 810.3 [89 E0 CA 80 80 3F 38 31 30 33 58 0A] R Manual 1 2 _ _ _ _ SAMPLE _ +<3 1 > <3 1> 8.103 << wrong !!! [89 E0 CA 80 80 3F 38 31 30 33 58 0A] R Manual 1 2 _ _ _ _ SAMPLE _ +<3 1 > <3 1> 8.103 << wrong !!! [89 E0 CA 80 80 3F 30 38 31 31 56 0A] R Manual 1 2 _ _ _ _ SAMPLE _ +<3 1 > <3 1> 0.811 [89 E0 CA 80 80 3F 30 38 31 31 56 0A] R Manual 1 2 _ _ _ _ SAMPLE _ +<3 1 > <3 1> 0.811 To get "stable" output for computer, some workaround is needed. This is like "range" bits is changed before display output is changet. This is also true for multimeter display, but this can be ignored due display "blank". This blank is not signalled in data communication ? multiply to pf 8 nF 0 0 x.xxx *1000 80 nF 1 0 xx.xx *1000 800 nF 2 0 xxx.x *1000 8 uF 3 0 x.xxx *1000000 80 uF 4 0 xx.xx *1000000 800 uF 5 0 xxx.x *1000000
About
UNI-T ut70d serial cable communiction software (LINUX only)
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published