W9XC Flex 1500 CW Latency Issues

Les Gasser, W9XC

Version 1.7 of 16 October, 2012

CONTEXT

I'm primarily a CW operator and I've got a Flex 1500 (among other toys). I definitely think SDR is a key component of the future of amateur radio, and it's tremendously exciting to explore today. I love the 1500 with PowerSDR on receive. But at this time as a CW transmitter/transceiver it's not very usable for me on its own. I'm actively trying to figure out why, and to correct the issues. Possibly this note will help others who are wrestling with similar issues. It's meant in the spirit of collecting information and productively helping the SDR community to solve and/or work around issues, and definitely not as a criticism of Flexradio.

From the perspective of human cognitive performance, sending CW at any reasonable speed is a tricky coordination problem involving the hand, the ear, the brain, and the CW device (that converts mechanical hand movements to RF signals and sidetone sounds). On the human side, this coordination happens below the conscious level - at reasonable CW speeds there's just not time to think about the process. A CW operator can't coordinate these four aspects if the delay in the CW device disrupts the "autonomic" hand-ear-brain coordination.

Over several years, Flex SDR radios (all models) have had reported issues in operating CW. A typical issue is "sidetone latency" - a condition in which there is a human-perceptible delay between the manual operation of the key or paddle and the audible start of the CW sidetone. The latency is sometimes great enough to disrupt CW coordination and make sending accurate CW effectively impossible above certain (fairly low) speeds.

A significant effort by Flex culminating in later releases of PowerSDR (especially since early 2011 releases) has been reported to solve CW problems for many FlexRadio users, according to many posts on forums and email reflectors. These users report that Flex radios are now perfectly usable CW machines at speeds up to 30-40 WPM. Sadly, not so for me with my Flex 1500 and current setup.

Hardware: A simple USB cable connects the Flex to my computer. I use both iambic an single-lever paddles straight to the Flex's paddle jack, and no external keyer. Headpones are plugged into the 1500 directly, and VAC is not used for audio. The computer hardware is a 2010 Macbook Pro laptop with a 2.4GHz Intel Core i5 processor and 4 GB memory. It runs Windows 7 natively (using "bootcamp"). This machine should be plenty fast for the 1500: processor utilization is usually below 20% when running PowerSDR. (I've also tested with a 3.4 GHz Windows Desktop under Windows XP, with no real difference).

Software: I run FlexRadio's most recent PowerSDR 2.2.3 under native ("bootcamp") Windows 7, fully patched and up to date.

NB: I have also tried running PowerSDR atop the Mac OSX (Snow Leopard) OS using Windows7 under Parallels. However, the emulation overhead is too great. This mode works fine for non-real-time programs (e.g. software for the AIM4170 VNA) but not for the real-time needs of SDR.

MY CW ISSUES

With the hardware/software above, I have had continual sidetone latency issues with the 1500, even with the most current PowerSDR releases which have been said to solve CW problems for other users.

Using this setup, the absolute fastest I can send CW reliably on the 1500 is about 17 WPM; this is in semi-QSK mode. At over ~17 WPM, even in semi-QSK, the aural sidetone delay latency is long enough that accurate sending becomes effectively impossible.

UNDERSTANDING THE ISSUES

How come I've got these issues and many others don't seem to have them? Here are some options:

Age-related cognitive degradation? I'm not really that old.

Computer hardware too slow? Doubtful given the reported processor utilization and known raw processor/memory/disk speeds of my configuration (above). Possibly the Macbook Pro hardware has some inherent USB or interrupt latency that we don't know about. However, a comparison trial with a reasonably fast standard windows desktop (see above) also showed no improvement for me. This makes me think there's a Flex hardware issue.

Others' success reports inconsistent? Many reported successes don't specify:

This lack of common information makes comparisons a bit difficult, and makes it hard to learn from others' experiences. Still, there are enough positive reports in the reflector data that it would seem someone is getting the Flex 1500 to work well at higher CW speeds (above 20-25 WPM).

Are there different Flex 1500 hardware versions or modifications? For a while I was wondering if there had been any Flex-1500 hardware revsions over the years - and hence multiple hardware versions for different serial numbers - which might explain some of the variance in reported CW behaviors. For example, Craig W. Behrens (NM4T) made a post on QRP-L in 9/2011 (authentication needed) in which he indicated there may have been some hardware mods driven by and/or affecting CW performance. (See the Appendix for the full text of this post.)

However, on 12/7/2011 in FlexRadio Group message #8789, Tim Ellison (W4TME) of Flexradio Product Management, Sales & Support has confirmed unequivocally that Flex has made no hardware modifications in the 1500 up to this point:
There have not been any hardware modifications done to the FLEX-1500 in regards to CW or any other mode.

So all 1500s should act the same in respect to CW performance, given the same PC environment - which is both good and bad news I suppose.

The PC's USB Chipset performance and integration? Just after I wrote Version 1 of this article, Kirk Kleinschmidt (NT0Z) posted a note on QRP-L with his insights (authentication needed), which I found very interesting and reproduce here:

In researching my Monitoring Times review of the FLEX-1500, by talking with FLEX engineers I learned that a PC's specific USB chipset implementation mostly determines its latency and USB performance issues -- not the raw power of the PC itself.

