Saturday, December 29, 2007

PowerSDR with combined Panadapter & Waterfall

After I saw John Melton's combined Panadapter/Waterfall display on his Java Console for the SDR, I thought I'd give it a try, too (but on the normal Console code, not Java). So I spent a couple of hours this morning and came up with this...

(Click on the image to enlarge it)

It's not quite finished (I want the cursor to show time if I place it in the waterfall area), but it gives you an idea of what can be done, fairly quickly, with the existing code.

You can also see some "enhancements" that I've made to the Console. For example, there's a red "Peak" needle in the s-meter. Also, the "Restore" button toggles between the stored frequency and the VFO frequency (this allows you to easily return to the frequency you were originally listening on before clicking Restore).

And there are "Record" and "Play" buttons on the front panel, too (they're in the same box as the MOX & MUT buttons). I added these at the request of a friend of mine to simplify the Record and Playback functions. We found the "stock" setup a bit confusing to use (and set to the incorrect defaults), so I added these two buttons to let me quickly record (during receive) & playback (during xmit) an off-the-air signal. The pre/post Rx and Tx settings are "correctly" set automatically, and the user doesn't need to enter (or select) a file name - it's all handled automatically, too. Just press REC to record, and then, to playback during XMIT, simply press PLAY. That's all there is to it.

I also added some features that I wanted to have when/if I use the SDR as a spectrum analyzer. For example...

1. There's an inverted triangle shown on the display. This is invoked by pressing the "Pk" (peak) button. The triangle locates the peak signal between the two "dotted" vertical lines, and displays frequency and amplitude where the "cursor" frequency and amplitude are normally displayed. Please note that the two "dotted" vertical lines are always -10 and +10 pixels from the cursor X position, so, as you move the cursor across the screen, the triangle will jump from peak to peak as new peaks enter into the 20 pixel region. (You'll instantly recognize this feature if you've ever used an SRS spectrum analyzer (e.g. the SR760)).

2. A "snapshot" of the panadapter (or spectrum) display can be taken (by pressing "Snp") and displayed simultaneously with the ongoing display. The snapshot is displayed in a different color (in this case, red), as can be seen in the following image:

This "snapshot" feature is similar to a feature in the SigLab spectrum analyzer (designed by a friend, W1QG), and is very useful for making comparisons between old and new signals. (The "Clr" (clear) button is highlighted as Orange when the snapshot is displayed on the screen, and clicking it will erase the snapshot.)

(Note that in the snapshot mode, the "Pk" triangle sits on the peak of the snapshot signal that lies between the two dotted vertical lines.)


WA5QPZ said...

Super Jeff!!

Keep up the good work, and will you post the console for public use?? I will get a lot calls concerning where they can get the console changes that you have done..

Maybe someone will follow in your footsteps with their own changes to the console..


Norman said...

Great Work Jeff!

You certainly add versatility to the console. I love the idea of the record, transmit from the console.

Keep up the good work.

73, Norman

Jeff said...

Thanks for the comments, Dudley and Norman!

Regarding posting the Console for public use...I'd done this with my older console via the HAMSDR website (when I was WA6AHL), but, after Flex incorporated many of that Console's features into their "official" Console, the process of trying to merge my original code with their new code became incredibly cumbersome.

If there's enough demand for any of these features, then I'd recommend that one of Flex's official programmers (such as Eric?) implement them, but (if I recall) the feature set for the next release of the Console has been frozen, so this might not happen.


- Jeff, K6JCA