none

HP 1652B Scope/Logic Analyzer




Power Supply Repair

HP1652B logic analyzer
My HP1652B logic analyzer in use

I had been using my HP 1652B scope/logic analyzer for many years, and it was with sadness one day in 2015 that I found out it would not power up and had a problem.  I could hear a soft ticking sound and smelled a burning smell.  I did some searching and found only this account of someone repairing theirs.  In that case, it appears the capacitors had gone bad.  I hoped mine would be the same issue and started the repair.

With the benefit of hindsight, the best way to access the power supply module is as follows:
HP1652B parts
Exploded view of the HP1652B from the Service Manual.

You should then see the image below.

HP1652B Power Supply
Photo of the component side of the board.

Starting with the red connector in the top left and going roughly clockwise, this is the function of the parts as far as I can tell (note 'left'/'right'/'top' etc refer to the orientation in the above image):
I first decided to try and isolate the fault by disconnecting most of the power diodes from their output heat sinks.  With this process I was able to isolate the problem/short to the bus that is near the bank of 8 identical filter capacitors.  These are 1000uF electrolytics.  The vertical 'fin' near the transformer appears to be one of its output terminals, and four diodes bridge from this fin to two horizontal ones adjacent to the octal cap bank.  I removed the bottom four caps in this octal bank and saw quickly that there was a short between the case of C8 and a trace below.  There was a prominent burn mark on the trace.  See below for an image.

Damage to power
        supply
The damage/short area on the board is right by C8.

I tested all four of the capacitors from C7 through C10, and found they all had a good value (about 1100uF).  Their ESR all tested to be ~0.05 ohms, and their insulation resistance was in the MegOhm range.  As a result, I judged them all undamaged and installed them back into the board.

On power up, the unloaded power supply board still produced a soft ticking noise, but no burning smell.  I reasoned that the Switched Mode Power Supply may need a minimum load, and was perhaps shutting down due to lack of load.  The voltages I measured on the output connector was as follows.  Top reading is on the left most terminal:
I then powered down and plugged in the scope.  On subsequent power up, success!  The fan spun up and the passed self-test.  I then reinstalled the disk drive and the cover and the test after that the system worked normally.

Transferring Data
The analyzer has a 25-pin female RS-232 port in the back, and I decided to see if I could transfer data gathered by the analyzer for further processing on a PC.  With some experimentation I found out that I could capture the data, as many as 1024 samples with a single pod.  Adapter cable information is below.

Male 25 pin D (LA) Female 9 pin D (PC)
2 2
3 3
7 5
6 looped back to 20
Adapter to connect the serial output to a PC

My notes on setting this up (on Logic Analyzer):

- I/O -> I/O Port Configuration.
- Use 9600,8,N,1 speed
- In "Printer Information", Select "Alternate"
- Setup LA for "State" and "State Listing" display.
- I/O -> Print All.  Then "Select"
  - You can hit "Stop" to Halt

Example capture stream with Hyperterm:

   PIA          -   STATE LISTING                                      

  Label   >  R/_W     RS       DATABS   SPARE    CS               
  Base    >  Symbol    Bin      Hex      Bin      Hex               
   +0000    READ        01       00        1        5                          
   +0001    WRITE       01       00        1        5                          
   +0002    WRITE       00       7F        1        5                          
   +0003    WRITE       01       34        0        5                          
   +0004    READ        00       00        0        5                          
   +0005    WRITE       00       00        0        5                          
   +0006    READ        11       00        0        5                          
   +0007    WRITE       11       00        0        5                          
   +0008    WRITE       10       FF        0        5                          
   +0009    WRITE       11       34        0        5                          
   +0010    READ        10       00        0        5                          
   +0011    WRITE       10       00        0        5                          

The above is a capture of the pins on a PIA on a System 9 board upon startup.

Floppy Drive Emulation
Being mechanical, the floppy drive has always been a concern for me.  In July 2024, I started having problems with reading a few of the disks that have always worked fine.  The original floppy is the Sony 3.5" MP-F52W-30 that spins at 600 rpm and is Double Density (DD).  I found out that there are a few floppy drive emulators and the one most often used and available for a low price on Amazon was the Gotek SFR1M44-U100.   

One objective I had was to figure out a way to have _both_ the floppy and the Gotek connected, and switch manually from one to the other.  In this manner, I could copy over all the configuration and setup files that I had on my floppies.  Fortunately, these drives come with enable lines (called Drive Select in the manual), and my intent was to use these and a manual toggle switch to go from one to the other. 

I worked on my own at first and tried the factory firmware that comes on the Gotek.  That did not succeed and the Analyzer did not recognize the drive.  It would beep after power up with a Disk Error.  In my research I found that there are some firmware alternatives such as "HxC" that are developed by private individuals.  And although there were no details, someone had interfaced an HxC to a 1652B in the past. 

HxC has a powerful firmware customizer that allows you to put in all kinds of options to modify the drive behavior, which is useful as the Sony drive is not exactly the common PC format.  Despite my best efforts, the closest I got was to be able to boot off the floppy, switch to the Gotek, and format the Gotek.  But copying files to it still did not work.  In desperation, I reached out on the HxC user forum, and Jeff the administrator was able to help me solve the problem.  The exchange is documented in this thread.  In the end, the problem was found to be specific to the MCU chip on my Gotek (QFN32 version of the AT32F415).  Jeff had to move the Disk Change line to an unused pin, and I was finally able to use the Gotek to boot from and store my user files. 

