Products > Test Equipment

Tektronix TDS Scope Field Adjustment Software reverse engineering

(1/11) > >>

TERRA Operative:
Ok, here we go. Time to try to do away with National Instruments PCII GPIB cards and PC motherboards with ISA slots etc...

This thread is for anyone who is willing and able to help with the reverse engineering and recreation of the Tektronix Field Adjustment Software (FAS) for the TDS line of oscilloscopes.
To start with, this will cover mainly the TDS500/600/700 series scopes, with addition of other lines as testing on those scopes becomes possible.
The TDS200 series scopes do not require any special software as the adjustment procedure is done entirely from the scope controls, but it may be possible to integrate them into our project for automated testing in the future.

Here is my preliminary scope for the project:

- Platform agnostic - The ability to easily compile for the popular operating systems (Windows, Linux, Mac) I have no allegiance to any particular programming language, whatever works best.
- Self contained - No need to rely on other software, browsers, etc, to keep the dependences to a minimum. It's no good if we rely on a 3rd party app that is depreciated or updated to incompatibility a short time later.
- Plug-in type system for scope adjustment procedures - I'm thinking a user editable text file per scope model that defines the test procedures for that scope including switching matrix for automated testing. This will make adding future scopes much easier, maybe even non-Tek scopes too.
- Plug-in type system for GPIB/USB controlled test gear for automated adjustments - As above. This will allow for the use of whatever suitable equipment for adjustment that users have on hand.
- A user friendly UI
- A way to generate a test report at the end for posterity and record keeping.


Now, I have no experience with software development, and I realise that it's simple to make a list of demands. :D So, I'm hoping there are some others out there that know software enough to get on board and help figure this out.
I have a good lot of TDS600/700 series scopes for testing with, and can work on more of the hardware side of things.

So far I have used 'IDA Pro Free' to somewhat decompile the TDS700D FAS to find the current list of supported test equipment. Not entirely sure what I am doing, but I was able to stumble through to this list:


--- Code: ---These instruments listed below appear to be compatible with the Tek TDS scope Field Adjustment Software.
The TDS700D .exe file was decompiled to discover this list, and other FAS packages haven't been checked, but the list should be similar.


* Possible allowable categories for entries in 'g-config' file
Dc Dm Osc Sc Cg Pm Sa Sm Atten Cal Fg Ps Sg Rt


* Categories with listed instruments (items without a description are currently unknown)

-Oa
oa5002 : Tek OA5002 1100 to 1600nm singlemode fiber optic attentuator TM5000
oa5012 : Tek OA5012 750 to 1600nm 50um multimode fiber optic attentuator TM5000
oa5022 : Tek OA5022 750 to 1600nm 62.5um multimode fiber optic attentuator TM5000

-Atten (Attenuator)
Tm1095 : Tek 067-1095-99 attenuator TM5000
At5010 : Tek AT5010 50ohm 18GHz programmable attentuator TM5000
At3201t : API/Weinshel 50ohm 3GHz attenuator (With programmable controller)

-Cg (Calibration Generator)
cg5001 : Tek CG5001 Programmable calibration generator TM5000
cg5010 : Tek CG5010 Programmable calibration generator TM5000
cg5011 : Tek CG5011 Programmable calibration generator TM5000

-Dc (Digital Counter)
dc5010 : Tek DC5010 350MHz programmable frequency counter TM5000
dc2465
hp53131a : HP 53131a 225MHz Universal Frequency Counter/Timer

-Pg (Pulse Gen)
wt9500 : WaveTek/Fluke 9500 calibrator

-Ps (Power Supply)
dp8200 : Data Precision 8200 DC volt/current standard
dw4800
fl5100b : Fluke 5100B calibrator
fl5700a : Fluke 5700A multifunction calibrator
ps5004 : Programmable precision DC power supply TM5000
ps5010 : Tek Programmable triple DC power supply TM5000
wt9100f : WaveTek/Fluke 9100 calibrator
wt9100r : WaveTek/Fluke 9100 calibrator
wt9500 : WaveTek/Fluke 9500 calibrator

