↓
 

Software Defined Radio

Experiences in SDR

  • Home
  • Links
Home - Page 2 << 1 2

Post navigation

Newer posts →

Using the Behringer CMD PL-1 controller with PowerSDR OpenHPSDR mRX PS

Posted on 13 February 2017 by W2PAFebruary 13, 2017

The first thing of any complexity that I tried to do with the source code for PowerSDR OpenHPSDR mRX PS (hereafter referred to as Px) was to try getting my PL-1 controller to work properly.  Although M0YGG’s code works quite well with the Hercules controllers, and recognizes the PL-1 and can map its buttons quite well, it doesn’t work with the main wheel or the knobs, because of what it’s expecting about their behavior – i.e. that they behave like the similar things on the Hercules. Let me explain:

The knobs on the Behringer CMD PL-1 behave like wheels more than how Px is expecting knobs to behave, i.e. with limits and values, like a slider. That’s why Px lumps knobs and sliders together.

I changed the code to treat certain functions as wheels instead of knobs, and rewrote the handler code for those functions to properly process the code coming from the PL-1. When you turn a knob, it sends a value of 65 for clockwise and 63 for counterclockwise rotation.

To make this change, two code changes are necessary:
1) In CatCmdDb.cs, change the desired command from ControlType.Knob_or_Slider, to ControlType.Wheel
2) In Midi2CatCommands.cs, modify the code handler for the corresponding command to do the right thing. In the case of the PL-1 wheels, this means increment the current value if rotating cw and decrement if ccw.

You have to make these changes for each Px function you want to map to a knob which is really a mini-wheel. The function then becomes unavailable for mapping to a slider or a normal knob (which the PL-1 doesn’t have anyway). The result is that the mappings won’t work exactly for other controllers, particularly the Hercules.  Perhaps later I’ll work on segmenting the code so it applies the right function for the controller being used.  But right now my aim is to get the Behringer going.

I also changed the behavior of the VFOA and B tuning so that the main large wheel on the PL-1 behaves correctly, and increments/decrements the frequency in whatever step amount is set by the user.  Px was already expecting a wheel-type of control device, but the data values being sent from the PL-1 aren’t the same as those from the Hercules – so I had to change that one too. Instead of triggering on 127 or 1, it now triggers on values less than 64 for counterclockwise rotation, and greater than 64 for clockwise.  I limit the upper bound to roughly 40 below or above each value so that the code will ignore it when you touch the top surface of the PL-1’s big wheel, which is touch sensitive, and reports 127/0 for touch/untouch. (Maybe I’ll discover a use for this at some point.)  At the moment there is no sensitivity to rotational speed.

Mapping

To map the Main wheel to tuning:

  1. Go thru the normal MIDI setup to map the big wheel, by rotating it in both directions – but be careful: Do not touch the top surface at all since doing so make it send a 127/0 value as you touch and un-touch it, and screws up the max/min values. Carefully rotate the wheel from its edge both up and down a bit. Don’t try to go very fast, just go fast enough for the min/max values to get below, say, 64, and above, say, 67.
  2. Map the control to “Change Freq Vfo A”
  3. Save.
  4. NOTE: whenever you go back into MIDI setup, avoid touching the big knob’s top surface.  That will trigger the 127/0 values and mess up your setting, even if you click “Back” when it presents the setup window.  You’ll have to delete the mapping and do it again.

 

To map the small knobs:

  1. In MIDI setup, rotate the knob you want as usual, making sure to rotate in both directions.  The min should be 63 and the max, 65.
  2. Choose Wheel as the type of control
  3. Save

 

Thus far, I made this change for these controls, which now can be mapped to a PL-1 knob “wheel”:

RX1 AF gain – also VFOA AF gain
RX2 AF gain – also VFOB AF gain
RIT (only works when on)
XIT (works whether on or off – need to look at this later, the code seems to be different)
push/clicking the RIT and XIT knobs zeros them

After each running of Px, MIDI mappings are stored by default in …/AppData/Roaming/FlexRadio Systems/PowerSDR mrx PS/midi2cat.xml

In the source code, the CAT command ID numbers are mapped to their descriptions also in CatCmdDb.cs, where the control type is specified as above in step #1.

73, de W2PA

Posted in MIDI Controllers, PowerSDR

