Clifton Laboratories 7236 Clifton Road  Clifton VA 20124 tel: (703) 830 0368 fax: (703) 830 0711



To search within the Clifton Laboratories site, enter your search term below.


Software Updates
Softrock Lite 6.2
Adventures in Electronics and Radio
Elecraft K2 and K3 Transceivers


March 2007 Archive
30 March 2007

I've been working with a Z90 owner experiencing problems finding the Z90.INI file on his computer after installing Z90-Control version 2. I've added a discussion to the Software page addressing this issue. In short, Windows XP, by default, hides certain files and folders, including INI files in the location in which Z90 Control installs this file. The software page now explains how to set the file search display options to cure this problem.


28 March 2007

I've put up Z90-Control release 2.01 and accompanying Z90/91 firmware 609 at the Software page today. Also, an updated PDF manual is posted for the new control release.

The changes to the firmware and Z90-Control software relate to "Turbo Mode." The Z91 and Z90 have always shared common firmware, because the customer base is just too small to make it reasonable to keep track of separate firmware versions and also to provide an upgrade path should a user decide to add the LCD and other parts to convert a Z91 to a Z90.

Although these are logical reasons, my decision meant that Z91 owners were presented with slower sweep speeds than necessary, as screen clearing and writing consume significant firmware resources . At the request of W1BNC, I developed an experimental Z91 firmware release that bypassed LCD writing, approximately doubling the sweep speed. After mentioning this, several Z90 owners asked if they could also run the firmware release. Although possible, it would be burdensome to say the least to have to reflash the Z90 firmware every time one wanted to run in turbo mode or return to normal operation.

To shorten this story, I've returned to a single firmware release for both the Z90 and Z91, but with LCD bypass code. Hence, regardless of whether you have a Z90 or Z91, you will be able to run turbo mode. Of course, if you have a Z90, during turbo mode operation the LCD will not update and you must rely upon the computer display.

I recommend that all Z91 owners download and install the new firmware and operate in Turbo Mode and Z90-Control version 2.01. Z90 owners may wish to install the new firmware as well, whether they use it or not. It is not, however, mandatory for either Z90 or Z91 owners.

Z90-Control 2.01 is supplied as an installer program. If you have modified the Z90-Color file, it should remain intact. Likewise, your Z90.INI file should also remain intact.

Turbo mode is not a "sticky" option, and must be selected every time Z90-Control is started. This is an intentional safety measure to prevent inadvertently leaving it engaged and causing the Z90 display to freeze without the operator understanding why. Hence, Z91 users will need to remember to engage Turbo Mode when starting Z90-Control, every time.

25 March 2007

I have a test version of "turbo scan" firmware running in a Z90, but I'm tracking down a problem that causes the vertical reference position to change under some presently undefined conditions. I think it is related to dropped inbound data when the computer is running other higher priority tasks, but it happens so infrequently that reproducing the problem is difficult.

Over the weekend, I breadboarded up the next project. Here's a view of it.

23 March 2007

I've had two requests to modify the Z90 firmware to give users the option of disabling the LCD display to operate in "turbo scan" mode with the new Z90-Control software.

I'll make this change over the next day or two and post it on the software page when finished. To make it easy to use, I'll also add a control or menu item to Z90-Control version 2, so a new release of that will also be required.

As a safety measure, the Z90 firmware will always come up in normal scan mode and an affirmative command will be required to enter the "turbo scan" mode.

23 March 2007

I have released for general downloading Z90-Control version 2.0. You may download the installation program at the Software page, or by clicking here.

I have also released a new firmware version 1607 for Z91's only, available at the same place. Firmware release 1607 speeds up Z91 operation by removing all code related to LCD writing. The result is at some sweeps are made twice as fast as in the current release. Of course, since all LCD writing code is removed, release 1607 should not be installed in a Z90.

I've tested the code here, and also two volunteer testers have found the new program works for them. However, please do not delete your Z90-Control version 1.0 program until after you have verified that release 2 works for you.

I would appreciate comments (working, not working) on your experience with release 2.0. In particular, K2 owners should find the new integration links of some interest and I would like to know how useful you find the new features.

23 March 2007

Chuck, K7VRE, has provided detailed documentation showing how he added a Z10000-U buffer amplifier board to his FT-920. I've added a page for his notes, reachable by clicking here or via the navigation bar at the top of this page.

