Flcontrol is a clone of flrig, and is built by the same method:
$ tar xzvf flcontrol-X.Y.ZZ.tgz
$ cd flcontrol-X.Y.ZZ
$ ./configure
$ make

Flcontrol is run as follows:
$ [ start alex hpsdr-server ]
$ [ start 1 or more alex dspservers ]
$ src/flrig -title FlRigSdr<0-79> --config-dir .flRigSdr<0-79> --exp


Configuration of flcontrol during initial startup:

Communication of frequencies, modes, etc., between flradio and flcontrol is done via XML-RPC. Traditionally the fl suite only expects 1 running instance of fldigi. As such it expects a default XML-RPC port of 7362 to be used between flrig and fldigi. The modifications made for flradio (primarily multiple instances of flradio per dsp server) require an expansion of the port space.

The general rule is that the traditional port value of 7362 is used for the instance running as the transmit rig. If additional transmit rigs exist they use 7363, up to a max of 7369 (maximum of 8 transmit rigs).

Instances of flcontrol running in the receive role start @ XML-RPC port 7370, increasing up to a max of 7449 (maximum of 80 receive dsps).


Configuration of flcontrol for the transmit rig:

Configuration of the flradio and flcontrol for the transmit rig will be the same as it would be if that rig were running with the original fldigi programs, although you do need to use the modified versions for hydra to work. Note that flradio does NOT yet support direct control/data connection of an hpsdr transmit (eg. hermes) rig. Presumably you would set it up via the traditional sound card interface to use as the transmit rig. I don't own a hermes yet, so I am only speculating. I use my K3 as the transmit rig, it works with the mercury as the receive dsp server quite well.

You should probably get a complex (multiple dspservers/multiple instances of flradio on each) running in receive mode before you attempt to add a transmit rig to the mix. Experiment with running 2 instances of flradio on the same dsp, but in different decode modes (eg. olivia/contestia or psk31/psk63). Once you get the hang of that go on to set up a transmitter.

For details see Hydra and Hydra Mapping


Configuration of flcontrol for the receive dsps/rigs:

Make sure that flradio is NOT running during the initial configuration.

The Alex dspserver MUST be running at the expected address/port for setup to proceed smoothly. Flcontrol expects the dspserver base port to be 8000 for the 1st dsp, increasing by 1 for each additional dsp. As stated above, it also expects the XML-RPC socket used for communication with FlRadio to be 7370, also increasing by 1 for each dsp.

Click Config: Setup > tcpip


The I/O Ports pop-up will display with the tcpip tab selected. Add the desired dsp# to the base TCPIP port value of 8000. In this example it is set to 8001 for use with the 2nd dsp. You should also modify the TCPIP address at this point if required. Click the "Use tcpip" button, it will go green if flcontrol can communicate with the dspserver. If it doesn't stop and determine why communication fails. Remember that the Alex dspserver MUST be running during setup.




Select the "Primary" tab then Rig: HPSDR.


Adjust "Fldigi port", adding desired dsp# to the base value of 7370. In this example it is set to 7371 for use with the 2nd dsp. Be sure to enable the 'Use fldigi server' button. You should also modify the fldigi address at this point if required.


The mapping of a complete Hydra system can be a bit complex, for details see Hydra Mapping

Click the "Init" button in the upper right of the widow.
Then confirm the required re-start:



The main flcontrol window should now look like:

The title bar will display HPSDR-n when 'n' is the dsp server #. Remember that dspservers are numbered starting @ 0, so in this case the 2nd dsp server is labeled HPSDR-1.

Several buttons need to be set at this point. First make sure the sound samples are set to 'Pcm':



Play with volume slider and possibly the RxAGC to get the waterfall looking proper:



If using Hydra, the frequency offset between the transmit and receive rigs will need to be set. Its done with the 'XmitOS' tab at bottom of window. If necessary, click the 'down arrow' button on bottom left corner of screen to expand the tabs. The select the 'XmitOS' tab.





Then select a strong signal on both the transmit rig and receive rig. You will see a difference in the waterfall cursor position of each rig. In this case the receive rig has an offset of 2158. Type this value into the RcvWf field of the tab, and the value from the transmit rig into the XmitWf field. Then click 'Set Hydra Xmit Offset' and the correct adjustment will be displayed in the 'Ppm Offset' field, as well as being saved in the flcontrol defaults structure. It will be saved to disk when you exit flcontrol.


There is an 'Adjust Offset' slider mid-screen that allows 1Hz adjustment of the offset while running. This allows fine adjustment without doing a recalibration. Temperature swings throughout the day can make a 5-10Hz difference!


The general design of alex dspserver assigns "master/control" privileges to the 1st program to attach. Additional programs are all designated "slave" and cannot issue most control commands. I have added the ability to flcontrol to request master privileges via the callsign:password. Look for the Master button approx. half-way down. Enter your callsign and password, then click Master.

For this to work you need to edit your dspserver config file, by default: ~/dspserver.conf.

change: tx = "no";  #Can be: no, yes, password
to:     tx = "password";  #Can be: no, yes, password

add your passwd:
my0call = "xxx";

then add your callsign to members:
txrules1_members = ["ve9gj", "my0call", "call2"];

Start the 1st flradio for any dspserver, then start the associated flcontrol. Do the master setup described above, then test ability to control dspserver with it. Volume is a good test. If you mute it the waterfall should blank, restore volume and the data starts again. After this is working you can start additional flradios for that dspserver.