I would like to acknowledge the following folks who helped me with the program.

Frank Ventura, N1FMV
Thanks to Frank for not only letting me use his Flex 6300 to test the built-in antenna tuner, but for sending me the rig as well.
Flex Radio Systems
Thanks to all the people at Flex Radio Systems for their assistance with a few issues here and there.

Thank you to everyone who helped with this project.

Getting Started

Thank you for using JJFlexRadio. This program is used to monitor and control Flex Radio's amateur radio equipment. It is primarily designed for use by blind amateur radio operators.

JJFlexRadio is optimized for use with a braille display, preferably one with at least 40 cells. I originally wrote this program because I do not like listening to a speech synthecizer while trying to listen to the radio! With the program, I am able to turn my synthecizer off, and just use the braille display to monitor the rig and do the logging.

Note that JJFlexRadio does not use braille or speech directly, rather it relies on your screen reader to manage those devices.

The Pan Adapter function of JJFlexRadio really requires a braille display, and will not work well with speech.

When JJFlexRadio starts up for the first time, you'll see a welcome screen. From here you can either read the documentation, configure JJFlexRadio, or exit. If you exit JJFlexRadio without configuring it, you'll see the Welcome screen again when you next run the program. It is recommended that you read the documentation first, but then you're doing that now.

When you configure JJFlexRadio, you will be asked to enter some information about yourself and optionally your log file.

The first screen asks for your full name, handle, QTH, and log file. For your QTH, something like "City, ST" is recommended, e.g. "Austin, TX", without the quotes. The QTH should be what you'd send for your QTH on CW.

You are then asked for your license class. This may be none, novice, technition, general, advanced or extra.

Following this is a button entitled "Log Characteristics". You can press this to specify a log file and its characteristics, or you can elect to wait til later. Log characteristics is discussed later in the section on log characteristics.

Following this, you can specify your braille display size in cells.

You may then enter the address and login name for your preferred DX cluster. This is discussed later under DX Cluster.

Leave the "Default Operator button checked, and press the Add button. You will be taken to the Rig Selector screen.

the Rig Selector

This screen allows you to select the radio you wish to use. It can also be brought up from the Actions menu. When it first comes up, you are shown the list of radios, if any, available on your local area network, LAN.

If you want to use a radio over the internet, the WAN, it must have previously been setup using SmartSDR's setup procedure. You might find it helpful to have sighted assistance for this. There is one test step, if you choose to do it, where you must look for a green light. Apart from that, you can likely manage it alone. Anyway, when you press the "Remote" button, if you're not logged in, you'll need to enter your login credentials. Note that there is a "Login" button following the Remote button, that'll force a login. You may use this if you need to log back in after a logout.

Connect with either the "Connect" button, or by simply hitting Enter when the rig is selected, or from the context menu for the selected rig. The context menu is brought up with a right mouse click or shift-F10. You may also choose the LowBW button for a low bandwidth connection.

If you don't want to select a radio at this time, you may just hit escape to use other JJFlexRadio functions.

You may also, using the selected rig's context menu, specify that a radio is automatically connected when JJFlexRadio comes up, and the radio is available. If the context menu has an "Auto connect on" item, that radio can be auto-connected. For the radio that is currently auto-connected, if any, the menu item will be "Auto connect off". You'll see this only if the rig selector is brought up after the program is started.

For example, if you indicate a radio is to be auto-connected, this will take effect when the program is subsequently started, (i.e.) auto-connect only happens when the program is brought up. If the radio is on a remote network, on the WAN as opposed to your LAN, you'll need to click the remote button to have it auto-connected. If you again bring up the rig selector, from the Actions menu, you can then turn auto-connect off for that radio if you wish. You may designate a radio to be auto-connected from the initial rig selector, or from a subsequent selector. Only one radio can be auto-connected.

The main window

The main window is composed of several fields. There are however 5 main fields. The first is the meter and frequency display. The second is the operating mode, (e.g.) USB. This is followed by several fields which largely depend upon the mode, although some are always there. These are discussed in somewhat more detail in the Other screen fields section.

Finally there are always three fields present at the bottom, "receive text", "sent text", and "status". The "received text" field is currently unused. When in CW mode, typing text into the "sent text" field will send the characters. The last field is a "status" field. Currently it shows:
pwr: on/off
Memories: # of memories
scan: off/running/paused
Knob: on/off/locked (FlexControl Knob)
log: log file name

There are some predefined keyboard commands that make it easier to navigate the main window.

Function key 1 is used to list all the keyboard commands. Press escape to exit this display.
This takes you to the main frequency display from any field in the main window. If scanning, it also pauses the scan.
If scanning, this resumes a paused scan.
F3 takes you to the "received text" field from any field in the main window.
This takes you to the "sent text" field from any field in the main window.
In general, the escape key exits a window, except for the main window.
Exit JJFlexRadio from the main window.