Compiling PowerSDR OpenSDR mRX PS

Posted on 13 February 2017 by W2PAFebruary 13, 2017

I started experimenting with the source code for Px (which I’ll use as shorthand for PowerSDR OpenHPSDR mRX PS), using the 3.3.9.0 version downloaded from TAPR, here. I’m using the W5RC branch, in the PowerSDR_OpenSDR_mRX_PS directory, which has the number 3558, and compile using the free version of Microsoft Visual Studio 2015 (VS). Thanks to the team on the Apache Labs forum for pointing me to the right place.

My main objective is to learn more about the code and SDR in general, and to prepare for customizing the new Thetis code (which I understand is based on the PowerSDR code), when it comes out – all of this in preparation for receiving and operating my ANAN-8000DLE when it ships.

This first post is just some initial notes about getting set up for compiling the Px source in VS.

I start up VS using the solution file PowerSDR.sln in the Source directory. The first time you open it, VS automatically does some conversions from the previous version originally used on this package and then compiles and links just fine. After you do that once, you’re all set to start experimenting. If you don’t do this first, you’ll run up against various errors. I chose to change from Debug to Release mode, but either one works.

The main project is PowerSDR.  The source file Assemblyinfo.cs is the one place where you can change the version number.  Changing 3.3.9.0 to 3.3.9.1 doesn’t result in any actual change to the titlebar since it chops off the version number after the 9. But you can add a few characters to the rest of the titlebar in titlebar.cs, where you can change the name and data as you like.  I simply added “- W2PA modX” to the name, where X has a sequential number, and I try to remember to change the date to the date of compiling. Note that when you change the third digit of the version (the ‘9’ in this case), Px warns you when you first start it that the database might not be consistent with the one created with 3.3.9, or whatever previous release you might have been using.  So far, I haven’t changed anything that requires a database reset, so I can choose to not reset and things work fine.

The file console.cs is a good place to start since this is where the main code seems to sit, from which most of the other function branches off.

The first thing I tried was very simple. At the request of John, W1JA, who is the only one testing my changes right now, I changed the maximum tune power under high SWR from 10 to 35 W, to enable his auto-tuner to more easily activate.

More complex changes to follow.

73, de W2PA

Posted in PowerSDR

Documentation, lack of

Posted on 31 December 2016 by W1JADecember 31, 2016

Over and over again, I get so frustrated with PowerSDR. Frustrated with its lack of documentation in the face of its necessary complexity. Frequently I recall that some setting exists, and then have difficulty finding it. A couple of times I’ve given up, figuring I’ll stumble upon it later. I’m tempted to say that the various Setup options are not organized well; there are certainly a lot of tabs, and subtabs, and various and different arrangements of controls on each “form” (that’s what PowerSDR calls its UI dialog boxes that appear in Setup). But there are so very many options, and many can be thought of in connection with one operation aspect and some other aspect also. I’m not sure I could do any better organizing the setup tabs, subtabs, and forms. There are some obvious areas for improvement, though. Here are two that come to mind.

  • The General tab has 11 subtabs, more than any other tab. So many, in fact, that only 10 of them can fit on the subtab row. Way over on the right of the subtab row is a small, easily-missed, pair of left-right arrows for revealing either the left-most or right-most subtab. Until I learned this trap, countless times I was looking for something and couldn’t find it because it was on the Hardware Config subtab. And the subtab row was scrolled to the right, rendering the Hardware Config subtab invisible. In a cruel twist, the position of this subtab row is remembered, even if one closes and reopens Setup or even if one switches to another tab and back to the General tab. And, by the way, the main Setup window cannot be widened to expose all 11 subtabs simultaneously.
  • The main PowerSDR UI has a menu bar at its top. I have been tripped up several times trying to find something in Setup when it’s been on the menu. Like the equalizer settings. I think these should be in Setup, but I can see how some could think they belong on the menu. They’re likely to be tweaked at least occasionally, more often than setup items which should be the set-and-forget type. But what about the “XVTRs” menu item? This is where one enters settings to set up PowerSDR’s flexible transverter interfaces. This clearly belongs in Setup. Maybe it’s on the menu because its form is way too big to fit in the Setup window. Well, make the Setup window resizeable. (And of course make the window remember its sizing across sessions.)

 