-Rt
gp700 : Dicon fiber optic switch
hp3488a : HP Switch control unit
rd1200
rd1264
si5020 : Tek DC - 18 GHz microwave switcher TM5000
tsi8150 : Tek Relay driver card mainframe
wt9500 : WaveTek/Fluke 9500 calibrator
vx5020

-Sg (Sinewave Generator)
aps1
aps1b
sp5030
fg5010 : Tek 20MHz signal generator TM5000
fl606 : Fluke 105GHz RF Generator (fluke 6060?)
fl5200a : Fluke programmable AC Calibrator
hp8642a : HP 100kHz to 1050MHz signal generator
hp8656a : HP 100kHz to 990MHz synthesized signal generator
hpesg : HP ESG-series analog RF signal generator
mi2024 : Marconi 2024 9kHz to 2.4GHz synthesized signal generator
sg503 : Tek Leveled sine wave generator TM500 (No GPIB control)
sg504 : Tek Leveled sine wave generator TM500 (No GPIB control)
sg5010 : Tek audio signal generator TM5000
sg5030 : Tek Leveled sine wave generator TM5000
smt03 : Rohde & Schwarz 5kHz to 3GHz RF generator
wt6645b40 : Wiltron 10Mhz to 18GHz 6645 synthesized signal generator
wt6722a20 : Wiltron 10MHz to 12.4GHz 6722 synthesized signal generator
wt6747a20 : Wiltron 10Mhz to 18GHz 6747 synthesized signal generator
wt6759b10 : Wiltron 10Mhz to 26.5GHz 6759 synthesized signal generator
wt6769b2u : Wiltron 10Mhz to 40GHz 6769 synthesized signal generator
wt9100r : WaveTek/Fluke 9100 calibrator
wt9500 : WaveTek/Fluke 9500 calibrator

-Dm (Digital Multimeter)
dm2000
dm2465
dm5010 : Tek 4.5 digit multimeter TM5000
dm5110 : Tek 4.5 digit multimeter TM5000
dm5120 : Tek 6.5 digit multimeter TM5000
fl8840a : Fluke 8840A 5.5 digit multimeter
fl8842a : Fluke 8842A 5.5 digit multimeter
hp3456a : HP 3456a 6.5 digit multimeter
hp3457a : HP 3457a 7.5 digit multimeter
hp3478a : HP 3457a 5.5 digit multimeter

-Fg (Function Generator)
fg5010 : Tek 20MHz signal generator TM5000
hp3325a : HP 20MHz function generator
hp8116a : HP 50MHz 8116A pulse/function generator
wt9100r : WaveTek/Fluke 9100 calibrator
wt9500 : WaveTek/Fluke 9500 calibrator

----------

Additional instruments mentioned in .exe, but maybe only for on-production line diagnostics and troubleshooting or maybe not implemented?

Sa
hp3585a
hp6627a

Sc
scalcf1

Pm
ma6960
hu47770h
hp436a
hp437b
nrvs
hp60500

Sw.Sm.Osc
osc2465
mi5010

--- End code ---


From first glance, it would appear that Tek has recycled a lot of code between versions of the FAS for different models of scopes. If we can determine the algorithms used to calculate the calibration offsets, I think they would be similar between scope models.

Basically the adjustment procedure appears to be as follows:

FAS asks user to apply test signal to scope -> User applies signal and hits <return> -> FAS directs scope to take measurements -> FAS acquires data and calculates offsets -> FAS loads offsets into scope EEPROM

The reading and writing process of the EEPROM is known as per this thread also it and other commands and data should be able to be determined from reverse engineering the FAS software and/or sniffing the GPIB comms.



So as it stands now at my end of things is I have a PC and test gear that complies with the original Tek requirements that I am able to successfully adjust a TDS714L scope.
I have just ordered another motherboard with two ISA slots to enable me to run automated cal procedures (Tek specify a second GPIB card for the automated test gear) once I get a second National Instruments ISA PCII/IIA GPIB card.

Any suggestions on a GPIB bus sniffer? :)




[EDIT] Link to Google Drive folder of all FAS versions I have collected so far:

https://drive.google.com/drive/folders/1nzU_EPE-w0SQ8PnY95D_j9rpL8Mu9YFx?usp=sharing