The Meter and Frequency Display

The meter and frequency display is the first item on the main window, and where you'll want to be focused on for most operation. It is actually one text box, so it shows up as one field, and works very well with a 40-cell braille display. It is good to learn this display, as information is maximized, and there are no field prompts or headers.

I'll begin by just showing some typical output, and describing the information shown. Then I'll go into detail about the various fields.

	sm   7   0  7.028.420  rrrr  xxxx

This shows the rig on 7.028.420, using slice 0. The meter is reading s-7, so I've got a pretty good noise level. The "sm" on the very left means that slice 0 is sounding, and slice 1 is muted.

The RIT and XIT are off.

Also, if I hit the tab key, I'll show the mode as CW.

sm   7   0  7.028.420  +0040  xxxx

This is the same as above, except now the RIT is on, and set to +40 hz.

sm   7   0  7.028.420  rrrr  -0040

Here the XIT is on and set to -40.

sm +10   m  1  7.200.000  rrrr  xxxx

Here we have an "M" in place of the slice number, which indicates a memory channel is active. In fact, it's channel 1, the second memory, at 7.2 MHZ.

Also note the "+10", which means s9 plus 10.

sm   8  V0  7.200.000  rrrr  xxxx

Now we've set slice 0 to the memory channel, but we've turned on the Vox! It's very important to note when the Vox is on, especially on LSB, which is our mode as I can tell by tabbing to the mode.

sm   7 SV0  7.200.000  rrrr  xxxx

Now here, not only is the Vox enabled, but the slices are Split! Ok, I'll admit it, I've accidentally transmitted on an unintended frequency, because I didn't pay enough attention to whether or not my VFOs were split. JJFlexRadio puts that right under your finger tips.

Finally, notice that the frequency is shown in the form mm.kkk.hhh, MHZ, KHZ, HZ.

Now let's turn off Vox and Split.

sm   7   0  7.200.000  rrrr  xxxx

NOTE: If you're using JAWS 14 through 17, you will need to uncheck "Enhanced Edit Support" to get the continuous frequency display to work. Versions prior to 14, and after 17, don't have this problem. To uncheck this, use JAWSKEY-F2 and select "Settings Center". Search for the word "Enhanced", and uncheck "Enhanced Edit Mode".

Controling the Slices

Think of a slice as a separate receiver. It's similar to having multiple VFOs, (e.g.) A and B, but it's truely multiple receivers. In fact, you may actually listen to all of them at once, although you'll likely not do that. A slice's audio may be manipulated using the cells at the very left of the frequency display. For each slice your radio has, there will be a corresponding 's' or 'm' on the left of the display, 's' for sounding, and 'm' for muted. You may toggle the sounding/muted state of a slice with the space bar, or specify it directly by pressing 's' or 'm'. You can make a slice the active slice, the receive slice, by pressing the letter 'a'.  't' makes it the transmit slice, and 'x' assigns both the active and transmit slices, (i.e.) transceive mode. Note that when the transmit and receive, or active, slices are different, this is known as Split mode.

Also, if only one slice is sounding, it becomes the active slice.

Using the Keyboard in the Frequency Display

Now for the cool stuff you can do from the keyboard. I'll admit this is easier with a braille display. I can use the cursor routing with my Pacmate 40 display.

First, place the cursor on a digit of the frequency, and use the up and down arrow keys to change it. For example, if you place your cursor on the right-most KHZ digit, and cursor down 5 times, you'll be on 7.195. If you place your cursor on the 7, the MHZ digit, and cursor up once, you'll be on 8.200.

Note that you can't change the frequency from the keyboard if transmitting.

You may also place your cursor on a digit and enter a digit, 1 through 9, from the keyboard. This will, by default, add that digit to the frequency according to the cursor placement. For example, if you're focused on the KHz digit, and enter a 5, 5 KHz will be added to the frequency. If you enter a minus sign, then the subsequent entries are subtracted, until you enter a plus sign.

If however you're in split VFO mode, the value applies to the transmit VFO. This is very handy for instantly setting your transmit VFO 2 KHz above the receive VFO, for example.

Ok, go back to 7.200 please.

Now place your cursor on the 0 that stands alone to the right of the S-meter reading. This indicates we're using slice 0. Press the up arrow, cursor up, and notice you switch to the next slice. Assuming you have two slices, you'll get back to slice 0 on the next press. You can also change using the down arrow key.

Also note that the switched-to slice is unmuted, and generally the other slice is now muted. For example:

ms   7   1  7.230.000  rrrr  xxxx

Press the down arrow to go back to slice 0.

Now press the "M". If memories have been setup, you should now be in memory mode. In my case, it'll be on memory 1 at 7.200.

Now place your cursor on the memory number, and go through the memories with your arrow keys.

Now place your cursor back on the "M", and hit the "V" key. This will switch out of memory mode.

