GELHAUS.NET

ScopeSaver

This is a little Cocoa application that can save and restore configurations to a Hewlett-Packard 1630 or 1631 series logic analyzer. These are very nice analyzers for the electronics hobbyist, but creating setups for them takes a long time and they do not store configurations internally. This application will read the current configuration, including signal names and assignments, and store them in an XML file on your Mac's hard drive for later reuse.

It communicates over an RS-232 serial port. My particular analyzer is an HP1631D, which has 5 pods and two analog scope channels. I have only tested it on my unit, but because it tailors the size of the configuration records stored to the connected scope, it should work with all of the following units:

HP1630A
HP1630D
HP1630G
HP1631A
HP1631D

Download

ScopeSaver uses Core Data and therefore requires OS X v10.4 (Tiger) or higher.

ScopeSaver.dmg (139kB)

To install, mount the disk image and drag the ScopeSaver application to the desired folder.

Communication with the Scope

Since this application uses a serial port, but the logic analyzer has a GPIB port, a converter is necessary. I use a National Instruments GPIB-232CV-A serial-to-GPIB converter. My Powerbook doesn't have a serial port, though, so I also use a Keyspan USB-to-RS232 converter. When this Keyspan converter is plugged in to one of my Powerbook's USB ports, the device file /dev/cu.USA191b1P1.1 is created. ScopeSaver detects serial ports on startup, so the Keyspan converter needs to be plugged in before starting the application.

Here is a diagram of my system setup:

The serial port settings it uses are: (set automatically by ScopeSaver)

baud:9600
data bits:8
parity:none
stop bits:1
flow control:RTS/CTS

Usage

To use, make the physical connection to the scope, and start up the application. It will detect the available serial ports. Select the appropriate port with the drop-down box. You can test the connection by clicking on the Identify or Beep buttons. Identify should return the scope's name (e.g. HP1631D). Beep will cause the connected scope to beep. Reset will reset the scope, which I found useful during debug of the application.

To save the current configuration, click the Save current configuration... button. It will prompt for a name to assign to the configuration, then attempt to read the configuration from the scope. It does take a few seconds, so be patient.

The configuration can be restored to the scope by establishing connection, selecting the desired configuration in the list box, and clicking on Restore selected configuration. This will overwrite the existing configuration on the scope.

Finally, to remove configurations from the app's database, highlight it and click on Delete selected configuration...

Limitations and Bugs

This was a quickie app, and as such, it isn't highly polished. It gets the job done that I needed to do, which was saving and restoring scope configurations. As a side benefit, I learned how to use Core Data in a small-scale application.

It is single-threaded and uses blocking I/O, which means that it can hang if it fails to communicate with the scope or if it receives data of a length other than expected. It is also unresponsive while a data transfer is going on. I have no intention of improving this application, so what you see is what you get. However, if you'd like to take it further, you are welcome to the source code:

ScopeSaver Xcode project (2.1MB)

Support

This application is provided as-is, with no warranty or support. Feel free to make use of it in any way.