Agilent N9340B Handheld Spectrum Analyzer Repair and Teardown

I received an Agilent N9340B 3Ghz Handheld Spectrum Analyzer with a note that it passes all self-tests but does not respond to input signals. I took the gamble that it’s the RF input connector got disconnected somehow.

I opened up the case and noticed that the 40Mhz cable was unplugged, so I was half-correct. I connected it and got a signal at the precise frequency, but the amplitude doesn’t look quite right. It’s around -20dB off. When I scanned it across the full 3GHz band, I noticed the amplitude roll-off when I scan below 800Mhz, and I got very little signal left when I get to somewhere near 10Mhz.

I tried running a user calibration with a 50Mhz CW source but it failed amplitude calibration. Apparently the unit is not fully working. No self-test errors though.

So I opened up the unit and the RF section. The front side of the board doesn’t have any visible signs or unusual smells, so I suspected the improper gains is caused by the input attenuator HMC307:

I was about to order the chip, but because of the lead time, I decided to just take a picture of everything and analyze it off-line:

After removing the screws holding the N-type terminal so I can get to the back side of the board for taking pictures, I noticed the RF in connector just fell off the board with the pad:

That means the RF in is not touching the board! I resoldered the connection after I put the board and the connectors back to the RF module slab. Once I put unit back together, I turned it on again and everything works perfectly! The power level is flat and within 1dB of what my 8648C pumps out. I did the user amplitude calibration again, it passed, and everything was spot on!

Loading

Tektronix TDS 500~800 series Color CRT adjustments

For TDS 500~800 series, a batch of CRT driver boards, color and mono, regardless of how heavily they are used, have bad flyback transformers. After turning the unit on continuously for half a day, the screen might stretch and disappear.

If you have a matching CRT driver board with a CRT tube, I recommend instead of swapping the CRT driver (seemed more straightforward), extract the flyback transformer from the donor board instead. The reason is that the adjustments needed from replacing the flyback transformer is far less than re-tuning a different CRT driver board to match the tube.

It’s impossible to tune the CRT driver board while it is in the case, since the processor board covers it during operation (unless you have special cables for the Acq/Proc interface to replace the interconnect PCB card), it’s done ex-vivo like this:

I bought a ribbon cable extender and built a 2-pin jumper extender by salvaging them from CRT driver boards with toasted flyback transformers:

The first thing to check for is the +21V which is used to generate many voltages across the board (pun intended here): it affects brightness, scale, offset and linearity everywhere. If there’s any adjustments to be made, this need to be done first.

This voltage can be tapped by hooking the positive (red) lead to the center (output) pin of LM317 (3-pin linear regulator) at U90. If you have an alligator clip instead of a grabber, you can also hook it up to ‘pin 4’, which is the body of the regulator.

You can pick many spots for the ground pin. Since I’m using a grabber, I’d pick another big 3-pin IC sitting on a heatsink for the ground lead. In this case, it’s Q10, the transistor that drives the flyback transformer. It’s the pin nearest to the short edge of the board (behind the red lead, sorry):

Here’s a picture of blank board showing how many trimpots are there:

Only the brightness and contrast dials are documented in the service manual. The rest, I had to locate them in the schematic one by one.  Before that, I kind of figured out most of them by trial-and-error but had a few of them wrong, especially the voltages (there are three: +21V, screen and HV adj.): they all have the same effect. There are also some more obscure trims like center focus and horizontal focus (variable inductor). Now I know exactly what each dial does.

It’s hell of a lot of work to figure this out. I have some new old stock CRT straight from Tektronix at Beaverton, and it’s the reserve to support customers who bought color TDS 500~800 units from me. Almost all used units out there have problems (or going to have problems soon), and so far I’m the only one selling units with 1 year warranty (extendable to 3 years for extra).

If your unit is not under warranty included when you bought from me, and want one of these new color CRT tubes with shutter, I’ll almost require you to send your unit to me for installation unless you can guarantee that you can figure it out without my help. It’s $500 full-service with the tube included. Call me at 949-682-8145.

 

Loading

MSI-based installer silent install summary

Recently I need to reorder the pre-req installation for a InstallShield installer package that has pre-reqs and MSI inside it. That means I’ll have to extract all the pre-req EXE and MSI files and write batch files to call them, then the installer again for the core software, all done silently.