Placing the cursor over the RIT (r) or XIT (x) fields and hitting space activates the RIT or XIT.

Here's the list of fields that have associated key functions:

The characters to the far left of the display
These control the 2, 4, or 8 slices. Slices are numbered starting with 0, (i.e.) a radio with 2 slices has slices 0 and 1. The left-most character refers to slice 0. The corresponding field for a slice will either be "s" or "m", for sound or muted. You may toggle this with the space bar. For example, if you are listening to slices 0 and 1, the left-most characters will be "ss". The following keys are valid:

Important: It is possible to make a slice the active or transceive slice while it is muted. Make sure you're listening to the correct slice!

Two spaces to the left of the slice number.

Note that you may wish to hear both slices when in split mode. In fact, JJFlexRadio will automatically turn on the sound for the transmit slice.

One space left of the slice number.
A slice value is always displayed to the left of the frequency, unless in memory mode. This will be a slice number starting with 0, or "m" for memory mode.
Shown as mmm.kkk.hhh.

Note that from the frequency you can go into and out of split mode, and view the receive or transmit frequency.

offset direction
Immediately to the right of the frequency. Active when in FM mode only.
RIT/XIT fields (rrrr and xxxx)
Placing the cursor on one of these and pressing space activates or deactivates the RIT or XIT. You may then place your cursor over the digit you wish to change and use the up or down arrows to change the frequency, as you do the main frequency. You may also use the digits 1 through 9, plus or minus as with the frequency; 'v' turns on VOX/Breakin, and 'X' toggles transmit mode.

Note that RIT and XIT are in HZ.

If focused on the RIT, use the = (equal sign) to set the XIT to the RIT frequency and clear the RIT. This comes in handy when you are, for example, trying to work a DX station that's not using split frequencies, but he's working a station not exactly on his frequency.

Hopefully this has given you a good sense of the main frequency display. I find it very useful, and it has really improved my radio's usability!

Other screen fields

If you tab to the field following the main frequency display, you'll be at the Mode field. This shows the operating mode, and the mode can be changed with the arrow keys.

The next one or two fields are for antenna tuning. If your radio has the ATU unit, the first field indicates whether the tuner is active, and the second one starts tuning. If you don't have the ATU feature, there is just one field to start tuning. If using the ATU, tuning will stop automatically when a match is found or the tuner gives up. If not using the ATU, you must press the button again to stop tuning. In this case, while tuning, the SWR is shown, and is shown until you exit the field, so you can easily see what SWR you ended up with. Many of the following fields are modified using the arrow keys. I won't discuss each field in detail here, because they're somewhat rig dependent. It is certainly worth mentioning though that many of the fields that follow the mode are themselves mode dependent, and only fields relevant to the current mode are shown. Also, it is possible to access most of these fields using the Screen Fields menu.

Many fields can be changed with the up and down arrow keys. The change increment is field dependent. Also, many numeric fields may be entered directly. For example, you can enter a keyer speed of 17, for 17 wpm, rather than having to arrow to the desired values. Some fields however, which are not numeric, or have specific values that are not necessarily liniar,must be selected with the arrow keys.

If your Flex has an ATU, automatic tuner unit, you'll see the Tuner field which can be "true" or "false", indicating whether you want to use the internal ATU, or an external tuner. I recommend that you always use one or the other, the ATU or an external tuner. Note that you'll need to use an external tuner if using an amplifier. If you've were using the internal ATU when you last shut down JJFlexRadio, this field will be "true" when you bring it up again. Also, if using the ATU, the Ant Tune button will show the tuner status, or tell you if a memory is in use. If the button's text shows "Ant tune", no memory is in use for this frequency. If one is in use, the value will show "Ant tune mem". If bypassing the ATU (i.e.) using an external tuner, during and after tuning, the button will show you the current SWR.

There is a dialog for managing the Flex ATU memories. The dialog is called "Tuner memories", and is accessed from the Operations menu. It allows you to turn tuner memories on or off, and to clear all the memories. If using an external tuner, turn tuner memories off.

The Flex radios don't use menus, but some of the screen fields are buttons that may bring up dialogues. Some fields to note are:

Low and High
These control the filtering. As their names imply, they allow you to filter the low and high bandpass limits. For example, for upper sideband, USB, you'll see values like 100 and 2800. You can change these with the up and down arrow keys in steps of 100 HZ. Note that for lower sideband, LSB, the equivalent values are -100 and -2800. For CW, the default values are -200 and 200. You may key these values in directly.
This lets you export your radio's settings, and import them at a later time. You might export your settings to another radio, or export them in order to restore them after a reset.

It should be noted that JJFlexRadio does not currently support multiple profiles such as those supported by the Smart SDR client from Flex Radio Systems.