19 March 2007

I hope that I've finished adding tweaks and features to the new Z90 Control release. Today's change is an option for a bar graph type display in addition to the line type display currently available. Other, more interesting options were added over the weekend.

New display mode - bar graph style

Depending on the span and modulation mode, it can be difficult to use the Jump to Frequency option and wind up exactly on frequency. With the almost universal use of digital frequency controlled transceivers, SSB operation tends to take place on even KHz frequencies. I've therefore added an option check box that will force the jumped to frequency to be an even integer KHz. Rounding to the nearest KHz is employed when the option is selected.
Optional force to 1 KHz

I've mentioned before�and it is covered in detail at my FAQ page under the topic "Why Does the K2's BFO Shift Frequency?"�that Elecraft's K2 has a variety of frequency shifts and offsets built into it and that these are essentially invisible to users. Invisible, that is, until the user attaches a Z90 or other spectrum analyzer to the IF port. When this happens, these shifts become obvious. Here's an example from my K2. The K2's dial is set to 10 MHz, and I sequentially selected LSB, USB and CW mode. Note the shift in the apparent frequency, with a spread of about 2.5 KHz.
IF shift resulting from mode selection


If you can tolerate loss of all three "Custom IF" frequencies, you can take advantage of a new feature added to the Z90-Control software. In essence, we define three custom IF frequencies, one for CW mode, one for USB mode and one for LSB mode, such that there is no frequency offset when you switch modes in the K2, providing you select the appropriate custom IF.

Manually selecting a different IF every time you switch modes in the K2 is an inconvenience, at best, so I've added an automatic linking feature to the software. If you properly set up the three custom IF frequencies and if your K2 is connected to your computer and linked into the Z90 Control software, the appropriate custom IF frequency will be automatically selected as you change frequencies and bands.

As the plot below shows, it's quite effective.

With automatic IF shift operating


I've also added an option to display an alpha tag associated with each IF frequency. You can edit the tags to add a meaningful message to you.
Sample IF frequency list with alpha tags


16 March 2007

I've spent the last three days working on  the new Z90 control software, mostly adding error detecting and also finishing up a few loose ends. I made one change to the waterfall display, giving users an option of erasing the display when filled or overwriting the old data. After using it this evening, I prefer the overwrite mode.

Waterfall display in overwrite mode. The black line shows the new data insertion point�old data is above the black line; new data is below the line.

Note the downward frequency sweep in this sample. You can see it the most clearly to the right of center. Horizontal lines are static crashes, but diagonal lines are swept frequency signals. Lines sloped \ are sweeping down with time; lines shaped / sweep up in frequency with time.

 Either ionosphere sounders, or our fellow amateurs playing with their VFO controls ...

The waterfall display shows interesting band occupancy. There is little occupancy between 3600 and 3650, with the CW and data modes showing extensive usage between 3530 and 3600 KHz.

I've sent one additional experimental copy out, and I'll again remind Z90/91 customers to drop me a message if you wish to receive an experimental version of the new release.

13 March 2007

Z90 Control version 2 is at the point where I have added all the new features that I intend to, and all are functioning, although error checking and trapping is marginal.

If you are a Z90 or Z91 user and wish to experiment with release 2.0, drop me an E-mail message and I'll send you a copy. At the moment, however, the only documentation is that available from reading this Updates page. And, the software is still on the experimental side, although I believe it is usable if you don't mind an occasional crash caused by odd data values or key sequences.

The major improvement over the last couple days is interaction with the K2 transceiver's serial port.

If you look at the center top of the display, you see the actual center frequency to which your K2 is tuned, assuming, of course, that your K2 has the serial interface option and that it is connected to your computer.

The Jump To Frequency is also working

The Jump to Frequency is also working. It has two modes. First, you can simply type the frequency into the yellow box in MHz format. Then click on the Jump To Frequency button, and your K2 will be tuned to that frequency.

The second mode is more interesting -- click on either the normal trace display or the waterfall display and the actual frequency of the signal upon which you have clicked is placed in the yellow Jump box. You can then tune to that frequency by clicking the Jump To Frequency button.

You will then be tuned to that frequency, regardless of whether you use VFO A or B and whether the RIT is on or off. The tuning preserves your VFO selection and also your RIT setting--if you were on VFO A with +500 Hz of RIT, the new frequency will be with VFO A and with +500 Hz RIT.