To replicate this setup, you will need to modify three areas: 1) Ribbon Cable, 2) Gotek, and 3) the USB stick.

1. Preparing the ribbon cable
Per page 12 of the datasheet (link below), we can see that the power feed is integrated onto the 34-pin drive connector.  The first thing I had to do was modify the ribbon cable to interrupt and intercept the power.  I did this by purchasing a 34-pin male-female extender, and then pressed on a new 34-pin IDC female connector into the middle of it, which will be the tap for the Gotek. 

Gotek ribbon cable
The "Y" cable made from a male-female 34-pin extender.

The following mods were performed:
  • 5V was interrupted and wired past the middle connector.  Power was split off for the Gotek (red).
  • 12V was interrupted and wired across to supply the floppy drive (yellow wire).
  • Pin 1 (Disk Reset) was interrupted and wired across the Gotek.  Since the Gotek grounds pin 1, it disrupted eject detection.
  • The bypass line for Pin 1 is connected to Gotek Pin 4.  On the board, this line goes to J8-JK terminal.
  • Pin 10 (Drive Select 0) was interrupted and used to select between the two drives.  Pin 10 of the desired drive is grounded by a toggle switch to select it.  The Logic Analyzer does not actively toggle the Drive Selects and always has pin 10 low.
  • Ground/Return (three lines) were tapped for the Gotek power connector (black).
  • I also added a second female 34-pin IDC connector so I could monitor the signals with another Logic Analyzer (Monitor).
The technique I used was to gently use a razor to part two conductors and then observe closely how they separate to make sure you don't cut into the insulator.  The above interrupts 12 of the 17 conductors of one row.  It looks a bit messy but doing it this way is the best way I know of doing this many splices.

The Monitor connector above was very useful in allowing me access to figure out why the initial code loads were not working.  I connected a second logic analyzer to this location to monitor the control signals.

waveforms
Example waveforms showing signals on the ribbon cable.  It provided Jeff from
HxC insight into what the interaction was with his code and the Analyzer.
More in the HxC forum thread.


Two drives connected to the Logic Analyzer.

In the image above, you can see the two drives plugged in.

2. Preparing the drive
I followed the instructions on the HxC site to program a bootloader onto the chip, and programmed custom firmware from the HxC site for the drive.  This writes over the factory firmware.  I then followed Jeff instructions and wired Pin 4 on the ribbon to an unused MCU input.  This line does not exist in a normal PC disk drive but is used by the Analyzer to know when a new floppy has been inserted.  The only other mod is to insert the S0 jumper to connect the above signal through.  There is a file package in the links below with more details.

3. Preparing the USB stick
I formatted a USB stick with FAT32 and copied over the configuration file (.CFG) and the .HFE file that Jeff sent me to it.  The bootable HFE file has the same revision of System file that I have (rev 2.11), but this also includes the "Inverse Assembler".  I have not encountered this before and do not know what that is.  But I was able to use this system image just fine after deleting the Assembler files.  Each HFE file forms an image of a floppy, and you can have many in one USB stick.  The images are selected by pushing the black buttons on the Gotek and the numerical display will show which images the Analyzer will see.  This is super convenient compared to swapping out floppies.  The HFE files can also be backed up on the PC.  In my situation, disks 0 and 1 are boot images, disk 2 and 3 has my Logic Analyzer configuration files.  Disk 4 boots the system up in scope mode, and Disk 5 has scope mode configuration files.

In use
The image below shows the finished single drive configuration after the development and the copying over of the configuration files.  I also shot a video but of the dual drive configuration to show the disk switching in action.

finished HP1652B LA with Gotek
HP1652B Logic Analyzer with Gotek drive and HxC firmware installed.
The result looks very clean.

YouTube video of the Gotek in a dual-drive setup

Software Capture of Screen Print
The other mechanical input/output of this old device is screen captures.  It supports printing via serial (or HI-IB) to a Thinkjet printer.  I decided to try and see if I could convert this stream to an image.

I first started with the capture of the serial stream and pulled the result up on my Neo Hex Viewer.  From what I could see on page A-2 of the Thinkjet Owner's Manual, the graphics commands are preceded by 6 byte header consisting of "<ESC>*b74W" (hex 1b,2a,62,37,47,57).  I could see these packets in the file, but the packet is a lot longer than expected and interspersed with additional random bytes.  See below, with the benefit of hindsight, I know the first (top) line of the image is a line of black pixels.  So the packet should only contain 0xff bytes.  But there are many characters interspersed.


Hex view of one packet in the captured stream.

Looking at the viewer above, you can see the packet header in the top-left.  After the 'W' is the start of the pixels (top row of image), and they should all be 0xff.  Counting the number of good 0xff bytes, we have 74 (decimal).  That matches the expected quantity in the packet header.  Total length of the packet is 192 (decimal), or 118 extra bytes.

The first rendering of this stream produces the image below.  You can see these columns of garbage data breaking up the image.  What is interesting is that these are perfect columns.  So they must be produced by the Logic Analyzer and not the PC or cable doing the capture.