TNF - Tracking notch filter™
The tracking notch filter is a feature of Flex radios which allows you to create a filter that persists for a given frequency. It is handy if you have a carrier or birdy at a fixed frequency, and want to filter it out. If you click the TNF button, you are in a dialogue containing a list of the TNFs you have created. You can click the "Add" button to add another TNF at the rig's current frequency.

For the selected TNF, you can then change the width in HZ, the depth, 1, 2, or 3, and whether the TNF is permanent. If TNFs are turned on, and they are by default, You will be able to hear the effect of any changes you make to a TNF immediately. Also, unless you make a TNF permanent, it will be deleted when the radio is powered off.

TNF off/on
There is another button that allows you to turn all TNFs off or on, they're on by default.
RXEq and TXEq buttons
If the mode is a phone mode, such as USB, you can bring up a dialogue allowing you to set audio equalization values for receive or transmit. There are 8 bands, or octaves, which you can very.

The Rig's Memories

Flex memories differ from most other rigs, because they are completely dynamic, and there is not a fixed number of them. For example, for the Kenwood radios, memory 10 exists, whether or not it is empty. There are a fixed number of memories. For the Flex radios, a memory is simply an item on a list of memories. This list contains only used, or non-empty, memories.

When you bring up the flex memories dialogue, you are in a list of the available memories. This list is sorted by memory group and name, or frequency if unnamed. If you've selected a memory in this list, and then press enter, you are taken to that memory.

The values stored for a memory by JJFlexRadio are, frequency, mode, Low, High, Power, Name, Owner, and Group. In addition, for FM modes you can set the tone mode, off or CTCSS; tone frequency; squelch, on or off; squelch level; offset direction, off, minus or off; and the offset in KHZ.

To add a memory, first set the radio with the values you want, then bring up the memories dialogue and click the add button. For example, to add a 6-meter FM repeater at 53.670 you might:

  1. Set the frequency to 53.670 MHZ.
  2. Set the mode to fm.
  3. Set the tone mode to CTCSS, and the frequency to 103.5.
  4. Set the squelch to on.
  5. Bring up the memories dialogue and press the "Add" button.
  6. Set the Name to "my 6-meter repeater" and the group to "6m".

To set the name or group, enter the value you want, and then either leave the field with the tab key, or press Enter. This also applies to most of the other fields. Some fields, such as the mode, tone mode, and tone frequency, you just set with the arrow keys.

By default, the Name and Group are blank. Note that at present, the Owner field isn't used by JJFlexRadio, but it is preserved. The Name and group fields are used to position the memory in the list. Memories with the same group name appear together, sorted by name.

If you put an "m" in the VFO field of the frequency display, the radio enters memory mode. The number shown as the memory channel is really the index of the current memory within the memory sort order. Arrowing up and down with the cursor positioned on this memory number will move up and down through the sort order. Note that the Flex radios don't have a memory mode as such. The current slice is set to the selected memory.


JJFlexRadio allows you to do your logging with the same program you use to monitor your rig. It is good to become familiar with the keystrokes used to log information, and the behavior of the log window in general, before attempting to use it. Once you're familiar with the logging, you can just turn off the speech from your screen reader and use the braille display.

JJFlexRadio's logging can be modified to fit a particular logging situation. For example, there is a different log form for Field Day logging than for general purpose logging. These log formats are predefined.

The Log Characteristics Dialogue

This dialogue is used to specify the log file and its properties. The first thing is the log file name. You can specify a log pathname, use the Browse button that follows the name, or choose from the four most recently used log files using the Files menu, Alt-F. The default file extention for the log file is .jrl. While the log file format is unique to JJFlexRadio, the log can be exported to, and imported from, an .adif file.

Next you specify the form name. This is the name of a predefined log format. The log format we'll discuss here is the DefaultLog.

The reason for different log forms is to tailor the logging to the activity being logged. For example, you don't need to log signal reports, QTH, and name for field day, rather you log the call, class, and ARRL section. Other log forms will be added in the future.

You can then select one of four types of duplicate checking. The types are none, justCall, callAndBand, or callAndBandAndMode. If you specify something other than none, the information in the current log entry is checked for a previous duplicate entry containing the fields mentioned. If, for example, the duplicate method is justCall, and you enter the call of a station you've worked previously, a beep sounds when you leave the call field. The #QSOs field in the log entry shows the number of prior contacts you've made with that station. This is not only useful for contesting, but also lets you know when you've contacted a station you've worked before.

Next is a field where you can specify the first serial number in the log. The default is 1.

Following the first serial field is a field that allows you to specify whether or not to lookup operator information from hamqth.com; the default is "No". The operator's information is placed into the pertinent fields in the log when you exit the Call field. For example, if you enter "ke5al" while creating a new log entry, when you exit the Call field, the QTH, Handle, and country fields are primed with KE5AL's QTH, Handle and country information.

Some general Information About the Log Window