The problems caused by the large number of setup options and the various difficulties finding a particular one could be solved by the presence of a setting index — a now-novel concept that used to be present in books (remember those?) and would be a great help here.

I can understand that I’m coming at PowerSDR all at once, after years of development by volunteer developers. I understand that PowerSDR is necessarily very complicated, since one of its goals is to exploit all the capabilities of the SDR hardware. PowerSDR’s complexity probably grew over its years of development as features were added. I am very grateful to the developers for the awesome performance and options present in PowerSDR. (I have just touched on some of this awesomeness in my posts so far; more awesomeness is coming in future posts.) It’s just too bad about the documentation. I think Apache Labs, which is profiting from the sale of very expensive hardware, should step up and hire a good technical writer to produce and maintain good documentation. But in the meantime, I’ll do what I can to help: Here is a list, with links, of all the useful documentation I’ve found that has helped me learn my ANAN-200D SDR and the PowerSDR software. I’ve ordered the list, more or less, from basic and general to advanced and complicated.

  • FlexRadio SDRs used to run on PowerSDR software, so Flex has written some good basic documentation. I wish I had started with the PowerSDR sections in the Flex 5000 manual. http://www.flexradio.com/downloads/flex-5000_owners_manual_v2-0-pdf/
  • Apache Labs hosts a couple of docs about the ANAN SDRs. One says it’s specifically for the 200D (ANAN-200D Users Guide), the other (ANAN-10/100/100D/200D User Guide) says it covers other models too. Read with care because these two docs are incomplete and sometimes contradict each other.
  • The Apache Labs UK website hosts this doc about ANAN filter settings: http://www.apache-labs.co.uk/files/pdf/Filter-settings.pdf
  • The Apache Labs Yahoo user group. A great place to search for things already discussed, and to ask questions and get answers.
  • The KC9XG-SDR Yahoo user group. Another source of info about Apache ANAN hardware. Has some schematics and block diagrams that are not, as far as I can tell, available elsewhere.
  • The FlexRadio knowledge base has some good articles about voice settings for SSB and AM transmitting.
  • Speaking of voice transmitting, W1AEX has penned some good posts here:
    http://amfone.net/Amforum/index.php?topic=27012.0
  • Speaking of W1AEX, he has a website with good info about PowerSDR and ANAN SDR radios.
  • An introduction to Orion (the main Apache Labs board used in the ANAN-200D) can be found here: https://www.ab9il.net/software-defined-radio/anan-200-orion.pdf
  • Another document about Orion, and the ANAN SDRs in general, is here: http://www.nsarc.ca/hf/apache/anan_sdr.pdf
  • A lot of the SDR and PowerSDR docs I find on the Internet are old. It seems that there was a very active period a few years ago when a lot of folks were writing stuff down. Lately, not so much. A case in point: https://openhpsdr.org/. It’s all about 2009-2012.
  • Though, the OpenHPSDR website has this advanced doc, https://openhpsdr.org/wiki/images/b/b4/POWERSDR_USER_NOTES.pdf, about some PowerSDR features.
  • To understand the Apache Labs SDRs, it helps to understand the development history. For example, I found this page on the inactive OpenHPSDR website:
    http://openhpsdr.org/wiki/index.php?title=ALEXIARES. It’s about Alexaires, a.k.a. ALEX, which used to be a separate board but now is part of the power amp board (which was itself called Hercules in the earlier development days) that’s inside the 100-watt ANAN transceivers. The PowerSDR software has a UI button called ALEX, the function of which has something to do with the switchable high-pass filters that used to be on the ALEX board. Exactly what the button does is not clear to me yet; again, it would be nice to have documentation.
  • Did you notice that PowerSDR setting called “EER” (Setup > DSP > EER)? Good luck finding out anything about it in any documentation. I befriended Google and found this:
    http://lists.openhpsdr.org/pipermail/hpsdr-openhpsdr.org/2014-June/045625.html  It turns out that EER goes with special hardware to improve power-amplifier efficiency with SSB signals. I don’t know that such hardware exists, so EER is a future feature.

 

Posted in ANAN-200D, General

Tuning around

Posted on 24 December 2016 by W1JADecember 30, 2016