Some older, lower-power PCs have much better "all in hardware" USB chipsets that offload USB bus processing chores to the USB chipset itself instead of having a "little bit in hardware and the rest CPU" USB implementation (found on many new, super-fast PCs).

From a PC manufacturer's point of view, having a four-core CPU and tons of RAM allows the use of a crappy, minimalist USB setup, which is fine for copying data files and other routine chores (which USB is designed for), but really sucks when it's time to use USB to manage real-time events that take place on either end of the USB connection between PowerSDR and a FLEX radio.

They may not say so out loud, but I suspect that, if they could do it over again, the FLEX-1500 would use a Firewire connection like its bigger siblings. I suspect that the USB connection, which reduced costs by a few bucks, is the Achilles Heel of an otherwise awesome 1500. [NB. - See also George Allen's (K2CM) observation quoted below.]

On my early production run unit I have to use an external keyer (and that keyer's built-in sidetone) to achieve decent -- but non-break-in -- CW performance. The internal keyer is completely useless. The radio's receiver performance -- and its band scope -- are so stellar that I put up with the unfortunate CW issues.

--Kirk, NT0Z

APPROACHES

Measuring Computer Latency:

On FlexEdge I recently came across mention of the DPC Latency Checker app:

Thesycon's DPC Latency Checker is a Windows tool that analyses the capabilities of a computer system to handle real-time data streams properly. It may help to find the cause for interruptions in real-time audio and video streams, also known as drop-outs.

I haven't yet used it but will.

Modifying PowerSDR "Setup" parameters:

I've tried just about every setting possible of the basic audio buffer size, the DSP buffer sizes, the sampling rate, the processor priority, and the USB management ("conservative" to "aggressive"). I have also tried resetting to default factory settings and "database resetting" then re-configuring the radio (recommended in some FlexEdge reflector threads). Common recommendations about Firewire drivers and optimization of course don't apply to the 1500. Still no joy.

External Keyer Workarounds:

One workaround that does seem to eliminate the aural latency issue is to use an external keyer with its own sidetone, turning off the 1500's keyer and the 1500's sidetone (cf. NT0Z's workaround above). However, the Flex 1500 has no audio speaker. Sending audio through the computer (VAC) adds to latency. When using good aurally-isolated headphones plugged directly into the 1500, we will need to somehow mix the external keyer's sidetone into the radio's audio output in the headphones, so you can actually hear the external sidetone. Probably an external mixer is needed.

At least that's what I thought in September. At this point I've plugged my paddles into a HamGadgets MK-1 keyer, and the keyer into the Flex-1500. The MK-1 has a strong clear sinusoidal sidetone. Even when I use my in-ear Etymotic earphones, I can hear the sidetone feedthrough just fine, so CW synchronization isn't an issue and I don't need a mixer to inject the sidetone. With the keyer I can comfortably work any CW speed I want to with the Flex-1500. Since I typically work semi-QSK anyhow, using the keyer is not really a problem. Still, I view this as a definite workaround.

George Allen (K2CM) has also found that a keyer works well. In a recent FlexEdge post (11/28/2011) and he states that in his view the Flex 1500 latency issue is a USB delay:

I have a Dell Vostro 420 that runs PSDR without issue. The F5K works quite well with CW. The Flex 1500, does not work well with CW, due to USB delays. However, with the F1500, an external Keyer (using the sidetone from the keyer, the Flex sidetone off) seems to solve the problem with CW (I too am an avid CW operator). An easy solution to a USB latency issue.

I have a dual core laptop that I also use with the Flex radios....probably has the same power as a gaming computer. No issues with the laptop and the F5K either.

John Daines (AF4RK) has developed a another external workaround circuit that that's not a full keyer per-se. He built an external CW sidetone oscillator and a control circuit for the Flex-1500. Part of his description, from the Yahoo FlexRadio Group is below:
I use a Western Union straight key from 1881 as well as the MFJ paddle and the Win keyer. I just finished building an external Side tone Oscillator / Flex CW control port for my Flex 1500. I could not handle the delay when sending with the Flex 1500 side tone. I used a 555 timer circuit from http://www.circuitstoday.com/cw-practice-oscillator. I had to design a control circuit to operate the side tone output and control the Flex 1500. I used an open collector logic arrangement that I used in a CW rag chew recently at 25 wpm. If I had to do it over again, I would leave the 555 oscillator running all the time and interrupt the output to the powered speaker. The Flex control output needs to be driven from the Straight Key circuit, but has to have an independent output, as a Y adapter will not work.

USB Configuration:

Tim Ellison of Flex reported on FlexEdge, 2/28/2012:

"There may be a configuration remedy. We have found that ensuring that the FLEX-1500 is on its own USB controller makes a big difference."

OTHER THOUGHTS

Any additional thoughts or experience anyone has on this issue - especially hard data on the comparative parameters listed above, would be welcome. You can find me through qrz.com or with Google searches.

The December 2011 issue of QST had a review of the Flex-1500, and mentioned this issue.


Appendix

An appendix with original messages referred to above is here.

Revision History

1.7 of 16 October 2012: Added reference to AF4RK sidetone oscillator & control circuit.

1.0-1.6 [undocumented]