The log window can be brought up with key sequences, and brought down immediately with either the Enter or Escape key. If you exit the window with the escape key, any new information you entered is discarded. If you use the Enter key, the new information is remembered, but not logged yet. The exception to this is the Comments field, where the Enter key adds a new line. It is important to note that an entry isn't logged until you use the "Write Log Entry" key, set by default to ctrl-W.

For example, if you've just come to the log form to enter the QTH, and you know it's wrong and want to start over, you can hit Escape, and come back to it when the station is repeating it. However, if you've entered other information and use Escape, that will need to be re-entered too, so be careful here. Remember, unless in the Comments field, pressing enter leaves the form, remembers the information, but doesn't log it. If you're in the Comments field, hit Tab to leave the field and then press Enter.

Field formats aren't checked, so you can enter anything into any field, except for Tab and Enter. Enter behaves as described, and Tab takes you to the next field. You can also enter the key sequences to go to other log fields, or perform some log actions. For example, you can jump from the Callsign field to the Comment field if you wish.

Going to Log Fields

You use a key sequence to go to a log field or perform selected log actions. If you're at the main window, the log window is brought up and you're positioned in the desired field. If you're already in the log window, you simply jump to the desired field.

You can also perform selected logging actions such as to write the current entry.

Let's go through a typical QSO, showing the default keys used to log information. You can change these key sequences if you wish.

Searching the Log

You can search for information in the log with ctrl-shift-F by default. If you were at the main window, you are placed in a blank log form, and you need to enter the information in the appropriate field. For example, if you want to look up a callsign, put it in the callsign field, which you can jump to with alt-C by default. The results are displayed in a list form, and you can select the desired item. You are then placed in the log form for that QSO.

If you are logging a station that you've worked before, and focused on the log form, ctrl-shift-F will search for that call. You will be placed in the list of previous logged QSOs. Note however the search from within the log form only searches if the entry has been identified as a dup. Thus if you're not dup checking, it won't function.

Log Statistics

If you've downloaded an LOTW report from the ARRL's LOTW website, and merged it with your log, see the LOTW Merge Action menu item, you can view some log statistics with this feature, ctrl-shift-T by default. The currently supported stats are U.S. oriented. When you enter ctrl-shift-T, you're taken to a locally generated web page which shows the stats.

The JJFlexRadio Menus

Currently there are four menus as described below.

The Actions menu

The Actions menu currently consists of the following items:

The Screen Fields Menu

Most of the fields on the main screen are rig dependent fields. This menu allows you to easily navigate to those fields without having to hit the tab key several times to get where you want to go. For example, if in CW mode, and you want to change the keyer speed, hit Alt-F to go to the Screen Fields menu, then hit "s", and you'll go to the speed field. Note that like other menus, if more than one field has the same access key, you're positioned in the menu at the first such field.

The fields shown are mode dependent, so, for example, if the mode is USB the keyer speed won't show up.

The Operations Menu

This menu simply allows you to access program operations, normally accessed with a key sequence, from a menu. It's chief advantage is that, if you forget a key sequence, you can use the function without having to look it up. For example, if you forget that Ctrl-F is used for direct frequency entry, you can use the Operations menu to find the "Frequency" item.

This menu is also useful for commands which have no associated key sequence. The Operations menu is the only way to access these. Some items to note are:

Collect debug info
You hopefully won't ever need to use this item. If you have a problem with this program, this is used to collect debug information to send to JJFlexRadio support, yours truely at present. Note that before sending in debug information, you should have first contacted support.
Reboot the radio
This is used to reboot the radio. If the rig is on your LAN, it first tries to shutdown the radio normally before the reboot.
Remote Audio on/off
This is used if you want to operate your rig over your LAN, but are not at the rig. In other words, it is remote audio, not remote operation via the internet. Note that you may need to select your audio devices using the "Select Audio Device" menu item.
Select Audio Device
You are first asked to select the input, microphone, device. Note that this can be a built-in microphone if you like. You are then asked for the output, speakers, device. These devices will be used for remote audio, whether over your LAN or over the internet.
Tuner Memories
This is a dialogue that allows you to turn ATU memories on or off, and to clear the tuner memories.

The Help menu

This menu has these items:

The Scanning Feature

JJFlexRadio provides two types of scanning, linear and memory. Linear scanning is used to scan a linear region of memory, while the memory scanning allows you to scan through your radio's memories.

Linear Scanning

JJFlexRadio provides a primative scanning feature that allows you to scan between a start and end frequency. By default, it is access with ctrl-S. You can specify the scan step size, in KHZ, and the scan speed. The speed is the number of tenths of a second to spend on each frequency. Thus to scan from 7.2 to 7.299 in steps of 1 KHZ, spending half a second on each frequency, you'd specify 7.2, 7.299, 1, and 5 (5 tenths of a second).

While scanning, if you hear something you want to investigate, pressing the "Pause scan" key will pause the scan, you may then investigate with the VFO, and then resume the scan where you left off, using the resume scan key. By default, the pause key is F2, and the resume key is Shift-F2. Stop the scan with ctrl-Z by default.

The status line shows the state of the scan, off, running, or paused.

You can also save your scan for later use. This is done from the dialogue where you entered the scan parameters. When saving a scan, you are asked to name the scan for future reference. There is a function to list and select the saved scans, ctrl-shift-U by default.

Memory Scan

The memory scanning feature makes use of memory groups. There are two types of memory groups, those defined by the memories themselves, and memory groups you define yourself.

You may define your own memory groups which can include memories you choose, regardless of which group they're in according to your radio. For example, you might have setup group1 to be 10 meter repeaters, and group2 to be 6 meter repeters. You could define a group called Repeaters that includes all those repeaters. Of course, when doing a scan, you could simply select both group1 and group2 also.

By default the key sequence to perform a memory scan is Ctrl-Shift-M. You are then given a list of the memory groups. When you select a memory group, the memories belonging to that group are displayed in the list to the right of the group list. However, in order to include a memory group in a scan, you must check the corresponding check box.

To start a scan, you then tab to the speed field and provide the scan speed in tenths of a second, (e.g.) 10 will spend 1 second on each memory. You then press the start scan button.

Following the start scan button is a button labeled "Manage Groups". This brings up a dialogue you can use to update or create a group you've defined. You can not change the memory groups defined by your radio here. Those must be changed using the memory dialogue.

The Pan Adapter

As far as I know, JJRadio and JJFlexRadio are the only programs to support a braille pan adapter. The Flex radios are the only radios I know of that provide third party software access to the panadapter information straight from the radio. You can jump to the display with the Band Pan Actions menu item or the key sequence, ctrl-P by default. The display shows the relative signal strengths for the corresponding frequencies. It is intended for use with a braille display. The signal strengths are shown using the braille characters 'a' through 'Z' in lower and upper case, where lowercase 'a' is the noise floor, and uppercase 'Z' is a strong signal. The routing keys will take you to the corresponding frequency.

Below the pan display are the following fields:

Pan Low
This shows the low frequency which corresponds to the left-most cell of the display.
Pan High
This shows the end frequency for the pan. Note that it is the upper pan limit, not the frequency corresponding to the right-most cell.
Press (click) this button if you change Pan Low or Pan High.
Press Save to save a custom panning range. Note that you must have previously pressed the Change button to establish the custom range.
Use Erase to erase a custom range.

Here is some sample pan output:

Pan Low:   14.000.000    Pan High:   14.040.000    Change   Save   Erase

Note that this is a 40 cell display, so each cell corresponds to 1 KHZ. Thus the display shows the strongest signals around 14010 and 14022. Note that the "a" character indicates the noise floor.

When you start JJFlexRadio for the first time, the pan range is selected for the band you're using. For example, the initial low and high values for 20 meters will be 14.000 and 14.350.

Let's say you want to create two ranges on 20 meters, 14.000 to 14.080 and 14.150 to 14.350. To create the first range, leave Pan Low at 14.000, and set Pan High to 14.080. Then press Change. Note that at this point the pan display will pan over the new range. Press the Save button to save the range. For the second region, set Pan Low to 14.150 and Pan High to 14.350. Then press Change and Save. Now if your frequency is in one of these ranges, the pan display will show the corresponding region. Note that if you move out of the ranges, let's say to 14.110, panning will be from 14.000 to 14.350.

Your custom ranges are saved for the current operator. Thus different operators can create their own ranges.

Using the Flex Radio Remotely

It is possible to use the Flex radios running Version 2 of the SmartSDR software remotely, over the WAN, (i.e.) over the internet. This is discussed earlier in the section entitled the Rig Selector.

DX Cluster

This allows you to use DX clusters which have a telnet interface. By default, the key assigned is Ctrl-Alt-D, or use the "DX cluster" item from the Operations menu.

Before using this function for the first time, you may want to see if the current operator has defined a cluster address and login name. This is done by selecting "List Operators" from the Actions menu, and updating the currently checked user. The Cluster address defaults to dxc.nc7j.net. The cluster address may contain a port number, delimited with a colon, in which case you specify it as address:port. For example, dxc.nc7j.net is the same as dxc.nc7j.net:23; 23 is the default telnet port. The login name will default to the callsign of the operator when the operator is created or updated. You will almost always login using your callsign. For one list of telnet available clusters, see Telnet Access to DX Packet Clusters. There are other lists as well.

When you use this function you will be asked to enter the cluster address and the login name. This will be the cluster address and login name, callsign, for the current operator if set. When in this dialogue, you can tab past the OK and Cancel buttons, and check the box to not see this again, and then click the OK button. If you do this, when you subsequently bring up the cluster, you won't be prompted for the login name. Thus if you wish to use multiple clusters, you may not want to check this box. JJFlexRadio allows you to have multiple cluster windows open, so checking the box will mean you'll always open a window on the same cluster.