TDS 500/600/700 Programmers Manual links:
TDS 410, 420, 460, 520A, 524A, 540A, 544A, 620A, 640A, 644A, 684A, 744A, & 784A - 070-8709-06
TDS 410A, 420A, 460A, 520A, 524A, 540A, 544A, 620A, 640A, 644A, 684A, 744A & 784A - 070-8709-07
TDS 410A, 420A, 460A, 520B, 540B, 620B, 644B, 680B, 684B, 724A, 744A & 784A - 070-9556-00
TDS 420A, 430A, 460A, 510A, 520C, 540C, 620B, 644B, 680B, 684B, 724C, 754C, & 784C - 070-9876-00

TERRA Operative:
A few things of note regarding the test equipment required for the adjustment procedure:

The voltage standard only needs to go to +/-9.5V, so something good for a little more than that will be fine, no need for anything that hits hundreds or even 1000 volts at all. It does need 5 digits of resolution though.
A current source good for 20mA at 5 digits resolution is also needed too.
I think even an adjustable linear regulator like an LM317 with a 10 turn pot measured on a 5.5 or more digit multimeter would be fine for this part.
(I was hoping my Advantest R6144 would be suitable, but it lacks the capability in the current ranges, voltage output is ok though)

A multimeter with a corresponding number of digits (5.5 digits or more) is also needed to enter voltage values when applying the test current.

For a 500MHz scope, the sine generator needs to be capable of 505MHz at  +16 to +17 dBm (4V P-P), for a 1GHz scope, the sine generator needs to go to 1050MHz at the same output level.

DC1MC:
Well, I want to be the first to congratulate  :clap: because I was the first to instigate  >:D.
Some say that the 1000miles journey starts with the first step, this is true, but is still the first step, to reach the end of the journey a lot more needs to be done, here are my organizational proposals:

- a (maybe not very public) repository of the initial software and the results of reversing, I think a private GitHub where access is granted on a one by one basis. I think that sooner, or later, some manufacturer/large or even small calibration lab legal vulture or hyena will be sicked against the project to not let their revenue stream diminish.

- a priority based list of what sw does and why it needs to have its functionality reproduced, to know were to start and what to strive for. That may sound obviously clear for the people that uses frequently the sw, but for me is not clear yet what is needed, and don't think I'm alone.

- a (very public) repository where extracted procedures are transformed in general public useful applications or libraries. We could even use Compaq's "clear room" approach and have as little as possible contact between the two groups.

- a Diversity, Equity and Inclusion policy, no, not the woke shite with CoC and other crap, but if some other useful program is found that is not necessarily a Tek FAS thing it should be included as well, without discrimination  ;D.

- a rewards program, passion and interest are OK, but a piece of gear or a bit of cash goes a long way for a beginner in the field that is eager to help but doesn't have many resources.


Now for a technical bit: GPIB sniffer:

The mother of all protocol decoders Sigrok:
http://sigrok.org/wiki/Protocol_decoder:Ieee488

and as HW for the soldering happy people:

GPIB Sniffer board contributed by ARTAG and improved by  Jay_Diddy_B, as well as AND supported by Sigrock !!!
https://github.com/artgodwin/Sigrok-sniffer

Is cheap and ready for JLCPCB ;) I will order some boards and distribute them in DE if anyone around is interested.

That's it for my first post.

PA0PBZ:
Subscribed!  :popcorn:

I don't have a TDS but experience with reverse engineering so maybe I can help out. I also found a thread here on the forum that contains some interesting information, it looks like some people already started on the same problem: https://www.eevblog.com/forum/testgear/automating-tektronix-field-adjustment-software-for-tds-oscilloscopes/

 

TERRA Operative:
I agree with all of the above.
I think having a 'modular' framework where the core software can be configured for multiple pieces of equipment other than Tek scopes is a good idea too. It will make it more useful, more used and hence more likely to stay alive. :) However, we have to start small and get it working first, but design with a view to expansion.

I'm not 100% up with how github works. I do have an account but I basically never use it, so I may not be the best person to take charge of that with versioning and forks and all that stuff.

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod