Some old school instruments showing how it's done (HP 3325A and Fluke 8506a) - Page 1
Forum section: electronics / testgear

author: SilverSolder
author_rank: Super Contributor
timestamp: June 02, 2020, 09:43:00 pm
content: Just checked what 1V RMS from the 3325A looked like on the Fluke 8506a thermal RMS voltmeter. No real reason to complain today! (Other than using up my luck for the rest of the year...)

author: shakalnokturn
author_rank: Super Contributor
timestamp: June 02, 2020, 11:23:06 pm
content: Now don't you regret not having a couple of extra digits on the HP3325A's display?

author: bob91343
author_rank: Super Contributor
timestamp: June 03, 2020, 01:14:05 am
content: Very gratifying.

author: 0culus
author_rank: Super Contributor
timestamp: June 03, 2020, 03:49:50 am
content: The 3325 A and B don't have all the fancy features of modern DDS generators, but they make very high quality waveforms. I have a 3325B with oven oscillator and high voltage option. Comes in quite handy sometimes!

author: SilverSolder
author_rank: Super Contributor
timestamp: June 03, 2020, 05:48:30 pm
content: Quote from: 0culus on June 03, 2020, 03:49:50 amYesterday, I compared the specs with the current generation of function generators from Keysight (the 33500B series). The new ones have cleaner output and many more features, and are very cool and high performing instruments. But the fundamental specifications of the old machines are definitely not embarrassing in comparison, even after all these years!The A/C amplitude spec looks very comparable, for example.

author: 0culus
author_rank: Super Contributor
timestamp: June 03, 2020, 06:10:41 pm
content: Quote from: SilverSolder on June 03, 2020, 05:48:30 pmI would imagine that the modern ones are way better for anything approaching arbitrary waveforms. But most certainly don't allow for such high amplitudes without an external amplifier! I also have another old unit from Analogic Data Precision, a 2045 Polynomial Waveform Synthesizer. It has a rather unique feature set that I'm not sure has ever been reproduced. It can either reproduce waveforms digitized by a Data Precision 6000 series digitizer mainframe or you can define waveforms in terms of polynomials right from the front panel.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 21, 2021, 10:50:18 pm
content: Quote from: SilverSolder on June 02, 2020, 09:43:00 pmCurious if you still own the old Fluke. I recently saved one from scrap and would be interested in how stable yours is compared with the one I am looking at.

author: srb1954
author_rank: Super Contributor
timestamp: January 22, 2021, 06:52:13 am
content: Quote from: joeqsmith on January 21, 2021, 10:50:18 pmI would be interested as well. My 8506A performs pretty within spec for inputs above 10mV RMS but exhibits strange behaviour for inputs below that.For inputs from 0 to 800uV the display shows a constant 131uV. Increasing the input to 900uV the display suddenly jumps to 1.074mV and stays thereabouts until the input raises above 1.1mV after which the reading increases along with the input but with a significant error of around +10%. As the input voltage is further increased the reading gradually converges to be within spec at around 10mV input. From that point on the reading stays closely in spec until the input reaches 30V RMS where the error starts slowly creeping up again.I am not sure if the performance I am seeing with the 8506A is normal (due to some sort of auto-zeroing function) or is abnormal. The Fluke manual is not informative as to the expected performance at such low input levels.I have been using a Fluke 5200A as a signal source with a Gertsch RT-7 ratio transformer to accurately divide down the lower level signals.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 22, 2021, 04:43:42 pm
content: Quote from: joeqsmith on January 21, 2021, 10:50:18 pmWhat do you mean by "stable"? The zero stability is specced for 5uV / 90 days, which my examples easily beat.The temperature coefficient spec is 2.5 counts per degree C around room temperature on the 10V DC scale.Quote from: srb1954 on January 22, 2021, 06:52:13 amMine behave in a similar way.In the manual, the Minimum Specified Level for the 100mV AC range is 12.5mV. Accuracy falls off a cliff when you go below that - reach for an amplifier or another instrument for lower voltage measurements!Note, the other ranges also have Minimum Specified Levels and they are quite high! e.g. 1.25V on the 10V AC range.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 22, 2021, 04:55:43 pm
content: Quote from: SilverSolder on January 22, 2021, 04:43:42 pmDo you have the resistance feature?

author: SilverSolder
author_rank: Super Contributor
timestamp: January 22, 2021, 04:59:01 pm
content: Quote from: joeqsmith on January 22, 2021, 04:55:43 pmYep.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 22, 2021, 05:48:11 pm
content: Quote from: SilverSolder on January 22, 2021, 04:59:01 pmGreat. Using an economy grade 1 ohm 4-W standard with guard attached and averaging enabled, this meter will wander around easily +/- 0.0005. The manual for the meter that I have doesn't seem to cover the resistance. I'm sure some of it is temperature but it changes faster than the room temperature and I suspect most of it is just noise. I'm curious how another meter would behave.If you have other standards available, I could try to compare mine with what you have.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 22, 2021, 06:33:48 pm
content: Quote from: joeqsmith on January 22, 2021, 05:48:11 pmLet me see if I can find something to test.You can always reduce noise by increasing the number of samples per reading - E.g. press STORE - 11 - SAMPLEThis will set the number of samples to 2^11 (you can go as high as 2^17 if you have all day) - default is 2^7, I believe.It is similar to NPLC in other meters, but I believe these things take 4 readings per mains cycle so 2^11 (2048 samples) is done in 8.5 seconds, which is only 510 PLCs.

author: srb1954
author_rank: Super Contributor
timestamp: January 22, 2021, 10:38:33 pm
content: Quote from: SilverSolder on January 22, 2021, 04:43:42 pmThanks. This is good to know.I got this 8506A relatively cheap because the vendor said the instrument wouldn't zero and I was concerned that I would have to go through the incredibly complex calibration process to eliminate something that might or might not be a fault.I have several other DMMs that perform better than the 8506A at very low levels but none can match the excellent accuracy of the 8506A over its mid-voltage ranges and over wider frequency ranges.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 22, 2021, 11:21:31 pm
content: I have four of these units with the Ohms option. (Two are 8505A, two are 8506A, but everything related to Ohms is the same between the two models.)I tested all four in parallel by hooking up radial wirewound resistors on all four units, 5 ohm and 0.25%, like this:It seems very thermally stable, I could blow on the resistors and the readings did not deviate.Here are the results:2 hour warm-up. No averaging, all default settings. Peak mode turned on at start of test period to measure deviation.4 wire Ohms mode.Test 1: Peak to peak deviation in 10 minutes:Unit 1 - 0.0005 ohmsUnit 2 - 0.0005 ohmsUnit 3 - 0.0001 ohmsUnit 4 - 0.0033 ohmsTest 2: Peak to peak deviation in 10 minutes:Unit 1 - 0.0007 ohmsUnit 2 - 0.0005 ohmsUnit 3 - 0.0001 ohmsUnit 4 - 0.0046 ohmsConclusion - Unit 3 is almost perfect, unit 4 is broken, while units 1 and 2 are probably "normal".I have read somewhere (perhaps on the EEVblog) that the current generator for the 4 wire Ohms can become noisy on these meters. Maybe that is what is going on with my Unit 4. Perhaps the time has come to look at how that circuit works, and see if it can be made nice and quiet...

author: SilverSolder
author_rank: Super Contributor
timestamp: January 22, 2021, 11:50:41 pm
content: Quote from: RoGeorge on January 22, 2021, 11:44:40 pmI very specifically did not say that the signal was 1V RMS, for exactly that reason!Both instruments are good, but neither of these instruments can be trusted to that many digits of precision.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 23, 2021, 12:38:35 am
content: Thank you very much for checking this. If you do decide to try and improve #4, please make a thread for it. I would like to follow along.***People who complain about changing fuses on meters have never had one of these apart. Crazy 4 HRC fuses and GDT buried deep in the bowels.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 23, 2021, 05:00:03 pm
content: The meter appears in fairly decent shape mechanically for the age. Trying a few different measurements, it's not even close. Shown with 1V from the Fluke 731B and 1K ohm 0.1% resistor attached. It looks like it would need a full alignment to be useful.Have you had to send one out for alignment? Curious who you used and the price.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 23, 2021, 06:59:04 pm
content: It looks in good shape, even has the bails!Did you set the DC zero? Shorting bar, wait a few seconds for the reading to stabilize, and press Zero (the Zero LED should be lit). The zero drifts a lot with time and temperature and needs to be set every time you are looking for max accuracy.Once the zero is set, it can drift up and down by a few counts even on a good unit. If it can't hold zero within about 5 counts, the temperature in the area may not be stable (or there is a problem with the unit).I've never sent one out to be calibrated, but I have performed both the hardware and software calibration methods on some of them, using a 10V reference. It isn't that hard to do (especially software cal, no need to even open it up), the manual is very comprehensive. (I only did cals on some ranges, as I don't have the references needed for all the ranges...)

author: guenthert
author_rank: Frequent Contributor
timestamp: January 23, 2021, 07:05:54 pm
content: I bought a few older DMMs and all drifted less (or rather theaccumulateddrift was less) than the original specification would have allowed for (one HP 34401A even seems to have been "spot-on" in the 10DCV range). That might have been survivor's bias or an indication that the manufacturers specification are wider than necessary for instruments living an easy life.In any case, I haven't seen one, which drifted so far as yours. I'd watch it for a while and observe the current drift, which might indicate some fault needing a repair before calibration.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 23, 2021, 07:29:49 pm
content: Looks like pretty much every range is out for every function. I checked the main supply and started to read the calibration adjustments section. First step, install PN# MIS-7013K Bus Interconnect and Monitor Board. They offered an extender board as well which would be handy about now.If I power up the meter, it defaults to DCV. If I then short all four connectors and select zero, it the Zero LED becomes active and it displays 0.000. So it can hold within a 1mV for several minutes. If I select the auto range, it looks like it will drift around by 5uV (0.0050 -3) or so. If I enable the average and filter, it seem to hold within 1uV (saw a 700nV).Having some software to store the min/max.... would also be helpful about now. Does it have the ability to record basic metrics like this?Did you write the software to run it through the software cal or is this something you found from Fluke?

author: SilverSolder
author_rank: Super Contributor
timestamp: January 23, 2021, 08:21:01 pm
content: Each range has its own zero - you need to set the range of interest manually, then set the zero.Min/Max is the PEAK button. Press it, and it starts storing min/max from that point.To see the values, press buttons RECALL-HI-PEAK and RECALL-LO-PEAK respectively.The software cal is described in the manual, you don't need any additional software, just some reference voltages - the values are not important as long as you know what the values are!The references just have to be anywhere from 60% of the top of the range or above, in order to do a calibration. So if you have a 7.007365 volt reference, for example, you can use it directly to calibrate the 10V range without amplifying it up to 10V or anything like that.... pretty cool, as you can use the most stable "naked" LTZ1000 circuit (without 10 volt up-conversion) to calibrate with.The calibration is done by throwing the CAL switch on the back (note: lots of dangers as protection circuits are disabled), then set a permanent zero and enter the reference voltage for each range. RTFM!Hardware cal is more work, but not too bad.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 23, 2021, 08:26:03 pm
content: Quote from: guenthert on January 23, 2021, 07:05:54 pmAll of the ones that I have were bought very cheaply - as junk, basically... - and they were all still within spec, unless they were outright broken. When fixed, they came back to spec.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 23, 2021, 08:46:51 pm
content: Quote from: SilverSolder on January 23, 2021, 08:21:01 pmNo problem.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 23, 2021, 09:51:39 pm
content: Quote from: joeqsmith on January 23, 2021, 08:46:51 pmI meant in the sense that it is possible to damage the meter in CAL mode, the manual explains how to avoid that.I've never seen the printed version of the manual, BTW. It does look rather intimidating on the picture... I have it in PDF form (easier to search, and add notes). Got it from Artek.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 24, 2021, 01:39:14 am
content: I had removed the serial interface to change the cal switch. 4-68 Line 6, R64 will not come in. I pulled the covers from the Fast ADC and had a look. Problem appears to be the resistance module. Once removed, I was able to make it to 4-77. That's a job for another day.Shown adjusting R64.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 24, 2021, 04:21:13 am
content: Looking at this Fluke 8505A, they have a good photo of the resistance board. It has a date of 1991 and uses a GAL. The schematic in my manual shows no GAL and a different layout. The board I have is dated 1983 and does not look like their photo or match the manuals schematic.https://xdevs.com/article/f8505a/Their photo appears to match the schematic in this manual:http://ftb.ko4bb.com/getsimple/index.php?id=download&file=Fluke/Fluke_8505A/Fluke_8505A_6.5_Digit_Multimeter_Service_Manual.pdfMine appears to be something between the schematic in my manual and this one above. The one in the manual I have uses a single coil for K1. Where the board uses a dual coil.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 24, 2021, 04:23:20 am
content: Nice, she's looking happier! - The circuitry in these meters are full of JFETs acting as switches... they can go leaky and cause issues. I had a problem with a Filter module, where the switching between different filter sections was not working well - causing the Average reading to be significantly lower than the plain reading (because Average mode automatically turns on the "heavy" filter section). I can easily imagine a leaky FET in a module loading the analog bus and causing false readings, if the module cannot properly disconnect from the bus.I made some progress with my Unit 4 with the noisy ohms: I looked at the sense current with another meter and an oscilloscope, comparing the noisy unit to a good one. The current turned out to be equally noisy on both the "near perfect" unit and the broken one - so there is something else wrong than the current generator circuit. More work for another day!Modify message

author: SilverSolder
author_rank: Super Contributor
timestamp: January 24, 2021, 04:50:13 am
content: Quote from: joeqsmith on January 24, 2021, 04:21:13 amThere is a revision letter on each board, if you take off the cover and look at the PCB. I have encountered MANY different revisions of boards...I have encountered revisions not covered by the above table too!

author: SilverSolder
author_rank: Super Contributor
timestamp: January 24, 2021, 04:55:36 am
content: The newest manual I've seen is also on the Xdevs site:https://xdevs.com/doc/Fluke/8505A/Manuals/fluke_8505a_multimeter_sm.pdf