The new receiver setup box.

Enable RX polling turns on polling -- once a second, the software queries the K2 for the current frequency information. If polling is turned off, the frequency display will not be updated.

Frequency inversion has two manual modes and the automatic mode, where inversion is set based upon the frequency to which the K2 is tuned. If you have a K2 connected, automatic mode will normally be used. (More information on why the K2 inverts the frequency sense on some bands can be found at

If you do not have inversion set automatically (or correctly via manual setting) then clicking on the display will not necessarily present the correct frequency for jump tuning.

I've also modified the waterfall display, so that each color step represents 3 dB change in signal level and added an indexed color scale.

As with all Z90 modes, the steps are accurate within the instrument's rated accuracy, but the absolute levels are arbitrary. In other words, 0 dB is not 0 dBm, or -17.3 dBm or any other particular value. However, two signals that differ by three color bands are 9 dB different in signal strength, +/- two color band steps. (One signal might be at the very top of one band and the other signal at the bottom of its band. This sort of quantization error is inherent in any contouring scheme.)

Frequency jump operates in waterfall as well.


Editing the waterfall color scheme and display

I've added a waterfall setup as well, permitting you to edit the color scale, enable/disable the grid and select the grid colors.

At the moment, only the K2 is supported and it is likely that support for other equipment will not be forthcoming, as 90% of my customers use K2 equipment.


10 March 2007

Z90 Control, Version 2 is steadily making progress. All functionality in the current edition is present, plus several new features:

  • Much faster screen painting and refresh
  • Single EXE file, without DLLs
  • Windows VISTA compabile
  • Waterfall or standard display
  • User-editable colors, line thickness and fonts in standard display
  • User-editable colors in waterfall display
  • Reworked some of the menu interface dialogs for improved user experience (for example, in signal generator mode, you have a choice of entering the desired frequency in Hz, KHz or MHz.)

The image below show the new edit menu for graph selection. The background color, grid color, trace color, trace thickness and caption font parameters are saved between program runs.


There's still a lot of work left to do, but I can see progress.

09 March 2007

I ended the HP8752B temperature stability test after 20 hours. It shows about 0.2 PPM variation after warm up, and that my calibration left the time base a bit low in frequency. I'll let the calibration settle in for a while and revisit it in a month or so.

My Racal 1992 counter has the high stability oven option, rated at < 7x10-9 per day, so it's not the limiting factor in these measurements.

08 March 2007

I now have most of rev 2.0 Z90 Control working. The main missing code relates to printing. I'm not looking forward to that code, as printing graphics in Windows is notoriously tricky.

Some comments from Mike, W4XN, about frequency stability of his HP 8753C vector network analyzer prompted me to measure my 8752B. First, I found that the time base was way out of calibration, something close to -100 Hz at 10 MHz. After popping the cover off, I found that HP had thoughtfully provided a calibration "cheat sheet" on the inside of the top cover, showing the calibration points. The master frequency is set from a voltage trimmed crystal oscillator, with a multi-turn trim pot. A few turns on the trim pot brought the time base into compliance.

Here's the 8752B's short term stability, measured from a cold start. Since the VNA is in my basement shop, it is not exposed to a temperature excursion of more than a few degrees F.

HP's specification is ±7.5PPM for 0-50°C ambient. I see about 2 Hz change after warm up, measured at 10 MHz, or 0.2 PPM. This is certainly well within HP's specification.
07 March 2007

I cut away enough of the tree branches to provide access to the driveway this morning. (See 06 March 2007) The tree service stopped by this afternoon and we found four or five dead or nearly dead pines near the house that should be cut down, as well as the two that came down (or 1.5 trees, as what fell is one complete tree and the top half of a second.) Weather permitting, the work will be done next week.

I'm making progress in rewriting the Z90 Control program in Delphi, adding a user-editable waterfall color scheme today. Here's a shot of the most recent revision, showing a waterfall display of 3600-3800 KHz. I've added the scale insert and removed some of the development controls seen in the earlier version. The large memo box at the lower right is for debugging and will not be found in the release version.


As I was working on the program code and testing a build, I noted an unusual signal track. If you look at the bottom left of the display, you see a steady signal (up is increasing time) that makes an abrupt frequency excursion up; then stays at that frequency for a brief period, sweeps down to 3600 KHz and then has a fast sweep up above 3800 KHz.

The area below the black line is data taken at another frequency. Incidentally, this data is taken with the Z90 working as a spectrum analyzer�connected directly to an antenna. I do not recommend this as normal operation mode as (1) the Z90 has no image rejection and (2) strong out of band signals will get to the log amp through filter blowby. Still, it's useful during testing and, if you understand its limits, it can be a useful operational mode. Horizontal yellow lines are likely due to static crashes or other broadband noise.

06 March 2007

While I was working on rewriting Z90 Control this morning, my wife heard a loud noise outside the house. In the basement with a couple of receivers running and concentrating on programming, I'm fairly oblivious to outside events.

Here's the sight looking back into the garage from the driveway.

While living in a wooded neighborhood has advantages, dealing with falling pine trees is not one of them. We're waiting on a phone call from Budd's Tree Service. (If you live in Northern Virginia and need tree work done, I recommend Budd's Tree Service in Burke, VA.) There are other pines that look as if they are ready to do the same thing, so we should have more than this one removed.

Before the tree came down, I was able to make some progress in revising Z90 control. I've made the generate frequency control a bit easier to use while I was at it.
You can enter the frequency in either Hz, KHz or MHz, with or without a decimal point.

However, the frequency is always rounded to the nearest integer Hz, so 10.0001 KHz will be sent to the Z90 as 10000 Hz.

To generate 10.7 MHz, you can enter :
10700000 with the Hz button selected;
10700 with the KHz button selected; or
10.7 with the MHz button selected.

05 March 2007

The two Z100 prototype kits went out this afternoon. My current design provides switch and potentiometer access through holes in the enclosure bottom.

My thought is that the normal mode of operation will be for the user to either operate the Z100 with a single frequency setting, corresponding to his normal CW beat tone, or to define and store the frequency settings normally used into the 16 memory locations and thereafter use the memory recall selector switch to select the current center frequency from amongst those stored to non-volatile memory.

Consequently, the center frequency pot is on the bottom, and is a trimpot style component. Likewise, the operational switches are small DIP switches as these should not be frequently used.

The bottom, showing access for the center frequency setting potentometer, and the memory and function control switches.

Because I have the case open and closed a dozen times a day while I'm working on case dimensions, software development and the like, I use rubber bands to hold it together.

Better view of the switches and frequency setting potentiometer.

As I say,  the four-position slider DIP switch should not be used all that often.

A normal height DIP or rotary switch has better usability, but is too tall to fit within the case without projecting outside the enclosure.

I've had one suggestion to use two or three multi-function push button switches. I'm considering that, as I agree the DIP switches are sub optimum, but in a device with only LEDs for communicating with the user, the normal feedback mechanism that makes multi-function push button switches work is absent.

Likewise, the small case footprint makes larger conventional switches difficult to fit into the available space. And, a larger enclosure makes the low cost price point difficult to achieve.

I built the prototype board with an 8-section, full height DIP rocker switch and I had to remove it today to install the rotary switch and 4-section low profile DIP switch. And, I did not want to damage the plated through holes.

I used solder wick to remove most of the solder and had the pins mostly free. The 8 ground pins were more of a problem, as the PCB provides a rather good heat sink, making both soldering and de-soldering challenging. After using solder wick, I then tried a technique that I've read about, but had not yet used--heating all 16 pins simultaneously using a hot air gun. It worked well, although I believe it's essential to remove almost all the solder using solder wick or a vacuum desoldering tool before applying the hot air gun.

Larry, N8LP, and I have been debating whether it is better to tie a ground pin to both top and bottom ground planes via the plated through hole (using four-spoke "thermals") or to leave the top side as an unconnected pad, tying the top and bottom ground planes together through additional nearby vias. The idea is that having the top connection floating makes soldering and desoldering easier, removing the risk of board damage in the event a component requires replacement. So far, I've been a holdout for four-spoke thermals on both sides, but I am reconsidering that decision.

If you don't know what a "thermal" is, look at a PCB intended for hand soldering made with both a top and bottom ground plane and pay attention to ground pins. Rather than have just a small plated through hole, the hole is connected to a normal pad, which is linked to ground through four (or sometimes two) short leads or spokes. The idea is that soldering the ground connection requires heating the ground pin and associated PCB area to 500 or 600 degrees, which can be difficult if the pad makes a solid connection to the ground plane foil. The spokes throw enough thermal resistance into the pad so that a normal soldering iron is usable for the joint. However, if the through hole is connected to ground planes on the top and bottom of the board, the top connection only receives heat through the hole plating and the lead. This makes it difficult to achieve a good connection to the upper foil, at least without running the risk of overheating the bottom foil. And, when desoldering, the difficulty is compounded, as you are trying to remove the solder which provides a thermal path between the top and bottom connections, so the more solder you take out of the hole, the less heat gets transferred to the top to melt the remaining solder.

I've also made changes to Z90 Control version 2 that make it Vista-compatible, at least until I run into the next change. Dave Barker ("Mr. Swordfish") found my problems and provided very helpful fixes.



04 March 2007

If you are not a subscriber, you may wish to visit the local amateur radio emporium and pick up a copy of the March/April QEX, featuring the Z90 on the cover.


The March-April 2007 QEX features my Z90 article. The cover photograph is by Mike, W2PY, and shows his Z90.

 (The top of my magazine is intact--the ragged edge is my poor attempt at editing out the background.)

I've had one report that the current Z90 Control software fails to run under Windows Vista. The new 2.0 version that I'm working on will run on Vista, XP and W2K, but not earlier versions of Windows. I've sent a very rough version of 2.0 to the one customer operating Vista and it operates, although I need to change the port scan algorithm as reading the available ports from the registry seems to fail in Vista. I hope to have a version that can go to two or three alpha testers in another week or so and a full release version before the end of the month.

The full release 2.0 will be accompanied by updated Z90/91 firmware significantly speeding up sweep speed for Z91's and will give Z90 owners the option of operating their units in "Z91 mode" in which the LCD is disabled and faster sweeps are sent only via the serial port.  Faster Z91 sweeps are possible by bypassing the code related to writing to the LCD, obviously un-needed, since it does not have an LCD to write to.  However, I do not want to maintain separate Z90 and Z91 firmware lines, so I will add a command to the forthcoming firmware to disable LCD writing. Z91 owners will operate in this mode 100% of the time, and Z90 owners may find times when they wish to use it as well.

I've finished the first pass at firmware for the Z100 CW/RTTY tuning aid. It's well under 200 lines of Swordfish code and occupies 1289 bytes of program memory and 56 bytes of RAM. Hence it is well within the limit of Swordfish SE, the free version. This will allow purchasers of the Z100 to modify and customize the code, as I plan to provide source code with the kit. My plan is to ship two prototype kits to volunteer builders Monday or Tuesday and if all goes well, production kits should ship before the end of March.

The photo below shows a prototype Z100 out of the enclosure.


01 March 2007

As usual, I've moved the February page to the archives, where it may be viewed by clicking here, or via the link table at the top of the page.

The last few days have mostly seen me working on rewriting the Z90 Control software. It's making progress, but won't be ready for even alpha testing for a week or more.

I've also had an interesting excursion into Windows and USB-to-serial port configuration. To develop the Z100 LED scan firmware, I added an access point to the PCB for in-circuit programming. The ICP works simply in this design by bringing out the 18F2420's USART TX and RX ports, plus a ground, to a 6 position header strip. A FTDI RS232-to-TTL adapter cable plugs into the socket. I programmed the 18F2420 with a bootloader provided as part of the Swordfish program suite, thereby permitting new code to be uploaded to the PIC without removing it from the circuit or using special programming voltages.

The bootloader sends a unique identifying signal when the PIC is powered up, and this identifier is recognized by the bootloader program, in the form of a handshake signal. (This is why you have to cycle the power off/on when reflashing a revised program load to the Z90.) Although this sounds like a simple process, I could not get it to work with the FTDI adapter cable--the handshake signal failed and the Window-based loader program would not recognize that it had established communications with the PIC at the other end of the cable. It turns out that the default latency setting (reachable about four menu levels deep) in FTDI's driver code is set so long that the handshake times out before the signal gets back to the loader software. Resetting the latency time to 8 ms (default is 16 ms) fixes the problem and I can get back to finishing the Z100 code.

I've also received an edited manuscript of the second Z90 article "Designing the Z90's Crystal Filter," to be published in the May/June QEX. This weekend will require checking the manuscript for inadvertent errors that might have crept in during the editing process.