The calibration procedure needs so many kinds of expensive calibration devices (in AC,DC,ohms, etc...) that it doesn't make any sense to have such easy-to-turn calibration switch in the front panel. How many devices should have been uncalibrated by mistake?.
Do they did that on purpose to increase earnings from maintenance services?
If you're trying to discover the CRC/ECC algorithm, I think you're going to need a logic analyzer attached to a running meter as I described previously.
As far as I know, there is no NI driver for it, so I'm using direct COM port communication.
@@@@BAIBMLOMKL@@
@@BBBLDNBMI@@@@@
BBMMMAMCIIIIIEBM
@MLJEIIIIIIBMCMA
JI@@@@@@@@@@@OO@
@@FFCADAACNFIIIH
GIALLEAJMIIIIHH@
ECC@L@IIIIIHALL@
AK@IIIIII@EDEMJN
IIIIIH@EDCDKJIII
IIIALL@LJDIIIIII
@EDBEKI@@@BFBCLC
A@NB@@@@BFCLEAEM
M@@@@@@@@@@@OO@@
@FFCBDBBCNC@@@@@
@@@@@@OO@@@@@@@@
I have been playing with Pigrew's windows C# program (from https://github.com/pigrew/HP3478Ctrl )
I forked my own version at https://github.com/iainkwhite/HP3478Ctrl
and after tinkering a bit, managed to read my cal data.
Sorry. Yes, the adapter will need a driver to interface to LabVIEW. It might be easier to just buy an adapter off eBay, like I did.
Thanks pigrew!! I just downloaded your program and successfully read the SRAM from my 3478 meter.
Has anyone tried to write their values back using your program yet?
I am getting ready to try to replace the battery in my meter, and in case I lose my config, I'd like to know if it works.
I guess I'm gun shy to try it yet. I don't like being the guinea pig. LOL
Here are my SRAM values, in case someone is trying to analyze data between all of our posts.
@@@@A@HBCM@MMG@@@@ACBBNENMFIIIII
IBCNDAKAIIIIIABBAB@LJIIIIIGBCAAB
LB@@@@@@@@@@@OO@@@DIGB@MLELKIIII
CB@EC@MLAIIIIID@DDDOKC@@@@@@@ED@
COC@@@@@@@EBONMK@@@@@@@EB@@OH@@@
@@@@ECCLNH@@@@@@ALADMN@IIIIFGCDE
EEKHIIIIIDCCDBCKO@@@@@@@@@@@OO@@
@CAICBLE@ML@@@@@@@@@@@OO@@@@@@@@
Thanks again to everyone involved in coming up with this solution to our problem!!!!
$ ./cal-3478a.py hp3478a > cal.txt
$ xxd cal.txt
00000000: 4040 4040 4041 4141 4141 4f4f 4d4c 4040 @@@@@AAAAAOOML@@
00000010: 4040 4040 4141 4144 444f 4440 4040 4040 @@@@AAADDOD@@@@@
00000020: 4141 414e 4240 4e4c 4949 4949 4943 4142 AAANB@NLIIIIICAB
00000030: 434c 454b 4849 4949 4949 4941 424f 444f CLEKHIIIIIIABODO
00000040: 4a44 4040 4040 4040 4040 4040 4040 4049 JD@@@@@@@@@@@@@I
00000050: 4949 4843 4941 4444 404e 4b49 4949 4949 IIHCIADD@NKIIIII
00000060: 4049 4045 4144 424c 4649 4949 4949 4240 @I@EADBLFIIIIIB@
00000070: 4542 4f42 4b48 4949 4949 4949 4045 4e41 EBOBKHIIIIII@ENA
00000080: 454b 4049 4949 4949 4940 4445 4244 4b4a EK@IIIIII@DEBDKJ
00000090: 4040 4040 4041 4045 4344 4f4e 4340 4040 @@@@@A@ECDONC@@@
000000a0: 4040 4040 4544 4c4e 4d4c 4040 4040 4041 @@@@EDLNML@@@@@A
000000b0: 4045 4545 424e 4d49 4949 4842 4242 424c @EEEBNMIIIHBBBBL
000000c0: 4c4e 4a4e 4949 4949 4842 4242 4e4c 414b LNJNIIIIHBBBNLAK
000000d0: 4240 4040 4040 4040 4040 4040 4040 4949 B@@@@@@@@@@@@@II
000000e0: 4948 4349 4245 4045 4f4b 4540 4040 4040 IHCIBE@EOKE@@@@@
000000f0: 4040 4040 4040 4040 4040 4042 4040 4040 @@@@@@@@@@@B@@@@
device {
minor = 0
name = "hp3478a"
pad = 1
sad = 1
}
I have been playing with Pigrew's windows C# program (from https://github.com/pigrew/HP3478Ctrl )
I forked my own version at https://github.com/iainkwhite/HP3478Ctrl
and after tinkering a bit, managed to read my cal data.
Thanks for the changes, I've merged most of the changes back into my branch, and posted a new binary:
https://github.com/pigrew/HP3478Ctrl/releases/tag/v0.20170630
-Nathan
Miti,
Did you replace your battery while powered on, or did you back up the ram, change battery, and then restore ram?
I backed up my ram, but haven't changed out the battery yet. Guess I'm chicken. LOL
I found a way to read and write the cal SRAM on the 3478A via the GPIB interface. It's an old question on how to (easily) backup the calibration on these devices, and I'm not aware that anyone has figured it out yet.
I was inspired to look for hidden GPIB commands by this post:
@@@@CA@BLLLNLG@@@@CABLLCOLO@@@@@DBLLOELMIIIIIDAEBAOKF@@@@@@AEBMNML@@@@@@@@@@@OOIIIE@BADODEL@IIII@D@E@MNKGIIIIIA@EDNNJLIIIIII@ECDDKIIIIIII@EABLKEIIIIII@EBBOKAIIIIII@EBMAKDIIIIII@EBDOJO@@@BF@CNOE@MB@@@@BECN@@MMJ@@@@@@@@@@@OOIIIE@BCLCOBKJ@@@@@@@@@@@OO@@@@@@@@
Calibration data checksum test:
@@@CA@BLLLNLG : CkSum = (199 + 56) Checksum OK.
@@@@CABLLCOLO : CkSum = (207 + 48) Checksum OK.
@@@@@DBLLOELM : CkSum = (205 + 50) Checksum OK.
IIIIIDAEBAOKF : CkSum = (182 + 73) Checksum OK.
@@@@@@AEBMNML : CkSum = (220 + 35) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 + 0) Checksum OK.
IIIE@BADODEL@ : CkSum = (192 + 63) Checksum OK.
IIII@D@E@MNKG : CkSum = (183 + 72) Checksum OK.
IIIIIA@EDNNJL : CkSum = (172 + 83) Checksum OK.
IIIIII@ECDDKI : CkSum = (185 + 70) Checksum OK.
IIIIII@EABLKE : CkSum = (181 + 74) Checksum OK.
IIIIII@EBBOKA : CkSum = (177 + 78) Checksum OK.
IIIIII@EBMAKD : CkSum = (180 + 75) Checksum OK.
IIIIII@EBDOJO : CkSum = (175 + 80) Checksum OK.
@@@BF@CNOE@MB : CkSum = (210 + 45) Checksum OK.
@@@@BECN@@MMJ : CkSum = (218 + 37) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 + 0) Checksum OK.
IIIE@BCLCOBKJ : CkSum = (186 + 69) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 + 0) Checksum OK.