I learned:

  • Administrative install (/a switch) only extracts the core firmware, not the pre-req files
  • /b”<target-folder>” extracts the pre-reqs as .prq files
  • Need to steal the extracted .exe files by monitoring temporary folder as they go
  • /s doesn’t always silent installs. Some with MSI packed inside the .exe files requires the ‘silent’ request passed to the MSI by adding /v/qn (/v passes the switch to the MSI, which is /qn, which means silent in this case)
  • .NET before v2.0 requires different switches to install without prompting for license agreement, namely
    /q:a /c:"install /q"

     

 

Loading

Remove McAfee Enterprise Antivirus from Windows

I was asked to install McAfee Enterprise Antivirus v8.8 as a favor to somebody else’s client, turns out this piece of 5h1t is a nightmare.

After I installed the agent, the main software won’t proceed to install. I looked up error code 1603 in the MSI log and upgraded a fresh Windows XP to SP3 and updated Windows Installer to 4.5, set the time back (somebody suggested potential certificate problem) and it still fails.

Without being compensated for my time, I gave up and tried to uninstall it through Add/Remove programs. Now the uninstaller complained that the program cannot be uninstalled in managed mode. Normally, I’m quite understanding towards programmers since their job is wrestling complexities, but this time there is no excuse: if you add an item in Add/Remove programs, people are expected to be able to uninstall it directly from there by definition!

After some digging, being unable to uninstall McAfee is a known common problem. The IT-crowd at University of Oregon has written an article with the solution. It boils down to running:

C:\Program Files (x86)\McAfee\Common Framework\frminst.exe /remove=agent

I bet even stoners are more competent packaging the software for release! How much productivity across the world they have drained by shipping out an incompetent software bad as malware!

Stay away from McAfee. Won’t install it even if they pay me $8k. Refuse to service anything McAfee without charging an exorbitant sum, or you won’t make your lost time back.

 

Loading

Python 3 Scientific Installation To-do List

Although I am a big fan of MATLAB, it’s time for me to really try out Python so I can fairly compare the pros and cons of both languages.

The first tiny hurdle for Python is its scattered installation process for Windows. I thought Python(x,y) will give me everything in one place, but turns out the Spyder is stuck in Python 2.7. To install Python 3.7, I’ll need to do it from scratch. Here are the steps:

  1. Download official Python 3. You will need that for the “pip” package manager located in {python37}/scripts
  2. Update PIP first to avoid complaints. You can run it anywhere in command prompt
    python -m pip install --upgrade pip
    You don’t call PIP to update PIP because you an executable cannot write itself in WindowsNote that for 32-bit Python, you might run into Python37\python.exe: No module named pip, so you might want to use ensurepip to bootstrap: python -m ensurepip
  3. Now I’ll need Spyder3, a MATLAB-like IDE. Qt5 is one of the pre-req:
    pip install PyQt5
  4. And finally Spyder3
    pip install Spyder
    pip does not install icons in your start menu. So I’ll need to manually create a shortcut
    {Python37}/Scripts/spyder3.exe
    .py files are not associated with Spyder3 (normally it’ll just directly run the python script with python3). I usually manually change the association in Windows to Sypder3.
  5. PyVISA is the analog of “Instrument Control Toolbox” in MATLAB.
    pip install pyvisa
    MATLAB’s Instrument Control Toobox also cover serial ports, which is done in Python by PySerial
    pip install PySerial
  6. Numpy is included with scipy:
    pip install scipy
  7. Turns out that only NumPy and IPython is installed with SciPy, not the entire ecosystem.
    pip install pandas
    pip install matplotlib
    If you know the power of dataset/table objects in MATLAB like I do, you’ll jump for dataframes in panadas.
  8. SymPy, the analog of MATLAB’s symoblic math toolbox, needs to be installed separately
    pip install sympy
  9. IPython gives the ‘notebook’ feel in Mathematica, MathCAD and Maple, where the returned results are directly pasted in the same area where your command/syntax is. I rarely cared for it because I usually want the max visual real estate for my plots.

Update: I tried Anaconda (2019.03, Python 3.7.3 x64) which supposedly have everything in one place, but the Spyder it included crashes right out of the box. Jyupter is confusing as it relies on the web-browser to render the results. Feels patchy and doesn’t look like it adds more than the steps above. Uninstalled it without hesitation.

Update: To update the packages, tack -U switch at the end of each of the above pip install commands. Remember to follow the order of dependencies (e.g. update PyQt5 before Spyder)

Loading