In an effort to make up for a profound lack of physical knobs, PowerSDR provides an abundance of methods for tuning around the bands.

  • Type a frequency directly on the keyboard. If PowerSDR has focus, just type and hit Enter. No need to hover inside the frequency display window first.
  • One can edit an existing frequency, one or more digits, by selecting and overtyping a digit in the VFO frequency display window. Hit Enter to QSY.
  • Hover over a digit in the frequency display field and use the mouse wheel to increment or decrement that digit.
  • There are some keyboard shortcuts for tuning around. For example, A is down 1 MHz, Q is up 1 MHz, S is down 100 kHz, W is up 100 kHz… all the way across the keys to J is down 1 Hz, U is up 1 Hz. There are many additional keyboard shortcuts for other functions. See the PowerSDR Keyboard Shortcut List.
  • Left click and drag within a panadapter window to QSY by sliding the panadapter window, and thus its center frequency, to the desired spot. (Be careful not to drag the light gray shading that indicates receive filter bandpass by mistake. In other words, click outside this bandpass indication before dragging. If you accidentally drag your bandpass to a far-away frequency or useless width, go to the selectivity-button matrix for the receiver you’re using. You’ll notice the selectivity has changed to VAR 1, indicating a custom selectivity (the one you just accidentally created). Click one of the predefined-selectivity buttons to restore the filter bandpass to something reasonable.)
  • Right click within a panadapter window and a set of crosshairs appears. Move the crosshairs to a frequency and left click to QSY to it. The crosshairs remain for more clicking and QSYing. The crosshairs remain until one right clicks in a panadapter window a second time. Unfortunately one can’t auto-scroll the panadapter window when in this crosshairs mode. (I wonder why they’re crosshairs. Tuning has nothing to do with amplitude. A vertical line for frequency should be displayed instead of crosshairs.)
  • After clicking (see above two bullet points), if you get close-but-no-cigar tuned on a CW or AM signal, the “0 beat” button might be able to finish the job. Your chances are good if the signal is alone in the passband and not weak, and the band is not noisy.
  • There’s the CTUN option. The CTUN button(s) (there will be two if two panadapters are active) are in the middle area of the UI along with the other panadapter settings buttons. CTUN, when active, fixes the panadapter display frequency limits, and the receive passband moves when tuning. This is the opposite of normal, CTUN-off mode, where the passband is fixed in the panadapter center and the whole spectrum slides around into and out of the passband when tuning. It can get confusing when the band is crowded with signals; it’s often easier to see what’s going on with CTUN on.
  • Hold down the CTRL key while pressing the up-arrow or down-arrow key to tune up or down. Tuning is in steps set by the Tune Step choice in the box between the VFO A and VFO B display windows.
  • The mouse wheel can be used to tune. When the mouse cursor is in a panadapter window, the wheel tunes in steps set by the Tune Step value.
  • There’s one more tuning detail to cover. There’s a setting (under General, Options tab) called Snap Click Tune. I couldn’t find what this setting does in any documentation. Testing with and without the setting enabled didn’t change anything, as far as I could tell. I realized there was an untapped documentation source: Flex Radio, under whose auspices the PowerSDR software was initially developed. I downloaded the Flex 5000 manual from the Flex Radio website and found it covers most of the basic and intermediate functionality of PowerSDR software. In this document was a description of Snap Click Tune: If enabled, clicking on the panadapter spectrum will tune the VFO, not to the exact frequency clicked, but to the nearest multiple of the Tune Step value.

 

A lot of ways to tune. I’m making do. Nothing is as precise and easy as a tuning knob. Fortunately, MIDI controllers, studded with knobs, are available that will work with PowerSDR, and one is in my future plans.

Posted in ANAN-200D, Receiving | Leave a reply

Up and running!

Posted on 24 December 2016 by W1JADecember 26, 2016