If the login was successful, a separate window will come up showing text from when we connected to the present; basically the login banner stuff. Then the DX spots appear. If you haven't set a filter, you'll be inundated with spots, primarily from skimmers. The NC7J cluster, an AR-Cluster, has good documentation starting at the AR-Cluster Introduction page. The DXSpider cluster documentation is at the DXSpider Documentation Wiki.

If you press tab once you'll land in the "Cluster cmd" field. In this field you can enter a command to the cluster. For the NC7J cluster, and other AR-Clusters, you might immediately want to enter the command "set dx filter not skimmer", without the quotes of course. This will turn off the skimmer spots. I encourage you to read up on the clustr commands. They allow you to filter the cluster output, set your login information, such as your name, lat/long, grid square, etc, and other functions.

At the bottom of the screen are two buttons. The first is the "Beep on/off" button. The text for the button shows the action to be performed. Since the button is initially off, the button is labeled "Beep on". Turning beeps on causes a beep every time output is sent to the screen. The next push is for Beep on DX. This, my preferred setting, causes a beep only when a new spot is reported. Also, the setting you choose, on, off, or beep on dx, is remembered so you don't need to set it every time you use the cluster.

Next is a button initially labeled "Track last post Off"; it will be Off or On. If you press it, turning tracking on, the cursor is routed to the last displayed screen item, instead of staying in one spot. This is quite useful if you don't have a lot of spots coming in, and always want to read the most recent post. This setting is also remembered.

You may simply close the cluster window to log off the cluster. Of course you are logged off if you close JJFlexRadio also.

The reason I developed this interface as opposed to simply using a telnet client, is that I can either maintain your current cursor position in the output while new information is being added at the bottom of the window, or always set the cursor to the last item added. If maintaining position, even if the window would normally scroll, your cursor position is preserved. This gives you a chance to read the output with speech or braille, before moving on. To navigate to the bottom of the output, (i.e.) to the most recent entry, use Ctrl-End. Ctrl-Home takes you to the top of the window. As usual, you move up and down a line at a time with the up and down arrows.

The format of a displayed spot is usually frequency, callsign, comments, timestamp, and reporting callsign. For example,
14020.1 EA1AA good sig 2149Z KE5AL

This says that the station, EA1AA, is on 14020.1 khz, reported by KE5AL at 2149Z. KE5AL says he has a good signal.

With your cursor on that line, if you press enter, your radio, if being controled by JJFlexRadio, will go to that frequency, 14020.1. Also, the call, EA1AA, will be in the windows clipboard, so it can be copied into the log.

External Wattmeter Support

It may be desirable to use an external wattmeter to read the power or SWR. This is especially true if using an amplifier. At present, JJFlexRadio only supports the Elecraft W2 wattmeter. The W2 allows the meter to be read over a virtual com port. This document assumes the W2 is already setup.

The power or SWR is shown in the s-meter field when in transmit.

To start using the W2, select the W2 Wattmeter item from the Actions Menu. The appropriate com port must then be selected.

The next item is either "useifopen" or "dontuse". If "dontuse" is selected, the power is gotten from the rig.

The final item is "average", "pep", or "swr",depending upon the reading you want.

The power or SWR will show up instead of the s-meter reading when you transmit, whether it comes from the wattmeter or the rig, however the SWR only shows up in this field if it comes from the wattmeter.

Important! The Elecraft W2 software must not be running.

The FlexControl knob

Flex Radio Systems sells an external control knob known as the FlexControl knob. The knob contains a tuning knob, and 3 push buttons, left, center and right. The tuning knob and each button may be pressed once, twice quickly, or held for over a second, for a total of three functions which may be assigned to each one. In addition, the tuning knob can be rotated like a VFO knob.

To configure the device, select the "Flex Knob Config" item from the Actions menu. You must select the com port for the device. This can be found using the Windows Device Manager. You may then configure additional keys or change the ones setup by default. The defaults are:

Left button, short press
switch to the next VFO if in transceive mode, (i.e.) the transmit slice equals the receive slice.
Left button, double press
lock/unlock the FlexControl tuning knob. Tuning is enabled initially, Locking the tuning prevents accidentally changing the frequency by bumping the tuning knob, but does not disable other functions of the knob.

If you have previously used the knob, you may want to change the configuration to reflect this. The previous value for "Left button, double press"" was to disable the knob.