author: guenthert
author_rank: Frequent Contributor
timestamp: January 24, 2021, 05:06:41 am
content: Quote from: SilverSolder on January 23, 2021, 08:26:03 pmWell that might be the case, but joeqsmith, who asked about calibration, has a 8506A which is quite off.(I should have been more clear whos "yours" is

author: SilverSolder
author_rank: Super Contributor
timestamp: January 24, 2021, 05:18:29 am
content: Quote from: guenthert on January 24, 2021, 05:06:41 amI was (badly worded) trying to agree with you that it is not normal that these meters have drifted as far as @Joeqsmith's (and it looks like the problem may indeed be a broken resistance module).As an aside, I had not noticed the Xdevs article/teardown/repair of the Fluke 8506 (linked to by @Joeqsmith). I had been wondering why there haven't been any cheap ones on eBay for about the last year... I guess this is yet another case of prices shooting up when a previously "hidden gem" gets discovered by EEVblog and its friends!

author: joeqsmith
author_rank: Super Contributor
timestamp: January 24, 2021, 04:58:59 pm
content: I finished up the DC alignment (through 4-85) without any issues. The Fluke pretty much matches my old HP34401A in all the DCV ranges. I wouldn't trust using the HP as a ACV reference so I'll leave that section alone.An extender would be very helpful but for a one shot repair, time to add some test points and start working through it.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 24, 2021, 06:16:40 pm
content: The relay K1 on the resistance board will not change states. The interesting part is how this area of the design has at least three approaches. One design used 4 transistors to drive the two coils. My schematics show a single coil with a FET and two transistors. The board have uses 2 coils and three transistors. The software/logic to control the relay drive circuit seems the same. GAL of 4000 series, both use a single pin. My board uses the old 4042. Low-activates the resistance mode.The relay checks out. I can change the state manually to disable the resistance mode and DCV works fine. They have this thing AC coupled to use the edges to fire the transistors. It's a bit Rube Goldberg. Maybe this section was assigned to the intern.Time to reverse engineer the madness.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 24, 2021, 06:42:09 pm
content: The manual for the 8505A also works for 8506A for all the modules (except Thermal RMS).The reason I say that, is that some of the 8505A manuals are from different years than the 8506A ones, so you get a broader range of circuit diagrams - one of which may fit!I think the attached diagram may be for your board -

author: joeqsmith
author_rank: Super Contributor
timestamp: January 24, 2021, 07:01:00 pm
content: I just finished tracing it out when I noticed your post. Indeed, it seems very close if not the correct one. I suspect I made a few mistakes tracing it out. I was jotting down the part values and part numbers as I was going through it and measuring them. Nothing seems out too far.Thank you very much for finding this. Time to double check my work.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 24, 2021, 07:34:07 pm
content: The circuit for flipping relay K1 is very psychedelic - not sure I understand how it actually flips it, rather than just pull in both directions at the same time! Does it flip ON with a negative going edge, and OFF with a positive going one (from U3)?

author: joeqsmith
author_rank: Super Contributor
timestamp: January 24, 2021, 08:39:46 pm
content: Quote from: SilverSolder on January 24, 2021, 07:34:07 pmMatches. Maybe my hand drawn schematics will help.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 24, 2021, 10:52:54 pm
content: I wonder why they added the bootstrap for Q3 but nothing for Q2. The circuit all appears fine. Nothing damaged. It's almost like the slow CMOS switching times won't provide enough drive to the transistors to turn them on. Time for a little tweak to their design.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 25, 2021, 12:12:07 am
content: Quote from: joeqsmith on January 24, 2021, 10:52:54 pmI take it that "Set" is working, but not "Reset"?C24 losing capacitance?Could the relay be getting "stiff", so the pulse isn't big enough to flip it over any longer (it needs a longer pulse)?The relay may not completely symmetrical in how much pulse energy it takes to set vs reset, necessitating the difference in circuitry?

author: joeqsmith
author_rank: Super Contributor
timestamp: January 25, 2021, 12:38:03 am
content: Both states wouldn't drive it. I increased both tants and it now will change states but I don't like that bootstrap circuit. I may limit the base drive of Q3 while I'm in there.I haven't done anything with the alignment yet and will wait until I get the board back in its clam shell. Looking at the 10K in my test box.***Added a small resistor and ran it through the ranges before buttoning it up. Sadly, there appears to be at least one more problem. Looks like the current source. Fluke has a house number 261578. Appears to be a Siliconix logo, J2137. So far no luck finding a data sheet for it. The 1986 small signal databook I found did not list it.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 25, 2021, 02:01:23 am
content: The 10K resistor looks pretty good? What's wrong with the current source - noisy?

author: dietert1
author_rank: Super Contributor
timestamp: January 25, 2021, 06:54:58 am
content: Used our two old Fluke 8502A recently. One of them shifts 15 ppm in 10 V DC range when connecting Guard to Low, the other one doesn't. Any ideas?Had a similar issue with the relays K1 and K2 on one DC input conditioner but it went after exercising them via GPIB for 100 or 200 cycles. The relays sound completely different between both units. I replaced all those orange tantals and small electrolytics by film caps, MLCCs and new electrolytics. All of them were still ok, though. Distributed about ten MLCCs onto each ADC digital board. Added a schottky diode over the +5 V adjustment pots for safety.Otherwise those units are working - after the recommended service incl. reseating of all modules. I also replaced the 150K input protection resistors and some other carbon resistors that had drifted more than their 5 % tolerance. Day-to-night temperature changes in our lab are 2 or 3 °C and those units shift 0.7 ppm when logging an ovenized 10 V reference. I think they are very quiet and good for 2 uVpp.Regards, Dieter

author: dietert1
author_rank: Super Contributor
timestamp: January 25, 2021, 07:48:46 am
content: About the relays: As far as i understand the 8502A schematic they tried to use the monostable input relays at constant current in order to reduce shifts from thermal EMF. So they are running the coils at a current that doesn't turn on a relay but holds a relay that has been turned on before. Then the action is by short pulses - either reducing current to zero or increasing it for a short time. Seems to work.Regards, Dieter

author: joeqsmith
author_rank: Super Contributor
timestamp: January 25, 2021, 11:29:39 am
content: With the later revision boards using a latching relay, there's no need to provide a hold current. Just a pulse.Found the last problem with the current source and have the meter now working on all ranges. Time to find some low tempco parts and then it should be able to be reassembled and finish the alignment. I have some low tempco parts I had characterized with an 8.5 place meter that I will use to align it.The meter uses RS232 rather than GPIB. I think the next step is to see if I can put some simple program together to tend the data.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 25, 2021, 03:01:55 pm
content: All mine have GPIB, I've never seen the serial option. You've got a rare one!

author: SilverSolder
author_rank: Super Contributor
timestamp: January 25, 2021, 03:08:10 pm
content: Quote from: dietert1 on January 25, 2021, 06:54:58 amOne of mine had a problem where Guard was shorted to Ground, due to a too-long chassis screw touching the bottom of the PCB. It exhibited similar odd behaviour.I had another weird problem, where the 10V range would shift by 10ppm when turning on the Filter. I'm pretty sure it is a leaky FET in the switching arrangement, but it made me think that since these things use JFETs as switches all over the place, any one of them could probably cause weird and subtle problems.... (I fixed mine by swapping the Filter module with a known good one).The nice thing about these meters is that it is so easy to swap modules. Since you have two meters, you can try swapping modules until you see which one is causing the problem?

author: joeqsmith
author_rank: Super Contributor
timestamp: January 25, 2021, 07:00:57 pm
content: New 2ppm parts installed and finished the alignment. Showing the Caddock TK series 10ppm 1.9Meg. It's about 10 counts lower from the 34401A but good enough. Checked out the serial board. Glad I did. That thing has jumpers that are just wires press fit in place. I'm surprised that they never fell out. I set it up for 9600 8N1 and stuck a null modem and my old RS-232 jumper board (a relic from the 80s). Fired right up. Shown tracking a 40ohm 0.005% 1ppm part. Top cover still isn't installed but with the clam shells, I doubt it will make much difference with the drift. I used some long lead to zero it and plugged the resistor directly into the unit. 2W mode. Not surprised it's reading a bit low.The manual talks about sending a 0 to enable the average and O0 to disable it. I can't seem to get that to work but the rest of the commands seem fine.I'll let it collect some data over the day and see how it behaves.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 25, 2021, 07:48:14 pm
content: I love your "draft excluder" box - what is it? Looks highly scientific!Which parts did you replace? I've been thinking of swapping some of the op amps... there are modern ones that are orders of magnitude better.I have never actually tried setting the zero over GPIB - in the middle of tidying up the work area, slow going... I'll have a go at it when I've set it all back up.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 26, 2021, 02:11:06 am
content: Quote from: SilverSolder on January 25, 2021, 07:48:14 pmThe black box on top is just an old RS232 tester. There's no standard so these were common back in the day to sort out how to wire the cables. I have now fitted the correct connector and wiring so the meter just plugs directly into the PC.Some parts were out of spec enough where it could not be adjusted. These were replaced with higher quality parts.Where my manual show 0 as the commend to set the average and O0 to disable it, other manuals show it as O to enable the average. Explains why the command didn't work.Showing the drift over five hours with the 40ohm part.I then reinstalled the 1.9M as I had collected data from several meters using this part.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 26, 2021, 02:10:25 pm
content: Looking at the 1VDC signal from my standard over night (8-9 hours). You can tell when I enter the room.I'll use my 33120A with no warmup to collect VAC next. 200mVPP 100KHz sine wave into a 50ohm terminator. Not a great setup but should give us some idea how it will behave once things warm up.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 26, 2021, 02:30:17 pm
content: Is that using the 10V range, or 1V?

author: joeqsmith
author_rank: Super Contributor
timestamp: January 26, 2021, 03:43:43 pm
content: Quote from: SilverSolder on January 26, 2021, 02:30:17 pmWe can also see from the data I collected, the step size is 1uV. From the manual, we can see it has a resolution of 1uV in the 1V range. So five counts of noise. Eyeballing it, maybe one count of drift over that time. Seems fairly stable and low noise for an almost a 40 year old meter.I don't have any way to know absolute accuracy. I used my old HP34401A as a reference so these two meters are fairly close. My other old HP bench meter will throw up different numbers. The voltage standard will have an error as well. So don't read too much into the absolute numbers based on my home alignment.

author: guenthert
author_rank: Frequent Contributor
timestamp: January 26, 2021, 05:11:47 pm
content: Quote from: joeqsmith on January 26, 2021, 03:43:43 pmDoesn't the 8505/6 famously have a 7.5 digit 10V range? That would make 1uV resolution ambiguous.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 26, 2021, 05:25:23 pm
content: You can get 1uV on both the 10V and 1V ranges.It may perform slightly better on the 10V range? Worth a comparison. (Need to enable averaging to get to 7.5 digits on 10V)

author: bdunham7
author_rank: Super Contributor
timestamp: January 26, 2021, 06:29:17 pm
content: Quote from: SilverSolder on June 02, 2020, 09:43:00 pmOK, so here areeightdigits of coincidental exactness. And no, neither was calibrated or adjusted using the other.

author: bdunham7
author_rank: Super Contributor
timestamp: January 26, 2021, 06:38:01 pm
content: Quote from: guenthert on January 26, 2021, 05:11:47 pmIt appears to, when averaging is enabled, but as I observe it in action I think that last digit may have missing codes. IOW, it can't display all possible values. For example, as it drifts around, I see 10.00000 0, 10.00000 1, 10.000004, but never 10.00000 2 or 10.00003. I haven't explored this at all, just a quick observation.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 26, 2021, 10:55:59 pm
content: Quote from: bdunham7 on January 26, 2021, 06:29:17 pmIt's not good to use up your luck for the rest of the year already in January!

author: SilverSolder
author_rank: Super Contributor
timestamp: January 26, 2021, 11:21:02 pm
content: Quote from: bdunham7 on January 26, 2021, 06:38:01 pmI get the full compliment of numbers in averaging mode.It sounds like the A/D converter may need trimming, if it is missing codes (all the steps are adjustable...)That is serious project, though. The manual explains it, but you need a ton of precise equipment and it is still an iterative process... (I have never attempted it.)I'm thinking that today, it ought to be possible to do something over GPIP to automate measuring the A/D performance, but haven't actually tried anything...Regarding stability in general, I once did a test where 4 of these meters were left running overnight reading an EDC VS-330 voltage reference (which has been "massaged" with some better components here and there to improve stability) set to 10V.Over the 8h period, the four meters and the VS-330 tracked each other as follows:DMM1 +/- 1.2ppmDMM2 +/- 0.5ppmDMM3 +/- 0.6ppmDMM4 +/- 0.85ppmThis was at night, during the summer, where the temperature is very stable overnight in this location.I just used the Peak function on the meters for this, so I don't have any logs.Bottom line, this old school stuff is all "good enough for Australia" when in good shape and given a quiet place to work!

author: bdunham7
author_rank: Super Contributor
timestamp: January 27, 2021, 03:00:15 am
content: Quote from: SilverSolder on January 26, 2021, 11:21:02 pmI actually did the A/D calibration procedure, although I went through it pretty quickly, not aiming for perfection at the time. I don't have references that good anyway. It took about an hour and I recall doing the first loop thrice, then on the rest of the procedure I just rechecked to make sure I was pretty close. It seems pretty good throughout the ranges, but I'll keep an eye on it and see if those 'missing codes' really are missing.QuoteIt's just fiddly and takes time. And if you do have accurate references, you just have to keep doing it until you just aren't improving anything anymore. I've done similar adjustments on the 5100-series calibrators and they never seem quite happy. This one seemed pretty amenable to adjustment.QuoteIn my case, unfortunately, the room it is in is not stable because the furnace cycles and I'm getting variations of 5K on a daily basis. The 731B and the 8505A both seem to have a negative tempco, and between them they move about 5ppm total over 24 hours. That's still about as much bang-for-fifty-bucks-plus-some-work as one could ask for.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 27, 2021, 04:18:53 am
content: Sadly we lost power today long enough that the UPS cut out. The Arb was brought up cold but still it appears it was going to be fairly drift free. The 2mV of error could be the Arb, meter, terminator, all of the above. Close enough.Quote from: SilverSolder on January 26, 2021, 05:25:23 pmAfter I noticed my manual was incorrect, I have not tried to enable the average again. I just tried it out and it seems to work.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 27, 2021, 02:32:00 pm
content: My HP meter in red, the Fluke in white. Both meters have been on for over 24 hours now. The Fluke is set to average. The top cover has yet to be installed. Using my old 731B for a source.The software currently captures the data once every 5 seconds, so you are looking at about 1 hour of data. Again, the Fluke was aligned using the HP. The voltage standard could very well be tighter. Ignore the absolute readings.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 27, 2021, 02:51:48 pm
content: Interesting, are you seeing the "missing numbers" issue that @bdunham7 was talking about?My GPIB setup is still down - when I get it back up and running, I'll try some logging to look for this issue specifically.As @bdunham7 said, it is hard to beat the metrology bang for the buck with these things. But they can be hard to maintain if there are subtle problems unless you have another meter that is equally precise that you can compare it with. One thing leads to another... !The spec is nearly 2x wider on the 1V scale compared to 10V - probably due to the input attenuator?

author: guenthert
author_rank: Frequent Contributor
timestamp: January 27, 2021, 06:38:55 pm
content: Even if the ADC would be unable to report some codes, the averaging surely will. I can only assume that what @bdunham7 sees is coincidence.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 27, 2021, 07:23:11 pm
content: Shown is about 4.5 hours. Increasing the histogram's bin size to look at the missing codes, the meter has not put out any 1s, 2s, 6s and 7's in the extended code. We see something similar with the HP not showing 3s & 8's.To test it out, I changed the voltage standard to delta E (uV resolution) and slowly adjusted the output voltage. No missing codes.

author: bdunham7
author_rank: Super Contributor
timestamp: January 27, 2021, 09:20:54 pm
content: Quote from: guenthert on January 27, 2021, 06:38:55 pmWithout knowing exactly how the whole thing works, we can't be sure. In any case, I shifted back to monitoring a 10V reference this morning and temperatures have been more stable, so I'm seeing numbers from 9.99999 6 to 10.00000 4, with the vast majority being 9.99999 9, 10.00000 0 and 10.00000 1. I haven't been staring at it the whole morning, but check it out whenever I come into the room and I have yet to see a 9.99999 7, 10.00000 2 or 10.00000 3.It is almost scary to see it appear to be accurate and stable to 100ppb. I moved the reference from on top of the meter to beside it and that seems to have stabilized it greatly.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 27, 2021, 09:32:32 pm
content: Quote from: joeqsmith on January 27, 2021, 07:23:11 pmThat is a little bizarre... Some kind of rounding or precision issue with the calculation of the running average?Floating point operations are not perfect, of course.https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

author: SilverSolder
author_rank: Super Contributor
timestamp: January 27, 2021, 09:43:06 pm
content: Quote from: bdunham7 on January 27, 2021, 09:20:54 pmYes, it is amazing when two independent entities get that close, and stay that close. Like two icebergs floating a cigarette paper's thickness apart, yet never touching!

author: bdunham7
author_rank: Super Contributor
timestamp: January 28, 2021, 12:47:08 am
content: Quote from: SilverSolder on January 27, 2021, 09:32:32 pmI suppose the next thing is for someone else with one of these to test and see if they can get it to read exactly any of the voltages that I'm seeing as 'missing'. I was unable to replicate it at a few other much lower voltages where I have 1uV adjustment capability.B/t/w, thanks for the post inspiring me to dig this thing out and finish the project. I already completely dissembled it twice and replaced some power supply caps, two fuses and two resistors on the F/R input board. Apparently someone used the rear connector to overload the Xref circuit--which I haven't tested yet. Does anyone have a line on that strange connector they used on the back side? Its an Amphenol low mating force, probably mil-spec, but I can't seem to find a part number or a mating connector. Now I finally did a basic cal and tested it, all it needed beyond the DC cal was an adjustment to the AC zero and it all looks pretty good, including the current ranges. Ohms may be a tad off, but now I'll have to buy or make a batch of resistance standards....

author: SilverSolder
author_rank: Super Contributor
timestamp: January 28, 2021, 03:16:02 am
content: Quote from: bdunham7 on January 28, 2021, 12:47:08 amI'll have a play with this, once I get GPIB back up and running after my re-arrangement exercise.Quote from: bdunham7 on January 28, 2021, 12:47:08 amIt can get a little lonely playing with these, they are not super popular.When you are looking at PPMs, drifty components that wouldn't be noticed in any other circuit suddenly begin to matter. So they are like owning a classic car, where you have to spend some time taking care of it to get the best out of it - but when it is on song - what a ride!Quote from: bdunham7 on January 28, 2021, 12:47:08 amThe rear connector is an ELCO 8016- 20 Pin socket - you can find both sockets and connectors on eBay.....

author: joeqsmith
author_rank: Super Contributor
timestamp: January 28, 2021, 04:40:57 pm
content: Quote from: SilverSolder on January 27, 2021, 09:32:32 pmAgain it does show the least significant digit hitting all the buckets. But I guess the question is does it do it at 10V and there are specific codes that are in question. Of course just eyeballing things isn't going to get you too far.Voltage source set at 10V. The easiest thing to do would be to add some error by adjusting the trimmers but I would rather not touch it again as the unit is close now and buttoned up. Instead, because my meter reads the standard a little hot, I just used a decade box to shunt it small amounts. The histogram is plotting the least significant digit. Note that the 2,3 and 7 buckets are lower but they certainly do occur with my meter.QuoteShown is with the LSD set to 2.

author: bdunham7
author_rank: Super Contributor
timestamp: January 28, 2021, 05:43:53 pm
content: Quote from: SilverSolder on January 28, 2021, 03:16:02 amYou made my day! I was absolutely convinced it was Amphenol for some reason. That cross-pin or tuning fork design is pretty interesting--the male and female ends using the same pins. Now I'll be able to make a 4W Ohms harness and test the X-REF circuits to make sure they're not blown up by whatever burned the 39K resistors on the input board.

author: bdunham7
author_rank: Super Contributor
timestamp: January 28, 2021, 05:52:23 pm
content: Quote from: joeqsmith on January 28, 2021, 04:40:57 pmAssuming the 8506A and 8505A use the same software, it looks like mine is just sloppy A/D converter linearity adjustment. Interesting that your counts are lower, but not zero (I've eyeballed more than 250 samples by now...). I suppose that the distribution of LSDs could be used as a test of linearity, or at least the accuracy of the alignment of the ladders which should correlate to linearity.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 28, 2021, 05:58:08 pm
content: Quote from: bdunham7 on January 28, 2021, 05:43:53 pmIt took me something like 2 years to figure out what that connector is... it is one of the best kept secrets on the Web!

author: SilverSolder
author_rank: Super Contributor
timestamp: January 28, 2021, 06:03:26 pm
content: Quote from: bdunham7 on January 28, 2021, 05:52:23 pmThat's the kind of approach I was thinking of, perhaps tuning the A/D converter by feeding it a triangle wave sweep with added white noise, and looking for patterns in the output that shouldn't be there?That is something for a dark winter's night for sure...Absolutely have to have GPIB (or serial) working for anything like that!

author: joeqsmith
author_rank: Super Contributor
timestamp: January 28, 2021, 08:59:22 pm
content: Here I tried not to disrupt the test and let it set at one level for a little over 2.5 hours. The average is 9.9999929 volts DC. Histogram is again looking at the two LSDs.90 - 1 count91 - 13 counts92 - 273 counts93 - 1439 counts94 - 0 counts95 - 86 counts96 - 2 countsWithout any added noise (in my case added by my changing the loading resistance), I will see buckets without any counts.***Wanted to show the zoomed out histogram.***I have attached the data in ASCII format if you want to have a look.

author: dietert1
author_rank: Super Contributor
timestamp: January 28, 2021, 10:43:55 pm
content: Since you have about 1800 entries after 9000 seconds, does this mean a Fluke 8506A needs 5 seconds for the 1 uV resolution measurement?With our 8502As i am currently looking at averages of 20 samples and they need 13.3 seconds to take them. To get a 10 sample average it would take 6.6 seconds, very similar.Regards, Dieter

author: joeqsmith
author_rank: Super Contributor
timestamp: January 29, 2021, 12:05:22 am
content: Quote from: dietert1 on January 28, 2021, 10:43:55 pmI haven't looked into it. I empirically came up with the five seconds. When I put the software together, if I triggered the meter then request the data too quickly, the meter doesn't have time to respond. Four must be on the edge as it will miss every so often, so I padded it out to five.The manual shows Average selects S10 (H2) or 2^10 or 1024 samples/reading which they show requires 4.3 seconds. The filter is set to slow with the timeout disabled. Not sure if this has any effect. It would be very easy to measure the time in software.One thing I did try was just sticking a cap across the meter, charging it to 10V and then allowing it to discharge. I would expect if I monitor the LSD, it should be a fairly even spread. Shown is about 2.6 hours of data.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 29, 2021, 12:29:00 am
content: Quote from: joeqsmith on January 28, 2021, 08:59:22 pmLooking back at some of my notes, I studied the section in the manual that explains how the A/D converter works a while back, and decided that it is a 21 bit converter, which is just enough for a 6.5 digit display of a 20V range (positive or negative - the converter can flip polarity and uses 21 bits on either side).The A/D converter therefore has 2^21 = 2,097,152 discrete steps.So the converter divides the 7 volt reference over 2^21 steps, meaning each LSB = 3.337860107421875uV. But the 7V readings have to be scaled up to the 20V range, around a factor three. (Done mathematically/perfectly by the CPU.) Now, each step is pretty much spot on 10uV, which makes sense with the 6.5 digit capability.The 7.5 digit mode generates an extra digit by taking an average of a number of readings. It seems intuitive that the number of readings need to be 10, in order to generate an extra digit.So if the meter is running relatively stable, and the A/D converter is only flipping between two different readings at the 10 uV level occasionally, perhaps it is only natural that the average of those readings end up having missing values?[Edit:] In other words: the readings are not noisy enough to give a good average?

author: bdunham7
author_rank: Super Contributor
timestamp: January 29, 2021, 02:43:51 am
content: So if that theory is right, I will get my missing numbers if I increase the sample size by enough?

author: SilverSolder
author_rank: Super Contributor
timestamp: January 29, 2021, 05:24:17 am
content: Quote from: bdunham7 on January 29, 2021, 02:43:51 amIf you have everything settled so it moves less than 10uV, the averaging algo won't have anything to work with.This is a limitation of the fact that the meter is "better" than its A/D converter can resolve...So I suspect running very long sample periods may help, but may not be enough to get the distribution of values to become a clean bell curve.It's almost like the A/D converter's own noise needs to be 5uV in order for the LSB to randomly "trip" to either side of the real value, if the real value is exactly between two 10uV steps, if you see what I mean.In other words, if your measured voltage is stably parked between two steps of the A/D converter, so it is 'stuck' on one value, no amount of averaging can rescue that situation...Adding noise to the voltage would cause the A/D to trip to both sides of the measured voltage - and it will trip more often on the side it is closer to, so averaging can find the value we are looking for.Obviously there is going to be some noise in the circuit that will lead to this effect naturally... but there may not be enough noise, is the problem!

author: dietert1
author_rank: Super Contributor
timestamp: January 29, 2021, 08:17:39 am
content: Yesterday night i had some time to fix the guard problem in one of our 8502As. My mistake - while replacing lots of caps i forgot to cut short the wires of one of them and it touched the guard inside the A/D module. Lucky enough it was the autozero memory, so nothing else happened.Now i have two diagrams to show how i am using the DVMs. First one shows a log of this night with a drift of about 1.5 ppm. The reference and the repaired DVM got turned on at about 23:00. Vertical raster is 1 ppm. Each DVM has "sticky" levels even after averaging, so effective p2p noise is less than 1 ppm. The levels aren't the same for both instruments, because i am recalibrating the measurements in software, such that both DVMs report similar values. When i average both instruments, the result looks like a 7 digit DVM, with a noise level at about 1 or 2 uV at those time scales.After the 8:00 bump the measurement will continue during the day without further drift or bumps. During working hours the lab will be at roughly constant temperature.Regards, Dieter

author: joeqsmith
author_rank: Super Contributor
timestamp: January 29, 2021, 12:59:33 pm
content: When I was reading the manual, I thought they stated that the fast R^2 converter was 24 bits including the sign.With that 10Gohm input impedance my little cap is not discharging very fast. After 15 hours its down to 7.4 volts. The LSD bins continue to look fairly even.

author: bdunham7
author_rank: Super Contributor
timestamp: January 29, 2021, 03:53:02 pm
content: Quote from: joeqsmith on January 29, 2021, 12:59:33 pmI also remember believing it was 23 bits + sign, although I can't find it at the moment. That would still give 8,388,608 possible values to cover a display that shows 20,000,000 counts. That is a little less than 2.4 displayable counts per possible binary output of the A2D converter. Some of those displayable values will be close to a binary value and some will not. If you add in a slight misalignment here or there and a relatively small sample size being averaged, it seems plausible that some values are more likely than others--especially if, as SilverSolder has proposed, the meter settles at one or two binary values.If this is how it works, then you would expect to see a more even distribution over a range like you are testing with the capacitor. No one particular displayable LSD is more likely over the whole range, even if specific full counts are less likely or impossible. I set my sample size to 212and let it run, but the reading has drifted down 7uV overnight so I'll have to just keep watching.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 29, 2021, 04:03:58 pm
content: Quote from: joeqsmith on January 29, 2021, 12:59:33 pmYou would expect the bins to look balanced through a sweep - if not, there is definitely an alignment issue! - this test is really quite good, I'll try it and see what happens here...I believe the A/D converter works like this: The converter has 5 real bits which are used several times to "nibble away" at the voltage being measured, in 5 repeated measurements, where the remainder between each of the five readings is stored as an analog voltage on a capacitor. This is the "recirculating remainder" that they are talking about.You would think 5 readings of 5 bits add up to 25 bits, but in fact only the first reading is a 5 bit reading - the next 4 readings all overlap the previous 5 bit "nibble" by 1 bit, so they are effectively 4 bit readings. This is done right at the analog level, by the amplification chosen for the op amps that handle the remainder and feed it back. The reason they do that is to reduce noise, (EDIT:according to the manualactually I can't remember where I read that, or if I just thought that must be the reason). So, effectively, we get 5 bits plus 4x4 bit readings = 21 "real" bits for a complete cycle.The sign is handled by a separate circuit that flips the voltage reference to the opposite polarity. I suppose we can call that one extra bit, but the sign is a completely separate business from the recirculating remainder processing. The processing is equally happy working with positive or negative voltages, as long as the reference is flipped!When you look at how this thing actually works, you can't help being just a little bit awestruck that they actually managed to get this principle to work at all, let alone be accurate, since it is actually all being done by analog electronic circuits that are just "guided" by the CPU![Edit:] Yes, the manual does say the result is "assembled into a 24 bit word describing the polarity and magnitude" - but that doesn't actually say how many of the bits are significant!

author: SilverSolder
author_rank: Super Contributor
timestamp: January 29, 2021, 04:33:53 pm
content: Quote from: dietert1 on January 29, 2021, 08:17:39 amLOL that's almost the same problem I made for myself by using a too-long screw to put the bottom chassis cover on. Lesson(s) learned!Quote from: dietert1 on January 29, 2021, 08:17:39 amThat is very neat!I have attempted a similar idea with 4 meters, but found that the difference between the "best" and "worst" performer was too great - the worst performing unit didn't really add any value to the best ones!So, if nothing else, the exercise helped me identify which meter to work on next!

author: dietert1
author_rank: Super Contributor
timestamp: January 29, 2021, 05:37:05 pm
content: Quote from: SilverSolder on January 29, 2021, 04:03:58 pmYes a true miracle. Those high resolution DVMs from HP mainly used time division to realize the DAC, with even less bits. But i remember that for high resolution digital audio there are multi-bit sigma-delta DACs, that should be a mixture of both methods. So it's still around. Also the MSP430 MCUs that we use for our oximeters include segmented DACs: One 7 bit ladder and another 5 bit ladder to be muxed similar to a Kelvin-Varley Divider. The MCU has two of those and they can be software tuned for 19 bits accuracy. A stone remains a stone, independent of what marketing names it.Regards, Dieter

author: guenthert
author_rank: Frequent Contributor
timestamp: January 29, 2021, 06:05:07 pm
content: Quote from: joeqsmith on January 29, 2021, 12:59:33 pmI haven't read the specifications of the 8505/6A, but generally those long(ish) scale DMMs specify an input resistance of >10GOhm (in some ranges, which should include 10VDC). That's only a nominal U/I ratio, not to be understood as plain resistor. There will be some bias current of the FETs at the input leaking out and the AZ circuit's capacitance will want to be fed, etc. . At 10V you should expect an average current of less than 1nA (it might be less than 100pA, but peak values might very well be considerably higher), hence the nominal >10GOhm.The bias current means, that a low-leakage capacitance on the input will actually get charged (not necessarily towards +10V), which can be used to determine the average current.

author: bdunham7
author_rank: Super Contributor
timestamp: January 29, 2021, 06:26:11 pm
content: Quote from: guenthert on January 29, 2021, 06:05:07 pmAll true, but the numbers on the 8505/06A are lower. If you tweak it carefully, you can get bias currents below 1pA, specifications are <5pA adjusted, <30pA @ 1 year. So the effect on a capacitor of anything more than a few hundred pF will be pretty minimal on a properly adjusted meter of this type. I've no idea whether or how the U/I ratio changes in operation during measuring or over time, that would be another interesting question.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 29, 2021, 10:10:22 pm
content: Quote from: guenthert on January 29, 2021, 06:05:07 pmThe specification is max 5pA bias current. I measured mine to around 3pA with an electrometer. I've tried to look at the circuit diagram to figure out how they get it so low, but I'm not understanding it... analog black magic overload with stacked dual FETs etc.

author: bdunham7
author_rank: Super Contributor
timestamp: January 29, 2021, 10:46:53 pm
content: So since my bench is now occupied with large Fluke meters anyway, I went out and retrieved the old 8500A I had purchased for parts in case I needed any for the 8505A. Of course almost no parts are compatible and I didn't need any anyway--and the 8500A worked perfectly, so I just left it alone. At one point I adjusted Ibiasand input zero so that I could use it as a null in place of an electrometer that I don't have.So after a warmup, it seems to work just fine and since we were discussing input impedance and capacitors, I set up a test. I put a 0.47uF mylar cap on the inputs and then put a 10V source on it, then removed the source. Two hours later, the measured voltage has just dropped below 8.8V, giving an apparent input impedance of about 150G.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 29, 2021, 11:01:19 pm
content: How do you actually adjust the input zero and bias - is there actually an adjustment, or does it mean changing fixed components?The 8502A, 8505A, and 8506A seem to share a number of compatible parts.

author: bdunham7
author_rank: Super Contributor
timestamp: January 30, 2021, 12:12:44 am
content: Quote from: SilverSolder on January 29, 2021, 11:01:19 pmUnder the cover of the DC Signal Conditioner module there are two trimpots. You set it to 100mV range and connect a shorting plug and adjust the zero. Then you put a 1M resistor + small cap (I think I'm using 2.2nF) across it and adjust the Ibiastrimpot to zero. At 1M, 1uV implies 1pA bias current. It's quite fiddly, especially the bias. If you sneeze it will display HHH.HHHH H.QuoteAFAIK, the 8505A and 8506A are essentially the same, with the mainframe and most of the modules sharing almost all components except some special internal connections for AC and of course, the front panel lettering and indications. I haven't actually seen an 8506A, they seem to be valued because of the novel thermal converter. Personally I'm glad to have the 8505A because it can do AC amps, you don't have to choose between ohms and current converters and the AC TRMS converter actually works pretty well--accurate down to near zero % of range and reasonably accurate to 1MHz.The 8502A I'm not sure about. The 8500A has almost no compatible large parts. Of course, I'm sure many of the individual board components are the same, but the most of the modules are different p/n, the power supply is not the same and won't fit, the module retention clips (the ones that break 100% of the time) aren't used and even the case top is not ventilated. The 8500A actually has a very nice dual-bobbin transformer that I was hoping to use to quiet my humming 8505A, but that's also a no-go. The 8502A looks a lot more like an 8500A with the additional buttons than anything else.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 30, 2021, 01:15:37 am
content: After 24 hours, the capacitor discharged to 6.8V. LSD is basically flat.Quote from: SilverSolder on January 29, 2021, 10:10:22 pmI used a new 9V transistor battery in series to try and get the noise low enough to make some sort of ballparkish measurement. With my old electrometer placed in the lowest range (20pA), standing back and let it settle looks like around 1.5pA. Any sudden movements, over 2pA. Walk away and don't twitch, 1.33pA. I can believe it's <5pA.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 30, 2021, 05:20:24 pm
content: Quote from: bdunham7 on January 30, 2021, 12:12:44 amI have successfully swapped modules between 8502A, 8505A, and 8506A. Of course, just because the modules "work" doesn't mean the parts can't be made to different tolerances etc. - I haven't tested them that thoroughly (yet!... now that I had the idea...) - but some cards, like the GPIB card etc., should be a no-brainer.The transformers hum loudly in every single unit I've ever laid hands on - it is safe to say this is a "feature", not a bug... I guess it might be fixable by rubber mounting it - I have a theory that it is perhaps too stiffly coupled with the chassis, mechanically? - but the hum is hardly the worst noise offender in the old test gear collection...

author: SilverSolder
author_rank: Super Contributor
timestamp: January 30, 2021, 05:22:16 pm
content: Quote from: joeqsmith on January 30, 2021, 01:15:37 amI also used a 614 electrometer, and had the same user experience of having to look at it from across the room to avoid disturbing the measurement!What is the principle behind putting a battery in the circuit to help noise?

author: joeqsmith
author_rank: Super Contributor
timestamp: January 30, 2021, 06:20:58 pm
content: I was just trying to get a somewhat close measurement. A battery is a fairly low noise source and I could place it inside the metal enclosure to minimize the lead lengths.

author: guenthert
author_rank: Frequent Contributor
timestamp: January 31, 2021, 12:18:07 am
content: Don't know about the 614, but the 617 would be too slow to reliably catch the peaks of the input bias current of a DMM. The 617 has an analog output (amplifier output, not just a synthesized analog signal, as e.g. in the Keithley 181 nanovoltmeter) which could be used to connect a oscilloscope.

author: bdunham7
author_rank: Super Contributor
timestamp: January 31, 2021, 12:31:59 am
content: Quote from: guenthert on January 31, 2021, 12:18:07 amIf it doesn't use autozero, why would there be peaks? The only meters I've seen that have issues in that area (and can cause issues when connected in parallel with other meters) are the ones with continuous autozero. My picoammeter is also too slow to catch anything but the slowest of peaks, so if there is some other mechanism that caused them I'd be interested to know what it is.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 31, 2021, 12:38:23 am
content: Quote from: guenthert on January 31, 2021, 12:18:07 am614 does have a "real" analog output as well, but I didn't think to trace it on the scope to look for peaks. Another interesting project...

author: bdunham7
author_rank: Super Contributor
timestamp: January 31, 2021, 12:40:44 am
content: Quote from: SilverSolder on January 30, 2021, 05:20:24 pmYes, 8505/06 I'd expect, and I hadn't really considered GPIB or isolator, but with the 8500A I can tell you the ohms, current and AC modules don't swap and I think it seem obvious that the controller and A2D won't either. Not sure on the DC filter or active filter parts.I tried tightening the bolts on the transformer and had it out on a bench and it doesn't seem to be a mounting issue, just something moving inside. I had this idea of vacuum-potting it with thin epoxy, but I have better things to do--as if that has ever mattered before! The 8500A has a different type of transformer and it is completely quiet, but it just won't work.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 31, 2021, 12:55:13 am
content: For DCV (where the bias spec I copied came from), it routes to the DC signal conditioner, then to the filter and finally to the ADC. Not sure what peaks you are expecting to see.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 31, 2021, 01:26:11 am
content: Quote from: joeqsmith on January 31, 2021, 12:55:13 amWe can't rule out that the CPU switches the signal conditioner in and out of the high quality bus for each measurement, which could affect things at the margins?Time to take a look...

author: garrettm
author_rank: Frequent Contributor
timestamp: January 31, 2021, 01:32:29 am
content: Interesting thread!I've got one of the late model 8506As manufactured around 1992. My favorite feature is the 200% overrange on the 10V range and below as well as the permanently stored zero corrections for each range. My unit has the laser trimmed glass/ceramic resistor package in the DC Signal Conditioner module. So I'm curious how well mine performs now that everyone is sharing data from their units. If anyone is curious, I can take photos of the DC Signal Conditioner or other boards. My unit has the Current Shunts installed, rather than Ohms.What software are people using to collect and process the data? I have MATLAB and could write my own code to collect and plot the data, but if there is a turn-key solution I wouldn't mind using that to start with.The low input bias current, at least for the late model units is from using an Analog Devices OP97 (LT1012 equivalent) to buffer the input. The BOM doesn't list the part suffix for the OP97 as it was a selected part for <5pA Ib. I'm not sure if there is a better OPAMP available. The chopper stabilized OPAMP is an LT1052CN8, which looks like it could be upgraded to something a little more modern, possibly an OPA189?I just finished replacing all the electrolytics in the power supply. Almost all of the tiny 5mm caps were dead. The larger diameter parts surprisingly looked okay. The beefy 15000uF snap-in part was a pain to unsolder and I ended up pulling a trace, but some Kapton tape and soldering the pad back to the plated through-hole tidied that up. When installing the large snap-in style replacement caps I had to bend the leads so they would fit into the holes, otherwise the repair went smoothly.Fluke 850xA PSU Module Radial Aluminum Electrolytic CapacitorsQt C WVDC DxHxP Part1x 15000uF 16V 30x42x10mm (C8)1x 3300uF 16V 22x26x10mm (C5)4x 470uF 50V 16x26x8mm (C3,4,6,7)2x 330uF 100V 16x26x8mm (C1,2)4x 5.6uF 35V 5x11x2.5mm (C9,10,11,17)3x 2.2uF 50V 5x11x2.5mm (C18,19,20)Notes: D=diameter, H=height, P=lead pitch

author: SilverSolder
author_rank: Super Contributor
timestamp: January 31, 2021, 01:55:48 am
content: That looks very interesting!What manual are you finding that diagram in, I don't seem to be able to find that diagram in any of the ones I have? (One found online, another purchased from Artek).I guess it's time to open up the DC conditioners and see what revision level they are... do you happen to know the rev letter on yours?

author: bdunham7
author_rank: Super Contributor
timestamp: January 31, 2021, 02:06:33 am
content: Quote from: SilverSolder on January 31, 2021, 01:26:11 am1) there's no reason it would2) I would hear it since these units use relays3) My 8846A would notice, especially on high-impedance sources like the 1V range of the 731B. It picks right up on other meters that have charge pulses due to autozero and I can plot a nice graph of it happening. In this case, there's no such noise.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 31, 2021, 02:15:46 am
content: A crude scope shot of the inputs doesn't show any immediate signs of any switching at the reading speed.I agree there is no reason to do any switching, but maybe some digital noise makes it back out in a periodic way as a side effect of the readings?

author: joeqsmith
author_rank: Super Contributor
timestamp: January 31, 2021, 02:52:03 am
content: Quote from: garrettm on January 31, 2021, 01:32:29 amI would like to see the signal conditioner inside of yours. Guessing it's a fair bit different than the one shown on the XDEV site. I only opened the ADC and ohms clam shells.Which interface is your meter using? I use LabView.

author: garrettm
author_rank: Frequent Contributor
timestamp: January 31, 2021, 03:01:45 am
content: Quote from: SilverSolder on January 31, 2021, 01:55:48 amThe diagrams are errata notes tacked on at the end of the manual. Apparently Fluke was too lazy to actually update the manual (though HP was often just as lazy). The pdf on xDevs for the 8505A (with 1991 revision date) has them at the end of the document. It looks like the same pdf I got from Fluke's website. So sadly there isn't a better quality scan of the circuit diagrams unless your Artek manual has them in it.I don't remember the rev. code for my module, but I'll post some photos of it here in the next day or so.

author: garrettm
author_rank: Frequent Contributor
timestamp: January 31, 2021, 03:34:33 am
content: Quote from: joeqsmith on January 31, 2021, 02:52:03 amLooking back at the photos of your unit, someone has replaced your DC Signal Conditioner with a newer module. The older modules used two metal stickers while later units switched to a single plastic sticker and molding the warning text into the lid. What number does your module show on the label (I can't see it in the photo)?I have the standard IEEE488 interface on mine and a GPIB to USB adapter floating around somewhere that I need to find...

author: SilverSolder
author_rank: Super Contributor
timestamp: January 31, 2021, 04:07:59 am
content: Quote from: garrettm on January 31, 2021, 03:01:45 amThe errata are missing from the Artek 8506A manual, which also happens to be from 1988, so a few years older. Hopefully no major changes in the Thermal RMS part in that time...

author: SilverSolder
author_rank: Super Contributor
timestamp: January 31, 2021, 04:16:35 am
content: Just for fun, here is some price information for these units, and the options! Don't forget to multiply prices by 1.79 to adjust for inflation until today!

author: bdunham7
author_rank: Super Contributor
timestamp: January 31, 2021, 04:22:18 am
content: Quote from: SilverSolder on January 31, 2021, 04:16:35 amWhile I'm glad to have found one to play with for $50, I can't imagine buying one in 1993 for more than an HP 3458A, once you factor in the appropriate options.

author: garrettm
author_rank: Frequent Contributor
timestamp: January 31, 2021, 05:11:19 am
content: I'm pretty sure the 8506A and 8505A were on some sort of weird military contract. Otherwise it wouldn't have made sense to continue manufacturing these units all the way up to 1993--where they were long obsolete.The unit I currently have came from the US Air Force, and the CT variant I had before it was also surplus Air Force gear.Prior to the release of the HP 3458A, the 8506A wasn't a bad metrology grade meter. Though there were still arguably better meters from Solartron at the time. And while HP's 3456A had better DC volts spec below 100V as well as more comprehensive math functions, the 8506A's AC volts spec was pretty impressive for a 6.5 digit meter.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 31, 2021, 05:20:06 am
content: Quote from: garrettm on January 31, 2021, 03:34:33 am881722 with a blue dot next to it. You may also notice that many of the guides have been replaced as well. There are at least three different colored rails used. Guessing it was maintained by Fluke and the upgraded plugin was part of their service.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 31, 2021, 05:27:17 am
content: Quote from: SilverSolder on January 31, 2021, 04:16:35 amMy first Fluke meter was only $299 in 1974. It's on par with the free meters from Harbor Freight.https://youtu.be/ObKomuLLqU8?t=220

author: SilverSolder
author_rank: Super Contributor
timestamp: January 31, 2021, 05:32:04 am
content: Quote from: joeqsmith on January 31, 2021, 05:20:06 amI think the blue dot is just a sticker used by the technician to indicate something about the module. By complete coincidence, I have a sheet of exactly the same kind of little colored circles, and you will see those on my modules too, when I get around to taking some photos!

author: SilverSolder
author_rank: Super Contributor
timestamp: January 31, 2021, 05:33:07 am
content: Quote from: joeqsmith on January 31, 2021, 05:27:17 amProgress!

author: garrettm
author_rank: Frequent Contributor
timestamp: January 31, 2021, 05:39:39 am
content: Quote from: joeqsmith on January 31, 2021, 05:20:06 amWell, you're in luck! That's the same number as mine, so you have the latest DC signal conditioner that I am aware of.Here's a picture of my modules if anyone is interested.

author: dietert1
author_rank: Super Contributor
timestamp: January 31, 2021, 10:02:19 am
content: I am using one of the USB-GPIB interfaces we made 12 years ago. Send '*' to reset the instrument, wait 3 seconds, then '%' to go remote. Then exercise the DC conditioner relays sending "R2?" and "R3?" several times, each time with a 1 second delay. Then data taking starts by setting range "R2" and a loop with trigger "?" and reading the result. Timeout is set to one second and reading terminates when result is available.This works very welll until somebody touches the USB cable and the FTDI driver hangs. Error recovery requires pulling the USB cable and enumeration. Sigh.Regards, Dieter

author: srb1954
author_rank: Super Contributor
timestamp: January 31, 2021, 10:53:36 am
content: Quote from: garrettm on January 31, 2021, 05:11:19 amAt the time the 8506A was pretty much the best AC accuracy you could get in a DVM. To get better accuracy you had to move up to an AC-DC transfer standard.

author: joeqsmith
author_rank: Super Contributor
timestamp: January 31, 2021, 03:57:00 pm
content: QuoteWhy? Are the relays in yours starting to fail?With mine using RS232, afraid I can't be of much help on the software side of things.Quote from: garrettm on January 31, 2021, 05:39:39 amIf you like, I can take some decent pictures of this board to compare with yours and see if there are any differences. Perhaps the performance was improved to the point that Fluke would just upgrade them as part of their service.

author: dietert1
author_rank: Super Contributor
timestamp: January 31, 2021, 04:16:57 pm
content: Had some trouble with the relays of one unit (after not having used the Flukes for two or three years. Same as the front/back switches in some other DVMs.Regards, Dieter

author: joeqsmith
author_rank: Super Contributor
timestamp: January 31, 2021, 05:18:31 pm
content: The front rear switch on this meter had also oxidized. I doubted I would find a replacement so I ended up flushing it, then running about 50mA at a 1V through each contact while I cycled the switch assembly 10-20 times. Then flushed it once more. Took several minutes to go through them all but the switch is now very quite.I was a bit surprised that was the only mechanical issue with the meter.

author: SilverSolder
author_rank: Super Contributor
timestamp: January 31, 2021, 08:14:04 pm
content: Quote from: joeqsmith on January 31, 2021, 03:57:00 pmEvery circuit board has a revision letter written on it.The manual has a page that explains what revision letters are covered by it. This particular manual is probably too old to cover the newer model numbers... but presumably the newer models have revision letters too.In my collection of parts, I have encountered a wide range of revision letters, so chances are quite good that we don't all have exactly the same modules...

author: garrettm
author_rank: Frequent Contributor
timestamp: February 01, 2021, 06:00:53 am
content: Quote from: joeqsmith on January 31, 2021, 03:57:00 pmI would love to see what your board looks like. Mine has 872572 Rev. D written in marker on the PCB--which strangely does not match the number on the label (881722). Maybe it was replaced at some point? Seems odd they wouldn't match. If I'm reading the part numbers correctly, my board has date codes from 1994! But that's military contracts for you, whether or not Fluke wanted to keep making these, Uncle Sam forced 'em to anyways.I wish I had a tripod to take the close ups and some way to correct for the chromatic dispersion or a better lens. My hands are not the steadiest things around, so there might be some slight blur to the zoomed in parts, particularly the resistor array.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 01, 2021, 06:04:45 am
content: Here are a few more photos. I tried taking close ups of the ceramic resistor array, but my hands weren't very compliant while trying illuminate the area and hold the camera at the same time.I added a couple of quick shots of the interior of the Thermal Converter, it also uses a bunch of custom Fluke ceramic resistor arrays.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 01, 2021, 12:36:23 pm
content: Quote from: garrettm on February 01, 2021, 06:00:53 amWouldn't surprise me if the bare board, populated board, tested board, final assembly would all have different part numbers.As you can see, mine is also Rev D, written with a marker. Possibly 1995. The 316 test stamp may be a date code.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 01, 2021, 05:40:51 pm
content: I guess we can safely assume that @joeqsmith's board is among the last ones made? - so unlikely that there are any revisions newer than Rev. D?It is really cool with a modular construction like this, they can keep improving and revising different parts over a long production run and still keep everything working together no matter how you swap stuff, pretty much.Of course, that kind of philosophy would be strictly forbidden nowadays... let's just launch facelifted models every year, nothing compatible with anything else!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 02, 2021, 03:19:56 am
content: A few closer pictures of the resistor network. I wanted to try and show the glass. The rest are looking through the glass. I wonder what just this one part cost as I assume that 735118 is a Fluke part number.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 02, 2021, 04:52:20 am
content: 1995! That's a new record in my book. Looks like 872572 Rev. D was the final iteration of the DC Signal Conditioner in the 8505/6A series.Here's an interesting read from Analog Devices on bootstrapping an input buffer like the newer DC Signal Conditioners use.https://www.analog.com/en/analog-dialogue/raqs/raq-issue-168.html#The DC Signal Conditioner is a pretty important module since both the Ohms and Current Shunt modules require it to scale their outputs before going on to the Active Filter and finally the Fast R2 ADC. For AC current on the 8505A, the Current Shunt will instead send its output to the AC Converter (RMS or AVG) before going to the Active Filter (bypassing the DC Signal Conditioner entirely).The DC Signal Conditioner scales its input (from Vin/Ωsense or RT1) such that it becomes 20V on the output (RT6) at full-scale:Range Scaling100mV: *1001V: *1010V: *1100V: /64, *10 (effectively /6.4)1kV: /64, *1Which is where the seemingly odd full-scale values for the 100V (128V) and 1kV (1200V) ranges comes from.The 100V range could have been improved by using a second ratio tap on the RN1 network to use the 10V range (*1 scaling) rather than the 1V range (*10 scaling).The Active Filter has a multiplexer, two 3-pole Bessel filters (SLOW and FAST) and a unity gain buffer. The filters can be bypassed and the multiplexer lets an external reference be connected for ratio measurements. The output of the active filter then goes on to the Fast R2 ADC.As pointed out by SilverSolder, the Fast R2 ADC first detects the input polarity, adjusts the reference polarity, and then runs 5 iterations of the R2 routine. Each iteration generates 5 bits but overlaps the previous by 1 bit. So you have 5 for the first iteration and 4 for each subsequent iteration, yeilding a total of 22 bits, 21 for magnitude and 1 for sign. Pretty interesting design overall. I'm curious if it has any benefits over the multi-slope integrating method. Possibly speed?

author: garrettm
author_rank: Frequent Contributor
timestamp: February 02, 2021, 10:46:59 am
content: I just noticed that the Active Filter module has a "ZERO ADJ" trim pot (R14). I've never thought to adjust this before. But after 27 years of use, I wouldn't mind checking to see if it's still in spec.After looking around the manual, table 4-10 in the trouble shooting section appears to have the adjustment procedure:1) Set the 8505/6A to DC Volts, 10V range and short the input.2) Short RT6 (Active Filter input) to RT2 (Reference Common) using the ever elusive Bus Interconnect Monitor.3) Adjust R14 for a display of 0.00000 ±2 counts.I'm confused that Fluke didn't specifiy if the meter should be in cal mode with the software zero on or off or whether the filter should be on slow, fast or bypass. Maybe it doesn't matter? Without the Bus Interconnect Monitor, the question of where to access RT6 and RT2 from comes to mind. Looking at the circuit diagram for the DC Signal Condtioner, TP6/RC looks to be a Reference Common test point. Assuming RC means the same for the Active Filter, then TP1/RC is another Reference Common test point. Finally, RT6 can be accessed from TP8/OUT on the DC Signal Conditioner.I'll give this a go in the next day or two and report back what I find. I assume R14 is for nulling the offset voltage of the unity gain buffer comprised of Q27 and U5, but I haven't examined the board yet to see if that is the case. Unfortunately the manual does not provide a circuit diagram for the Active Filter.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 02, 2021, 03:42:12 pm
content: There are a couple of different versions of the Active Filter. The main difference is that the later models have dual switching JFETs in parallel in some positions, examples in the attached diagram are Q34 and Q35. Presumably, the older boards with a single JFET were marginal unless the JFET was a good one (may have had to be hand picked?).I have had problems on two of these boards: the voltage droops by 10uV when the filter is turned On. I suspect a switching JFET somewhere, but haven't yet attacked this issue.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 04, 2021, 08:02:02 am
content: Okay, so I finally burned an entire day recalibrating my 8506A.The output of the Active Filter was about 10uV higher than the output of the DC Signal Conditioner with the meter set to 10V range and input shorted with some copper wire. Ten microvolts is equivalent to 1 count at the ADC and is well within spec (i.e., ±2 counts or ±20uV). But being a perfectionist, I adjusted its output to match the DC Signal Conditioner's output (after hardware zeroing the 100mV range) to within 0.5uV (best I could do with the 1-turn trimmer and checking that the DMM4050 was zero corrected). Step 3) in the troubleshooting section for adjusting the Active Filter zero is pointless, as it does not account for offsets introduced by the ADC, which should be adjusted by R8 instead. So it's better to match the DC Signal Conditioner than zero the display. In this way, offsets introduced in the path from the DC Signal Conditioner to the output of the Active Filter are effectively eliminated. As a result, the ADC or Active Filter are not being used to remove offsets from other modules.To speed up nulling Ib, I connected a Keithley 617 electrometer to the input and adjusted the bias pot for a reading of <1pA, shooting for ±0.5pA. I then connected the specified 1MΩ//0.22uF (with leads soldered into some banana plugs) to the input and placed a small concave metal sheet connected to chassis ground around the input, set sampling to 10 and checked for a reading of less than 10 counts on the display, which it was. Pleased with the result, I called it good. The manual asks for <30 counts (3pA), so I was well within adjustment.Next I zeroed the ADC and performed the optional 10V ladder adjustment and ran through the normal 7-step ADC ladder adjustment three times before I was able to match my recently calibrated DMM4050 to within 2ppm (with one 4ppm outlier) on the table 4-5 linearity check. This is where much of my time was spent. A bit like the blind leading the blind, but I would rather the meters match measurements, even if their absolute values might not be correct.Then it was back to the DC Signal conditioner for setting the 100mV, 1V and 100V full scale hardware adjustments (clearing the software gain corrections first, of course) with a round of software corrections for zero offset and gain for +/- values on each range. The separate software corrections for each polarity are very nice and help dial in the 1000V range since there is no hardware adjustment for it (though it barely needed it).All this took about 5 hours with a separate 4 hour warm up! I would never tell anyone to perform a full hardware cal on one of these unless their linearity is out of spec. Hardware zero and software cal is how these should be calibrated as to do anything else is an entire day spent laboring over ppms while battling the effects of temperature changes. Thankfully I had a small heater I could use to keep the room within <1C of 23C.I should point out that the manual makes the full DC / ADC calibration routine seem more complicated than it actually is and could be streamlined to:0) Warm up:Power on UUT and wait a minimum of 4 hours for unit to fully stabilize. Keep room within 1C of 23C at all times.1) Power supply adjustment:Remove top cover and set cal switch to on. Configure filter and sampling for appropriate values, then perform standard power supply adjustments and optional non-recurring PSU adjustment.2) Hardware zero corrections:Short input and set range to 100mV. Disable software zero. Adjust zero offset and bias current on DC Signal Conditioner for 100mV range. Set range to 10V. Optionally check the Active Filter and adjust R14 so its output matches the DC Signal Conditioner’s output using a DMM with 0.1uV resolution. Adjust zero pot on the R2 ADC for a display of 0.0000000. Set new software zero for each range using the [Zero Vdc/Ω] key.3) 10V hardware calibration / R2 ADC calibration:Set range to 10V and clear software gain corrections for 10V range. Perform optional 10V ladder adjustment. Perform a two-part iterative cycle involving a 3-step ladder adj. (match ±10.10000V and remainder) and a 4-step ladder adj. (5V, 2.5V, 1.25V and 0.625V ladder) until linearity verification passes limits in table 4-5.4) 100mV, 1V and 100V hardware calibration:Clear software gain corrections for 100mV range and store new software zero (if needed) then perfrom FS hardware gain adjustment of 100mV range. Repeat for 1V and 100V ranges.5) Software calibration:Put top cover back on UUT. Apply software zero (if needed) and gain correction for +/- polarity of each range (10V, 100mV, 1V, 100V, 1kV, in this order for each polarity) at a value between 60% and 190% for 10V ranges and below or a maximum of 128V and 1200V, for the 100V and 1kV ranges. Calibration is now complete. Set cal switch to off.It's a lot of work, but isn't as daunting as some people have made it out to be. And again, not needed unless linearity is out of tolerance or you have the time, equipment and patience to fiddle with chasing ppms. In general, steps 0-2 and 5 are all that's needed.NOTES:Since I often use the average mode during normal use, I performed the entire calibration with filter F enabled to account for any offsets it might add. Sampling was done between S9 and S11, depending on the step for dialing in sub ppm on the 10V range. The added delays between readings also helps to let the meter settle, which is needed for some of the ladder adjustments and obtaining a reliable software zero on the 100mV range.With the electrometer already setup, I decided to check my other DMMs for comparison. The slightly outdated Tektronix DMM4050 measured about 16pA and the HP 3456A was 4pA with AZ on and about 1.6 with it off, though its value is affected by the meter's offset voltage and its reading quite jumpy when AZ was turned on.The 8506A does not have an auto zero circuit like the HP 3456A, and is thus sensitive to temperature variations. Without auto zero on, the 3456A appears to perform worse than the 8506A during my fiddling around. So Fluke did make a valiant effort with an outdated approach to DMM design. It also has lower bias current and while there is some noise to it, it pales in comparison to the noise generated by the 3456A's AZ circuit.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 04, 2021, 01:17:31 pm
content: I didn't find going through the manual to align it that much of a problem. The manual seems well written and easy enough to follow. Had the meter actually worked, it would have gone fairly smooth. The problem I have is the lack of a way to produce the signals needed to align it so it's a poor man's setup at best.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 04, 2021, 04:24:43 pm
content: Quote from: garrettm on February 04, 2021, 08:02:02 amThat sounds like a long time spent with the tongue at exactly the right angle!Very cool insight with matching the Active Filter output to the DC Signal Conditioner, so both can be eliminated - I will have to try that.Did you by any chance look at how much offset your Active Filter adds (i.e. in your case, by switching it off)? - On a good filter module, I can't tell any difference at all. On a bad one, I've seen ~10uV on a 10V input.One section in the manual talks about the software zero affecting all ranges above it. I've never completely grokked how that actually works... when you clear all the zeros, are they effectively set to "NULL" and take their value from the next lower range? What happens if you set a low range, skip a range or two, and set the higher one... will the middle range(s) inherit from the lowest one, and the upper ranges inherit from the higher one? ... will have to experiment with this...

author: garrettm
author_rank: Frequent Contributor
timestamp: February 05, 2021, 03:36:01 am
content: Quote from: SilverSolder on February 04, 2021, 04:24:43 pmSo I just ran some tests.After playing around with the temporary zero corrections, I think your understanding is correct. Zeroing a lower range does affect the ranges above it but not those below it. From what I can tell, zeroing a lower range clears the stored zero corrections for the ranges above it. Furthermore, temporary zero corrections are stored separately for each range. So to properly apply temporary zero corrections, one would start on the 100mV range and work up to the 1kV range. I don't know why Fluke decided to do it this way, but it is nice that each range can be fully zero corrected. Despite the weird interaction between ranges, the 8505/6As method is still better than the DMM4050, which does not allow for retaining separate zero corrections for each range. And another annoying thing with the DMM4050 is that if you use the stats mode or any analyze functions the zero correction is removed...For the next test, I should point out that the filter has 5 modes of operation:|-----------Filter Modes----------|| CMD Mode # Type Tout LED || F blank slow none on || F0 0 fast none off || F1 1 bypassed none off || F2 2 slow 550ms on || F3 3 fast 50ms off ||---------------------------------|NOTE: Pressing  changes its value from F0 to F, and back.NOTE: To select a specific mode use key sequence -->[numeric entry]-->, a blank numeric field yields filter F.NOTE: When in AVG Mode, any filter setting other than F or F2 will forcibly exit AVG Mode and set sampling to S7.NOTE: When 8506A is in AC Volts, only F0 or F (for inputs <40Hz) are allowed.Modes F and F2 as well as F0 and F3 are basically the same, so we really only need to test 3 different setting. Since average mode will exit if an incompatible filter setting is applied, we lose the extra resolution that the 10V range could provide to delineate differences in zero offsets. However, we can get that extra digit on the 10V range by:1) Set filter to F1, sampling to S10 (4.3 second average).2) Let meter settle and perform temporary software zero.3) Enter average mode (uses default filter F) and note the difference.4) Repeat steps 1-3 for F0.In doing the above, I saw no difference in offset between filter modes, so I assume my filter module is working okay. I think this could be a pretty simple way to test if a meter has a bad filter module. Though, the meter should be warmed up for at least 2 hours before doing this to avoid false positives.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 05, 2021, 08:25:41 am
content: I ran a few more tests tonight to see if I was missing any codes on the 7.5 digit readout. I don't really have the best set up to do this as my Valhalla 2701C is still being repaired, but my Advantest R6144 does have microvolt resolution on its lowest range.Shown in the photos is the Fluke 8506A and my HP 3456A connected to the Advantest R6144 with low thermal connections. I zeroed/nulled both meters with the R6144 set to 0.000mV and then steped from 1uV to 10uV with the 8506A on the 10V range and averaging enabled while the 3456A was on the 100mV range with 100 NPLC integration time.While slow, the 8506A was able to accurately resolve each microvolt step as verified by the reading shown on the 3456A. I'm not sure if there is a better test to show missing codes, or if my methodology is in error, but each code is present. It's possible that if a signal drifted too quickly the meter might not be able to resolve each intermediate change in LSD and appear to have missing codes. I didn't think to time how long it took to resolve each digit, but it's not very fast.

author: bdunham7
author_rank: Super Contributor
timestamp: February 05, 2021, 02:57:59 pm
content: I didn't see any missing codes using that method either. Where I saw them was a long-term observation of a 10V source. There was a few PPM of noise and drift, but I would consistently fail to observe certain values.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 05, 2021, 05:13:21 pm
content: Quote from: garrettm on February 05, 2021, 03:36:01 amYes it is indeed a little strange. Perhaps setting a zero at a low range is, in principle, supposed to get the zero for the higher ranges "good enough for Australia" as well, but that assumes there is no range-dependent offset (an assumption which does not appear to hold!).In practice, since the meter does not have "Auto Zero" and things can easily move with a slight temperature change, it seems best to just set the zero every time you switch range anyway - so the "weirdness" isn't really an issue in practice and there is no need to zero all the ranges except during software calibration - where the takeaway is, start zeroing the lowest range and work your way up, to avoid disappointment!Quote from: garrettm on February 05, 2021, 03:36:01 amThe way the filter settings work, looks like a lot of afterthought has gone into the design! - or perhaps more charitably, improvements were added while retaining compatibility with the original commands.I don't fully understand the 50ms / 550ms "settling delay" property of the F2, F3 filters - is the start of the sampling of the input literally delayed by that amount of time after being triggered?Quote from: garrettm on February 05, 2021, 03:36:01 amNice workaround, I'll see if I can characterize my problem boards this way.Perhaps it is just a hardware offset adjustment that is the problem.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 05, 2021, 06:29:41 pm
content: Outside of a short note about the there being a fast (Y) and slow (Z) filter and them being a 3-pole Bessel with different cutoffs, they seem to provide very little detail about them. Maybe the schematic IS the document.With Dave's UEI meter, I would feed a chirp into it and record the filters response. Seems like you could do something like this to test out the hardware filters.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 05, 2021, 06:36:43 pm
content: Quote from: joeqsmith on February 05, 2021, 06:29:41 pmI ran the filters from the diagram in LTSpice and came up with the figures in red, in the Active Filter circuit diagram I posted earlier (i.e. 7.5Hz and 75Hz, 18dB/octave for the slow and fast sections respectively).I think those numbers are unrelated to the 50ms and 550ms "timeouts" as they are called in the manual. My theory is that when one of the "timeouts" is activated, the meter simply waits that number of ms after a trigger before performing the reading (to guarantee the filter has settled). Should be easy to verify on GPIB (still not set up here!)

author: garrettm
author_rank: Frequent Contributor
timestamp: February 05, 2021, 07:42:56 pm
content: Quote from: bdunham7 on February 05, 2021, 02:57:59 pmWhen I get the GPIB figured out I'll try observing my Advantest R6144 at 10V to see if mine does the same thing. I also want to try superimposing a ramp or noise signal on the output of the R6144 with a signal generator and compare the results.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 05, 2021, 07:53:16 pm
content: Quote from: garrettm on February 05, 2021, 07:42:56 pmPerhaps just turning off the Filter will have the desired (noise) effect?The filter will suppress any signal over 7.5Hz or 75Hz, respectively, so it is unclear how much effect adding a signal would have unless sample periods get very long?The noise may need to be added later in the chain, perhaps in the R2 converter itself...

author: garrettm
author_rank: Frequent Contributor
timestamp: February 05, 2021, 08:15:01 pm
content: Quote from: SilverSolder on February 05, 2021, 05:13:21 pmHopefully all you'll need is to play with some trimmers, but if not, I have a spare Active Filter module (716316) on hand, though shipping might be more than its worth.If needed, I could unsolder the j-fets and mail a few off. I recently found out my Current Shunt module has weird offsets that come and go, so I think it needs a few j-fets replaced too. Parting out the spare filter might be able to fix both our problems.I also have a spare GPIB controller if anyone wants it.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 05, 2021, 08:37:47 pm
content: Quote from: garrettm on February 05, 2021, 08:15:01 pmThank you for your kind offer, I'll keep that in mind if I lose traction completely with this one!

author: garrettm
author_rank: Frequent Contributor
timestamp: February 05, 2021, 09:56:24 pm
content: Quote from: SilverSolder on February 05, 2021, 07:53:16 pmGood point.One interesting feature of the R2 ADC design is that each reading from the ADC is 6.5 digits. So with S0 sampling, that’s 250 6.5 digit readings per second. To see if there really are missing codes and how the filters might affect the results, it could be worthwhile to do the averaging remotely on a PC than at the 8505/6A. Simply wait for 1024 samples before computing the mean and place that value into a new time series (which would be equivalent to an average mode reading direct from the DMM). This way we eliminate any limitations with the precision of the internal data types and can quantify the noise of the ADC from the raw samples. This also lets us compute 7.5 digits with any of the three filter settings.Unlike integrating ADCs, it makes more sense to use the fastest sample rate possible from a R2 ADC and perform the appropriate conditioning at the PC, rather than on the DMM. At least for these ancient boat anchors. With an auto zero circuit and more advanced controller and display, the 8506A could have been a much more impressive instrument. The "analyze" features on the DMM4050 (trend plot, stats and histogram) are be perfectly suited for the 8505/6A and its high speed, high resolution sampling. And with finer sample size control, speed vs noise could be better optimized for a given measurement. Then there is the possibility of using digital filtering to avoid the need for analog filters.

author: bdunham7
author_rank: Super Contributor
timestamp: February 05, 2021, 10:07:58 pm
content: Quote from: garrettm on February 05, 2021, 09:56:24 pmAlthough true, the 'advanced controller' would have been tough to come by when the 850x was being developed. There's a lot of performance difference between an 8080 and the twin Cyclones of the 8446A/DMM4050--over 10,000 times! Averaging samples was about as sophisticated a digital filter as was practical.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 05, 2021, 10:35:32 pm
content: Quote from: SilverSolder on February 05, 2021, 06:36:43 pmOdd they wouldn't have documented the filters better and that you had to run SPICE to sort it out.Log sweep from 100mHz to 10Hz, attempting to collect the data as fast as the meter will allow it (about 20Hz). Showing the rolloff with the slow filter enabled.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 05, 2021, 10:46:31 pm
content: Log Sweep 1Hz to 100Hz with fast filter enabled. Obviously aliasing on the PC side but we can still see the roll off.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 05, 2021, 11:01:23 pm
content: Quote from: garrettm on February 05, 2021, 09:56:24 pmExactly, I also suspect we may be seeing an artifact of the math doing the averaging, rather than missing codes from the A/D converter.Quote from: garrettm on February 05, 2021, 09:56:24 pmAgree, the 8505/6A coupled with a PC is the way to go. I have all of them on a GPIB bus, and you can do stuff like trigger two (or more) of them to read at the exact same time, for example. Then, as you say, you can do a ton of math on the numbers afterwards. - unfortunately, no matter how much math you do, if the last few digits are pure noise, they remain as pure noise afterwards too!Averaging works really well if the numbers are high quality in the first place, which they obviously are from these instruments if you dot the i's and cross the t's.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 05, 2021, 11:04:36 pm
content: Quote from: joeqsmith on February 05, 2021, 10:35:32 pmAgreed, we shouldn't have to jump through hoops to learn what the response of these filters are. They obviously impact measurements at low frequencies so you need to take them into account.Awesome, -6dBV at 7.5Hz.... exactly what SPICE predicted - and now confirmed experimentally!The 75Hz filter is very close to the SPICE result as well.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 05, 2021, 11:17:37 pm
content: Quote from: garrettm on February 05, 2021, 09:56:24 pmI have done the "auto zero" externally by GPIB - i.e. have a GPIB controlled relay regularly short the input, take a reading, set the zero, then switch back to what you are measuring. This approach works surprisingly well, but obviously has pitfalls (thermal EMF, etc.) which means you have to go slow and steady... but hey, these meters wouldn't be so cheap if they were easy to use as well as being accurate!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 06, 2021, 02:00:49 am
content: The fastest I can pull down data is about 65ms a sample. That's with S0 (4ms), filter off and internal triggering. The software is just pulling out data when it's available and stitching it together. Another process checks for a valid frame and pulls it out to be processed. The serial port only supports up to 9600 BAUD. They also have a minimum of 2 stop bits. A message is 14 bytes (using ASCII), or 14.6ms to send. I tried using asynch which brought it down to 54ms but it seems like it's slower than it should be. Maybe the binary format would improve it.What are you able to achieve when using GPIB?

author: SilverSolder
author_rank: Super Contributor
timestamp: February 06, 2021, 04:27:49 am
content: I use a serial-to-GPIB interface, with the serial side running at 38.4bps and I can get to about 15ms-20ms per "transaction".The manual claims 500 readings per second for these Flukes, which is only 2ms per reading... so it looks like the serial baud rate is the limit in both cases!If you have a fast GPIB host controller, perhaps you should take up @garrettm on his offer for his spare GPIB interface?

author: garrettm
author_rank: Frequent Contributor
timestamp: February 06, 2021, 11:43:22 am
content: Quote from: joeqsmith on February 06, 2021, 02:00:49 amI'm still in the process of getting my GPIB setup figured out, but I should have it up here soon. (It's much more complicated than serial!)Looking at Tables 606-1 through 606-3. The Bit Serial Interface can be set to 1 stop bit (S3 on) and no parity (J3 removed).Assuming the remaining jumpers and switches are set toJ1 installedJ2 removedS1 offS2 offS4 offS5 onS5 onS7 onthe serial bus would be configured for 9600bps RS232C with 1 start bit, 7 data bits, 0 parity and 1 stop bits, for a total of 9 bits (7N1) transmitted for each char.This implies a maximum of 1067 chars per second over the bus. Each reading from the DMM is a string of length 13. Then we have the termination chars <CR> and <LF> tacked on for a total of 15 chars per reading. This implies a maximum of 71 6.5 digit readings per second.Using command J to suppress the <LF> termination character allows for a maximum of 76 6.5 digit readings per second.Since ASCII data over the serial bus is so slow, changing the DMM's sampling rate to S1 or S2, would allow you to perform some averaging at the DMM without lowering the reading rate at the PC. This would indirectly get you closer to the 250 samples/s reading rate, if cheating somewhat by "compressing" more samples in to each reading.Assuming binary data and 8N1 frame length, then 960 bytes can be transmitted per second. Each reading of the DMM is then 6 bytes. Assuming terminating chars <CR><LF> are tacked on at the end of the payload, then a maximum of 120 readings per second are possible. (Or 137 if line feed is suppressed.)Looking at the schematic for the Bit Serial Interface circuit, it seems like it would be pretty easy to modify. The serial port and level shifters could be replaced with a TTL level RS232 to USB or Ethernet board for ease of use. Though the bus would still be limited to 9600bps and no hardware flow control. It's possible that modifying the circuit around U3 could allow for higher baud rates. Though replacing U9 with an Arduino Micro would give hardware flow control and much faster communication over the virtual COM port. This would be even faster than the stock GPIB interface.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 06, 2021, 02:55:19 pm
content: Looks like I had sorted out the stop bits before. The previous data was taken with eight data bits and a one stop. 10-bits/byte. 9600bps/10 = 1.04ms/byte. With 14 bytes I get 14.58 or the 14.6 I mentioned earlier. It's not a bit or byte off here or there, its a long way off.I doubt I will invest anytime modifying the meter but I may try the binary format.**********The manual mentions a high speed reading mode "!" but it's only supported with parallel and GPIB. I tried it anyway with the serial interface and it doesn't appear to work. No surprise.Binary does improve things a bit. The meter sends out 6 rather than 14 bytes. About an 8ms difference. Looks like it takes about 32ms per reading vs 54ms using ASCII. One thing I notice is if I use asynchronous trigger, the unit suppresses the carriage return. So there would be some gains there if I were able to sort out a way to synchronize with the data.The other thing I noticed is when I use binary, regardless of the trigger setting, the display is off.The schematic shows a AY-5-1012 UART but the BOM shows a 13. Looking at the clock generator, it looks like little effort to run it at 19.2kbps.http://sintran.com/sintran/library/libother/extern/F4702.pdf

author: SilverSolder
author_rank: Super Contributor
timestamp: February 06, 2021, 05:16:34 pm
content: Letting the meter do the averaging is probably the best - provided we can trust the numbers!

author: garrettm
author_rank: Frequent Contributor
timestamp: February 06, 2021, 07:16:59 pm
content: Quote from: joeqsmith on February 06, 2021, 02:55:19 pmWould replacing the 2.4576MHz crystal with a 4.9152MHz part do it? Almost seems too easy... May need to check the level shifters to see if they can do 19.2k baud. Otherwise it seems like a low cost upgrade--literally less than a dollar.I'm still confused why your meter reads so slowly. While the numbers I ran are upper bounds, since they don't take into account processing delays and the transit time for data to move from the PC to the DMM and back, they still should be within 20% of actual throughput.Have you tried using command J to suppress the line feed termination? Using two termination characters is pretty wasteful.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 06, 2021, 08:05:23 pm
content: I have been using the J command to get the 14 byte payload when using ASCII. I have not tried to enable it after changing to binary format to see if it actually will still add it.Adding the jumper from data sheets I linked previously, oddly running at 19.2k I see no further gains. It seems to be capped out around 30ms per transfer. Again, 8N1 or 10bits per byte or 1.92kBps, with a payload of 6 bytes it should be in the 3ms range.Looking at the serial data, we can see the meter sends out a packet pretty much every 30ms. Again, the PC is not sending any data to the meter. I just have the meter send it as fast as it can.***I wonder if they cap it in their firmware based on the interface. They know the card only supports 9600, so they only service it at that expected rate. Odd choice if that's the case.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 06, 2021, 08:22:54 pm
content: Doh! I didn't notice that note on page 6 about 19200 baud operation. Even better than upgrading the crystal, it can already do it!I have firmware 6.07 that I can upload if you want to try flashing it. Maybe Fluke fixed the processing delay, whether artificial or accidental.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 06, 2021, 08:38:39 pm
content: Quote from: SilverSolder on February 06, 2021, 05:16:34 pmI would like to try emulating my DMM4050's trend plot, stats and histogram functions so I can compare the two for fun. Which necessitates getting as fast of readings from the DMM as possible. And I suppose I am curious if Fluke is full of crap with regards to how fast readings can be pulled off of these meters. After Joe's slow readback rate, I'm curious if it's an artificial cap or a firmware bug that’s holding back his meter.One of the main selling points of the 8505/6A's was its fast sampling and readback capabilities. Just compare specs with its rival the HP 3456A: 25 samples/s at 1PLC with AZ on and 48 samples/s with AZ off for 6.5 digits. Any faster than that and it loses resolution. The 8505/6A can do 5 times that while maintaining 6.5 digits! And being designed without an auto zero function, it is more stable than the HP 3456A under its best high speed sampling mode.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 06, 2021, 09:41:08 pm
content: This meter has version 603 installed. Looks like its just a couple of 2764s. If you have the images already archived, yes please, upload them and we can at least get on the same firmware.If I change to use the internal asynchronous trigger, you can see the packet is now just five bytes rather than the six. There is no CR. Also notice that the meter sends the data slightly faster but again, no where near what I would expect.Maybe SilverSolder's meter has different firmware as well which may explain why their meter is faster. It's also VERY possible I am still not doing something properly which is throttling the system.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 06, 2021, 11:38:59 pm
content: Looking at the sync signal, it shows up in the center of the serial packet. One per packet sent. I assume then this means the meter is not over sampling and is actually collecting the data this slow.I reset the meter and just looked at the sync, with no serial communications. Turning off the filter and setting the samples to 0, it's sampling at 21Hz. I'm thinking that I'm really missing something basic as there's nothing that should be throttling it. At least it doesn't seem at all related to the communications with the PC.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 07, 2021, 12:00:13 am
content: Quote from: joeqsmith on February 06, 2021, 09:41:08 pmSnowstorm tomorrow, perfect time to get GPIB working!I may be misremembering the speed of the Fluke: it was quite a while ago, it may have been an old HP 59313 A/D converter that I got running that fast... Time to get some accurate numbers.I will check what firmware revisions I have as well, it would be cool if we could upgrade all of them to the latest version! (Assuming the hardware is compatible throughout...)

author: joeqsmith
author_rank: Super Contributor
timestamp: February 07, 2021, 12:35:46 am
content: If I change over to use the external trigger while monitoring the sync, again it seems to alias long before it should.Here you can see the serial port being used with the external trigger. It will keep up at 22Hz but at 23Hz it will start to miss.Quote from: SilverSolder on February 07, 2021, 12:00:13 amThat would be great as I am really at a loss. Maybe I just don't understand the manual. S0 should be 1 sample/reading and they claim a digitizing time of 4ms. 2ms when using line asynchronous. If I set the number of samples higher to allow the meter to collect at a faster rate, the sync rate stays the same. It's just looks like it's a much slower than they claim.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 07, 2021, 02:16:51 am
content: My max versions are:8505A - v5.0.58506A - v6.0.7I have no idea what the actual latest revisions actually are.There seems to be a big difference between v.6.0.6 and v6.0.7 for the 8506A, they behave quite differently in many subtle respects.I have never tried burning eproms, but I do have a TL866CS here that might do the job?

author: garrettm
author_rank: Frequent Contributor
timestamp: February 07, 2021, 04:13:37 am
content: Quote from: joeqsmith on February 06, 2021, 09:41:08 pm603, that’s positively ancient! Until now, I've never seen a firmware version below 605 out in the wild. It very well could be a software glitch holding your unit back. What year do you think you Controller module was made?I haven't read my ROMs yet but I have a TL866II PLUS from XGecu that I can use to get them. I'm quite keen to see what differences you observe between revisions. It would be nice if we can put that enhanced baud rate on the Bit Serial Interface to good use!I believe versions 1.0.1 for the CT variant and 607 for the standard 8506A are the last firmware revisions. The controllers with these versions had date codes of 1993 on the chips.I've attached a picture of the elusive CT model and a couple of different Controller boards that had bad calibration memory. The CT Controller from 1993 looks basically identical to the others dating to 1983 and 1987 which both have version 606.Here's a thread I made about that repair.https://www.eevblog.com/forum/repair/fluke-8506a-repair/msg1002513/#msg1002513I'll upload the newer 607 firmware here in a bit.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 07, 2021, 06:21:58 am
content: Judging by the picture of the controller posted at Xdevs (reproduced below), it seems that the firmware in the EPROMS apply to both the 8505A and the 8506A - somehow, the code must figure out what it is when it boots. The reason I think that is because firmware on 8505A always appears to be 5.x.x whereas it is always 6.x.x on the 8506A, based on the units I have seen. Note the label on the EPROM in the picture lists two revision numbers... one for each model! So, the newest ROM image might be a good upgrade for both models! (Note, this is just a wild guess and it could be completely wrong...)I am not very experienced with EPROMS, so this next "conclusion jump" may be wrong: I noticed that the crystal in the controller is nearly 16MHz, we are probably dealing with an 8MHz CPU - which was fast in 1982. Does that mean the grade of EPROM has to be the faster 200ns or better kind, to avoid introducing wait states in the CPU? I have noticed EPROM is available in several speed grades... I haven't looked under the labels of any of mine yet to confirm or deny this theory so it may well be incorrect.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 07, 2021, 10:04:34 am
content: I got the V506/607 EPROMs read from my meter. And since I had a spare Controller board with V505/606 firmware I read the EPROMs from it too.The zip file contains the U23 and U24 bins along with datasheets for the different UV EPROMS used on each controller, photos of the actual chips and some notes. Should be pretty self contained.I read the contents of each chip three times and compared the results to ensure I got good reads. I then compared the contents of each version and found a string for "8505A :8506A :" in both U23 binaries which gave me confidence that I read them correctly.*Corrected a minor typo in the 8505A_8506A_Firmware.zip, where I wrote V505_607 instead of V506_607.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 07, 2021, 10:32:21 am
content: Quote from: SilverSolder on February 07, 2021, 06:21:58 amHaving replaced Controller modules between 8506A and 8505A units, I can confirm that the EPROMs contain firmware for both models. The only units not compatible are CT models which have special firmware due to hardware modifications (no rear input and special HV AC divider for 1kV range). The CT Controller can tell when not placed in a CT chassis, so somewhere on the mainboard or elsewhere is some sort of jumper or other feature that lets the Controller module know what model the unit is.

author: m k
author_rank: Super Contributor
timestamp: February 07, 2021, 12:34:20 pm
content: From M2764A manual200 -2F1, -20F1250 -F1, -25F1, -F6300 -3F1, -30F1450 -4F1, -45F1, -4F6

author: SilverSolder
author_rank: Super Contributor
timestamp: February 07, 2021, 02:29:37 pm
content: Quote from: m k on February 07, 2021, 12:34:20 pmApparently the 8080A is only a "up to 4MHz" processor, so it is not picky about EPROM speed.I wonder why Fluke chose a 15.36MHz crystal to run this board... would that not run the CPU at 1.92MHz?8080A 2.0MHz8080A-1 3.125MHz8080A-2 2.67MHz8080B 4.0MHz[edit: CPU speed]

author: garrettm
author_rank: Frequent Contributor
timestamp: February 07, 2021, 04:38:03 pm
content: Quote from: SilverSolder on February 07, 2021, 02:16:51 amThe 8505A with 505 firmware can be updated to 506 if you are feeling up to it.The TL866CS is capable of producing the 21V peak programming voltage required by some of the early 2764 EPROMs. But the chips need to be erased first using a UV light source (~254nm wavelength). That requires pulling the label back to illuminate the die through a quartz window. Depending on the strength of the lamp, it could take a while to completely erase the contents. After proper erasure, the chip should be full of 1s. So before writing, you will want to check that the chip reads all 1s (or Fs in hex). After programming each chip, I would read the new contents and compare with the bin file to make sure everything worked. As Ronald Reagan once said, trust but verify.And on that note, it also wouldn't hurt to read your EPROMs first and save the contents. The bins should match my V505/606 bins. If not, you will want to use Tiny Hexer to compare binaries and look if you can find "8505A :8506A :" in the U23 dump as a sanity check.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 07, 2021, 05:55:32 pm
content: Quote from: garrettm on February 07, 2021, 04:38:03 pmMy first UV EPROM eraser is on its way!For fun, I put the hex files through a crude 8080 disassembler - attached. No guarantees that anything is right - I am utterly unfamiliar with 8080 assembly language. Unfortunately, it doesn't include comments!

author: SilverSolder
author_rank: Super Contributor
timestamp: February 07, 2021, 06:18:52 pm
content: Actually, it made sense to concatenate the two EPROMS before disassembling, because the code runs across both EPROMS and makes subroutine calls from one EPROM to the other...Attached: disassembly of entire firmware across both EPROMS. This one actually seems to make some sense, but would still need an amazing amount of work to correct and make sense of...

author: joeqsmith
author_rank: Super Contributor
timestamp: February 07, 2021, 06:42:34 pm
content: I pulled my controller board last night and when I attempted to use my programmer, it was dead. Looking into it, the parallel port board is dead. A bit of probing and of course, the main IC has a low impedance pin. I am not sure about the programmer. It's rare I program parts like this anymore and suspect the it was damaged during a lightning strike we had a while back that damaged some of my test equipment.I scrapped my old XP computer over the summer assuming I would never need it. That leaves the old dual Pentium 200MHz PC. lol.Anyway, thanks for capturing the PROMs. It looks like my controller is revision J.In the mean time, I am still very interested in what others are finding for times. Again, no need for GPIB and PC software. Just use the sync and a scope.

author: bdunham7
author_rank: Super Contributor
timestamp: February 07, 2021, 07:15:00 pm
content: 8505A with scope on 'Scan Advance' BNC on back.Power on, no changes except selecting AUTO range: 1.87HzPress AVG button: 232mHzPress FILTER button, no change. Turned filter off again.Press SAMPLE button, light flashes faster and 6.41HzPress "STORE 6 SAMPLE" or any number over 6 and the rate goes down, I didn't record them.Press "STORE 5 SAMPLE" and I get 6.41Hz again.Press "STORE 4 SAMPLE": 9.62HzPress "STORE 3 SAMPLE": 12.7HzPress "STORE 2 SAMPLE": 15.5HzPress "STORE 1 SAMPLE": 17.6HzPress "STORE 0 SAMPLE": 18.6HzAll numbers are a bit approximate and weren't perfectly stable. I have a National Instruments GPIB-to-USB adapter but my lab labtop (labtop?) is being used elsewhere at the moment. I suspect that the scan advance doesn't happen at the same rate as the rate that you might get readings over GPIB, but someone will have to try that.AFAIK, it is 27samples at power on and 25when you press SAMPLE one time.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 07, 2021, 08:57:01 pm
content: Thank you very much for running that. 18.6Hz is in the ballpark of what I was seeing (21Hz). What version of firmware does your meter have?I found the exact same printer port card and thought I should test the programmer first. Pulled out my old Dec 486 PC and sadly, the programmer also appears to have been damaged. It's a very old EETOOLs ALLMAX. I've hacked their software a few times to add support for odd devices. They used some PALs right on the printer port interface so I doubt there is anything I can do to repair it. Someone has one on ebay but they want $200+ for it.Time to look for a new programmer.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 07, 2021, 08:59:20 pm
content: STORE 0 SAMPLE ---> ~20Hz on the scan advance output.8506A rev. 6.0.7

author: joeqsmith
author_rank: Super Contributor
timestamp: February 07, 2021, 09:08:25 pm
content: That being the case, whats all that hype in the manual? I am not understanding that <5ms should yield > 200Hz yet we are seeing 10X slower results.

author: bdunham7
author_rank: Super Contributor
timestamp: February 07, 2021, 09:36:12 pm
content: It says 'HI 5.0.4' on power up. Is that the firmware version?

author: SilverSolder
author_rank: Super Contributor
timestamp: February 07, 2021, 09:42:20 pm
content: Quote from: joeqsmith on February 07, 2021, 09:08:25 pmHmm yes, the spec sheet does mention 500 readings per second at 6.5 digits.First, can the meter do that internally, before we talk about outputting the results to the outside world?Each reading is normally synced to the AC mains waveform. The circuitry supports 4 trigger points per mains cycle (that seems a lot - is it not normal to trigger just twice per cycle?). The 4 points mean that each reading has to take 1/4 mains cycle at best, which in a 60Hz country means 4ms (stated in manual) or 4.16ms if you check the math.You can turn off the line sync mode and let the meter read asynchronously instead (GPIB command T). Here, the meter no longer syncs to the AC waveform and just runs as fast as it can, held back only by its own processing capability. This is where the meter can do a reading in just 2ms (stated in manual... with dc zero, offset, limits, and calibration factors turned off!) which works out to... 500 readings per second, as claimed by Sales!What the sales department also neglects to mention is that it is a bit of a challenge to get the individual readings out of the instrument at high rates!We know from the scan advance scope tests that the internal display cannot go any faster than 20Hz, but there is no reason the serial card (and GPIB) shouldn't be able to run significantly faster than 20Hz.It is actually possible to de-activate the internal display when operating in remote mode (command "D") - perhaps this is the secret for getting the speed up?So we have three things to try:1) disable internal display,2) mains asynchronous readings,3) binary mode commsI suspect if all three are in place, we will see rates closer to what Sales & Marketing are saying.For most purposes, it is probably easier to just let the meter do the averaging internally!

author: SilverSolder
author_rank: Super Contributor
timestamp: February 07, 2021, 09:43:29 pm
content: Quote from: bdunham7 on February 07, 2021, 09:36:12 pmYes, and - the evidence so far - indicates that version number starting with 5 means 8505A, starting with 6 means 8506A.

author: srb1954
author_rank: Super Contributor
timestamp: February 07, 2021, 09:49:53 pm
content: Quote from: SilverSolder on February 07, 2021, 02:29:37 pm15.36MHz is a good frequency for generating the baud rate clock for a UART although this doesn't seem to have been used for the 8506A serial interface as this has its own crystal on board.15.36MHz/100 = 16 x 9600 BaudPerhaps Fluke just used this crystal frequency because they had a large stock of them they wanted to use up.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 07, 2021, 10:55:04 pm
content: As I mentioned, I had been running with the display turned off both asynch and synch and both ascii and binary. I've tried them all. As I understand it, the sync output should pulse on every conversion. You can see that from the data I have collected, I never see it get anywhere near the claimed conversion rates.QuoteThis is where I saw the fastest numbers but again, no where near the claimed numbers.QuoteAnd again, just to be clear, I was running averages as well while monitoring the sync output assuming that when the meter would average, it wouldn't throttle the conversion speed. It wasn't even close.I looked in my stock of ICs and have some brand new 128s. So I looked at the schematic and I notice U24 routes A13. Then we see U23 ties pin 26 high. Looking at my original manual, it is also routed like this. They must have planned on adding some features to U24 at one point and decided to support the 27128. More odd is U18 (74S287) which is a PROM that they are using as part of their decoder logic. Then they have jumper W3 (mine is strapped 1-2) which would change the decoding.I started to look at the TL866CS programmer. It's cheap enough but after seeing the comment about reading the parts three times to make sure they are right and then there were several posts about the company having malware in their software. But, then again, you get all these crazy adapters and such for under $100. What's been your experience with it?

author: SilverSolder
author_rank: Super Contributor
timestamp: February 07, 2021, 11:49:18 pm
content: Quote from: joeqsmith on February 07, 2021, 10:55:04 pmOK, perhaps the explanation for Sales & Marketing's 500 reading per second claim is that the speed of 500 readings per second is only possible inside the instrument itself, as part of an (internal) averaging process? Perhaps this instrument NEVER returns a result that is not the outcome of an averaging process of some kind?Maybe it is possible to put the scope on the ACK line of the digital part of the R2 board, to get an idea of how many A/D conversions per second are actually occurring? - that has to be the ultimate limitation of how fast it is running, right?Quote from: joeqsmith on February 07, 2021, 10:55:04 pmI just installed the latest software yesterday (which I got from the company's web site (http://autoelectric.cn/MiniPro/minipro_setup685.rar) and my antivirus did not balk at anything, nor do I see any evidence of phoning home - there is no need to register or sign up for an account or any of the BS we typically get from Big Tech nowadays. Considering how popular this programmer is, and the amazing amount of devices it supports, it seems a no brainer.I originally bought it to program Atmel ATTiny chips, but never actually used it for that... so I am dusting it off for this Fluke Boat Anchor Project!I'll have a go at extracting some EPROMs with it maybe later tonight and let you know how that goes. It was very easy - this thing is a winner (for this job, anyway)!

author: bdunham7
author_rank: Super Contributor
timestamp: February 08, 2021, 12:14:03 am
content: If you look at the line synchronous spec of 4ms, that is 250 per second. If you take the amount of time it takes to average the max number of samples, 217, divided by 250, you get about the right number of seconds to match the 9+ minute acquisition time or output rate at that setting.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 12:39:44 am
content: Quote from: bdunham7 on February 08, 2021, 12:14:03 amYou get even closer if you divide the 60Hz period by 4. I think we have this right!It is pretty cool that it samples 4 times per mains cycle, on the flanks. Maybe it is less noisy there than at the peaks (not to mention, 2x more of them!).

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 01:00:08 am
content: I was able to use the TL866CS to read the EPROMS from a controller out of an 8505A. The firmware is revision 505/606. A binary comparison with the files posted by @garrettm showed zero differences.The cover says part no. 660563 but inside, the PCB had no. 638544 printed on it... not sure if some replacement/swapping has occurred in the meter's life.It is aRev W, not sure we have seen one of those before!

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 01:01:31 am
content: By the way, what is the recommended method for pulling and inserting these kinds of chips out of / into their sockets? It seems a challenge to avoid bending pins...

author: bdunham7
author_rank: Super Contributor
timestamp: February 08, 2021, 01:05:29 am
content: Quote from: SilverSolder on February 08, 2021, 01:01:31 amU-hook with small jawshttps://www.amazon.com/Jonard-S-340-Insulated-Spring-Extractor/dp/B006C4BCAK/ref=sr_1_1?dchild=1&keywords=Jonard+Tools+S-340+DIP%2FIC&qid=1612746294&sr=8-1

author: joeqsmith
author_rank: Super Contributor
timestamp: February 08, 2021, 01:06:05 am
content: QuoteI suspect that the Sync output does indeed pulse on each measurement sequence, as the manual suggests. Besides "measurement sequence" the manual also mentions "measurement cycle" "readings" "samples" and "digitizing time". The manual doesn't come out and define all of these. At one point they state "reading (display update)" so it seems like that would also include a measurement cycle and measurement sequence. I don't understand why anyone would lead the reader through such a fog zone.I was reading about the programmer's software here:https://www.eevblog.com/forum/beginners/tl866ii-plus-tl866acs-open-source-software-(oem-software-has-malware)/msg2799742/#msg2799742Hopefully this was resolved.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 01:29:54 am
content: Quote from: joeqsmith on February 08, 2021, 01:06:05 amVirusTotal can give false positives from some of the many scanners it uses - I have seen that before even with stuff I've written myself. I would guess the fact that it installs a USB driver for the device might appear "low level" to some scanners. Nothing in life is certain, but this looks safe to me.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 01:30:47 am
content: Quote from: bdunham7 on February 08, 2021, 01:05:29 amI have one, but find it hard to use... suddenly, one side or the other "lets go" and there you are... bent pins all over the shop.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 08, 2021, 01:42:51 am
content: The datasheet states "up to 40 ASCII character readings per second" on the bit serial interface (at 9600 baud) and "up to 500 readings per second" in the binary mode are possible on the 8/16bit parallel and GPIB interfaces.The 500 readings/s mode assumes you copy the cal data off the meter and perform the zero and gain corrections yourself. It also says that the Line Asynchronous mode is a 3-byte binary format, rather than 6-byte. Assuming <CR><LF> termination characters, that's 5-bytes per transfer. Using command J should drop that to 4-bytes.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 08, 2021, 02:04:06 am
content: Quote from: SilverSolder on February 08, 2021, 01:30:47 amFor large pin count ICs it's a bit tricky.You generally have to "see-saw" the IC out slowly and with decreasing force as it starts to come loose. Steady pressure will result in an explosive release that usually bends the leads since the applied force is invariably at a sight angle. You can also use a flat-head screwdriver to pry up each edge in a similar see-saw action, though it might take two screw drivers on the final leg of the release to prevent pins from being bent. I would apply a small amount of masking tape on the bare metal of the IC grabber and/or screwdriver to prevent scuffing the ceramic.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 02:12:27 am
content: Perhaps those plastic tools used to pry cell phones apart might work in this application...

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 02:15:56 am
content: Quote from: joeqsmith on February 08, 2021, 01:06:05 amBy the way, it looks like the current model is the TL866II Plus, the TL866CS is no longer made.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 08, 2021, 02:35:06 am
content: I used to have a tool to extract DIPs but it seems to have been lost or pitched. I have a few of the PLCC pullers still. I used to have a DIP insertion tool that would form the leads. Days gone by but looks like Grainger still offers some of them.https://www.grainger.com/category/tools/hand-tools/electrician-s-hand-tools/communications-tools/ic-insertion-extraction-toolsQuote from: SilverSolder on February 08, 2021, 01:29:54 amI was reading the whole thread, where others chimed in. Looks like it wasn't just one scanner.https://www.eevblog.com/forum/beginners/tl866ii-plus-tl866acs-open-source-software-(oem-software-has-malware)/msg2802468/#msg2802468They were talking about both models. It's certainly low cost. Are the pins protected against shorts to ground and adjacent pins? Is the reason for reading the parts several times because of the quality of the socket? Are they using a name brand socket?40 ASCII character readings per second would be 2.8 readings a second with 14 characters but I was seeing data much faster than this. It's odd they would use the term Readings as they defined that to mean display updates in the manual. I wouldn't be surprised it they turn off the display in these high speed modes. Still, I don't buy it. The reason is because I never see the sync running that fast with no data being transferred. Then again, maybe reading in this context is that rate the ADC is making decisions, not how fast the display is being updated.Easy enough to see if using the GPIB will magically speed it up. If you start seeing actual full packets of data showing up at 2ms like they suggest, that would be very good to know.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 08, 2021, 02:51:07 am
content: Quote from: joeqsmith on February 07, 2021, 10:55:04 pmI like to verify each step of the process since I tend to be overly cautious. I would hate to upload something that ended up wasting people's time... So that comment of mine wasn't intended to sound like an implied failing of the TL866II, but rather that I didn't mess something up while copying the contents of the ROMs. Even if I had a 1000 dollar programmer, I would have still checked for consistent results before uploading the ROM dumps for others to use.I picked up my TL866II Plus for only $30 off eBay new. But it can't do higher than 18V peak programming voltage, so the older 2764s are unable to be programmed using it. The TL866CS or A models however can do the required 21V and should be found for less than $50 buy-it-now without any sockets/adapters. You need to be careful to avoid getting a TL866II since the CS and A models are discontinued (but still useful to have for programming older EPROMs).The major issue with the CS and A model programmers was China being China, i.e. it was cloned. This lead to bricked units during firmware updates. I found the whole situation ironic. For everyone else, it was a shit-show that led to the development of open source software and firmware that is compatible with the original and cloned TL866CS/A/II programmers.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 08, 2021, 02:54:32 am
content: Quote from: joeqsmith on February 08, 2021, 02:35:06 amI interpret "ASCII character readings" to mean one 6.5 digit reading sent via a 13-character string with <CR><LF> tacked on for a total of 15 chars per "reading". Although, this rate could require command J to suppress <LF>, reducing to 14 chars per reading.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 02:54:45 am
content: The way VirusTotal works is they have ~50 scanners that are all "polled" about their opinion about a particular piece of software that is uploaded to the VirusTotal site. Some of those scanners are better than others, and pretty much all of them can be provoked into false positives depending on the type of code being uploaded. Getting just a handful of positives is not really a sign of "sure fire danger", but I would be concerned if - say - more than half the scanners think there's something wrong. In that case, I might install the software in a virtual machine first, to keep things contained.This time I just created a restore point, then installed the software, so I had a way to roll back if something went wrong.I opened the TL866CS up, it actually seems quite well made inside. The socket on mine is marked "Aries" and feels solid enough, better than expected. It is a black socket, not the green one I see on most pictures. I guess one could always modify one of these with a real 3M part, but that might cost half as much again as the whole programmer!

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 02:58:59 am
content: Re binary mode: 3 bytes is enough for an ADC reading (21 bits plus a sign bit).It seems the 500 readings per second literally consists of taking an ADC reading and pumping it out on the interface, with no processing at all!If we can get that to work, we could do the averaging externally as discussed. 3 bytes times 500 readings per second is 1500 bytes per second, probably requiring a min baud rate of something like 19,200 to transmit? I don't think 9,600 sounds enough?

author: garrettm
author_rank: Frequent Contributor
timestamp: February 08, 2021, 03:16:43 am
content: Quote from: SilverSolder on February 08, 2021, 02:58:59 amI like the idea of taking the raw output from the ADC. Though doing all the math (cal corrections, scaling, offset, etc.) makes it a bit of a challenge to get the actual reading, but it might be worth it for the increased sampling speed.A 3-byte binary payload with <CR><LF> termination gives 5-bytes per reading. Assuming 8N1 serial frames, that’s 10 bits per byte. So 5[bytes/reading]*10[bits/byte]*500[readings/s] = 25000 bits per second minimum. So a modded Bit Serial Interface module with 19200 baud could in theory transmit 384 readings/s.Assuming Fluke's specifications aren't a broken promise, I think we have a new eevblog forum challenge! Who can get their 8505/6A to read the fastest! Bonus points awarded for achieving 500 readings/s.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 03:33:30 am
content: Quote from: garrettm on February 08, 2021, 03:16:43 amFrom the manual:The HighSpeed Readingmode provides a shortened 3-byte binary two'scomplement format response representing the input tothe DMM's A/D Converter. Speeds up to 500 readingsper second are possible in this mode of operation.Also:The response data from the DMM will be in 3-byte format, as shown below,for each voltage or current reading.I don't think there is any record separator characters... no CR-LF ! Basically, your application has to keep track of the count...

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 03:39:00 am
content: I have found a much better disassembler for the 8080 machine code, called "DASMx".Also, one of the universe's most closely guarded secrets was revealed: where does an 8080 begin executing code when it starts? (Answer: it starts at zero, no reset jump vectors or anything like that - but the 8080 manual assumed that everyone knows that... maybe all processors did back in the day).So, I think the attached disassembly is quite reasonable, and probably accurate for the first few steps of the processing on startup at least. It might be possible to glean how it figures out if it is an 8505A or an 8506A, for example.It looks like they were pressed for space, and might have used "creative" coding to do a lot with a little - this is something that causes headaches for disassemblers, so to really "crack the code" would likely require an experienced 8080 assembly programmer to take a look.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 08, 2021, 04:06:46 am
content: Quote from: garrettm on February 08, 2021, 02:54:32 amUsing your interpretation, it's close to what I was able to achieve, with or without the serial interface running.QuoteI wasn't able to get the high speed mode to work with with the serial port, however with the async mode only sending 5 bytes as I show with the one scope shot, it should still reach the 384 readings/sec. Even using this mode, the 40 readings/sec seems to be a stretch as the serial port does not appear to be the limiting factor.Thank you both for the feedback on the programmer. I hadn't realized there were clones of it. My old programmer could test the old CMOS and TTL parts. Not knowing if the part was good, I would just plug them in. It could normally ID the parts (if they were good) which also proved useful. I did manage to blow one of the drivers once but they used a fairly common part that easy enough to change.While I sort out what to get to replace mine, I'll borrow one and program up some PROMs to try. Not holding out that I will see any gains in speed but maybe some of the other strange problems I see have been addressed.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 08, 2021, 06:00:51 am
content: Using 1kV range, zero off and internal triggering at the DMM and a 10 second gate time at the counter, I got the following results using the Scan Advance.S0: 19.5 Hz, 51.3 ms / reading (51.3 ms / sample)S1: 18.0 Hz, 55.6 ms / reading (27.8 ms / sample)S2: 16.5 Hz, 60.6 ms / reading (15.2 ms / sample)S3: 14.0 Hz, 71.4 ms / reading (8.9 ms / sample)S4: 10.9 Hz, 91.7 ms / reading (5.7 ms / sample)...S10: 0.234 Hz, 4273 ms / reading (4.2 ms / sample)S11: 0.117 Hz, 8547 ms / reading (4.2 ms / sample)If you factor in the number of ADC samples per reading, you can see that we converge on an average of about 4.2 ms per sample from the ADC. From what SilverSolder has said, the meter takes 4 samples per mains cycle when in synchronous mode. That implies 4.17 ms per sample with a 60 Hz AC mains and correlates with my rough measurements.So Fluke isn't completely full of BS. However, the meter appears to add a variable delay between groups of sequential readings used for the average. The question is, how, or even if, we can minimize this internal delay.I assume the Controller averages the raw sequential ADC readings and then applies the range scaling, calibration corrections and possible math functions afterward. I doubt this process makes up for the observed delay.Using 4.16... ms as the digitizing time required for each individual sample and multiplying this by the number of sequential samples for each mode, we obtain the total digitizing time. Subtracting this from the previous reading period, we obtain the following delays.S0: 47.13 ms (51.3 - 4.16...*2^0)S1: 47.27 ms (55.6 - 4.16...*2^1)S2: 43.93 ms (60.6 - 4.16...*2^2)S3: 38.07 ms (71.4 - 4.16...*2^3)S4: 25.03 ms (91.7 - 4.16...*2^4)...S10: 6.33 ms (4273 - 4.16...*2^10)S11: 13.67 ms (8547 - 4.16...*2^11)

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 06:09:34 am
content: Quote from: joeqsmith on February 07, 2021, 10:55:04 pmThe disassembler found three jumps outside the confines of the 16K available:Ignoring branch outside ROM to 40D8 at address 25A2Ignoring branch outside ROM to 40E9 at address 25B9Ignoring branch outside ROM to 40CB at address 2555So perhaps there are some special versions of this meter that have extra functionality? - slowly, light is beginning to dawn on the disassembly effort... thanks to help from @retiredfeline in a separate thread on 8080 assembly coding. Another thing: The code appears to start in U24 (at address 0000 in that EPROM), and continues into U23. A 'gotcha'!

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 06:54:04 am
content: Quote from: garrettm on February 08, 2021, 06:00:51 amThe issue might be that the internal auto-trigger works at a leisurely pace, that cannot be increased?If we use binary mode via GPIB, we would have to send a '?' to trigger every ADC reading individually. Another option might be to trigger using the BNC input on the back, using a square wave generator, and see if the speed can be increased that way?

author: garrettm
author_rank: Frequent Contributor
timestamp: February 08, 2021, 07:19:19 am
content: I ran the numbers again using period measurements on the frequency counter with averaging turned on. The data looks a little less noisy than before. The variable delay is interesting. The numbers indicate sequential sampling is perfomed by the ADC. The single sample digitizing period matches what Fluke has promised. As SilverSolder has suggested, we may need to send manual triggers over the bus to get higher acquisition speed.Code:SamplingReadingAVG DigitizingAVG ProcessingDigitizingExponentPeriodTime / SampleDelayPeriod052.252.2048.034.17155.227.6046.878.33260.315.0843.6316.67368.88.6035.4733.33489.45.5922.7366.675137.54.304.17133.36270.94.234.23266.77537.74.204.37533.3810714.184.331067921404.186.6721331042734.176.3342671185404.176.678533I played with the external trigger input and couldn't get the meter to trigger faster than when in free-run via the internal triggering. Max 17 Hz externally, and about 19-20 Hz internally. I did notice that I could use a larger trigger frequency (30 Hz) when I use S1 sampling or higher. Interestingly, the scan advance was then half the frequency of the external trigger signal. Although, I didn't mess with this much further.*Formating tables on this forum is like herding cats!

author: dietert1
author_rank: Super Contributor
timestamp: February 08, 2021, 10:05:54 am
content: After some fiddling with setup strings i just got 100 separate readings from each of our Fluke 8502s within 859 msec, so that is about 8 msec per reading. This is with a GPIB over USB setup, with high speed reading mode "!" and sending a separate trigger "?" for each reading. In this mode the instruments do not follow the samples per reading command characters "Sn". And i don't yet understand the meaning of "T" or "T1" continuous reading modes. Expected a continuous stream of samples without repeating trigger commands. But without, the process gets stuck with a GPIB query timeout when trying to read the second sample.The readings look reasonable with about +/- 1 ppm noise, so averaging them should yield averages without "sticky levels". Have to check that yet.Regards, Dieter

author: joeqsmith
author_rank: Super Contributor
timestamp: February 08, 2021, 12:34:34 pm
content: Quote from: dietert1 on February 08, 2021, 10:05:54 amI would like to see the commands you are sending. Maybe I was doing something wrong when trying to get the serial port to work in high speed mode.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 08, 2021, 12:36:39 pm
content: Quote from: SilverSolder on February 08, 2021, 06:09:34 amThey have 2K of RAM. I wonder are they jumping there? The RAM may have been faster so they may have copied critical routines from ROM to RAM. Just a guess.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 08, 2021, 12:40:48 pm
content: Quote from: garrettm on February 08, 2021, 06:00:51 amThank you for taking the time to look into it. It makes more sense to me now after reading your posts.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 03:20:47 pm
content: Quote from: joeqsmith on February 08, 2021, 12:36:39 pmThat's a good thought - but the 8080 reads the EPROM at a very moderate pace... even slow EPROMs are already as fast as the 8080 is ever going to be able to read anything, is my (limited) understanding. When I get some more time, I'll try to decode what is going on around those calls, to see if it is intentional or just a problem with the disassembly process. This is not something I have ever attempted before... may get stuck in the snow occasionally!

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 03:33:05 pm
content: Quote from: dietert1 on February 08, 2021, 10:05:54 amYou got to 125 readings per second, very nice!The T command appears to control whether the ADC is triggered synchronously with the mains waveform, or whether it just triggers immediately on receiving the '?' character (faster).So, we would expect the full 500 readings per second speed to be theoretically achievable in asynchronous mode, and 240 readings per second to be theoretically achievable in Synchronous mode (4 readings per mains cycle, as the meter can trigger on 4 flanks of the curve). (200 readings per second in Germany with 50Hz mains!)To this, we have to add any latency in our GPIB setup - which doesn't have to be much to cause issues at this repetition frequency!

author: dietert1
author_rank: Super Contributor
timestamp: February 08, 2021, 04:46:46 pm
content: Quote from: joeqsmith on February 08, 2021, 12:34:34 pmConfiguration string is "R2S7F1!T," and then for each reading the trigger string "?". As i wrote, "S7" is ignored and continuous triggering isn't working as expected. The DVM front panel is dark except the power LED. Meanwhile i noticed that total data taking time for 1600 samples is between 10015 and 11531 msec, so there seems to be "interference" between the USB 1 msec service period and ADC timing. Meanwhile the lower limit would be 10015 msec / 1600 = 6.3 msec per reading. This cycle includes four GPIB transactions (send two triggers and then read two results).Standard deviation of the readings are 21 and 19 uV for the two instruments. When i look at the averages of those 1600 readings, their standard deviation is about 1 uV over 10 or 20 minutes. This includes the noise of the source (ovenised JVR).Regards, Dieter

author: joeqsmith
author_rank: Super Contributor
timestamp: February 08, 2021, 06:01:35 pm
content: Quote from: SilverSolder on February 08, 2021, 03:20:47 pmI had to learn the 8080 at one time in my life but the only thing I remember is having to learn it and stories of may classes. Looks like the data sheets have been scanned and are on-line.There may have been other reasons to jump to RAM. For example, they may have had some self modifying code to save space.I did program up a few PROMs. These are Toshiba 27128-20s. Ethically, something just doesn't seem right about using them in the meter. I just mirrored the image to both the lower and upper bank.Quote from: dietert1 on February 08, 2021, 04:46:46 pmThank you very much for providing this information. I will give it a try and report back what I find.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 08, 2021, 06:13:20 pm
content: Thank you @joeqsmith, that confirms the slow read speed of the 8080 and we should be in good shape with pretty much any old EPROM of the right size (or double size, love your trick).Also got to love how the DMM says "HI" to you when it starts. How many other DMMs are that cheerful when they wake up?

author: SilverSolder
author_rank: Super Contributor
timestamp: February 09, 2021, 02:13:51 am
content: More disassembler magic, this time using NSA's 'Ghidra' software reverse engineering (SRE) suite of tools!Amazingly, the NSA has open sourced that tool and made it available for download here:https://ghidra-sre.orgThis tool is so powerful, it turns the machine code back into a C program! - a "decompiler", basically.This function is the first thing the 8505/6A does when it starts... you can clearly see it ending up in what looks like the program's main loop, after doing a couple of other things first!Code:void RST0(void){ushort uVar1;short sVar2;undefined in_L;undefined *puVar3;byte bVar4;*(undefined *)CONCAT11(0xc0,in_L) = 0xff;puVar3 = (undefined *)CONCAT11(0xe0,in_L);do {*puVar3 = 0xff;bVar4 = (char)((ushort)puVar3 >> 8) + 1;puVar3 = (undefined *)((ushort)puVar3 & 0xff | (ushort)bVar4 << 8);} while (bVar4 != 0);sVar2 = 0x452c;do {uVar1 = (ushort)sVar2 >> 8;bVar4 = (byte)sVar2;sVar2 = sVar2 + -1;} while ((byte)((byte)uVar1 | bVar4) != 0);disableMaskableInterrupts();_DAT_ram_47fe = 0x41;FUN_ram_0091();DAT_ram_41fd = 0;_DAT_ram_47fe = 0x48;FUN_ram_2938();_DAT_ram_47fe = 0x4b;FUN_ram_01ed();do {_DAT_ram_47fe = 0x4e;FUN_ram_0214();DAT_ram_41f8 = 0;_DAT_ram_47fe = 0x55;FUN_ram_34a3();_DAT_ram_47fe = 0x58;FUN_ram_087d();_DAT_ram_47fe = 0x5b;FUN_ram_2201();_DAT_ram_47fe = 0x5e;FUN_ram_0e62();_DAT_ram_47fe = 0x61;FUN_ram_0eab();_DAT_ram_47fe = 100;FUN_ram_0962();_DAT_ram_47fe = 0x67;FUN_ram_0445();_DAT_ram_47fe = 0x6a;FUN_ram_26e0();_DAT_ram_47fe = 0x6d;FUN_ram_0500();_DAT_ram_47fe = 0x73;FUN_ram_2848();_DAT_ram_47fe = 0x76;FUN_ram_16b8();_DAT_ram_47fe = 0x79;FUN_ram_007c();} while( true );}

author: garrettm
author_rank: Frequent Contributor
timestamp: February 09, 2021, 03:04:07 am
content: Quote from: joeqsmith on February 08, 2021, 06:01:35 pmThat was a clever EPROM trick! Will the 200ns access time of the new EPROMs have any meaningful affect on performance, or is the 8080 too slow to benefit?I am happy to see the meter working with the new firmware. Hopefully, with that and triggering over the bus you'll see much faster read speeds.I finally got my GPIB up and going today. Turns out my USB to GPIB adapter is faulty, but I have a working RS232 to GPIB converter from IOGear that can do 57600 baud. I'm still learning how to control the 8506A and might need to adjust the dip switches on the Serial488A Bus Converter but I should have some data to share in the next day or two.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 09, 2021, 05:38:02 am
content: The 607 firmware effects some of the formatting of the serial data which required a few changes to my software to support it. Some things are still a bit odd. For example, when using binary format with the trigger set to anything other than T@, the meter will send 5 bytes. However, in the T@ mode, it adds a CR for some reason. The old firmware had odd behaviors like this as well.Outside of that, I am not noticing any differences. Maybe they were just minor bug fixes or they made changes to features I am not using. Too bad we don't have some sort of change log.The new PROMs won't have any effect on the performance. These Toshiba PROMs were the only virgin parts I had.With the software working again, I had another look at the high speed mode. If I had to guess, the firmware makes a decision to ignore the command if the hardware doesn't support it. Except, if I try to enable it, then select the async internal trigger mode, the trigger will only fire once. So the ! has an effect but nothing I tried seemed to enable it.I then tried repeating all of my other tests to see if there was any improvements. Sadly, there were no changes in the speed I could achieve.

author: dietert1
author_rank: Super Contributor
timestamp: February 09, 2021, 06:57:53 am
content: Yes, in the description of "!" mode the manual does not mention the serial interface. But it mentions "Fluke Application Bulletin 25". That document should have more details. On ebay i just found "Fluke AB-15", so maybe someone can find "AB-25" for us.Regards, Dieter

author: garrettm
author_rank: Frequent Contributor
timestamp: February 09, 2021, 04:29:28 pm
content: I think I am running into the some of the same problems as as joeqsmith.First, when using the!command, I can't seem to get any data back from the meter when entering into HS mode or after I send the?command. Pretty strange.When using command stringS0BT1@<CR>the meter will start sending binary data automatically with 25 to 26ms between measurements (as measured by the scan advance trigger signal). This is roughly 13 times too slow. The serial side of my bus is configured for 8N1 frames and 57600 baud, so it shouldn't be the limiting factor here.UsingS0BT@<CR>gives me 32ms between measurements, and is roughly 8 times too slow.I've been using PuTTY while learning to use the instrument remotely and for the above tests. My guess is that this is what's killing my performance. I'll try writing something in python to see if I can get better results. Hopefully I can get the ! command to work while I'm at it. Would be neat to use the meter as a 22bit, 500 samples/s digitizer. Though I'm starting to think that might not pan out.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 09, 2021, 04:34:56 pm
content: I started a separate thread on disassembling the 8080 code in the EPROM, to avoid this thread going too far into outer space:https://www.eevblog.com/forum/microcontrollers/old-school-8080-eprom-disassembly-is-it-making-sense/msg3453512/#msg3453512I also found "Fluke Application Bulletin 25", it appears to be included in the Artek manual for the 8502A:https://www.ebay.com/itm/FLUKE-8502A-Ops-Service-Manual-App-Note-Options-2/391790405454An EPROM UV eraser arrived in the post this morning...

author: SilverSolder
author_rank: Super Contributor
timestamp: February 10, 2021, 01:38:11 am
content: Perhaps someone here knows... How long are you supposed to "bake" an EPROM in the eraser, to erase it? - and how do you verify that it has been correctly erased when you take it out - will it read all zeros?

author: joeqsmith
author_rank: Super Contributor
timestamp: February 10, 2021, 03:03:25 am
content: From my experience, the more cycles on them the long it can take to erase. The more they were cycled, they were also more prone to dropping bits. The lamp strength will play into it. If you can't erase them after an hour, somethings wrong. Typically they will read FF's. The programmer should have a blank check.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 10, 2021, 03:08:02 am
content: Quote from: joeqsmith on February 10, 2021, 03:03:25 amIs the erasing process cumulative? e.g. erase for 1/2 hour, test, if it wasn't enough bake it a little longer etc.?

author: joeqsmith
author_rank: Super Contributor
timestamp: February 10, 2021, 03:25:03 am
content: Half hour should be fine. If not, run another half hour. If that doesn't clear them, I wonder how strong the lamp is.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 10, 2021, 03:46:20 am
content: When in doubt, consult the datasheet:Erasure is a function of light intensity and exposure time. All bits will be "high" after proper exposure. The datasheet suggests around 20 minutes of exposure using a 253.7nm, 12 mW/cm^2 light source with the light placed 1 inch / 2.54 cm above the quartz window.Exposure is cumulative, so you can periodically read the chip and put it back in the eraser if it didn't finish the first time without harming anything. Though it’s probably better to just leave it in for 30 or 40 minutes to avoid repeated handling.One extra cycle on a chip that has only been written to once is unlikely to harm its data retention, any more than that and I would be concerned.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 10, 2021, 07:03:48 am
content: I think I know why my setup can't do the high speed reading mode.When I enable "GPIB talk-back on time out" dip switch on my RS-232 to GPIB converter, I can get the first binary reading back. When I send?and wait, I can get the next reading. So the HS mode works, but requires the GPIB controller to tell the meter to send data after each?command.The problem with the Serial488A is that it can only ask the GPIB device to "talk-back" after a serial termination character (<CR>,<LF>,<CR><LF>, or<LF><CR>) is sent or 100ms after the last serial character (i.e., time out). "Talk-back" using a serial termination sends a GPIB<CR><LF>termination and then the DMM is addressed to talk, which causes the HS reading mode to exit before sending data.I figure I might have to roll my own controller to get this thing to even come close to that 500 samples/s limit.And now it's time to see if I can get anywhere close to 240 samples/s in the continuous binary mode...*A quick update:Using command stringS0F1R1JT1@<CR>I can get the meter to automatically send ASCII data at 24-25 readings per second, whileS0F1R1JT@<CR>gives 18 readings per second. And withS0F1R1JT1@%Q1@<CR>I can use the rear trigger to take readings and have them sent to the PC. The max speed of this mode was no more than 21 readings/s withT1and 15 readings/s withTsampling modes. I didn't see any difference betweenQandQ1triggering while testing.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 10, 2021, 12:40:15 pm
content: I found the secret! This may also work for joeqsmith's bit serial interface since he said he received the first binary payload when entering into HS mode.Since I can't directly put the remote instrument into talk mode, I used the "talk-back on time out" feature of the Serial488A and the Q1 triggering feature to avoid sending ? commands that pull the instrument out of talk mode.By using an external signal generator I was able to trigger the DMM to 360 samples/s! A new record! However, I have an issue where it pauses on occasion that I need to look into. But I've proven that high speed transfers are possible and might actually achieve the touted 500 samples per second with some massaging.To test, sendS0JT1@<CR>%Q1@<CR>!and use the external trigger input while monitoring the scan advance.I assume the serial interface can be tricked into sending binary data using the Q1 trigger as I did with my gimped GPIB bus.Fast acquisition on the 8505/6A is not a fantasy anymore!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 10, 2021, 12:48:26 pm
content: Quote from: garrettm on February 10, 2021, 07:03:48 amWith the 607 firmware, the fastest times I have seen using RS232 were using M M1 W Q J P0 X0 U0 S0 F1 B. Basically I'm wanting the meter to do as little as possible. The worse times are around 25ms. Average is about 16ms. Close to 60 readings per second. Graph is showing the time between readings in ms. Histogram is also showing readings per second.I suspect you will see similar or faster times.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 10, 2021, 12:56:37 pm
content: Quote from: garrettm on February 10, 2021, 12:40:15 pmThanks. I'll give it a try.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 10, 2021, 01:26:18 pm
content: Quote from: joeqsmith on February 10, 2021, 12:56:37 pmIf that doesn't work, try turning off the display and toggling ! twice (off, and back on) for each reading received. A bit of a hack, but you should see more than 60 samples per second this way.SoD!//save readingThen loop!!//save readingSeemed to work okay when I tried it.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 10, 2021, 01:48:52 pm
content: Quote from: garrettm on February 10, 2021, 12:40:15 pmNice one - congratulations on cracking the nut!I only just got my GPIB bus back together last night, hobbling along with a Putty session - more like 1 message per ten minutes than 500 per second!I also use a serial GPIB adapter, it may also have to be "tricked" like you are doing.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 10, 2021, 08:36:06 pm
content: Been doing a little work on figuring out the 3-byte binary data. Here's what I came up with to turn it into a double using C++ unions and structs. One could do it all with bitwise operations, masking etc. but this looks the cleanest to me. At 500 samples/s max, speed really isn't a concern. Due to floating point denormals, the conversion operations need to be in the order shown, otherwise it's a mess figuring out the exponent and I merged part of the exponent with the mantissa to get the array. The err variable is, what I assume, to be used for determining overflow at the ADC. So it probably should be checked before committing to any further work decoding the binary payload.Code:#include <inttypes.h>typedef union {struct {uint32_t f; // b0-b31uint8_t b; // b32-b55uint8_t e :7; // b56-b62bool s :1; // b63};double r = 1; // set FP exponent bits} adc_t;typedef union {struct {uint8_t f :4; // fraction bitsbool i :1; // integer bitbool e :1; // error bitbool s :2; // sign bits};uint8_t b;} msb_t;msb_t B1;adc_t val;B1.b = 0b00001000; // 1st binary bytebool err = !B1.s == B1.e; // ADC overflow checkuint8_t B2 = 0b01000000; // 2nd binary byteuint8_t B3 = 0b00000001; // 3rd binary byteval.b = B3; // fraction bits, b0-b7val.b = B2; // fraction bits, b8-b15val.b |= B1.f; // fraction bits, b16-b19val.r -= !B1.i; // integer portion / FP exponent, b20val.s = B1.s; // sign, b21

author: m k
author_rank: Super Contributor
timestamp: February 10, 2021, 08:45:12 pm
content: Quote from: SilverSolder on February 08, 2021, 01:01:31 amI've used simple IC crowbar extractor through the decades.Just a plate that is bent twice, long L and sharp corner on the other side.Seems to be so simple that my search is failing.One other thing is that old sockets are bad.Sometimes their single side spring inserts are coming out with the pin and then it's not good ever again.Putting them back is without any tools and pins bent against the table if needed.Extractor and pliers can do the other directions, sharply sideways can be one before the last.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 10, 2021, 09:02:57 pm
content: When it sends the 3 bytes, are there any other's being sent (CR LF)? If not, I am interested in how you handle making sure you are in sync?I had been timing the end of the frame, looking for when there was no data. It's not not a clean setup so I moved onto just pulling in what ever is on the serial port and placing it into a FIFO. I assume the first reading is in sync and pull however much data I am expecting (depending on ASCII/Binary and trigger type). If the converted data is not within bounds, I then index through the FIFO one location at a time, testing each combination for an in-range value. Once I find it, I consider it back in sync, until the another reading falls out of range. It's really only a problem in the one mode where there are no CRs ( I always disable the LF). For these, I just search for the CR to resync. Once it's locked, it seems fairly reliable. I was a little concerned after adding the jumper to allow for 19.2K that the error rates may be unreasonable but I've ran the meter for several hours at a time without missing.Readings that are found to be in-range are placed into another FIFO that is read by the main thread. The lowest level FIFO can store about 5 seconds of data. The second layer after conversion to floating point will hold about 6 seconds. The main thread runs fairly slow which updates the screen.****Just to add to this, the lowest level thread executes every 50ms. At 19.2K 8,N,1 it's 521us/byte, so every 50ms it can have up to 100 bytes loaded into the FIFO, which is 10,000 bytes deep. (math is lacking 10K/100samp*50ms, yeah 5 seconds )I still measure the data rate the same way, measuring how often an in-range reading occurs but you can imagine there is a fair bit of error in the measurement running the threads this slow and letting the hardware / OS buffer things. So I now also look at the over all data rate as well, seeing over the course of how ever long I run, how much data has been collected. It just made the code cleaner to architect it this way.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 10, 2021, 09:25:11 pm
content: As far as I can tell, binary data does not use termination characters to denote end of payload, so continuous readings probably aren't the best method to use for HS operation. I have a raspberry PI that I want to try using with one of the GPIO pins to trigger the DMM for synching the reading rates. This way I don't need to consider a buffer and the transfer speed should be as fast as the DMM will go.For the bit serial interface, toggling ! should allow the same thing as I am going to attempt with the rear trigger input. The problem with my serial-GPIB conversion is that I can't control the talk/listen state of the DMM directly, so I can't actually get that first 3-bytes of data from the ! command, and If I send ? the meter will go back to listen mode. The talk-back on time-out setting is what sets my DMM into talk mode for the triggering to work but its worthless for anything else.Have you tried testing reading rates using the HS mode yet? I'm curious how fast you can get your meter to send data. With 10bit frames and 19200 baud and 3-byte binary data, the bus can handle more than 500 readings/s. I really don't know why Fluke disabled it for that interface when even 9600 baud can handle 320 readings/s.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 10, 2021, 11:09:32 pm
content: Are you referring to the 3-byte or all binary data not using terminators? This isn't what I see is why I ask. Could be the meter or firmware.I haven't tried it yet but if it works, I plan to just add it to the code I have. I did read that section of the 3-byte format. Looks simple enough.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 10, 2021, 11:26:00 pm
content: Quote from: joeqsmith on February 10, 2021, 11:09:32 pmPerhaps the terminators are added somewhere else along the way, in the interface firmware or in a library looking at the interface?

author: joeqsmith
author_rank: Super Contributor
timestamp: February 11, 2021, 12:41:06 am
content: Somewhere else, interface firmware, library? I have no idea what you are referring to. I treat the meter as a block box. The meter w/ 607 firmware spits out the CRs when certain binary modes are selected. There's nothing between the meter and the PC that is adding these.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 11, 2021, 01:31:41 am
content: With the 607 firmware, attempting to use the external trigger with high speed commands, it does indeed put out 3 bytes onto the serial port for every trigger. 0x0d,0x30,0x0d. The pattern repeats. The sync output does not toggle.Sending the G1? to check for errors, the meter returns 19007. Error code 19, Function Module selected not installed. 7 is function not defined. I don't think it likes it.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 11, 2021, 02:50:51 am
content: Quote from: joeqsmith on February 11, 2021, 12:41:06 amMy GPIB interface adds its own "intelligence" to the flow, I wouldn't put it past it to add CR/LF where there were none from the source. This kind of thing can definitely cause issues. Obviously this depends on the interface and its libraries (in the PC).But, with a direct serial connection, I guess you can just look at it with a terminal program, with nothing in between to potentially interfere?

author: joeqsmith
author_rank: Super Contributor
timestamp: February 11, 2021, 03:57:27 am
content: Quote from: SilverSolder on February 11, 2021, 02:50:51 amOk, you think the adapter may possibly be doing it. I've never seen any type of USB/RS232,TTL,485 adapter that would add characters. I require them to emulate the old time hardware serial ports. Of course, the DSO tells the story. Again, it has to do with the trigger setting.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 11, 2021, 04:19:42 am
content: Quote from: joeqsmith on February 11, 2021, 12:41:06 amI think you are correct about the <CR> terminations.I believe the differences we are observing has to do with my serial to GPIB conversion.My "GPIB controller" takes a specific GPIB termination (<CR><LF>) and converts it to a serial termination (<CR>). When the GPIB device sends a termination, the "GPIB controller" places the GPIB device into listen mode immediately after. When the serial device sends a termination, the controller places the GPIB device into talk mode using the "talk-back on termination." Or alternatively, does so without a termination in the "talk-back on time out" mode 100ms after the last serial byte sent to the GPIB device. I have no direct control over the talk and listen modes of the instrument. The "GPIB controller" functions are configured by dip switches only.Currently I have the GPIB side set to <CR><LF>, if the 8506A is only sending <CR> during binary data then it is ignored and doesn't trigger the serial termination (keeping the GPIB device in talk mode). Otherwise I cannot get the DMM to automatically send data using the continuous triggering commands and I would be required to send a <CR> after each received message. If I don't send a <CR> over serial, the GPIB device will stay in listen mode. This is why I was having trouble getting the HS mode to work. I can send ! and ?, but doing so will place the DMM into listen mode, while sending <CR> will cause a GPIB <CR><LF> which exits the HS mode while the DMM is placed into talk mode immediately after.With the current dip switch settings, while receiving binary data with PuTTY, I observe no carriage returns or line feeds, it’s just a single line of text. When I use command J, ASCII data is received the same way. Without command J, then a <CR> sets the cursor back to the start of the same line--so no infinitely long, single-line of text.It has taken me a while to figure all of this out. So sorry about the confusion.My bus conversion is suboptimal at best. Which is why I had to do the hacks I previously described and the strings I posted are formatted the way they were. I'll need to roll my own controller with an Arduino Micro so I can have full GPIB controller functionality.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 11, 2021, 04:36:13 am
content: What exactly is your GPIB adapter, @garretm?I have a National Instruments GPIB-232CT-A here, which I actually quite like - but I have never attempted anything particularly high speed with it.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 11, 2021, 04:51:02 am
content: I have two very old National Instruments Ethernet GPIB controllers (both damaged during that same storm that I believe took our my PROM programmer). These are no longer supported by NI and I had to reverse engineer the protocol then write my own software to control them.I tried a few more tests with the high speed but no luck. It's always coming up with the same error.This is looking at the newer code that I described. In the saturation picture, the blue is looking at the time from reading to reading. ASRate is the average. The wide swing is due to how I buffer the streamed data. The white is the input signal. Driving the meter deep into saturation.The second plot is looking at the in-range signal.I wonder if there was just too much overhead sending data to the serial port. Maybe the GPIB and parallel ports were more efficient for coding the firmware. Oh well.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 11, 2021, 04:54:04 am
content: Quote from: SilverSolder on February 11, 2021, 04:36:13 amI'm using an IOGear Serial488A Bus Converter I picked up for $15. It works much better with modern IEEE488.2 GPIB instruments that use standard GPIB terminations (EOS and EOI) rather than custom ASCII termination characters that the 8505/6A was designed to use (presumably for speeding up transactions). The 8500 series' custom termination characters are what break functionality with basic GPIB controllers as I've discussed previously. These older instruments require a full function GPIB controller to properly control HS data flow.Here's an interesting read regarding GPIB termination characters and binary data for newer instruments.https://forums.ni.com/t5/Instrument-Control-GPIB-Serial/Default-GPIB-termination-character/td-p/242545?profile.language=enAnd here's a programming tutorial for SCPI based GPIB instruments.https://web.archive.org/web/20070320000922/https://www.few.vu.nl/~elec/products/download/GpibProgTut.pdf

author: garrettm
author_rank: Frequent Contributor
timestamp: February 11, 2021, 06:20:40 am
content: Quote from: joeqsmith on February 11, 2021, 04:51:02 amI'm sad to hear the ! toggle / ext. trigger hacks didn't pan out. It would have been nice to one-up Fluke and have HS readings with the serial interface.I have a spare GPIB controller if you want it. The lid needs some tape to stay closed, but it works. I'd let it go for 8 bucks + shipping. FedEx Smart Post might be the cheapest method, but maybe one of the Post Office Priority options could be cheaper. But for idle curiosity, maybe it’s not worth it?Did you write the software you've been showing screen shots of? I quite like it. It’s interesting to see the large spikes in latency from buffering. What is the frequency of the sinusoidal input signal? Digitizer operation looks promising if one can get the HS sampling mode to work.How are you decoding the 5 to 6 byte binary data (for 5.5/6.5 and 7.5 digit readings, respectively). Looks like it might be a little more complicated to convert to a double. I'll give it a go tomorrow and upload a snippet if anyone is interested.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 11, 2021, 01:41:37 pm
content: Quote from: garrettm on February 11, 2021, 06:20:40 amThank you very much for the offer. I'm just using the meter as a source of entertainment and don't really have a need for it. Saving it from the dumpster but most likely it will become a dust collector. It's a bit of history with it's thermal technique and high resolution.Yes, I wrote that software. I use LabView, which is now free for home use. It's a very good engineering tool. I adopted it back in the 90s as it makes writing software like this a simple task and has saved me a lot of time over the years.I believe the 5-byte is pretty much the same as the 3-byte. Maybe there's a IEEE standard for these two formats. 2's comp is done already, I'm guessing to help speed things up and the exponent isn't fixed like the 3-byte, so you will need to multiply by 10^X. There's no error checking built into the 5-byte. In my case, I limit the range to +/- 10e12 for any reading sent from the meter. If you see a reading like 0.45423E225, it may not be a correct answer and is out of sync with the data stream.Looking at the plot I posted, we can see the sample rate is 25ms and there are 3100 samples. 0.025 * 3100 = 78 seconds. There are about 7.5 cycles, so 78 / 7.5 is about 10 seconds per cycle or 1 / 10 = 0.1Hz.Sampling at 40Hz, it's pretty limited. I think that's on par with my UNI-T UT181A after I made use of the bar graph data. In the other graph, I had started out at 7ish Hz and then slowed it down.

author: dietert1
author_rank: Super Contributor
timestamp: February 11, 2021, 04:55:55 pm
content: I also gave up on the '!' for the time being, since it did not run reliably. After two hours or so (with roughly a million of readings) i would find 0D and 0A in the binary data where it doesn't belong. It seems correlated with blocking operations on the Windows host. Seems like the instruments go to another mode on output overrun. While waiting for the AB-25 to arrive, i am using our two Flukes with "S2", at about 10 readouts per second and calculating averages every 320 samples. There is enough noise in those data to get reasonable averages. So this gives me two 8 digit DVMs. Sounds strange?These instruments can be used for serious work. There is some learning though. Since i am trying to characterize a low noise reference at levels of 1 uV and below, it's important to run the instruments at the proper operating temperature. The internal references are tuned for running the instrument at 23 °C ambient, whatever that means. I mean if you stack instruments, each one will have a different temperature. And our Lab has 19 to 20 °C during working hours and 17 °C during the night. Currently i am trying to cover the instruments to protect them from air drafts and at the same time rise their operation temperature to a better working point. Meanwhile i found a setup where one instrument exhibits a positive and the other one a negative TC - of similar magnitudes, so the averages are good for 0.1 uV during working hours. But it's still experimental. If i want to use it in summer, we need a cabinet with temperature control.Regards, Dieter

author: m k
author_rank: Super Contributor
timestamp: February 11, 2021, 05:07:49 pm
content: With unlimited binary data there are no other way than external end or time out.If data is #13#13 the thing is clear and no extras are needed.On the other hand if data is #0#0#0 there is no way to know when it ends without something external.Trigger from NI-488.2M manualCode:Send(0, fluke, "VAC; AUTO; TRIGGER 2; *SRE 16", 29L, NLend);sum = 0.0;for (m=0; m < 10 ; m++) {Send(0, fluke, "*TRG; VAL1?", 11L, NLend); // Trigger the FlukeWaitSRQ(0, &SRQasserted); // Wait for the Fluke to assert SRQReadStatusByte(0, fluke, &statusByte); // Be sure that the MAV is setReceive(0, fluke, buffer, 10L, STOPend); // Read the measurementbuffer = '\0';printf("Reading : %s\n", buffer);sum = sum + atof(buffer);}Code:ibwrt (dmm, "F1R0S2T4", 8);for (sum=0, x=0; x <= 10; x++) {ibtrg (dmm);ibrd (dmm, rd, 13);sum = sum + atof(rd);}STOPend(int) is defined as EOI or EOS, 0x0 - 0xff there will terminate there.Second code is getting 13 bytes.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 11, 2021, 08:20:55 pm
content: Quote from: dietert1 on February 11, 2021, 04:55:55 pmEven with the serial port, I see it do some pretty strange things. Some times it starts out slow then speeds up. I've had the meter get to a point where I could not do anything but power cycle it to shake it loose. But, I am playing with some odd conditions and their software group may not have considered them. Under normal use, it seems to be fairly reliable.You ordered the application note. Nice. I haven't had time to hunt for it.QuoteSure you can. Knowing something about the data is the key and in this case, the data is very slow so there is plenty of time to lock to it.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 12, 2021, 03:04:59 am
content: I got 5x 2764 EPROMs here, marked Texas Instruments TMS 2764-20JL LHP 8831 ... eBay.The weird thing is, I can program them and verify them in the programmer. But they don't work in the controller board!?!I then tried erasing the old EPROMS in my brand new el-cheapo EPROM eraser. 1/2 hour was enough to erase the chips, next time I'll try 20 minutes and see how good the lamp is...I then programmed the old EPROMS with the version 506/607 software - success! Meter started right up.Is there anything I could be doing wrong with the TI EPROMS that would make them verify on the programmer, but not run in the actual circuit?

author: SilverSolder
author_rank: Super Contributor
timestamp: February 12, 2021, 03:07:49 am
content: Quote from: dietert1 on February 11, 2021, 04:55:55 pmCouldn't that happen accidentally, if the voltage happens to have 0D 0A in the measured value?

author: srb1954
author_rank: Super Contributor
timestamp: February 12, 2021, 06:30:18 am
content: Quote from: SilverSolder on February 12, 2021, 03:04:59 amHave you checked that the EPROM programmer set-up is correct (voltages, pulse widths etc) for the TMS2764?If the parameters are not quite right the programming might be marginal enough that the data verifies correctly immediately after programming but fails later under slightly different conditions. Most good EPROM programmers try to weed out marginal programming by re-verifying the data under high and low Vcc conditions. A cheap programmer might not do that.You could check the data retention by setting the EPROMs aside for a day and then re-verifying to see if any bits have decayed.Lastly you should consider whether the chips purchased via eBay might be counterfeit or production rejects that have been relabelled as a different speed grade.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 12, 2021, 07:09:38 am
content: I reworked the 3-byte, 22bit fixed point to 64bit floating point conversion since I neglected to perform the two's complement for negative values.Unions and structs make this look slick and allow for easy code modification. Do note that there are byte boundary limititations with structs that can cause errors in what would otherwise look like valid code.Two's complement conversion must be done using the entire 22bit word which was thankfully pretty simple to do using another member inside the union. Note that the error bit is used as a sign bit since they are identical when the ADC has no errors. (Checking for overflow first guarantees this.)If anyone wants to test it, throw the following code intohttps://www.jdoodle.com/online-compiler-c++/and edit the b_data binary values as indicated in the code comments.Code:#include <iostream>#include <inttypes.h>typedef union {struct {uint32_t f :20; // fraction bitsbool i :1; // integer bitbool e :1; // error bitbool s :1; // sign bit};uint32_t w :22; // 22bit word for two's comp. conversionuint8_t b;} adc_t;typedef union {struct {uint64_t m :32; // mantissa (32bit offset)uint32_t f :31; // mantissa + exponentbool s :1; // sign bit};double r = 1; // set mantissa bits to 0} b3fp64_t; // 3-byte binary to FP data structure//dummy data for testinguint8_t b_data = {0b11110111, // 1st byte0b10111111, // 2nd byte0b11111111}; // 3rd byteint main() {adc_t raw; // data stucture for working with raw ADC output//acquire 3-byte binary datafor (int32_t i=sizeof b_data-1; i>=0; i--) {// code for data acqusition...raw.b = b_data[sizeof b_data-1-i];}// ADC overflow checkif (!raw.s == raw.e) {//return 0; // same error value as 5 and 6-byte binary datastd::cout << "ADC OVERFLOW" << std::endl;}// perform two's complement if sign bit == 1if (raw.s) {raw.w = ~raw.w + 1;}b3fp64_t val; // unscaled floating point valueval.f |= raw.f; // fraction bits, b0-b19val.r -= !raw.i; // int portion / FP exp, b20val.s = raw.s; // sign, b21std::cout << "FP value = " << val.r << std::endl;}*Made some minor improvements to the code: Merged all fraction bits into a single operation and removed a struct for code simplicity.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 12, 2021, 08:25:11 am
content: I got the EPROMS working by programming them multiple times with the same data... They are probably just getting old and cranky. The Intel EPROMs from the same era seem to not have this issue, they worked reliably first time on the cheapo programmer.Bottom line - all units are now on the latest firmware, even if something that should have been a simple job ended up taking half the night!

author: garrettm
author_rank: Frequent Contributor
timestamp: February 12, 2021, 09:30:13 am
content: Quote from: dietert1 on February 11, 2021, 04:55:55 pmDieter try using S5 sampling, it acquires samples and outputs them with the least amount of processing delay (reaching 97% sample/average to reading throughput efficiency). See "AVG Processing Delay" in the table below and the updated Excel spreadsheet. Your 8502A might have a different optimal sampling setting than my 8506A, but the concept still holds.This way, you should have effectively "more" samples per individual reading from the DMM for the same effective number of samples when averaging at the PC.Quote from: garrettm on February 08, 2021, 07:19:19 am

author: SilverSolder
author_rank: Super Contributor
timestamp: February 12, 2021, 03:03:53 pm
content: @Dietert, do you know what firmware revision is in your 8502A units?I have an 8502A here that says 2.0.8 on startup.

author: dietert1
author_rank: Super Contributor
timestamp: February 12, 2021, 04:10:35 pm
content: One of our Fluke 8502A runs firmware 2.0.3, the other one 3.0.0.Today i learned how to exercise both input relays K1 and K2 on startup, cycling through "VA,R1," then "V,R2," then "V,R3,".Regards, Dieter

author: joeqsmith
author_rank: Super Contributor
timestamp: February 13, 2021, 12:27:10 am
content: I took a closer look at seeing if I could improve the serial port hardware. It appears that while the receiver is interrupt driven, the transmit is polled. The UART doesn't have any sort of FIFO and will set a flag when the byte is transferred to the serial register. So their firmware is stuck polling this flag and sending one byte at a time. Even if the hardware were improved, the firmware would have to be rewritten to support it. The easiest thing if the firmware could be modified would be to change the polling time but I suspect that would cause more problems.Oh well. I did add support to read and decode the status. Shown with a 10Hz sinewave.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 13, 2021, 04:24:20 pm
content: Vishay 10k ohm foil resistor. Using 4-wire mode. Roughly 12 hours of data collected with the meter sitting out in the open. Plotting the mean for the last 6 hours.https://www.mouser.com/datasheet/2/428/zseries-1022194.pdf

author: SilverSolder
author_rank: Super Contributor
timestamp: February 13, 2021, 04:38:56 pm
content: Looks good @joeqsmith!Do you log temperature as well? Could be interesting to see how that influences the meter. I'm pretty sure they all behave differently!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 13, 2021, 05:06:15 pm
content: I have a meat packing box that I use for temperature experiments but it's not large enough to place the meter into.I plan to restart the test with a lower value resistor. If I measured the temperature, where would you think the most useful place would be to measure it?***Looking through my stash, I thought I may have had a spare thermistor but no luck. I do have one of those Fluke K-type adapters. I could clip it next to the resistor with some foam to try and shield it from the air currents. Not a great setup but better than nothing. Let me know what you want to see.

author: dietert1
author_rank: Super Contributor
timestamp: February 13, 2021, 08:44:24 pm
content: As far as i understand, your test resistor drifted about 2 ppm. This is completely normal for those foil resistors. Sometimes you have to wait several days for those foil resistors to settle. You can see similar measurements here:https://www.eevblog.com/forum/metrology/t-c-measurements-on-precision-resistors/msg2751598/#msg2751598Regards, Dieter

author: SilverSolder
author_rank: Super Contributor
timestamp: February 13, 2021, 08:46:08 pm
content: It could be interesting to see the temperature inside the R2 A/D converter, as well as the temperature next to the resistor being tested?Assuming the temperature in the lab moves a little bit, and drafts of air are switched on and off with the central heating (even if the temperature doesn't change, the amount of heat that is carried away does change)... we may see some interesting correlations?

author: joeqsmith
author_rank: Super Contributor
timestamp: February 13, 2021, 09:20:22 pm
content: Yes, the whole setup (meter + resistor) drifted about 2ppm. Guessing that mostly the meter.I changed it over to a Vishay S series, 50 ohm 0.01% part. This particular part is a C material.http://www.vishaypg.com/docs/63001/63001.pdfI just soldered it to a couple of copper strips and clamped the K-type sensor to it. The meter was not zero'ed and it's reading a bit on the high side. (50 +/-0.005 ohms plus the meter's 0.003%+1.4). Keep in mind also, this was a poor man's alignment. I don't have the tools needed to do a proper job.It's been running like this for about 2 hours. Normally I would toss a beach towel over it but like before, its just sitting out in the open.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 13, 2021, 10:14:57 pm
content: I like the temperature sensor clamping arrangement!Might just have a similar "Thermal Probe Mounting Adapter, $673" somewhere here!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 13, 2021, 11:17:40 pm
content: Those paper clips come in handy for all sorts of things. Soldering, gluing, holding wires in place, mounting sensors...I don't think you will learn much from this test. It's been running about 3.7 hours. The temperature has continued to go up during this time about 1deg C. The spikes I suspect are static discharges in the room. You can tell when I was no where near the setup. The measured resistance however has stayed relatively constant.I have a higher tolerance part that I would like to try and use with better mounting. I plan to zero out the meter this time and see if it can actually get some numbers that are within the total tolerance. I'll move the thermocouple to the center of the meter.Some of the better handheld meters I've looked at measuring this part.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 14, 2021, 12:22:15 am
content: The temperature swings look like a central heating system cycling - Do you have an oil or a gas furnace by any chance?

author: joeqsmith
author_rank: Super Contributor
timestamp: February 14, 2021, 01:08:38 am
content: Yes, that's the heating system running. It's gas.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 14, 2021, 04:26:29 am
content: There does appear to be some correlation between the temperature swings and the readings, but there are other factors in there too...

author: joeqsmith
author_rank: Super Contributor
timestamp: February 14, 2021, 04:04:17 pm
content: I'll scale the data next time to give you a better idea what things look like. It's been running for around 13 hours.The meter only resolves to 4 places beyond the decimal. In the 100 ohm range, meter is good for +/-(0.002% of reading + 1.4 counts(5.5 place)).Worse case, resistor tolerance + meters error = 0.00434ohms. So I am expecting it to read between 60.00434 to 59.99566 ohms.If we assume our temperature stays within 3degC. Vishay K part has 1ppm tempco and will only change 0.00018. The meter has a tempco of 0.0007 +0.2 counts per deg. C. = 0.00042 + 0.00002 or 0.00132 ohms. Adding the resistor, 0.0015 ohms, almost all of it being the meter. House may shift a little more than this but I think that 1.5mohm is about what we are looking for.Then again, don't rule out the lack of coffee.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 14, 2021, 04:40:31 pm
content: I like the "bell curve" graph, with the count of measured values - that pretty much tells you what you can expect. And it looks nicely Gaussian, with no missing values!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 14, 2021, 09:35:26 pm
content: After 20 hours of runtime, with the meter zero'ed, the readings are from 60.0004 to 59.9985. Accuracy and drift seem about what I would expect.Second plot is looking at the last hour and a half or so of data.I have attached the data which is ASCII. The first column is the resistance, the second, temperature.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 14, 2021, 09:50:40 pm
content: It does look like your earlier calculations were right. And your setup appears to be beating the worst case?...Meanwhile, I'm still being dogged by bad EPROM programming... one of the meters refuses to boot now - the EPROM appears to be "leaking bits".I'm wondering if it's time to invest in a better programmer, or just use the Intel EPROMS that it seems to do better with...

author: SilverSolder
author_rank: Super Contributor
timestamp: February 14, 2021, 10:57:40 pm
content: I decided to splurge on a slightly more upscale programmer - let's see if the problem is with the TL866CS, or if all seven TMS2764 chips that I have here really are bad!I suspect programming the older chips may require a more "meaty" programmer than the modern, well behaved chips. After all, the old EPROMs were designed back in the day when the engineer drove to work in a 455 Pontiac Trans Am, right?

author: joeqsmith
author_rank: Super Contributor
timestamp: February 15, 2021, 12:14:22 am
content: The one person had written about the low programming voltage on the later revision. Maybe the older ones also had a problem as well. Seems like as long as they followed the data sheets, it should work fine. You can see that one I made for my VIC-20 is pretty barbaric. Maybe just check it with a scope before investing in another programmer?The very first picture on the left is what we had. The old 29.https://en.wikipedia.org/wiki/Data_I/OI have now replaced the 60 ohm with a 100M.***Caddock 10ppm part was the best thing I could come up with. Had to use some foil to tame the static.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 15, 2021, 01:12:17 am
content: LOL that foil shield is another $800 part, for sure!...re programmer, the one you used looks like it could weld the pins together if it needed to!I had a Vic 20 as well, back in the day...

author: SilverSolder
author_rank: Super Contributor
timestamp: February 15, 2021, 04:06:22 am
content: Turns out the TL866CS can't maintain 21V programming voltage on these particular chips...19.38V is as good as it gets.No wonder these particular EPROMS are having "learning difficulties"!The latest model - TL866II - has a more realistic 18V max specification... I'm pretty sure the power supply didn't change!

author: bdunham7
author_rank: Super Contributor
timestamp: February 15, 2021, 04:48:14 am
content: Quote from: SilverSolder on February 15, 2021, 04:06:22 amhttps://pinside.com/pinball/forum/topic/program-21v-25v-roms-in-lower-voltage-programmers

author: joeqsmith
author_rank: Super Contributor
timestamp: February 15, 2021, 03:36:37 pm
content: Quote from: SilverSolder on February 15, 2021, 04:06:22 amGood to see you put the scope on it. It's very telling. I guess I'm not too surprised. I think I paid around $300 USD for my last programmer. Spread that over the 20 some years I had it and it's about $15/year. Pins were short circuit protected. I did manage to damage one once but other than this and the lightning strike, I've had no problems with it. I had to hack their code a few times to keep it running and add a few parts, so it was really beyond it's life anyway.For the 100M range test, eyeballing, it looks like the average temperature changed about 0.5degC during the night, while the resistance changed about 5K . It's a 10ppm part, so I expect 500ohms of that drift is contributed by the Caddock part. Looks like the meter has a TC of 0.02% + 10X 0.5 counts in this range. Seems like it should be roughly 10K. Even if we look at p-p, its a wash. Maybe a bit high.Also shown is the last hour or so of data. Foil did a nice job taming the signal. Without that part being shielded, winter, rolling on a chair creating all sorts of HV, those readings would be all over the place.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 15, 2021, 05:05:21 pm
content: And the temperature is measured inside the meter? - the results look pretty good. And if you use the mean or the median value out of the bell curve, it looks like you will get a statistically valid precise value out of it.I have a humidifier running in the lab during the winter - I got tired of destroying sensitive parts despite precautions! - it barely manages to keep the humidity in the 25% range, despite being refilled every night with 4 buckets of water... 25% RH is just about good enough to avoid the worst of the static, though, so overall it is still a win.Re programmers - the TL866 is hard to beat in terms of the number of devices supported, and it is generally reliable apart from high voltage NMOS parts obviously. I think it might be possible to add a barrel jack to it and get it to work reliably at 21V, assuming the problem is that its internal DC/DC converter runs out of breath. That is the subject of another thread, though...I ended up ordering one of these:https://www.batronix.com/shop/programmer/BX32P/index.html- at EUR 159, it seems a relative bargain if it is really is professional grade (which indications are that it is... 5 year warranty, 30 day money back guarantee if you don't like it, etc.) - I also like that it is small, similar to the TL866. Let's see how that works out!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 15, 2021, 06:03:12 pm
content: I've been fairly lucky in my home lab and only remember damaging a few cheap handheld meters (part of my testing). I normally wear a strap and work on the mat.I would like to have the ability to program some of the old 40 pin parts (8051) along with the 6811e9. Some of the serial PROMs for the FPGAs were not supported with my old programmer. Biggest problem was having to boot the new PC up in DOS to run it! lol.The readings are not moving around much now. I have attached the 16 plus hours of data if anyone would like to do their own post processing. Same format, ohms/temp in ASCII. Like before the readings are every 4.9 seconds.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 15, 2021, 06:38:45 pm
content: I did a scatter plot of that data, and it doesn't seem to show any particular tendency for temperature dependence.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 16, 2021, 07:51:29 pm
content: Now that I have something other than hype (thanks again for looking at it), I ordered one of these low cost, latest generation programmers mentioned here. Maybe we can address the some of the problems with it.Yeah, it doesn't appear to me that the readings correlate to temperature as well.https://www.youtube.com/watch?v=-0zPDfNVXjU&feature=youtu.be

author: SilverSolder
author_rank: Super Contributor
timestamp: February 17, 2021, 04:33:58 am
content: I've replaced the 21V TI EPROMs with Intel 12.5V EPROMs in four different controllers now, and they all seem solid. The TL866CS seems to have no problem programming the 12.5V Intel EPROMs, unlike the high voltage TI chips. The programming worked first time, and worked first time in the actual circuit too. So, the TL866 can still be considered a useful programmer, as long as you realize that the spec for the new model (max 18V chips) actually applies to the older models too!

author: bdunham7
author_rank: Super Contributor
timestamp: February 17, 2021, 05:22:16 am
content: Quote from: SilverSolder on February 17, 2021, 04:33:58 amWhat part number EPROM was that?QuoteI've actually looked for the older model at times, but I guess what you are saying is that they didn't actually change the product, they changed the specification to reflect the products shortcomings! Is the software the same for both versions?

author: SilverSolder
author_rank: Super Contributor
timestamp: February 17, 2021, 06:44:17 am
content: Yes, I think they "fixed" the problem by changing the spec... for most people, the lack of high voltage EPROM capability is unlikely to be a problem, so they deemed it not worth the effort and cost to fix it properly, most likely.The chips that are working for me are labeled Intel D2764A, in the programmer software I selected "Intel 2764A @DIP28".I believe the software is different between the older and new model TL866. The new software has apparently dropped any mention of the high voltage chips (since they can't be programmed anyway). I don't think the old software will work on the new programmer, at least not without downgrading the firmware in the programmer.But there are many workarounds:1) use 12.5V EPROM chips like the Intel D2764A which are still supported in the new TL866II (working for me now),2) use a modern EEPROM that is believed to be a drop in replacement: ‎AT28C64B - (I haven't tried it yet) - This may be the most reliable way to get the job done with a TL866, since we are now dealing with a well behaved modern chip.3) add a more serious programmer to your arsenal that can deal with high voltage NMOS chips and add confidence that these temperamental chips are done properly and durably.So, it isn't really a showstopper that the new model can't do 21V - neither can the old model! - it seems a good option to just get the current model and be very happy with it, as it supports even more devices than the previous models.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 17, 2021, 12:09:34 pm
content: Quote from: SilverSolder on February 17, 2021, 06:44:17 amThat's too bad as my intent would have been to improve the hardware.**Both the Programmer and printer port were damaged. It looks like they still offer a printer port using the same chipset. That board was nice as it would actually work even with DOS. You could install a loopback connector that allows the software to self test the hardware. I have ordered up a couple of ports like before to see if I can find another one that actually works. I also noticed that VirtualBox now has some undocumented, limited support for printer ports. If I can get the port to work, I will see about another old programmer.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 17, 2021, 03:30:55 pm
content: Turns out that converting the 32bit and 40bit fixed-point binary data from normal and average modes was as simple as the 22bit fixed-point data from HS mode. The exponent bytes are used to check for error's reported by the meter, but are otherwise ignored since fluke uses fixed exponents for all measurements except ohms.The following C++ code can take 12 and 13-byte ASCII data as well as 3, 5 and 6-byte binary from a 8505/6A and convert it to a 64bit floating point number. The binary data isn't range or calibration corrected yet. I also still need to work out triggering for the binary data. But I should have those figured out shortly and then I can start testing with my meter. I downloaded the community edition of NI LabVIEW so I might try using it to make a program to control 8505/6As. If anyone has suggestions I'd be happy to hear them.Code:#include <iostream>#include <inttypes.h>// TYPE DEFINITIONS// fixed point data from average modetypedef union {struct {uint32_t f; // fraction bitsuint8_t i :7; // integer bitsbool s :1; // sign bit};uint64_t w :40; // 40bit fixed point worduint8_t b;} fxp40_t; // 40-bit fixed point data bit fields// fixed point data from normal operationtypedef union {struct {uint32_t f :24; // fraction bitsuint8_t i :7; // integer bitsbool s :1; // sign bit};uint32_t w; // 32bit fixed point worduint8_t b;} fxp32_t; // 32-bit fixed point data bit fields// fixed point data from high speed modetypedef union {struct {uint32_t f :20; // fraction bitsbool i :1; // integer bitbool e :1; // error bitbool s :1; // sign bit};uint32_t w :22; // 22bit fixed point worduint8_t b;} fxp22_t; // 22bit fixed point data bit fieldstypedef union {struct {uint64_t f :63; // mantissa and exponentbool s :1; // sign};double r = 1; // set mantissa bits to 0} fp64_t; // 64bit floating point bit fields// GLOBAL VARIABLESconstexpr char LF = 10; // line feedconstexpr char CR = 13; // carriage returnbool meas_err = 0; // flag for DMM reading errorbool data_type = 1; // data type flag: 0 => binary, 1 => ASCII// FUNCTIONS// convert fixed point types to 64bit floating pointdouble fxp_to_fp64(uint64_t f, uint8_t i, bool s) {fp64_t val;val.f |= f; // fraction bitsval.r += i - 1; // integer bit / FP expval.s = s; // sign bitreturn val.r; // unscaled floating point value}double binary_to_double(uint8_t b[], const uint8_t& length) {// high speed mode, 3-byte binaryif (b[length - 1] == 3) {fxp22_t fxp;std::copy(&b[length - 1 - b[length - 1]], &b[length - 1], &fxp.b);if (!fxp.s == fxp.e) // check error bit for measurement errormeas_err = true;if (fxp.s) // perform two's complement if value is negativefxp.w = ~fxp.w + 1;// convert fixed point data to floating pointreturn fxp_to_fp64(static_cast<uint64_t>(fxp.f) << 32, fxp.i, fxp.s);}//normal mode, 5-byte binaryelse if (b[length - 1] == 5) {fxp32_t fxp;std::copy(&b[length - b[length - 1]], &b[length - 1], &fxp.b);if (b[length - 6] == 0) // check exponent for measurement errormeas_err = true;if (fxp.s) { // perform two's complement if value is negativefxp.w = ~fxp.w + 1;fxp.s = 1; // retain sign information}// convert fixed point data to floating pointreturn fxp_to_fp64(static_cast<uint64_t>(fxp.f) << 28, fxp.i, fxp.s);}// average mode, 6-byte binaryelse if (b[length - 1] == 6) {fxp40_t fxp;std::copy(&b[length - b[length - 1]], &b[length - 1], &fxp.b);if (b[length - 7] == 0) // check exponent for measurement errormeas_err = true;if (fxp.s) { // perform two's complement if value is negativefxp.w = ~fxp.w + 1;fxp.s = 1; // retain sign information}// convert fixed point data to floating pointreturn fxp_to_fp64(static_cast<uint64_t>(fxp.f) << 20, fxp.i, fxp.s);}// handle mangled binary dataelse {meas_err = true;return 0;}}double ascii_to_double(uint8_t b[], const uint8_t& length) {// normal mode 5.5/6.5 digit measurementif (b[length - 1] == 12) {char s = {0,0,0,0,0,0,0,0,0,0,0,0,0};std::copy(&b, &b, &s);return std::stod(s);}// average mode 6.5/7.5 digit measurementelse if (b[length - 1] == 13) {char s = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};std::copy(&b, &b, &s);return std::stod(s);}// handle CR LF terminations and mangled ASCII dataelse {meas_err = true;return 0;}}//dummy data for testinguint8_t b_data[] =/* 3-byte binary data{0b11110111, // 1st byte0b10111111, // 2nd byte0b11111111}; // 3rd byte//*//* 5-byte binary data{0b00000011, // 1st byte0b10000000, // 2nd byte0b00000000, // 3rd byte0b00000000, // 4th byte0b00000001}; // 5th byte//*//* 6-byte binary data{0b00000011, // 1st byte0b10000000, // 2nd byte0b00000000, // 3rd byte0b00000000, // 4th byte0b00000000, // 5th byte0b00000001}; // 6th byte//*///* 12-byte ASCII data{'+','0','1','0','.','0','0','0','1','E','-','3',CR,LF};//*//* 13-byte ASCII data{'-','1','0','.','0','0','0','3','3','3','E','+','0',CR,LF};//*//* test terminations for ASCII data{CR,LF};//*//* mangled ASCII data test{'-','1','0','.','0',CR,LF};//*/double get_reading(void) {// character buffer, last index stores number of bytes read from DMMuint8_t b;// read binary data from DMMif (data_type == 0) {// store bytes in reverse order, b[sizeof b - 1] counts # of bytesfor (uint8_t &i = b[sizeof b - 1]; i <= sizeof b_data - 1; i++)b[sizeof b - 2 - i] = b_data;std::cout << (int)b[sizeof b -1] << "-byte binary" << std::endl;return binary_to_double(b, sizeof b);}// read ASCII character data from DMMelse {// store valid characters in buffer, b[sizeof b - 1] counts # of bytesfor (uint8_t &i = b[sizeof b - 1]; b_data!=CR && b_data!=LF; i++)b = b_data;std::cout << (int)b[sizeof b -1] << "-byte ASCII" << std::endl;return ascii_to_double(b, sizeof b);}}int main() {// set data type: 0 == binary, 1 == ASCIIdata_type = 1;// get reading and convert to 64bit FPdouble r = get_reading();std::cout << "reading error? " << meas_err << std::endl;printf("FP value: %4.7f \n", r);}

author: joeqsmith
author_rank: Super Contributor
timestamp: February 17, 2021, 04:39:34 pm
content: There may be software already for the Fluke meter. I would check that first.If you have never used LabView, the first thing I would suggest is you spend a day going through the getting started manual. Work all the examples and get a basic idea how it works. It's not magic and like any language takes time to learn. You may also want to join their forums.The 5-byte data is what the LED displays. No need to correct it like the 3-byte. Also, no 2's comp. So a little easier.I've not seen any problems using the technique I mentioned to sync up with the data. Then again, that serial data is very slow. But the PCs are so fast... I guess you just need to try it.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 17, 2021, 05:22:08 pm
content: I noticed in AN25 there is a sample program (in Tektronix Basic no less) that does the 3-byte correction in the typically terse way of that era!Not sure I even understand what this code is doing, but it is compact...

author: garrettm
author_rank: Frequent Contributor
timestamp: February 17, 2021, 08:01:30 pm
content: Quote from: joeqsmith on February 17, 2021, 04:39:34 pmI'm sure there is software used by the military, but I haven't seen any open source software that supports the Fluke 8505/6A. I'll try looking on NI's site in case someone has uploaded something for one of the paid LabVIEW editions.All fixed-point binary data (except the exponent byte) require two's complementing as an entire word before conversion to floating point. This is done to make the value positive before merging the fraction bits into the floating point mantissa and letting the processor figure out the bit fields for the integer portion (using FP addition). Otherwise, all single byte binary data is in signed char format (i.e., "two's complement"). So no work to do there.That said, there are free fixed-point libraries for C++ available which would eliminate the need for conversion, but I haven't tried using them yet.https://github.com/johnmcfarlane/cnlhttps://github.com/eteran/cpp-utilitiesI'm hoping to get at least 360 readings/s using the HS mode. I can do it with the external trigger input but I've yet to get it to work using bus triggering with my current setup. I plan on making an AR488 Arduino GPIB interface here soon which should solve my inability to directly control the talk/listen operation of the DMM.https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/If I can't figure out LabVIEW I may write a program in Visual Studio 2017 or Matlab to control the instrument, generate CSV files and plot the data--as I have a little more experience with them. Though, from what I can tell, LabVIEW is supposed to make doing this pretty simple. There is also a program on the forum for reading from multiple instruments but it appears to only work with SCPI instruments. I need to look through the documentation and see if I could make it work with these older meters.https://www.eevblog.com/forum/testgear/program-that-can-log-from-many-multimeters/

author: joeqsmith
author_rank: Super Contributor
timestamp: February 17, 2021, 09:01:19 pm
content: Quote from: garrettm on February 17, 2021, 08:01:30 pmFirst hit on Google "labview fluke 8506a":http://sine.ni.com/apps/utf8/niid_web_display.download_page?p_id_guid=E3B19B3E921B659CE034080020E74861Quote from: garrettm on February 17, 2021, 08:01:30 pm5-byte is stored in 2's comp where 3-byte requires 2's comp. I implemented both in Labview but obviously am only using the 5-byte.Quote from: garrettm on February 17, 2021, 08:01:30 pmI've not ran into any problems controlling various test equipment with LabView, but I've been using it for many years. It's not something I picked up overnight.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 17, 2021, 09:52:30 pm
content: Quote from: joeqsmith on February 17, 2021, 09:01:19 pmAll three binary formats use a fixed-point type where only the number of integer bits and fractional bits about the radix point is changed. Hence, the conversion is the same for each format when ignoring the error bit and implied base 10 exponent for 3-byte binary or explicit exponent byte for 5 and 6-byte binary (which is always 10^1 for voltage measurements in any binary format).Thus, all negative valued binary data require two's complementing to convert to floating point. This is to change the signed value to unsigned, for which FP uses a sign bit rather than two's complement.LabVIEW must have native support for fixed-point data types, otherwise negative valued readings would be incorrect. I also assume you drop the exponent byte, as it is not a part of the fixed-point word and would break the conversion if not handled separately.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 17, 2021, 10:13:58 pm
content: I wrote both from scratch, handling the sign, exponent and fractional parts separately. Obviously I have not tested the 3-byte out side of the example in the manual. For the 3-byte, I perform the 2-comp before doing anything else as the manual states. After 2s-comp, I split it up pretty much like shown. For the 5-byte, it is already presented as 2's comp so I just split it up. I'm sure we are talking in circles. Obviously I have been posting data that has been properly converted so no worries on my end.Some conversions, like these, are not built into labview or at least not that I am aware of. Coding them from the standard libraries has not been a problem.

author: garrettm
author_rank: Frequent Contributor
timestamp: February 18, 2021, 12:07:23 am
content: Here's the output of my meter on the 10V range after power up using each binary type. The decimal representation given below the hex values uses my code for the conversion.| Vs | 3-byte | 5-byte | 6-byte |-------------------------------------------------------|+10V | 10 00 00 | 00 FF FF 99 01 | 00 FF FF C2 00 01 ||-10V | F0 00 00 | FF 00 00 89 01 | FF 00 00 84 00 01 |-------------------------------------------------------|+10V |+10.00000 | +9.99994 | +9.999963 ||-10V |-10.00000 | -9.99992 | -9.999921 |I would be curious to see the output of your code with what's shown here.The above data was collected using my 8506A and Advantest R6144 set to 10V. With average on, I saw +9.999962V and -9.999927V on the DMM’s display. With the voltage source set to +0V I got +0.00011V and for -0, -0.00009V, so it has some offset and the DMM wasn't zero corrected or warmed up. But the readings look correct to me.All binary types returned by the DMM use two's complement format. However, only negative valued FXPs need to be two's complemented during conversion to change their bit pattern to an unsigned value of the same magnitude. Positive valued two's complement types have the same bit pattern as unsigned types and consequently can be used as is.

author: dietert1
author_rank: Super Contributor
timestamp: February 18, 2021, 10:52:35 am
content: Meanwhile i performed another test on our two Fluke 8502As. I used a 650 uF film capacitor and a 100 MOhm resistor to sweep both instruments and found both of them bad.In the "yellow" instrument the ADC is misaligned and produces steps of about 50 ppm at 10 V input and about 25 ppm every 2.5 V. The other "blue" instrument does not work with negative input voltages (random results). These instruments should really have some builtin ACAL procedure with automatic fine-tuning of the ADC ladders. Will have to setup a calibrator for them. And fix that negative voltage fault.Appended some code i have been using to log those 3-byte messages from the instruments. Nothing nice, yet seems to work.Meanwhile i received the Fluke Application Bulletin 25 from ArtekMedia and it includes example code showing the "!" mode and detailed timing specs (Trigger delay, ADC conversion time, data transmission time etc.). I think with a fast GPIB interface the instruments should perform up to the specs.Regards, Dieter

author: SilverSolder
author_rank: Super Contributor
timestamp: February 18, 2021, 01:48:58 pm
content: The manually tuned A/D converter is both good and bad: good, in that it is possible to tune it... and bad, in that it needs tuning in the first place!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 19, 2021, 01:44:26 pm
content: Quote from: garrettm on February 18, 2021, 12:07:23 amNo problem. For the 3-byte, do you want me to scale the data for the range? Again, I have not tested that part.***For the 5-byte,9.9999386072 / -9.9999183416***Interesting about the 3-byte is that the document you link has been corrected from my manual where they had dropped the sign.10.0000000000 / -10.0000000000Using the manuals example of 0xF7,0xBF, 0xFF-5.1562595367***Note that I do not have support for the range scale factor.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 20, 2021, 02:04:48 am
content: With the meter now basically working, I wanted to run a longer term stability test in the lowest range (what started the whole mess). I was looking in my stash around 1-5 ohms that was somewhat stable. I found some old Shallcross parts marked JRBR71S. Searching for some sort of data sheets that would show the drift, I came across this article on resistors that I found interesting.https://www.edn.com/the-last-half-century-wirewound-resistors-part-one/https://www.edn.com/the-last-half-century-wirewound-resistors-part-two/I never located a data sheet or figure out what the tempco is.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 20, 2021, 04:53:57 pm
content: Quote from: joeqsmith on February 20, 2021, 02:04:48 amWas that written by the same Mr. Pettis who is an EEVBlog member? - he seems to know his stuff!

author: SilverSolder
author_rank: Super Contributor
timestamp: February 20, 2021, 05:00:52 pm
content: So I got the Batronix programmer, took 4 days to ship in from Germany.It's about the same size as the TL866.It feels super solid, metal cabinet. And it is able to put 21V on to the Vpp pin of the EPROM:I tried both Intel and TI NMOS 21V chips, and both worked first time.Bottom line, it works like a charm... I feel it is good value at EUR 159, given the obvious care and attention that has gone into everything (hardware, software, and chip database that goes into extreme detail, even listing the EPROM variants with different timing).

author: joeqsmith
author_rank: Super Contributor
timestamp: February 20, 2021, 05:07:43 pm
content: From this datasheet, it's 232 ohm 1% 0.125W +/-30ppm. I let it run overnight and it looks like the p-p error is 2.3mohm with a standard deviation of 0.35mohm.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 20, 2021, 05:10:13 pm
content: Quote from: SilverSolder on February 20, 2021, 05:00:52 pmSo you can install these parts into the meter now and they work (meter boots and everything appears normal)?

author: joeqsmith
author_rank: Super Contributor
timestamp: February 20, 2021, 06:49:37 pm
content: Same ShallX part with the HP34401A, using cables shown, 100PLC.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 20, 2021, 06:55:30 pm
content: Quote from: joeqsmith on February 20, 2021, 05:10:13 pmYes, everything works perfectly so far across 4 different controllers, using Intel and TI branded 21V EPROMs, and one pair of Intel 12V EPROMs (the latter also worked fine with TL866).The Chinese minimalist eprom eraser also works like a champ, 20 minutes to zero the chips.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 20, 2021, 08:00:02 pm
content: What's the plan now? Do you have a goal in mind for the old meter?I checked eBay and there are a several with what I would consider some very crazy asking prices. Maybe they are collectibles.I like this one for about $900.00 with tax and shipping. "Works", I know what that means.https://www.ebay.com/itm/Fluke-8505A-Digital-Multimeter/143819409807?epid=1400599409&hash=item217c4e098f:g:CC4AAOSwuklfoEsj

author: dietert1
author_rank: Super Contributor
timestamp: February 20, 2021, 09:32:37 pm
content: They are offering two categories of equipment, one is alltest_instruments the other one alltest_surplus. If you buy from the first category, you can expect to get an instrument in perfect calibration. In the past i bought from them directly four times and was satisfied. Don't know if that 8506A is a good deal.Regards, Dieter

author: SilverSolder
author_rank: Super Contributor
timestamp: February 20, 2021, 11:40:27 pm
content: Quote from: joeqsmith on February 20, 2021, 08:00:02 pmIt certainly looks like there aren't currently as many cheap ones available on eBay as there used to be. Covid? Getting an instrument of this level of spec for <$100 like you did is a pretty good bargain, if you look at the alternatives... (there is not much in that category).I got the GPIB bus up and running again here. I'm going to have a crack at the high speed reading mode next. I'm thinking of using it to digitize a swept spectrum analyzer.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 20, 2021, 11:59:10 pm
content: I was wondering more about trying to make sense of the firmware. If you wanted to add a feature or fix something.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 21, 2021, 12:10:10 am
content: Quote from: joeqsmith on February 20, 2021, 11:59:10 pmGetting everything on the same version is a huge win, they all behaved slightly differently before which makes it harder to automate calibration, for example.As long as we can get the high speed reading working, it doesn't really matter what the firmware does any longer... we will have 100% control from outside.

author: m k
author_rank: Super Contributor
timestamp: February 21, 2021, 11:30:33 am
content: Quote from: joeqsmith on February 20, 2021, 11:59:10 pmi8080 is a notorious hardware partner.If you check those I/O example sections of manuals of the era you'll get the idea.Since the processor is really just that it's doings are expensive and bulky pretty fast.Means that what ever you do is suppose to be a "custom" chip from Intel, so a rich man poor man game benefiting Intel in every corner.This Fluke is most complicated I've tried to figure out and it has only one of those support chips, that clock maker.That, I understand, is also a norm among these things, other hardware makers thought they really don't like that benefiting Intel part.Outcome was what is seen here, shortage of address and data lines made people inventing all kind of custom chip alternatives.Lack of speed wasn't a good thing eighter, though pipelining got a head start.Few examples, 0x4000 is start of RAM and 0x8000 is start of hardware I/O where only upper half of address is inuse.Code:ram:0585 21 0f 40 LXI HL,0x400fram:0588 86 ADD (HL)LAB_ram_0589 XREF: ram:058a(j)ram:0589 be CMP (HL)ram:058a c2 89 05 JNZ LAB_ram_0589ram:058d c9 RET0x8e ohms converter0xa2 display numbers0xaa parallel control out0xac parallel D7 -> ?0xa3 display extras and 0xa2/1 enabler0xa1 display/keyboard addressCode:ram:176a e5 PUSH HLram:176b 26 ae MVI H,0xaeLAB_ram_176d XREF: ram:1770(j)ram:176d 7e MOV A,(HL)ram:176e e6 04 ANI 0x4ram:1770 ca 6d 17 JZ LAB_ram_176dram:1773 26 a7 MVI H,0xa7ram:1775 71 MOV (HL),Cram:1776 e1 POP HLram:1777 c9 RETI've recently wasted time with google.Everyting seems to be plently first and then finally just junk.I tried to find an i8080 emulator that would suite for hardware testing but found nothing.Memory says that Altavista was better.Obviously I had to start doing my own emulator, it's still just a shell but I'll upload it if it becomes usefull.For a moment I thought maybe Ghidra addon can do it but then later there will be an avoidable obstacle anyway.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 21, 2021, 12:17:49 pm
content: Quote from: m k on February 21, 2021, 11:30:33 amMy question must not have translated very well. I just didn't understand why anyone would invest the time. There must be a reason, an end goal. Maybe it's just to learn some vintage design for the fun of it. Maybe to improve some aspect.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 21, 2021, 04:42:11 pm
content: Understanding vintage tech is always instructive.One concrete goal might be to understand them better, so they can be kept in useful service for many years to come. There aren't many alternatives in this price range that have comparable specs, especially if you include AC in the comparison - so good examples are worth taking care of.Another concrete goal might be finding a way to verify and perhaps even calibrate these meters (including aligning the A/D) assisted by a script running on the computer - so you could do it more often, with less calibration equipment (depending on how clever we can get), and thereby enjoy the benefits of having such a good specification meter in the first place - i.e. being able to use it for other electronics projects where measuring stuff very precisely / accurately is beneficial.Everything depends on what we discover when we look under the hood. If the code is a super complicated haystack, it won't be easy to do anything with it. If there is some method to the madness in there, it may be possible to make changes - or it might be possible to leverage the fact that we know what it is doing, to "trick" it into something else. Time will tell!Going completely crazy, in theory, you could even make completely new modules to fit into the motherboard... a truly crazy person could make a new controller board out of an Arduino, for example... (I did say truly crazy!)

author: SilverSolder
author_rank: Super Contributor
timestamp: February 21, 2021, 04:51:37 pm
content: Quote from: m k on February 21, 2021, 11:30:33 amIt sounds ambitious to make an emulator! - but the 8080 is probably a simple enough CPU that it isn't as crazy as it sounds.I also noticed the lack of support chips in this design. I guess that cost was an issue, and the designers were pretty clever. They did manage to pack in what needed to be packed in.Wish we could get hold of the original program listing - that would be cool!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 21, 2021, 05:31:19 pm
content: To try to make compare the two meters, I set the HP34401A to 100PLC. I then collected data for the same length of time it took the Fluke to make the measurement. I took the mean of that data and used that as the reading. Basically averaging in software rather than in the meter.The Fluke had been running for a few days and was very stable by the time I collected the data. In the following graph, the white is after the HP had been on for an hour. Notice how it continued to drift for another 6 hours. Right after setting up the measurement, it also took the Fluke another hour or so to settle out. The Red and the Green traces are after both meters had settled.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 21, 2021, 05:39:06 pm
content: In this graph I have normalized both data sets to zero. This represents roughly 15 hours of data for each meter.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 21, 2021, 05:56:44 pm
content: Quote from: SilverSolder on February 21, 2021, 04:42:11 pmI was talking with a friend of mine about this old meter and I was suggesting making a new interface board for it that would act like the parallel interface but had Ethernet. Basically just an FPGA, Phy, memory, clock and translators on the board. Emulating the hardware would allow it to work without any firmware changes.There was a point when I had some sort of assembler/disassembler (for the 8080) that ran under CPM. This was long after having to learn that part. It may have ran on that old Televideo or the PC. For the Televideo, I had a way to copy data to/from the old 5" floppy to DOS. It seems like what ever I had would support the native mnemonics of the 8080 as well as the Z80. Again, this is going way way back. When I had to learn the 8080, we were required to do everything by hand (paper and pencil). You learned very quickly to sprinkle no-ops into your code.The programs were simple enough it wasn't too big of a deal.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 21, 2021, 06:02:18 pm
content: Quote from: joeqsmith on February 21, 2021, 05:56:44 pmLOL!I never learned 8080, but I did once write a network driver in 8086 assembler in order to be able to "hit the metal" under DOS! Those were the days... today, you would be arrested by the IT department for trying anything like that!I guess the kind of code that is in this instrument is why all the modern software development methods were invented, as the haystack eventually becomes unmanageable!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 21, 2021, 07:26:08 pm
content: I wasn't able to locate my books on the 8080. There was also a cheat sheet that was provided that had all of the instructions that I wasn't able to find. Just artifacts from days gone by.If you like old stuff though, here are two of the original Intel evaluation kits for the 8080. Note the letter talking about the supplied PIOs. Guessing these kits would be fairly rare.****https://en.wikipedia.org/wiki/Intel_System_Development_Kithttps://www.intel-vintage.info/inteldevelopmenttools.htm

author: SilverSolder
author_rank: Super Contributor
timestamp: February 21, 2021, 10:14:20 pm
content: Quote from: joeqsmith on February 21, 2021, 07:26:08 pmWow, nice bit of history! Did you buy that originally?The 8080 is the father of a pretty big wave of descendants... including the one being used to type this comment, LOL... has it reached self awareness?I love old tech. How can you not fall for something like this:

author: Roman oh
author_rank: Regular Contributor
timestamp: February 21, 2021, 11:51:28 pm
content: Quote from: m k on February 21, 2021, 11:30:33 amI couldn't find a useful 8080 emulator, but there seems to be a lot of 8085 stuff out there (100% code compatible with 8080, and just ignore the different external interrupt structure (RST 5.5, 6.5, 7.5); the 8080 interrupts RST0 - RST7 are treated as software interrupts in the 8085, but the code works fine).I had some fun putting this code into an 8085 emulator that I downloaded from Oshon Software (no affiliation). The evaluation version is free, but closes after a one hour session, and you get 30 of those sessions for free. But the licence is only 25 euro. It allows breakpoints, single stepping, modify rom, ram and registers (very useful for shortening the start-up delay at 02E4H). I spent (won't say wasted - as SilverSolder says, it's all instructive) a couple of days trying to get my haed into the code, but it seems to the epitome of the reason why spaghetti code is frowned on. I suspect it may actually be the output of an early C compiler, or somesuch - I used one of those on my CPM system in the early 80s. The code flow threads around like <delete rude simile!>.It transfers code into RAM, which you might do if, say you wanted to configure the code on the fly according to different models or somesuch, but the code it transfers to RAM looks like simple arithmetic operations, and they appear to be executed during start-up even before it does anything that looks like determining a model. (The Oshon simulator manages to execute these "RAM" instructions OK, but because they are not part of the loaded program (which, incidentally, it seems to disassemble OK) you can't "see" (ie trace and breakpoint) these steps. Would be simple enough to fudge, if one wanted to.And it does other crazy things that a "human" assembly code programmer wouldn't do - eg, bunches of subroutines, 3 bytes long, clear the same memory locations twice in two different places, etc, etc, etc.It was doing my head in... and I was only doing it "because I can".So while I shall keenly track this thread, I don't think I'll be doing a lot more on this in the near term. But I got my 25Euro worth!

author: SilverSolder
author_rank: Super Contributor
timestamp: February 22, 2021, 12:22:27 am
content: Quote from: Roman oh on February 21, 2021, 11:51:28 pmI looked at it long enough to realize the same thing - i.e. this code makes spaghetti look well organized... they were severely space constrained and this was probably a pretty big software project in its day - they did what they could with the tools they had, I'm sure, so I'm not casting aspersions on the people that wrote it.Do you know if there is a way to temporarily halt or suspend an 8080 in circuit? - it might be possible to glean something by halting the processor at certain points during execution, and looking at the bus to figure out where it is... letting it be its own emulator, if you see what I mean?

author: joeqsmith
author_rank: Super Contributor
timestamp: February 22, 2021, 04:37:02 am
content: The only thing I thought about doing with the firmware was to try and adjust the timing for the serial port. I thought I would setup the LA to trigger on the UART while monitoring the data and address buss. Once I have the address, I would disassemble these sections. Guessing its an interrupt routine running off some timer. I was then going to use a ROM emulator to hack the meter.The low cost programmer made it in today along with the replacement printer ports. Working on getting their software setup now.Odd, Motorola, Xilinx, Altera are not even listed. No support for the small Atmel serial parts. It does support some of the more common parts like the small Xicor ones. Wafer Scale supported. Too funny. I'm impressed with the features. It's pretty much loaded like my old one. There is a short test for VCC and VPP. I ran a few 4000/7400 series part tests. Then tried some GALs. Not sure but it looks like there may be a problem with them. Virgin parts check out. However, after programming, the unit will come up with pin faults. Replicated with same results. I'll just need to spend some time with it.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 22, 2021, 06:55:04 am
content: Sounds fun! It would definitely be elite to release a new version of the software after 30 years!Meanwhile, I got my GPIB bus back in business.I attached an interesting set of graphs: comparing the frequency responses of two 8506A on all their different ranges, using a 3325A as the signal source.The test setup is not "serious" because I didn't have a terminator capable of 4 Watt so had to run with "free exhausts", but the trends are nevertheless interesting.Note that both units are to spec, as far as I could tell in a few minutes of looking, but they are definitely different! The thermal AC modules have variable capacitors for tuning these curves, which is something I'll take a look at the next time I attempt to calibrate them - now that it's easy to perform a canned test!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 22, 2021, 03:13:01 pm
content: Interesting data. I don't have any way to create a stable enough waveform or to measure it to know how good the Fluke is. I had compared it with the old HP meter and the two basically agree in all the Fluke's ranges. Things diverge once I start getting outside the range the HP is spec'ed for. Even at the low frequencies the HP would not tell me how good the Fluke is. The errors from all of my sources far exceed the Fluke's specs. This is why I decided to leave that section alone as I'm sure I would do more harm than good.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 22, 2021, 03:40:29 pm
content: My AC source is not stable enough to calibrate with either. But any source is good enough to somewhat decently compare two meters triggered to sample at exactly the same time.The AC spec gets much looser above 50KHz, so the meters being different isn't really a sign of a problem, it is just a sign of it being difficult to maintain tight production specs for the higher range attenuators, it seems?

author: SilverSolder
author_rank: Super Contributor
timestamp: February 22, 2021, 03:46:00 pm
content: Also worth keeping in mind that the AC accuracy depends on the DC section being in a good state of tune...

author: joeqsmith
author_rank: Super Contributor
timestamp: February 22, 2021, 06:07:20 pm
content: Quote from: SilverSolder on February 22, 2021, 03:46:00 pmYeah, the manual is pretty clear on the order that things are to be done.Fully agree with your comment on relative measurements between meters. I would like to have an idea of the absolute accuracy but outside of renting a calibrator or shipping it off I don't have any options. Even if it were not aligned and just calibrated with a report, we could have some idea how it behaves. Good topic for the met group.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 23, 2021, 03:01:16 pm
content: Just a link to the last time I attempted to get DOS and a PCIe printer port working together. This hack worked fine up until the lightning storm damaged the programmer and port. With the low cost programmer missing so many of the parts I use, I plan to add another DOS based vintage programmer to the mix.https://www.eevblog.com/forum/chat/printer-ports-for-the-modern-pc/msg1017048/#msg1017048I did try the low cost programmer with some C256s and it seems to work fine with those.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 23, 2021, 04:06:47 pm
content: I can see it being a bit of a challenge to get parallel ports to work on modern motherboards. Maybe set up a period PC just to run this stuff? (With a CRT of course!)

author: joeqsmith
author_rank: Super Contributor
timestamp: February 23, 2021, 05:16:31 pm
content: I was able to locate that same PCIe card. As before, it passes that self test w/ the loop back connector and I was able to control the port with debug under DOS. So pretty much back to where I started in the other thread except using the next generation programmer. Sadly, the software is no longer offered for it but on the plus side, there is the internet. And with the power of Google,http://www.bitsavers.org/test_equipment/modularCircuitTechnology/jdr/Time to hack some DOS code.This programmer supports U18 (74S287) which is not supported by the TL866. No real surprise as that programmer is very limited. On my board, the part is soldered to PCB. Dive in and hack the Fluke or leave it.....

author: SilverSolder
author_rank: Super Contributor
timestamp: February 23, 2021, 05:35:25 pm
content: Quote from: joeqsmith on February 23, 2021, 05:16:31 pmDon't turn it on, take it apart!Is U18 just programmed to work as a chip select?

author: joeqsmith
author_rank: Super Contributor
timestamp: February 23, 2021, 06:01:23 pm
content: That's what it looks like to me. A PROM in place of a PAL for that era.I read through the thread you started about disassembling the proms but right from the start I was lost. The first thing I would want to do is map out the entire hardware and that starts with this decoder. Or I really missed something.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 23, 2021, 06:58:59 pm
content: Quote from: joeqsmith on February 23, 2021, 06:01:23 pmYou are right, that would be a good approach. If that PROM is desoldered, can the contents be read by your period-accurate programmer?It would be good to get to a programming model of this thing. We are pretty close already, just by deducing from the code...

author: joeqsmith
author_rank: Super Contributor
timestamp: February 23, 2021, 07:24:26 pm
content: I hacked the code and tried it out. Back in business. I don't think the 8080 will be this simple due to the lack of good tools. First thing I want to know is if the GALs I tested in the cheap programmer were damaged.Yes, the old programmer supports this part. I just need to remove it. You can see why I am starting to think about a junk meter just for hacking.I will upload the image once I have it. My guess is that thing is loaded with a lot of 1's and a few 0's sprinkled in the mix.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 23, 2021, 07:31:08 pm
content: Yeah, I've also got a "mule" meter for hacking/testing/repairing modules. I like having at least two of each boat anchor because they can be hard to troubleshoot if you don't have a working one to compare with!>My guess is that thing is loaded with a lot of 1's and a few 0's sprinkled in the mix.A remarkably astute guess, you might just be right!

author: m k
author_rank: Super Contributor
timestamp: February 23, 2021, 07:41:15 pm
content: Quote from: joeqsmith on February 23, 2021, 05:16:31 pmLike when I couldn't remember witch one the LPT1 address is and tried google.It wasn't there, I had to change to I/O map and first one didn't even have LPT2.Maybe Altavista had better SNR.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 23, 2021, 07:48:19 pm
content: Quote from: m k on February 23, 2021, 07:41:15 pmIf you put Google in "Verbatim" mode, it becomes almost usable.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 23, 2021, 08:52:34 pm
content: Google "ISA" "printer port" "address"Second hit washttps://en.wikipedia.org/wiki/Parallel_portWhich states:Most PC-compatible systems in the 1980s and 1990s had one to three ports, with communication interfaces defined like this:Logical parallel port 1: I/O port 0x3BC, IRQ 7 (usually in monochrome graphics adapters)Logical parallel port 2: I/O port 0x378, IRQ 7 (dedicated IO cards or using a controller built into the mainboard)Logical parallel port 3: I/O port 0x278, IRQ 5 (dedicated IO cards or using a controller built into the mainboard)If no printer port is present at 0x3BC, the second port in the row (0x378) becomes logical parallel port 1 and 0x278 becomes logical parallel port 2 for the BIOS.Of course, having used the PC since the start,debug - start the debuggerd 40:0 - display the addresses of the printer ports in orderThat stuff seems embedded in the memory banks.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 24, 2021, 03:12:33 am
content: Quote from: SilverSolder on February 23, 2021, 07:31:08 pmWell, I'm at a total loss about U18. I removed the device without damaging the PCB and installed the same type socket so it looks somewhat the part. My board uses a DM74S287N. The programmer supports it no problem but when I read it, the results are very unexpected. I did reinstall the part and powered up the meter. No problems at all. I wonder if this is a problem with my programmer or if this is really the contents as it appears all the bits were set (this part is cleared to all zeros). If anyone has a programmer that supports it, I would be very interested in knowing if you have the same results.When is the last time you heard of Titanium Tungsten Fuses?Also, I had mentioned that the cheapo programmer was having a problem with some Lattice GAL22V10Bs. I tested the parts I thought I may have damaged in the real programmer and no problems. They erase and program just fine. So I put them back into the TL866II plus and the problem again repeats, bad pins. But I noticed that it works correctly the first time every time. Then I noticed that if I repeat the same process, Read for example, too fast, the pin error happens. Almost like I am dragging down a supply and it takes time to recharge.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 24, 2021, 06:05:37 am
content: The file you attached isn't cleared to all zeroes? Here's what I see in the file, it looks interesting - note the '07' snuck in line 1 and line 9.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 24, 2021, 12:27:17 pm
content: Quote from: SilverSolder on February 24, 2021, 06:05:37 amYeah, my posts are not always very clear.QuoteFrom the datasheet, the part is cleared to 0's from the factory rather than the more common 1's. From the datasheet, its a 1024 bit or 128 byte part. Note the file is 2X that. I assume the programmer doesn't use the upper nibble and the lower nibble represents Q0..3. All of these bits were set (programmed with a 1), except for the two locations where Q3 was left in the factory cleared state.Q0 routes to U24 pin 20, !CS ( ! meaning active low for the context of this message)Q1 routes to U23 pin 20, !CSQ2 routes to U22 pin 18, !CSQ3 routes to U20 pin 18, !CSSo only U20 would ever be selected. Obviously, this is not correct. So, again I suspect the programmer has a problem with this part. If no one has a programmer that supports it (and willing to pull the part and read it), I think the next step is make an adapter to allow the programmer to read the PROM as a different device.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 24, 2021, 05:54:19 pm
content: Time for a second attempt.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 24, 2021, 08:44:15 pm
content: Keep in mind the adapter is converting the 74S287 to a 2716. A0-A7 routes to A0-A7 and Q0-Q3 routes to Q3-Q3. The upper nibble is hardwired to zeros.From the schematic, U18 A5 & 6 are hardwired to ground. A7 routed to jumper W3 which defaults to ground.U18 A0 maps to the 8080's A11 and so on, except for A4 which is further decoded. This allows U18 to address in blocks of 0x7FF.Looking at the data from the U18, we can see the address range for each memory devices is:U24 0x0000-0x1FFF PROM, 2764, 8K 1FFFU23 0x2000-0x3FFF PROM, 2764, 8K 1FFFU22 0x4000-0x47FF RAM, D4016C-2, 2K, 7FFU24 0x4800-0x4FFF E^2, X2804AP, 2K, 7FFWe can see that U18 is programmed to allow remapping of these ranges. Maybe some future expansion.At least it makes sense now but you should double check my work.****Also, I was too lazy to decode it manually and instead just wrote a quick app to map it out.

author: dietert1
author_rank: Super Contributor
timestamp: February 24, 2021, 10:16:18 pm
content: In the 8502A the memory map is the same, except is has only 768 Bytes of RAM and no EEPROM. EPROM consists of 4x i2732 in one instrument, the other one has a mezzanine with lots of mask ROMs AM9218.Meanwhile i spent some hours looking into the firmware 3.0.0 and found it perfectly obfuscated. They went to great detail trying to hide essential pieces of the workings. For example in several places they replaced the jump instruction by an indirect jump through a ROM constant function pointer. System vectors RSTn are routed through RAM function pointers with variable destinations. Also they use a reverse memcpy() to hide the base addresses of data and code structures. I guess it was all written in assembly language. There is no interpreter and i didn't see a full floating point library. I doubt it can be reverse engineered using a general tool. I used a simulator and a disassembler, both with mods to log backplane access, RAM function calls and the like. Meanwhile the disassembler knows 19 obfuscated entry points in addition to the eight system vectors.Regards, Dieter

author: SilverSolder
author_rank: Super Contributor
timestamp: February 24, 2021, 11:53:45 pm
content: Quote from: joeqsmith on February 24, 2021, 08:44:15 pmColor me impressed, that is some fancy footwork.An idea, coupled with @Dietert1's observation about intentional obfuscation: could U18 be part of the obfuscation - so the code inside the two EPROMs look like a total mess, unless the addresses are "decoded" by U18 first in order be put in the right order?If so, perhaps by somehow applying the U18 logic to the code in the EPROMs, we can get a "clean" listing out of it?

author: SilverSolder
author_rank: Super Contributor
timestamp: February 24, 2021, 11:57:10 pm
content: Quote from: dietert1 on February 24, 2021, 10:16:18 pmIt never occurred to me that the "spaghetti" was an intentional attempt at obfuscation, but it makes perfect sense with the crazy stuff we are seeing inside the EPROMs... see my answer to @joeqsmith, perhaps we can untie the knot via the U18 listing?

author: joeqsmith
author_rank: Super Contributor
timestamp: February 25, 2021, 01:05:35 am
content: Quote from: dietert1 on February 24, 2021, 10:16:18 pmThat's good to know. I'm more confident now in my results. My next step will be to start reading up on the 8080.Back in the early/mid 80s, I had a friend who worked as a third tier programmer for a large company. Micros back then had very limited resources. The first tier programmers world write the code until they ran out of resources. I was then handed over to the 2nd tier who would clean up and optimize the code to get things to fit. If they couldn't pull it off, it went to the final group. They were allowed to completely rewrite the code and would typically optimize it to the point it was no longer maintainable. It's very possible that what you are seeing is a result of no longer caring about how well the software looks and could be maintained but rather how to get it to fit and meet timing. I've never worked for a company where the goal was to make the code unreadable. More it was the end result of what was being asked.QuoteI few years ago I decided to test some handheld DMMs and I ended up designing a small transient generator to help automate the task. I decided to go all old tech one last time, right down to the wire wrap. The microcontroler I used was the Motorola MC68701 which has 2K ROM. It's all written in assembler and I am doing exactly what you describe in several places of the code. I think I even have some indirect tables in RAM that change in order to save a few bytes. That codes a mess.U18 is really just a decoder. Could have been a PAL. The code space is linear and if you look at the contents, you can see how that jumper remaps things. But that jumper is fixed so I highly doubt there is anything funny going on with U18 creating some top secrete code security system.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 25, 2021, 02:11:30 am
content: It just goes to prove, once code gets messy enough, it becomes indistinguishable from an intentional effort to obfuscate!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 25, 2021, 02:43:04 am
content: Did you find a disassembler / assembler combo that allows you to reassemble the disassembled code and match the binary?To attempt to make use of the improved BAUD rate, I may not need to go to that level but if you have the tool chain sorted, I would start getting it setup.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 25, 2021, 02:49:14 am
content: No, I stopped at the disassembly part (and quickly ran out of Aspirin)....In other news, I downloaded the TL866ii software and noted that it actually still has all the high voltage chips in its database (i.e. the same chips as the previous models), opening the possibility for adding an external Vpp supply for 21V and 25V chips, it seems.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 25, 2021, 03:28:28 am
content: Quote from: SilverSolder on February 25, 2021, 02:49:14 amThat's too bad. I'll have a look after I read up on the 8080.Quote from: SilverSolder on February 25, 2021, 02:49:14 amI put mine back in the box. Even if I invested time to improve the hardware, the software is just too limited and I really don't like how unreliable it seems to be depending how fast you run commands. Now that you have that new programmer, what do you think of it? I may end up buying a decent new one again.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 25, 2021, 12:24:20 pm
content: I would say it is a quality item, but I only have TL866 to compare it with!There is a list of the chips the little guy supports here:https://www.batronix.com/files/pdf/BX32PBarlino-II-DeviceList.pdfBatronix have also made a pretty cool feature on their web site: type in a chip, and it tells you which programmers support it (even if not their own!)... Probably only covers current models...https://www.batronix.com/shop/programmer/chip-support-search.html

author: joeqsmith
author_rank: Super Contributor
timestamp: February 25, 2021, 02:37:25 pm
content: It's odd that even for our little 4-bit part, there are few options listed. It looks like for it to handle the old Altera, Xilinx CPLD and serial proms, I would need to up my game. I still have some old project that use these parts and am thinking that if I am going to spend the money, I want to support all of my past projects.Thinking of the 4-bit part, I should have added the W3 jumper. Remember when I talked about U24 having the A13 pin routed to possibly support a larger part rather than a NC? Well, as we can see, this jumper was added to support that feature. The memory map is still linear. U24 still acts as the boot ROM. Everything else is just moved up. It's good when things make sense.I wonder if any of their meters ever took advantage of this larger part.U24 0x0000-0x3FFF PROM, 27128, 16K 3FFFU23 0x4000-0x5FFF PROM, 2764, 8K 1FFFU22 0x6000-0x67FF RAM, D4016C-2, 2K, 7FFU24 0x6800-0x6FFF E^2, X2804AP, 2K, 7FF

author: SilverSolder
author_rank: Super Contributor
timestamp: February 25, 2021, 02:44:03 pm
content: Quote from: joeqsmith on February 25, 2021, 02:37:25 pmI noticed that Fluke used the same controller board in the 5100 series of calibrators - maybe it needed more space for code in that application?Those calibrators are big and ugly, and only 4 1/2 digit, so probably not something to get super excited about...

author: joeqsmith
author_rank: Super Contributor
timestamp: February 25, 2021, 03:05:40 pm
content: Yeah, that thing is a tank but it may be another source for parts. I bet you're right about the use. My manual is fairly old and has the jumper. I suspect they planned for it's use right from the start.I wonder if at that time the 16K parts were on shortage. For our meters, they could have set the jumper and put all the firmware in a single PROM and left U23 unpopulated. With the low volumes and high cost, doubt it mattered much but would be interesting to know some of the history from the designers.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 25, 2021, 03:46:48 pm
content: The front panel styling has not aged that well - very 70's! - almost kitch! - if you see what I mean -This might be what the exterior styling guy's bedroom looked like!Don't tell me engineers aren't vain enough in general for this to matter (if you have ever had chrome wheels on a car, you are vain enough! - oops, I still do!) - on the bright side, the styling is likely a primary reason this meter is as cheap as it is today!It would definitely be interesting to chat with one of the original designers. They got so many things right (including the modular construction).

author: joeqsmith
author_rank: Super Contributor
timestamp: February 25, 2021, 04:55:58 pm
content: I'm more a bike enthusiast and like the look of polished aluminum, but who wouldn't like a set of foot lockers painted burnt orange?Not sure about the meter's being cheap. ebay prices are IMO through the roof. $300 for a dead one.Out side of my interest in vintage tech, I would have no use for it and would have let this one go to scrap. Then again, if people are actually buying them for this much, more power to the sellers!

author: SilverSolder
author_rank: Super Contributor
timestamp: February 25, 2021, 06:11:16 pm
content: They have risen in status to "entry level volt-nut meter" which, in fairness, they do deserve. The A/C specs are very hard to beat (not even HP3458A). DC specs are also serious, and the voltage reference zener used in the R2 A/D now has cult status (I bet a lot of the cheap meters were bought just for that!) The downside is that you have to comb your grey beard often to keep this thing in tune (this can be a real problem if you don't have one!).eBay prices have definitely exploded - when I bought mine they rarely exceeded $100 including shipping. Probably the "EEVblog effect", together with @TiN putting an article on his web site about it (https://xdevs.com/article/f8505a/) has meant an increase in demand.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 25, 2021, 06:31:35 pm
content: Could very well be that by posting we are increasing the asking price.I was looking on-line for one of the books I had and found it. It was in very good condition. One problem. It's for the 8085. We had to learn them both. I am not sure now if we even had a book for it. We were using an Altair computer to program on. The real deal.I was able to find a few on-line books for it, including the original "Intel 8080 assembly language programming manual" and the "Intel 8080 Microcomputer Systems User's Manual". More than enough to get me up to speed. I am devolving. Time to dust off the slide rule.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 25, 2021, 07:02:43 pm
content: Does that video mark the beginning of the downfall of America? Goodness, people were crazy in the 80's!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 26, 2021, 01:35:47 am
content: More the beginning of my own personal downfall. 8080s, assembler.... obviously a mental problem.I tried getting some of the old tools to run. CMP86 will run under a DOSbox. CMP86 will run Jim Lopushinsky's Z80.CMD. The Z80.CMD will all run the old Digital Research simulator/debuggers to some level. It will also run the old Microsoft assembler, to some degree. I just haven't been able to actually assemble a program and link it. Attempting to just get something very basic to work. 2 lines of code sort of thing. Baby steps.It really is starting to look like we need some better tools for 2021.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 26, 2021, 05:21:19 am
content: Better tools for 8080 will probably be a DIY project...

author: joeqsmith
author_rank: Super Contributor
timestamp: February 27, 2021, 01:36:10 am
content: Some success with the Microsoft tool set. I was able to assemble and link some fairly large 8080 syntax programs with it.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 27, 2021, 05:41:26 pm
content: I'm still sorting out the syntax for the old tools and reading up on the old 8080. These tools and their documentation are all available for free on-line if anyone is interested attempting to use them. Seems only fitting to use these old tools to hack the old meter.Looking at the example code from:https://en.wikipedia.org/wiki/Intel_8080#Example_codeI changed the origin to 0 and removed the return just to give me a simple program to test with. Attached is the listing from the Microsoft tools.Again, you would need to setup a DOSBox, download Jim's tool set (from 1985) and download the Microsoft macro assembler and linker. I am just running it from all from the command prompt using a batch file to automate the process. I have not yet worked out the Digital Research tools.If I had another junk meter, I would replace that U18 prom with a GAL with a custom memory map that would place all of the code in U24. I may still do this with a small plug in board. This may make things easier once I actually start to look at and modify the original code.MACRO-80 3.44 09-Dec-81 PAGE 1; memcpy --; Copy a block of memory from one location to another.;; Entry registers; BC - Number of bytes to copy; DEAddress of source data block; HL - Address of target data block;; Return registers; BC - Zeroorg 000h ;Origin at 0000h0000' 78 mov a,b ;Copy register B to register A0001' B1 ora c ;Bitwise OR of A and C into register A0002' C8 rz ;Return if the zero-flag is set high.0003' 1A loop: ldax d ;Load A from the address pointed by DE0004' 77 mov m,a ;Store A into the address pointed by HL0005' 13 inx d ;Increment DE0006' 23 inx h ;Increment HL0007' 0B dcx b ;Decrement BC (does not affect Flags)0008' 78 mov a,b ;Copy B to A (so as to compare BC with zero)0009' B1 ora c ;A = A | C (set zero)000A' C2 0003' jnz loop ;Jump to 'loop:' if the zero-flag is not set.endMACRO-80 3.44 09-Dec-81 PAGE SMacros:Symbols:0003' LOOPNo Fatal error(s)s)0008' 78

author: SilverSolder
author_rank: Super Contributor
timestamp: February 27, 2021, 05:52:08 pm
content: LOL seems you are really getting into some serious digital archaeology there, @joeqsmith!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 27, 2021, 06:19:31 pm
content: Running the symbolic debugger I am able to single step the simple program, disassemble and what not. I need to take the time to fully read the manual but the one problem I am seeing is ^C will not exit the program.Shown is single stepping (or trace as they refer to it) the wiki example.

author: joeqsmith
author_rank: Super Contributor
timestamp: March 01, 2021, 01:15:00 am
content: After a lot of trial and error, I finally have the basic tools working. Don't use "_" in file names and keep them to the 8.3 format. The also try to help you by embedding a jump at the start and moving the code so it will run on the CPM computer that they were targeting. To get around this, don't enable support for the linker's Intel HEX format.Starting with a single file, I can now assemble, link, split it into the two PROMs, verify them against the original PROMS, then load the images into my old EPROM emulator. This unit supports two devices, perfect for the Fluke. I made a couple of cables to plug it into the controller board. Getting close.

author: joeqsmith
author_rank: Super Contributor
timestamp: March 01, 2021, 02:42:13 am
content: It's a tight fit without the extender but doable.Shown running the meter from the assembled code loaded into the simulated PROMs. With the tool chain now working, the next step is to get the logic analyzer on it and see if I can sort out the area of code I am after.

author: SilverSolder
author_rank: Super Contributor
timestamp: March 01, 2021, 05:39:39 am
content: That is looking pretty impressive! - so you actually have an assembly listing that can be used to build the original PROMs with no differences encountered? - that must count as a small miracle!I've had my head buried in Diptrace all weekend, trying to get to grips with it by building a brushless motor driver board. I thought that sounded like a fairly simple project that couldn't possibly take more than a few hours...

author: joeqsmith
author_rank: Super Contributor
timestamp: March 01, 2021, 12:28:49 pm
content: Quote from: SilverSolder on March 01, 2021, 05:39:39 amYes but keep in mind, the assembly code could be completely made up of an ORG, several DBs and an END.The MicroSoft assembler will support the standard 8080 format from that time so the syntax has not been a problem. The MicroSoft linker will also output symbolic data for the Digital Research debugger.

author: joeqsmith
author_rank: Super Contributor
timestamp: March 01, 2021, 06:05:02 pm
content: Spent a little time looking over the controller, serial and display hardware. After incrementing the two version numbers, the meter will show Error 8. Controller module is fault. I suspect I need to add a CRC or checksum to one or both ROMs. Getting closer to a working setup.

author: dietert1
author_rank: Super Contributor
timestamp: March 01, 2021, 09:35:05 pm
content: I think they implemented a timeout interrupt to detect failed backplane transactions. The typical code looks like this:MOV H,... backplane address (L = don*t care)ORA A reset carryMVI M,#$0xFF touch backplane addressRC exit on carry set by timeout interrupt... continue with module presentI think this is used for module detection. There are four 0-terminated lists in ROM of backplane addresses to check in a sequence. The presence of modules is saved in flag bytes, e.g. at 0x4052 (8 bits) and 0x4181 (bits 0x01 and 0x02).One PROM check i saw was a check for 0x3800 = 0x55.Remember this is for the 8502A version 3.0.3. Hope it helps.Regards, DIeter

author: joeqsmith
author_rank: Super Contributor
timestamp: March 01, 2021, 11:05:24 pm
content: Quote from: dietert1 on March 01, 2021, 09:35:05 pmThat's four different sets, all the same. So just a simple modulo 100 checksum for the whole thing, then split it.I have no idea where their original tool is storing it. There are a few FFs at the end of the file, so I appended it as the last byte, which I know is not correct as every file I have looked at was set to FF. Thinking it's unused area and it appears to work correctly.

author: dietert1
author_rank: Super Contributor
timestamp: March 02, 2021, 07:49:24 am
content: The code for the checksum calculation starts with instruction LXI H,#$0x0000 (unique in my disassembly). It contains the check for 0x3800 = 0x55 i mentioned to determine whether the checksum calculation runs up to 0x2FFF (fourth ROM not present) or to 0x3FFF (fourth ROM detected). The calculated checksum gets output to port 0x52, maybe for debugging purposes (one of two OUT instructions).Yes, it doesn't matter which unused byte you make an adjustment byte.Maybe in the end we will know which ROM byte is unused except for the checksum calculation..Regards, Dieter

author: joeqsmith
author_rank: Super Contributor
timestamp: March 02, 2021, 12:45:00 pm
content: Odd they would hard code the firmware regarding the checksum in the middle of the code. The tool used to modify the file would have to know the location so they must locate that section of code in the same place. Maybe they had another way. As you suggest, dump it to a debug port, mod the code, rebuild, reload and try again. Really odd but I have seen stranger things. I would have just expected them to have a tool that runs on the binary and appends it to the end so the routine always checks for zero. I like simple approaches. Can you post the section of code you are referring to. I'll see if I can hunt it down and make some sense of it.I ran several builds last night using the appended checksum and it seems to be working fine. No ill effects from changing the last byte.My first attempts using brute force, trial and error, divide and concur to hunt down the section I am looking for yielded some interesting results. I think I now know a little more about the structure of the code. I really wish the manuals had dove into more details about the inner workings. I had hoped to be able to located the section without the logic analyzer but it's taking too much time. That meter is just so compact its going to take some more custom adapters to instrument it.

author: joeqsmith
author_rank: Super Contributor
timestamp: March 02, 2021, 01:02:12 pm
content: Good old DOSBox. Here's the current setup.https://www.youtube.com/watch?v=CA-wbjTBMYk&feature=youtu.be

author: dietert1
author_rank: Super Contributor
timestamp: March 02, 2021, 02:55:41 pm
content: OK, appended the checksum calculation of the Fluke 8502A firmware 3.0.0.Meanwhile i checked in that EPROM set the first three give a zero remainder as well, so the fourth EPROM is kind of add-on and there are two unused adjustment bytes, one for 0x0000 .. 0x2FFF and one for 0x3000 .. 0x3FFF.Regards, Dieter

author: SilverSolder
author_rank: Super Contributor
timestamp: March 02, 2021, 03:31:52 pm
content: Quote from: joeqsmith on March 02, 2021, 12:45:00 pmYou could always run it without the I/O card at the back, to get some space "over" the controller board? It runs fine without any I/O card at all.

author: joeqsmith
author_rank: Super Contributor
timestamp: March 02, 2021, 04:19:06 pm
content: Quote from: dietert1 on March 02, 2021, 02:55:41 pmThank you very much. It's very similar in the 8506A but there isn't an embedded port call. It's too bad the 8502A's controller is so different from the 8505/6. It looks like you have made a lot of progress sorting out the firmware. I don't understand enough about the hardware yet to make sense of it. It may not seem like much but all these little bread crumbs of yours have been a big help.Quote from: SilverSolder on March 02, 2021, 03:31:52 pmThe card in the back is the serial communications board. The plan is to modify the firmware to take advantage of the higher BAUD rate after modifying the clock generator circuit.An extender board would be nice but I think I have an easier way to do it.

author: joeqsmith
author_rank: Super Contributor
timestamp: March 03, 2021, 01:06:25 pm
content: It appears that the serial communications is not done in the foreground. I knew the receive side of the board supported interrupts but it appears they use interrupts for the transmit as well. It seems interrupt 0x20 (RST4) is the one being used which is running from RAM.Have you sorted out where the copy from PROM to RAM happens? Mapped out the different sections?

author: SilverSolder
author_rank: Super Contributor
timestamp: March 03, 2021, 02:32:53 pm
content: No, I haven't dug that deep - I have been resisting that particular rabbit hole, but all the other rabbits are starting to push me in!

author: dietert1
author_rank: Super Contributor
timestamp: March 03, 2021, 04:38:46 pm
content: OK, here is how the RAM code initiates in the 8502A.Meanwhile i also tried to bring the disassembly to a format that assembles successfully.When looking at gaps in the disassembly that appeared like unreferenced machine code, i found jump tables with about 60 more code references, implementing switch statements (computed jumps and computed calls). Appears like a state machine. Did not find p-code until now, but there are more code gaps and a lot more ROM data to look at.Regards, Dieter

author: joeqsmith
author_rank: Super Contributor
timestamp: March 03, 2021, 05:11:30 pm
content: Thanks.Looking at the hardware, the serial board sets ID2 during an interrupt. On the controller, this routes to U21 priority encoder 14532. The encoders Q outputs route to U13 inverting driver 74240, which drive the 8080's D3-5. So when ID2 is set, the encoder puts out a 011 on Q2..0. This is inverted to 100 on 8080s D5..3, so vector 0x20 (RST4). So it makes sense that the RST4 certainly plays a big part in the serial communications. It's always good when things make sense.If that's right, I believe the external trigger would use RST5 which is also run from RAM.I suspect the transmit side polls the status register checking the transfer flag during the timer interrupt. There is one more test I can run to try and prove this out.Can you tell I'm avoiding the logic analyzer like the coronavirus.Just trying to make sure I have some idea what I am looking for before diving in.

author: joeqsmith
author_rank: Super Contributor
timestamp: March 05, 2021, 03:11:37 am
content: Using the cheap programmer to sniff the RAM.

author: joeqsmith
author_rank: Super Contributor
timestamp: March 05, 2021, 01:15:02 pm
content: Quote from: dietert1 on March 03, 2021, 04:38:46 pmIt's been a bit of a trip playing with such an old processor. I had long forgotten just how odd it was. Just having small sections of interrupt code rather than vectors, and having to force the address onto the databus... just some crazy ideas from the past.Looking at the RAM areas containing the interrupt code, I was hoping that they would just initialize these areas of the RAM and were done with it. I could then just search for that section of code and focus on the part I am interested in.I was guessing they were doing this for speed but now I have a sinking feeling that part of the reason they used this over the ROM was they wanted to be able reprogram the interrupt. It looks like they reprogram the these areas during runtime.

author: SilverSolder
author_rank: Super Contributor
timestamp: March 05, 2021, 01:50:16 pm
content: "Just having small sections of interrupt code rather than vectors,"Than one got me too. - On the plus side, it isn't full of weird segment registers etc. - it seems very 'fundamental' in how it works...

author: joeqsmith
author_rank: Super Contributor
timestamp: March 05, 2021, 03:50:40 pm
content: The segmented memory was something I was used to from my first computer. It predated the 8080 and the CPU was mostly made of 7400 logic. You had 2K of core which was shared between the display and programming areas. To get around the small area, you would have a small program that would load in segments from the floppy and run them. Jumping back and forth.The 8088 was a big step up.Looking at the code in RAM starting at address 0x112 (0x4112), it appears they set the first location to 0xC& (RET 0) or reset. Interesting is I had noticed if I sent data to the meter over the RS232 port while the meter was booting, it will reset and I could actually hold it in reset forever. I think I now know why.Once the meter boots, they appear to have a mechanism to detect that the RS232 port should be active and then they reprogram this area of RAM. They can certainly pole the communications board to see if there is incoming data. This seems to be what triggers the meter to reprogram that area. Wow ... The more I look at this vintage hardware, the more I want to hear from the team who designed it.

author: SilverSolder
author_rank: Super Contributor
timestamp: March 05, 2021, 05:34:33 pm
content: Perhaps it is able to do something cool, like load an external program into RAM over the serial port, on startup? - like a monitor/manipulator for testing / debugging / special applications?

author: joeqsmith
author_rank: Super Contributor
timestamp: March 05, 2021, 07:45:24 pm
content: I had wondered about it having a debug mode of sorts that allow them to display/change memory and such. If there was, I would have thought the commands would all be ASCII and we would see some visible signs glancing through the hex file. Still, it could be there.I keep thinking 1/60Hz * 8 or a 2.08ms interrupt. In the fast async mode, it averages out to 25.2ms. I just keep thinking there is a /13 that checks that UART's transfer flag.I can tell you that when I initialize the meter, I see the ASCII commands show up a few bytes after the RST4 area in RAM. It also looks like there is a fair amount of RAM that is not being used, at least in my case. I wonder if they use this as a very large buffer when sending in the faster modes.

author: dietert1
author_rank: Super Contributor
timestamp: March 05, 2021, 08:37:06 pm
content: In section 3 of my Fluke 8502A manual they give some technical details about hardware and firmware. There is a detailed explanation of direct and indirect backplane addressing, with the front panel as an example. Also they explain about the timer interrupt (8 times mains frequency) and how the firmware assigns these interrupts to various tasks in a round-robin pattern. Except the ADC has a higher priority and gets half of the time. It's a sophisticated machine - certainly the 8505/6A even more than the 8502A.Anybody has the schematic diagrams of the serial and parallel communication interfaces? In my Fluke 8502A manual it says "Page left blank intentionally". I'm having difficulties with the incomplete decoding of backplane addresses (IC0..IC6). There should be a rule to avoid confusion, but until now i didn't catch it.When wiring up programmers and analyzers to the isolated logic in the DVM, please be aware of a 20 V offset between guard and logic ground. Better leave guard on the front panel unconnected. Otherwise all this may be just a sophisticated way to kill a working instrument..Regards Dieter

author: SilverSolder
author_rank: Super Contributor
timestamp: March 05, 2021, 09:15:25 pm
content: @Dietert1, I think both the schematics you are looking for are in the 8505A manual, there is a quite recent one on Xdev's site,https://xdevs.com/doc/Fluke/8505A/Manuals/fluke_8505a_multimeter_sm.pdfThanks for the hint about the 8502A manual covering hardware/firmware,I don't recall seeing anything about that in the 8505A / 8506A manuals - will take a look now!Edit: Looks like the explanation (Theory of Operation) is the same in both manuals. Well worth reading, surprisingly detailed!

author: dietert1
author_rank: Super Contributor
timestamp: March 05, 2021, 11:07:15 pm
content: Found the schematics, thanks.Here i have a measurement of the Fluke 8502A backplane, addressing the active filter module. Since addressing is somewhat ambiguous i want to measure which addresses are actually used by the firmware. Also i found there may be a problem with the isolation interface on that instrument: The signals on IC5 and IC6 look a bit dirty.Regards Dieter

author: joeqsmith
author_rank: Super Contributor
timestamp: March 06, 2021, 01:15:35 am
content: Quote from: dietert1 on March 05, 2021, 08:37:06 pmIs this stated in the manual somewhere, or is it something you measured with your meter? I would expect with the isolator, assuming the front switch is not engauge to select the internal guard, that it would be basically isolated. The manual shows an internal 150K between LO and guard (or shorted depending on the switch position). I measure about 140K with my meter. Looking at the AC and DC voltages between the digital ground of my meter and LO as well as the guard, I get under a volts. Just some leakage.You scope shot looks like it's just AC coupled. Almost like the isolated side wasn't referenced back to the digital side (strapping the two grounds together).

author: dietert1
author_rank: Super Contributor
timestamp: March 06, 2021, 06:15:55 am
content: I read a remark in the manual about that 20 V level difference, yet i think it was between isolated digital ground and analog ground. This way they saved on the level converters for n-channel JFET switches. Yes, unrelated to front panel guard, yet related to front panel low.My DSO has Gnd connection via the logic analyzer inputs. The Ack signal (analog channel 1) looks perfect, while bus lines I6 and IC5 seem to suffer from capacitive crosstalk and lack of drive. Will check again.Regards, DieterPS: According to the isolator schematic it doesn't drive IC5 and IC6 on the isolated bus. So the isolated bus has five address bits IC0 .. IC4 and in order to learn which addresses the firmware actually sends i need to look at the unguarded bus.

author: mansaxel
author_rank: Super Contributor
timestamp: March 06, 2021, 08:40:39 am
content: Quote from: SilverSolder on January 28, 2021, 05:58:08 pmI saw it immediately. Very common in UK-sourced broadcast gear. My first interaction with one was back in 1988 or so, at which time I'd not yet learnt about the importance of pair twisting in multicore audio cables. That was a memorable experience in crosstalk.

author: SilverSolder
author_rank: Super Contributor
timestamp: March 06, 2021, 02:30:28 pm
content: Quote from: mansaxel on March 06, 2021, 08:40:39 amInteresting! - I found it by accident, browsing eBay for some other connector, I recognized it when the picture showed up!Yeah, Fluke doesn't mention anywhere in the manual what the connector is - they just gave it their own part number... apart from it probably costing $200 per connector when bought from Fluke, they likely haven't carried this part for 20 years or more!

author: joeqsmith
author_rank: Super Contributor
timestamp: March 06, 2021, 04:23:23 pm
content: This service manual for the 8502A may be newer than what you have. It contains the serial interface.http://ftb.ko4bb.com/getsimple/index.php?id=manuals&dir=Fluke608 talks about the isolator. 608-9 covers the IC0-4.Table 1-1 talks about the need for the isolator for remote operations.2-8 has a warning about electrical shock and grounding. They take about reversing the input leads (input HI grounded and high voltage applied to LO). The don't mention the isolator.4-71 warns again about common mode voltage when using the interconnect in place of the isolator.I would imagine the 20V you mention would be with the interconnect installed but so far I have not found any such note. Even with the interconnect, I would not expect to connect the meter to a PC with a common ground, then attach a power source to the inputs with the LO also tied to the same common ground and having it short out some internal 20V supply. That's just scary. I would expect something like this to be on the cover page with large bold letters.It's difficult for me to follow the schematics in this manual as they split them across multiple pages. On page 313 we can see the input transformers. On page 314 we can see the regulated supplies. Not how the isolated logic supply VCC is referenced to the analog -15 VA2. So from analog return to -15 then -15 to VCC and VCC to logic return, we have 20V. I wonder if this is what the note was talking about. Still this is all on the back side of the isolator.I guess like anything, when you start probing around, it's best to understand what you are doing before diving in. I could see a beginner assuming all the grounds are common and damaging the meter or other equipment.

author: SilverSolder
author_rank: Super Contributor
timestamp: March 06, 2021, 04:37:06 pm
content: This instrument has enough grounds to start a medium size farm!

author: dietert1
author_rank: Super Contributor
timestamp: March 06, 2021, 05:47:20 pm
content: In the supplies schematic p8-11 the guarded section has a 5 V logic supply U5. Its +5 V output is connected to the -15 V analog supply from U4. So when i use the guarded common ground (TP1 of active filter module) as reference, guarded logic swings between -20 V and -15 V. The screen dump shows that with the active filter Ack test point TP4.If you wire in something on the guarded logic and pick some logic Gnd there for the logic analyzer signals, you can make a short by connecting the front panel input Low to PE.Regards, Dieter

author: dietert1
author_rank: Super Contributor
timestamp: March 10, 2021, 10:05:56 pm
content: Now i have another benchmark for fast mode (3 byte readings) at 330 Hz. About half of the 3 msec period is GPIB processing. The ADC operation takes 1.47 msec. Appended i have a MSO capture that shows the GPIB board Ack signal together with IC0..IC6 backplane address. Cursors indicate the 3 msec measurement period from trigger to next trigger. The zoom shows the first run of the ADC (backplane operations 1C 06 06 06 06 06 06), the other four ADC runs are labeled above. If we drop the '?' GPIB trigger and pulse the trigger input instead, the sampling rate could probably reach 400 Hz. If one could avoid the 500 usec delay in the GPIB host (USB adapter with MS Windows), we could get to 500 Hz.Meanwhile i found that this 8502A contains a Thermal RMS module and the more recent Ohms module with the GAL circuit. In retrospective i think Fluke could have made these into something like the IBM PC, if they had reserved some backplane addresses for custom modules and provided a public API, maybe like Silversolder proposed. Others could have provided special modules, for example to make it into a very high resolution differential multimeter or whatever else.Regards, Dieter

author: SilverSolder
author_rank: Super Contributor
timestamp: March 10, 2021, 10:50:07 pm
content: @Dietert, that is amazing. I haven't got to first base with the high speed measurements yet - time to get something going!One thing I've been thinking about, regarding the ADC: Maybe we can run it one more time? - currently, it runs 5 times and gets to 21 bits resolution. What about modding the software in the controller to run it "deeper" and get more bits - e.g. "real" 7.5 or more resolution? This might require lowering noise elsewhere in the system, but... it would be a pretty cool mod!

author: dietert1
author_rank: Super Contributor
timestamp: March 11, 2021, 07:38:23 am
content: That's a nice proposal, shouldn't be to difficult. Yet the 8080A cannot efficiently add two 32 bit quantities. Maybe the extra bits could be joined in on the GPIB host. Or fit in an Arm MCU that supports in-circuit development and debugging like we use nowadays.My own like to have is automated ADC calibration. Apparently ADC fine tuning with those low-ohms series trimmers isn't very stable. Guess it suffers from contact resistance in the trimmers. Don't know yet how to solve that. There should be a module to generate the test voltages like 10.1 V, -10.1 V, 0.5 V, 5.1 V ... with a multiplexer. And something that replaces the trimmers and that can be tuned by implementing one of the unused commands in the firmware. Most part of automation would be on the GPIB host. Ideally one could perform ADC calibration at normal operation temperature - with all covers closed.By the way, that fast mode test ran for 8.22 hours until now with an average speed of 333.35 samples per second. Much more stable now since i modified GPIB operations. Seems the 8502A doesn't like premature UNTALK without having sent its data yet.Regards, Dieter

author: SilverSolder
author_rank: Super Contributor
timestamp: March 11, 2021, 10:43:14 pm
content: Quote from: dietert1 on March 11, 2021, 07:38:23 amIf we have all the individual ADC readings, maybe it is possible to make up for the flawed ADC trim after the fact? - so the problem would be reduced to feeding the meter a sequence of known voltages before running a critical test, and then compensate all the following readings accordingly? That way we could also remove errors introduced by the active filter, input modules, attenuators, etc.Taking advantage of the modular design by replacing the whole controller board with a modern MCU would of course also be fun, but now we are REALLY taking it to an extreme!The A/D module could possibly be replaced by one based on the 8.5 digit A/D discussed elsewhere on the EEVblog. Would that be cool, or what? Like putting a supercharged V-12 into a Ford Anglia!

author: m k
author_rank: Super Contributor
timestamp: March 12, 2021, 11:54:36 am
content: Quote from: dietert1 on March 11, 2021, 07:38:23 amDon't know its efficiency but pretty simple it is.Code:lxi sp, 4010hlxi h, 7aaah ; 7aaacccc + 99998888push hlxi h, cccchpush hlxi h, 9999hpush hlxi h, 8888hpush hlxi h, 0pop b ; startpop dxthldad bxthlinx spinx spxthljnc overinx hover: dad dxthldcx spdcx sp ; endpop bpop dhlt

author: dietert1
author_rank: Super Contributor
timestamp: March 12, 2021, 03:00:27 pm
content: There are 7 byte registers in the 8080A. The ADC code in the 8502A disassembly is register based and operates on two 24 bit quantities. They use A for shifting in ADC bits and H to address the backplane, so it's really very tight. Guess that was the reason why they left it like it was in the 8505/6A.And when you look at the ADC code, they first collect 12 bits of data with control codes 0C and 00, then another 18 Bits with control codes 08, 00 and 00. So it isn't about making a loop six rounds instead of five.Meanwhile i have a data logging run of 16 hours with a total of about 20 million samples, so that seems to work now. With 30 second logging interval i have 10 000 samples to average and the stdev of those averages gets down to 0.03 ppm. Of course systematic errors add in on top of statistics, like misaligned ADC.Regards, Dieter

author: SilverSolder
author_rank: Super Contributor
timestamp: March 12, 2021, 09:37:27 pm
content: Quote from: dietert1 on March 12, 2021, 03:00:27 pmSounds like we're good for another two digits, LOLMaybe it is possible to read the ADC with 6 rounds, then "spit it out" on GPIB all from inside the same tight loop... doesn't seem like it would be much code?We could load that code into RAM and run it from there...Would be cool with a mod where the controller could simply load some external code and execute on boot...

author: 1audio
author_rank: Frequent Contributor
timestamp: October 28, 2021, 07:02:16 am
content: These efforts seem to have just stopped. I have an 8506A and just acquired a less than working 8506A/CT. I would really like a pointer to the GPIB software that is getting so much data from these.My 8506a and my 732A seem to agree to .2 PPM which seems like pure chance. The AC performance seems quite good. The specs actually seem to match what the reference thermal converters were capable of at the time.

author: dietert1
author_rank: Super Contributor
timestamp: October 28, 2021, 08:12:55 am
content: Yes i stopped working on that when i got an Advantest R6581T as a "present" of M. Reps.The fast GPIB communication mentioned above was using a proprietary GPIB to USB interface that we made in 2009. I guess you will reach similar speed with other adapters, e.g. a PCI card. What made a difference was blanking the meter display and using binary ADC data - doing the floating point conversion to physical units on the host. The poor 8080A in the meter is slow with floating point.Regards, Dieter

author: trobbins
author_rank: Frequent Contributor
timestamp: October 28, 2021, 11:03:44 am
content: With respect to the first post in this thread, another factor influencing comparison accuracy would be the 50 ohm termination used.Silversolder, what would be interesting is with the measurement made at the 8506A frequency extremes. One hassle with cross-comparing sine amplitude for the 3325A is that few 5-6 digit meters have frequency response below 1Hz and above a few hundred kHz (well not the meters I have, so I have to resort to a 3400A for anything approaching a MHz, and beyond).

author: 1audio
author_rank: Frequent Contributor
timestamp: October 28, 2021, 06:55:06 pm
content: I would be happy to make some measurements at the frequency extremes. Which extremes are you interested it? 10 Hz and 1 MHz?However the problem I have been contending with is confirming accuracy at those extremes. I have a 540B, 931B a collection of thermal converters and still have limited confidence in any of this. The accuracy and uncertainty of the converters is a real limit to any AC measurement.Ballantine converter spec:https://static1.squarespace.com/static/560bfd14e4b01fdcd8c45b5f/t/5a0a092f24a6942e842dd165/1510607151655/1395B.pdfFluke 540B specA55 specsThey are pretty close to the 8506A spec.This is from NIST on an effort to make a JJ DAC to improve accuracy on AC measurements:https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=323638506A low frequency measurements are limited by the time constants of the thermal converter. HF by all the frequency effects from amplifiers to skin effect which could influence the accuracy. Its a real and complicated problem.

author: SilverSolder
author_rank: Super Contributor
timestamp: October 28, 2021, 11:03:09 pm
content: Quote from: trobbins on October 28, 2021, 11:03:44 amI'm in the middle of reorganizing my work area, when it is back up again I'll give that a try...

author: 1audio
author_rank: Frequent Contributor
timestamp: October 29, 2021, 04:58:16 am
content: A short note re AC stability-I have a Fluke 510A at 2400 Hz connected to my 8506A for 24 hours now. I had carefully adjusted the 510A to match my 732A with the 540B. (This sounds like some strange secret code.) The 8506A has read from 9.99999 to 9.99960 during that period in an unheated garage. I think that is well within the specs for both instruments. The 8506A was last calibrated in 2012.I'll check its response at extremes in the next few days.

author: 1audio
author_rank: Frequent Contributor
timestamp: October 31, 2021, 08:51:52 pm
content: I checked the AC accuracy of my setup. I am using a vintage Optimation calibrator and have accumulated some of the essentials to calibrate it and etc. They all disagree to some level, which is to be expected. I chose to standardized on a Fluke 10V A55 thermal voltage converter since it has the least that can go wrong.I measured everything at 7V because measuring at 10V has the risk of an overvoltage pulse when switching ranges and switching down range and back will require a long wait for the converter to stabilize. What is encouraging is that everything is in tolerance except the 1 MHz range of the calibrator. This is actually quite a relief and I can move on to other endeavors (like calibrating the 100V range of the calibrator). . .

author: trobbins
author_rank: Frequent Contributor
timestamp: November 01, 2021, 03:09:17 am
content: Sounds like it was worth the effort to check to 1MHz limit end

author: Neptuni
author_rank: Contributor
timestamp: November 12, 2021, 08:05:00 pm
content: Hi folks,I now have a 8506A and a 8505A kind of working.The 8505 with RMS, ohms and current, the 8506 with ohms. Both instruments with GPIB.I also bought some spare cards for the future.The 8505 has software version 5.01 and the 8506 has 6.05Both instruments have the same issue, the reset procedure at boot restarts continously. If I press and hold the reset button on the frontpanel the instruments will come out of the reset cycle and work normaly.I have started to recap the instruments, but still work to do.Mikael, Sweden

author: m k
author_rank: Super Contributor
timestamp: November 13, 2021, 04:01:36 pm
content: You can quite easily trace _reset backwards but you most likely need an extender board.SilverSolder has all kind of exotic extras, maybe he can spare an extender.If you find one I'll probably need it after you so don't let it go.

author: SilverSolder
author_rank: Super Contributor
timestamp: November 14, 2021, 02:55:44 am
content: Quote from: Neptuni on November 12, 2021, 08:05:00 pmI have seen those kinds of issues (weird behaviour, or outright refusal to boot) when the EPROM is "weak", i.e. made by a programmer that is not up to the task. Maybe as a first experiment, try to re-seat the EPROMs on the processor board...The latest known firmware releases are 5.0.6 for the 8505A, and 6.0.7 for the 8506A.

author: 1audio
author_rank: Frequent Contributor
timestamp: November 14, 2021, 06:32:39 am
content: Does the eprom have firmware or just the cal constants? I have 2 8506A's now and I'm wondering if I should replace the eproms as a preventative.

author: SilverSolder
author_rank: Super Contributor
timestamp: November 14, 2021, 02:53:58 pm
content: Quote from: 1audio on November 14, 2021, 06:32:39 amThe EEPROM only has cal constants. The firmware is in a separate pair of EPROMs.

author: Neptuni
author_rank: Contributor
timestamp: November 15, 2021, 06:22:25 pm
content: Hi,The 8505 is ok now after removing and insertion of the IEEE and isolator card.The 8506 is still rebooting…Are there someone who could assist burning two sets of EPROM (for my 8505A and 8506A), it would be nice to have the latest firmware in my instruments, but I dont have access to equipment? I would if course pay for expensises and shipping.Mikael

author: Neptuni
author_rank: Contributor
timestamp: November 15, 2021, 07:26:00 pm
content: Found someone in Sweden that sells and burn eproms, so now a set is on the way in the post.

author: garrettm
author_rank: Frequent Contributor
timestamp: November 17, 2021, 05:24:13 am
content: Quote from: Neptuni on November 15, 2021, 06:22:25 pmIt sounds like the microcontroller isn't getting stable power during turn on. I had a unit that would exhibit similar behavior due to the 5V supply being too low and a bad capacitor.Check the +5V power supply (unguarded Vcc) at the Controller module (using test points TP1 and TP3) or at the PSU (this method does not account for voltage drop to the Controller). If it's in spec (5.05 +- 0.05 V), check the electrolytic caps on the Controller board. If those are okay, try raising the voltage a little bit higher, say 5.1V.Good luck with the firmware upgrade, I'm happy to see people using the bins I uploaded. That said, I doubt you will notice much--if any--difference in operation of the DMM using the new FW unless you are controlling the meter remotely. I've never seen a unit with 5.01 FW out in the wild. Your 8505A has the oldest FW I have ever seen for an 850xA. If you're willing, I would love to see photos of the DC Signal Conditioner module for comparison. Fluke revised the DC Signal Conditioner multiple times, and I'm curious to see what one of the earliest iterations looked like.

author: m k
author_rank: Super Contributor
timestamp: November 17, 2021, 10:33:35 am
content: It seems that somebody has read xDevs repair story since ebay was full of .156 spaced edge connectors.Thoug Vectorbord 3682 was best for the riser part I found, ready made HP extenders were also available but not very decently priced.But there is also an arcade world and they have a JAMMA adapter and it has .156 spacing, clean fingerboards are also available.So next idea for empty controller slot, a sniffer board.Nowadays an MCU can fit in empty space of skeleton type of DIL-socket, quite fast and easily implemented serial buses are also available.So the operation of a sniffer is mainly in the extra controller slot and from there a shielded serial cable connects to CPU riser of the main controller board.It can easily be also a concept and so implemented anywhere.Full software simulator implementation of a meter seems to be pretty irritable, occacionally.(personal opinion)

author: Neptuni
author_rank: Contributor
timestamp: November 17, 2021, 06:29:58 pm
content: Hi again,One set of EPROMS received today and now I have the 8505A working with 5.05 fw:)Yes, both 8505a and 8506a will be used with GPIB, so thanks for the files!I will look at the power supply and also the caps on the controller as well, the reboot has came back…I can post a picture on the conditioner board later.

author: garrettm
author_rank: Frequent Contributor
timestamp: November 17, 2021, 09:31:16 pm
content: Quote from: Neptuni on November 17, 2021, 06:29:58 pmAre you sure your new EPROMs have 5.0.5? 5.0.6 is the newest FW for the 8505A and 6.0.7 for the 8506A (though CT models use different FW, newest IIRC is 1.0.1).For future reference, an inexpensive programmer like the XGecu TL866II Plus will work with lower voltage UV EPROMs such as the M2764A. That said, it might still be cheaper to pay someone else to program them if this is a one-time job. I've found it helpful to have a programmer on hand, that way I can read chips and upload FW for others to use, test ICs (e.g. 7400 series), as well as programming ROMs. For 35 USD, I feel I've gotten my money's worth out of the TL866II.

author: Neptuni
author_rank: Contributor
timestamp: November 17, 2021, 10:11:17 pm
content: Correct, 5.06 is the new version. Thought about getting a programmer, but maybe later on.

author: m k
author_rank: Super Contributor
timestamp: January 03, 2022, 04:16:03 pm
content: Quote from: m k on November 17, 2021, 10:33:35 amSome reading comprehension again.My modules are not .156 spaced, they are .150 spaced.(or so I've measured several times)

author: SilverSolder
author_rank: Super Contributor
timestamp: January 03, 2022, 07:22:30 pm
content: Quote from: Neptuni on November 17, 2021, 10:11:17 pmI ran into a lot of issues with high voltage EPROMs, I ended up getting a baby Batronix programmer just for those. The TL866 type programmer works great, but couldn't cope with the high voltage chips... the chips ended up with "weak bits" that caused unpredictable behaviour in the controller. Took me a while to figure that one out, as you can imagine!

author: m k
author_rank: Super Contributor
timestamp: January 04, 2022, 03:39:02 pm
content: Somebody should explain those extra connections of P12 and P13.In place somewhere else?My DC Sgn Cond has a clear hole and metal edge of half of 4th pair of P12.Current Shunts has also a metal edge but AC RMS has not, AC RMS also has a slim 3rd connection of P13.Ohms has no hole nor metal edge or extra P13 stuff.Current Shunts has also some metal case close calls.Should I move or insulate it?

author: dietert1
author_rank: Super Contributor
timestamp: February 19, 2022, 04:11:03 pm
content: Today i got an image similar to the first post of this thread. We have two meters HP 3478A and a Keithley 2700, acquired some days ago. Both never calibrated by us. Image shows todays check/comparison measuring a 2x5 LM399 array i made some months ago.- The 3478A with green DIY backlight- The 2700 delivered a "Benchkit 2000" to a Keithley 2182ARegards, Dieter

author: Dave Wise
author_rank: Regular Contributor
timestamp: December 18, 2022, 02:47:12 am
content: Quote from: SilverSolder on February 07, 2021, 09:43:29 pmSkimming the rest of the thread I didn't see anyone revisit this. I just wanted to say, the first thing popped into my head was "Hardware Interface". I wouldn't be surprised if power-up code probed the hardware to determine what model instrument it was running on.FWIW,Dave WiseI did a lot of 8080 assembly-language programming in the early 1980's, working at Tektronix developing firmware for the 4025 and 4027 Graphics Terminals. If you ever displayed a pie chart, you can thank me for the polygon fill code. You wouldn't believe how many corner cases I had to work around to avoid crashing.

author: joeqsmith
author_rank: Super Contributor
timestamp: December 18, 2022, 04:13:45 pm
content: Quote from: Dave Wise on December 18, 2022, 02:47:12 amQuote

author: Dave Wise
author_rank: Regular Contributor
timestamp: December 18, 2022, 04:38:07 pm
content: Do you think it stands for Hardware Interface, or just "Hi there"?

author: joeqsmith
author_rank: Super Contributor
timestamp: December 18, 2022, 04:42:07 pm
content: I don't think it matters

author: bdunham7
author_rank: Super Contributor
timestamp: December 18, 2022, 05:50:26 pm
content: The design of the 850xA controllers evolved over the lifecycle of the instrument and I think the size of available EEPROMs went up quite dramatically over that time. I've attached a photo of the EEPROMs from a single-board controller from an 8506A, not a particularly late version. It has both 5.0.3 and 6.0.4, so obviously the EEPROMs have software for both models. Up until 5 minutes ago I would have told you that the hardware determination must be somewhere on the controller itself--IOW the EEPROMs may be shared, but the controllers were not interchangeable between models. I would have thought that because AFAIK the part numbers are different between the models.However, when I plug this controller into a mostly empty 8502A chassis, the display comes up "HI 5.0.3" before it goes to "ERROR". If I plug it into an 8506A with the isolator removed, it comes up "HI 6.0.4" then "ERROR". With the isolator removed it can't see the remaining modules, so it isn't the presence or absence of the Thermal RMS module that is doing it.I didn't try it in my 8505A because it is all buttoned up and calibrated. So there is something on the mainboard in the unguarded bus, not in the controller, that determines this. My 8506A wiring diagrams aren't great and I haven't found where it is. I suppose it could be in the front panel assembly?

author: Dave Wise
author_rank: Regular Contributor
timestamp: December 18, 2022, 06:42:32 pm
content: <pedantic> EPROM, not EEPROM.</p> The latter wasn't really a thing yet, and anyway is small capacity.In some of today's computers, BIOS reads a few GPIO lines to identify the board. The lines are grounded or pulled to Vcc according to board-unique manufacturing "stuff options". Evidently Fluke did this too, with a bit somewhere in the chassis or front panel to distinguish between models. Dust off your MDS-80 and trace the power-up code as it executes.Dave WiseHardware/Software EngineerTektronix, Information Display, 1980-1994Phoenix Technologies, 1996-2022

author: bdunham7
author_rank: Super Contributor
timestamp: December 18, 2022, 08:02:57 pm
content: Here are the front panel logic sections that would be involved. Can you spot the difference(s)? I haven't yet...

author: SilverSolder
author_rank: Super Contributor
timestamp: December 18, 2022, 08:55:20 pm
content: Quote from: bdunham7 on December 18, 2022, 08:02:57 pmThey are identical (I overlaid them in Photoshop).

author: bdunham7
author_rank: Super Contributor
timestamp: December 18, 2022, 09:05:33 pm
content: Well then, how does it know the difference? I suppose there could be something elsewhere, like in the switch scanning circuitry. The 8506A is a bit of an afterthought kludge in some ways, so I assume they just put something in somewhere for the code to look at in this specific instance. That's why the controller IDed as 5.0.3 in an entirely wrong unit--that's the default and it only goes to 6.0.4 if it sees that 'something' that we don't know about.Edit: Well, the front panel diagram in my 8506A manual is labeled 8505A and appears to only have the switch/light labels for that. The one in my 8505A manual actually has a flag and some alternate diagrams for the 8506A, but is missing a large part of the front panel switch section.

author: m k
author_rank: Super Contributor
timestamp: December 18, 2022, 09:19:02 pm
content: Heh,SilverSolder educated me once.tip,don't be narrow minded.

author: m k
author_rank: Super Contributor
timestamp: December 19, 2022, 11:21:18 am
content: J6.I have two 8506A manuals, March 1983 with multi page schematics and March 1983 Rev 1. 10/85 without any.The original has 8505A front panel schematics but different and 8506A front panel picture in component section, neither will help.The revisited one has a correct picture as a last page, component section picture is also correct.The revisited one has also Isolator without Bus Interconnect in component section when original has Bus Interconnect and Isolator is still an Option.For 8505A I have only one manual, March 1983 Rev 2. 2/91, there you have an explanation.It's also only manual where I have those new 8506A style mode LEDs.

author: bdunham7
author_rank: Super Contributor
timestamp: December 20, 2022, 05:00:12 am
content: Found it.

author: m k
author_rank: Super Contributor
timestamp: December 20, 2022, 11:28:41 am
content: Should we go on to the Thermal AC.8506A has a new front panel and schematics has Thermal8506A-1026 A11A1 Attenuator8506A-1025 A11A2 AmplifierLeft of Attenuator schematics page has a table SELECTED SET, there few components have different values.Center of that schematics has a shielded cable to Amplifier board, left of it is U6 pin 7, level with that and inside the shielded cable the drawing has an extra spot of 2x2 scan pixels.Right from the cable is U15 and its pin 3, it also has an extra spot.8502AT schematics has Thermal8502A-1026 A30A1 Attenuator8502A-1025 A30A2 AmplifierThere SELECTED SET table is missing but component values match the PRIMARY SELECTION of 8506A table.Both earlier mentioned spots are also there but scan has a lower quality.I have not checked but prediction is that those two schematics are identical.8502AT front is a bit less pictured around the net so its nuances are unknown.What I have seen indicates that its buttons compared to 8502A are the pretty same.Observation level has been blurred text, but model 8502A/AT instead of 8502A was solid.Included pages are from Service and User Manual Supplementhttps://www.opweb.de/english/company/Fluke/8502AThere greetings text is said to be HI-3.0.0 and configuration C245A 8 (manual has C2454A 8 ) so Cal Memory is also present.Error LLLLLL is also there, it's for approx. 5% below nominal input voltage.

author: m k
author_rank: Super Contributor
timestamp: December 20, 2022, 11:30:18 am
content: Power Interconnection module with 400Hz divider is also there, divider is a counter but can't find any details, even that I'm quite sure I've also seen its schematics.