… with PowerSDR v3.3.9. I finally get to see and play with my own real SDR. I connected my antenna to the ANT1 input on the rear panel. It’s a good thing I have some BNC-to-UHF adapters in my parts bin. First impressions:

  • The panadapter and waterfall are beautiful and useful. I have a recent model analog transceiver that, like many, has built-in DSP functions. It has a panadapter and waterfall that can appear in its display, but they now seem like toys compared to this SDR. (Get the waterfall to appear, below the panadapter, by selecting “panafall” in the drop-down listbox that’s centered below the panadapter area.)
  • Complexity rules. There are lots of buttons and sliders, each with a useful function. It will take time to get fluent with this UI.
  • Complexity rules II. There are a gazillion setup options! There are tabs and subtabs, each with many options. Many are puzzling and not explained anywhere that I can find despite my friendly relationship with Google search. For now, I’m leaving these at their defaults.
  • How to hear audio? Audio appears at the 200D’s front-panel headphone jack. I could run from there to a set of amplified computer speakers. There are some available that have a headphone jack on the front of one of the speakers, so I could still use headphones when needed.
  • Or I could use a virtual audio cable (VAC) to route the audio to my PC. I already have a set of computer speakers hooked up there. PowerSDR has VAC functionality built-in. No need for separate software or drivers. I tried VAC, and it works. My computer speakers sound great to me, so for now this is what I’ll use.
  • I noticed a bit of delay (called latency nowadays) in the VAC audio coming from my PC speakers. I could observe, by eye and ear, an unnatural delay between the S meter rising and hearing the signal. I fixed this, to my ear, by changing buffer latency to 0 on the VAC subtab under the Audio tab in Setup.
Posted in ANAN-200D, Receiving | Leave a reply

Network adapter metric

Posted on 24 December 2016 by W1JADecember 26, 2016

To prepare for a firmware upgrade (there’s a big upgrade to PowerSDR coming that uses Gigabit Ethernet and requires new firmware to be installed in the ANAN hardware) I thought I’d install and get familiar with the firmware upgrade utility, called HPSDRProgrammer_V2_nocap. I installed it, but it couldn’t connect to the ANAN, and I couldn’t get it to work with my normal methods of changing stuff and poking around. Then I discovered network adapter metric. Metric is an integer that is entered in advanced TCP/IP settings. The metric value is used to set network adapter priority; that is, which adapter is used first when apps try to make a connection.

My PC uses two network adapters: A WiFi adapter that connects to my home network router two floors above my basement shack, and an Ethernet adapter that connects only and directly to the ANAN. In this case, metric becomes important. I needed to set the metric of my Ethernet adapter to a lower number (a lower number means higher priority) than the WiFi adapter. Once I did this, the HPSDRProgrammer connected immediately. More arcane networking stuff learned.

How to set metric? I have Windows 10, so these instructions are for Windows 10. It’s probably similar in earlier Windows versions. (Finally, along with legions of other tech writers, I get to write that lazy sentence.) Anyway,

  1. Right click on the network icon on the right side of the task bar (variously called the “tool tray,” the “system tray,” or the “notification area”).
  2. Select “Open Network and Sharing Center.”
  3. Click “Change adapter settings.”
  4. Find your Ethernet adapter in the list. Probably called “Local Area Connection.” Right click it and select Properties.
  5. In the list of connection items, select the TCP/IPv4 row, then click the Properties button below the list.
  6. In the Properties dialog box, General tab, click the Advanced button.
  7. In the Advanced dialog, IP Settings tab, uncheck the “Automatic metric” checkbox.
  8. Now it’s time to enter an integer in the metric field. The important thing about this number is that it must be less that the number you will enter in the next step for your WiFi adapter. I chose 2.
  9. Click OK, OK, OK to back out to the Network Connections panel. Now find your WiFi adapter in the list, select its Properties, and go through the steps above again, giving your WiFi adapter a metric that’s higher than the number you gave Ethernet. I chose 4.
  10. Click OK, OK, OK to back out, and close the remaining windows associated with this task. Done. In my experience, there was no need to reboot.
Posted in ANAN-200D, General | Leave a reply

Connection issues

Posted on 24 December 2016 by W1JADecember 26, 2016

I installed the latest version (3.3.9) of PowerSDR(tm) OpenHPSDR mRX PS. (A ridiculous name for what is currently the best of several applications that can be used to control the ANAN hardware. From now on I’ll call it simply PowerSDR.) PowerSDR didn’t connect automatically to my ANAN. I consulted the two manuals and a couple of Internet pages that discussed connection methods. I found unclear and contradictory information. The April 2014 manual says to just connect an Ethernet cable between ANAN and PC. “Done. Nothing more to do. It just works, but may take a while to connect unless you assign static IP addresses.” The June 2015 manual drops mention of static IP addresses and says “The ANAN transceivers are set up to ask for a DHCP address…” Both docs show a picture of the relevant PowerSDR setup page, which shows two checkboxes; one says “Full Network Discovery”; the other, “Enable Static IP address.” I tried to parse these confusing choices in my mind and concluded that Full Network Discovery must mean “Use DHCP.” But they’re not radio buttons (i.e., only one of the two choices can be selected at a time); they’re checkboxes. Further, in my PowerSDR version, the upper checkbox text has been changed from “Full Network Discovery” to “Reuse Last IP Address.” What? I tried various checkbox combinations and potential static IP addresses without success. The April 2014 manual implies that a utility called HPSDRProgrammer is needed to assign static IP addresses. (So what’s all the static IP address stuff in the PowerSDR setup page about, then?)

Finally, I decided to try DHCP again. I set my PC’s Ethernet adapter and the ANAN (by guessing and unchecking both checkboxes) to use DHCP. It immediately connected. Success at last! And, contradicting the April 2014 manual, the DHCP connection is made instantly each time. (Hi, my future self again: Twice in the past couple of weeks using the ANAN, it failed to connect. In each case, rebooting both the ANAN and the PC was necessary to fix the issue. I don’t know how to fix this occasional annoyance. Should I check the “Reuse Last IP Address” box? I don’t dare touch anything. I wish the ANAN would work the same as, and use the same nomenclature as, common networked PC peripherals. Unlike the ANAN, these items do seem to mostly “just work.”)

Posted in ANAN-200D, General | Leave a reply

Starting up my new ANAN-200D

Posted on 24 December 2016 by W1JADecember 24, 2016

I choose to use a direct Ethernet cable between my ANAN-200D and my PC. I have no Ethernet router in the shack, and no switch available. Direct connection seems the simplest method.

Right away, I hit a small snag. There are two “instruction manuals” available on the Apache Labs website for these ANAN rigs. One, dated April 2014, purports to cover all the ANANs: 10, 100, 100D, 200D. The other, dated, June 2015, calls itself an “ANAN-200D Users Guide.” These two manuals are mostly redundant, but are at times contradictory, and sometimes one manual or the other will contain a unique bit of info. In other words, one must study both, and interpolate as necessary. Case in point: The June 2015 manual says “For direct connection of ANAN to a dedicated Ethernet port, a CAT 5 Ethernet cable is used.” But the earlier April 2014 manual says “CAT5E or CAT6 (recommended) Ethernet patch cable to connect ANAN…” I have a variety of spare Ethernet cables on hand. I wasn’t sure if I should grab a CAT5 or CAT6 cable. I chose a CAT6 because I was pretty sure either would be fine, and I had a CAT6 cable that was both the right length and the shielded type. Some might call this much ado about nothing, but I mention it because documentation should be clear and accurate. Right off the bat, I find clarity lacking. (My future self interjects that the CAT6 cable works just fine, and also that there will be more inadequate-documentation issues coming up, and many of them will not be so easy to resolve.)

Posted in ANAN-200D, General | Leave a reply

QST

Posted on 20 December 2016 by W2PADecember 20, 2016

Welcome to the SDR blog on W2PA.net!

This is a place to keep track of useful information about SDR, particularly for ham radio.

Contributors:
W2PA
W1JA

Posted in Uncategorized | Leave a reply

Post navigation

Newer posts →

Recent Posts

  • Setting Up for Digital Modes and Logging
  • Additional CTUN and MIDI enhancements
  • Click Tune Fixes and Enhancements
  • Summary of Mods for Both Behringer CMD-PL-1 and CMD Micro
  • Power Supply Issues

Recent Comments

    Archives

    • November 2017
    • September 2017
    • July 2017
    • May 2017
    • April 2017
    • March 2017
    • February 2017
    • December 2016

    Categories

    • ANAN-200D
    • ANAN-8000DLE
    • Digital Modes
    • General
    • MIDI Controllers
    • PowerSDR
    • PureSignal
    • Receiving
    • Transmitting
    • Uncategorized

    Meta

    • Log in
    • Entries feed
    • Comments feed
    • WordPress.org
    ©2025 - Software Defined Radio - Weaver Xtreme Theme
    ↑