Middle button, short press
Toggle noise reduction on/off, if not in CW mode. Toggle the APF on/off if in CW mode.
Right button, short press
Increase the frequency tuning step. The initial tuning step is 10 Hz for CW mode, 5 KHZ for AM mode, and 50 Hz otherwise.
Right button, double press
Decrease the frequency tuning step. The initial tuning step is 10 Hz for CW mode, 5 KHz for AM mode, and 50 Hz otherwise.
Tuning knob, short press
Toggle tuning of the frequency with that of the RIT. If the RIT was disabled, it is enabled. Note that initially the tuning knob tunes the VFO's frequency. If switching from tuning the RIT to tuning the VFO, the RIT is disabled.
Tuning knob, double press
Toggle tuning of the frequency with that of the RIT. If the RIT was disabled, it is enabled. Note that initially the tuning knob tunes the VFO's frequency. If switching from tuning the RIT to tuning the VFO, the RIT is left enabled.

Let's say, for example, you wish to use a long press of the left button to disable/enable the knob. This is currently done with a double press on the left button.

Now a long press of the left button will disable, then re-enable the knob.

JJFlexRadio Commands

With the exception of the logging commands, all JJFlexRadio commands must be entered from the main screen. You may change the key assignments as discussed in Change Key Mapping in the Actions Menu section. The logging commands are discussed in somewhat more detail in the section on logging.

F1 - Show keys help
Use F1 to list the functions and their key assignments. Deleted key assignments aren't shown here, see Change Key Mapping.
F2 - Show frequency or pause/continue scan
This either focuses on the main frequency display, or pauses the scan if you're scanning. It is very handy if you're on a field other than the frequency, and need to jump to it quickly.
F3 takes you to the "received text" field from any field in the main window.
This takes you to the "sent text" field from any field in the main window.
Stop sending CW
Control-F - Enter frequency
Use this to enter a frequency manually. The frequency is entered in the same format as frequencies are displayed, (i.e.) mmm.kkk.hhh. For example, 14.2, 14.255 or 14.255.6.
Control-M - Bring up the memory dialogue
See The Rig's Memories.
Alt-D - Set log date/time
This function will set the date and time of the current log entry, or just take you to the date field if you're currently in a log entry. You might use this if you hear a DX station, and use ctrl-N to bring up a new log entry, and log his call, but then you work him after spending ten minutes in the pile-up, and want your log entry to reflect the date and time you actually worked.
Control-W - Write log entry
This writes a log entry. Note that the entry is not written when you leave the form, but you must use this function to write it to the log.
Shift, Control-L - Enter log file properties
This is the same as the "Log Characteristics" menu item. See the section on entering log file characteristics.
Alt-O - Log the mode
Bring up the log form and go to the mode field. This is normally set automatically.
Alt-C - Log callsign
Bring up the log form and go to the callsign field.
Ctrl-H - Log his RST
Bring up the log form and go to the hisRST field. Note this is Ctrl-H, not Alt-H, which brings up the Help menu.
Alt-M - Log my RST
Bring up the log form and go to the myRST field.
Alt-Q - Log QTH
Bring up the log form and go to the QTH field.
Alt-S - Log state/province
Bring up the log form and go to the State/Province field.
Alt-N - Log name
Bring up the log form and go to the Handle field.
Alt-R - Log rig
Bring up the log form and go to the Rig field.
Ctrl-A - Log antenna.
Bring up the log form and go to the Antenna field. Here again, Ctrl-A is used instead of Alt-A.
Alt-E - Log comments
Bring up the log form and go to the Comments field.
Control-N - New log entry
Bring up a new log entry. The date/time, mode, and frequencies will be set.
Shift, Control-F - Find a log entry
Search for a log entry, see Searching the Log.
Control-S - Start/stop scan
See the section on scanning.
Control-Shift-M - Memory scan
See the section on scanning.
Shift, Control-U - Use a saved scan
See the section on scanning.
Control-Z - Stop the current scan
See the section on scanning.
Control-P Bring up the pan adapter dialogue
see the section on the pan adapter.
CW zerobeat. Note that if the RIT is active, this changes the RIT offset, not the VFO frequency.
Clear the RIT.
This opens a web browser session at www.reversebeacon.net. You can specify the call to check for; the default is the call of the current operator.
This allows you to view DX spots from a DX spotting cluster, see DX Cluster.
Raise/lower lineout gain.
Raise/lower slice gain.
Raise/lower headphone gain.
Immediate value toggle. This toggles the APF if the mode is CW, otherwise it toggles noise reduction.
Alt-L - station lookup
This brings up a form where you may enter a station's callsign to do a callbook lookup. It uses the callbook lookup from hamqth.com, as does the logging facility. This is handy if you're in a QSO and have started the log entry, and want to lookup another call, or if you just don't use the logging facility.

Any CW message keys you've defined will show up after these keys.

Getting Support

If you need support for JJFlexRadio, You can send an email to the support link on the JJFlexRadio web page.

Enhancements and Fixes

This is the initial release of this program.

Version 1.2.1

Version 1.3.1

Version 1.3.2

Version 1.3.3

Version 2.5.1

Known Bugs and Limitations