I'd like to run Linrad on 2 separate computers, linked through a
network (than could be internet).
I'm running Linrad under Win XP.
When linking my shack PC running Linrad, sending data on the network
to a second computer running MAP65-IQ, it seems to work (at least I
have not "No RX data" at the bottom of the MAP65 window but "Drop
0.00%" => MAP65 is well linked to Linrad and both are well
communicating I guess).
But when I run Linrad on the second computer, trying to retrieve data
from the shack computer through the network, I get the following error
message on the second computer :
INTERNAL ERROR: 1268
[1268]Error in attempt to use setsockopt() to request that the kernel
joins a multicast group
Is there something I'm missing ? Could somebody help me ?
Thanks in advance.
> When linking my shack PC running Linrad, sending data on the network > to a second computer running MAP65-IQ, it seems to work (at least I > have not "No RX data" at the bottom of the MAP65 window but "Drop > 0.00%" => MAP65 is well linked to Linrad and both are well > communicating I guess).
> But when I run Linrad on the second computer, trying to retrieve data > from the shack computer through the network, I get the following error > message on the second computer :
> INTERNAL ERROR: 1268 > [1268]Error in attempt to use setsockopt() to request that the kernel > joins a multicast group
> Is there something I'm missing ? Could somebody help me ?
The code that fails looks like this: // use setsockopt() to request that the kernel join a multicast group mreq.imr_multiaddr.s_addr=inet_addr(netrec_rx_multi_group); mreq.imr_interface.s_addr=htonl(INADDR_ANY); if (setsockopt(netfd.rec_rx,IPPROTO_IP,IP_ADD_MEMBERSHIP, (char*)&mreq,sizeof(mreq)) < 0) { lirerr(1268); return; } Since MAP65-IQ works the nework must be working properly so the only error I can imagine is that netrec_rx_multi_group is wrong. Press N on the Linrad main menu and check the receive address. Presumably it comes from a file par_netrec_ip in which you have stored the address that MAP65-IQ uses. (I just discovered that the dialog message is incorrect and says par_netsend_ip but the error message that follows if par_netrec_ip is not in place should give a hint...)
If you type something like 10.0.0.278 into par_netrec_ip, Linrad will just use that string without testing anything and that would cause the 1268 error. (No number must be larger than 255 in an IP address)
I have added this info to the 1268 error message and corrected the dialog. Please tell me if the above info helped.
The address that Linrad extracts from your file is shown in the Network setup menu. Check that it looks ok.
Actually, there was no problem !
It was my mistake :
On the master computer, I put the IP address of the destination
computer (slave) in the par_netsend_ip => this is correct
On the slave computer, I put the IP address of the master computer in
the par_netrec_ip => this was not correct !!! the par_netrec_ip must
include the IP of the slave computer itself.
Now, both compters are well communicating through Internet. This issue
is solved.
I still have to "play" however because the master computer is sampling
the band at 192 kHz while the slave is a laptop with max 48 kHz
sampling capability. Nevertheless, there should be no impact as the
slave computer is not sampling. My purpose is just to listen (then
only the D/A plays a role on the slave I guess) on the slave what has
been sampled on the master.
So, I'm still wondering how to do it (sending Raw, FFT or resampled BB
from the master to the slave ?)
I'm going to investigate this, unless you have an advise that would
allow me to save some testing time ?
> I still have to "play" however because the master computer is sampling > the band at 192 kHz while the slave is a laptop with max 48 kHz > sampling capability. Nevertheless, there should be no impact as the > slave computer is not sampling. My purpose is just to listen (then > only the D/A plays a role on the slave I guess) on the slave what has > been sampled on the master.
Sampling rates are determined by the input device. With the network as input you will get the 192 kHz of the master if you do not have switches and/or other things in your network that limit the data rate. The slave will fill in zeroes for missing packages so the input rate in the slave will remain 192 kHz anyway.
> So, I'm still wondering how to do it (sending Raw, FFT or resampled BB > from the master to the slave ?) > I'm going to investigate this, unless you have an advise that would > allow me to save some testing time ?
I do not know what you want to do so I have no idea what to suggest;-)
I have played a bit this WE with networking Linrad on separte
computers and it works !
My goal was to listen on a slave computer what is happening on the 2m
band through a master computer.
Then my setup is so :
Master Station :
Antenna - 144/28 transverter - 28/12 converter - Softrock v 6.2. tuned
on 12 MHz - EMU0202 192 kHz soundboard (for more info, see my website
http://home.versateladsl.be/cesgai00 ) - Master computer running
Linrad 03.03
Router/Modem/WiFi
Slave Station :
Laptop running Linrad 03.06
In the Linrad network parameters menu of the master computer, I set
the SEND address (through the par_netsend_ip file) to the IP address
of the slave computer.
On the slave computer, I set the RECEIVE address (through the
par_netrec_ip file) to the IP address of the slave computer itself
(and not the one of the master computer !!!).
That works fine, though either my laptop soundboard/my network are
limiting the bandwidth to be monitored to 20 kHz (above, I have too
many "network errors" = 0 fillings). That is enough to stay tuned to
144.300 from everywhere in the house or garden through my WiFi...
One nice improvement feature of Linrad should be to have a squelch.
> On the slave computer, I set the RECEIVE address (through the > par_netrec_ip file) to the IP address of the slave computer itself > (and not the one of the master computer !!!). > That works fine, though either my laptop soundboard/my network are > limiting the bandwidth to be monitored to 20 kHz (above, I have too > many "network errors" = 0 fillings).
When the Network is the limiting factor I think you should use the 16 bit raw data format. Presumably your analog hardware is the limiting factor anyway...
> That is enough to stay tuned to > 144.300 from everywhere in the house or garden through my WiFi...
OK. If you need it, it should be possible to run WiFi at much higher bandwidth - but I know nothing about the details. Maybe someone else does...
> One nice improvement feature of Linrad should be to have a squelch.
I know what a squelch is in FM mode. That is something I might add some day, but you mentioned 144.300 so perhaps you want some kind of squelch in SSB mode. It is not obvious to me what purpose an SSB squelch should serve.
Also squelches in general. I do not use them myself and I do not quite know what purpose they serve to others. Do you want to monitor a particular channel or do you want to hear any activity within a certain frequency range?
Indeed, I think the HW is limiting.
I forgot to mention (for others interested) :
- On the master computer Network Parameters, I send the RAW DATA in 16
bits (option 4 in the menu) on the network
- On the slave computer Network Parameters, I activate reception of
that same format (through option 11 in the menu)
About the squelch, I'm interested in monitoring a particular channel
(SSB) without hearing all the time the noise hiss, though I admit this
is a bit wasting the WB rx capabilities of Linrad. I guess it is
difficult to implement for a particular channel (or the sampling BW
has to be limited to a few kHz around that channel). The easiest would
be to define a threshold below which the receiver is muted but at 96
or 192 kHz sampling, there would always be some birdies (eventually
not removed by the autospur) triggering the squelch.
> About the squelch, I'm interested in monitoring a particular channel > (SSB) without hearing all the time the noise hiss, though I admit this > is a bit wasting the WB rx capabilities of Linrad.
Ok. You need the wideband for good noise blanking so it is no waste:-)
The standard procedure would be to have AGC enabled and to turn the volume bar in the baseband graph down to make the noise hiss rather weak.
The problem with SSB squelch is that the SSB signal is likely to be off frequency and that auto tuning is very difficult in SSB mode. (An unprocessed voice is fairly easy, but when a good speech processor has been used it is difficult. I have tried and failed...)
> I guess it is > difficult to implement for a particular channel (or the sampling BW > has to be limited to a few kHz around that channel). The easiest would > be to define a threshold below which the receiver is muted but at 96 > or 192 kHz sampling, there would always be some birdies (eventually > not removed by the autospur) triggering the squelch.
A squelch would operate on whatever comes out from the baseband filter and it would be possible to set a threshold for average power below which the output would be muted. Very easy, but there has to be some kind of user interface with yet another control bar....
For what it worth, FM squelsh works on quieting so is always less sensitive than the receiver. We would rather squelsh on subaudible tone or some digital pattern. These are not available in the standard ssb signal. I once worked for Harris RF, they had an ssb (reduced carrier) squelsh that worked on the recovered carrier, again not available here.
From: Leif Asbrink <l...@sm5bsz.com>
To: linrad@googlegroups.com
Cc: Subject: [Linrad] Re: Running Linrad on 2 computers through a network : Help
Date: Wed, June 10, 2009, 14:24:00
Hi Gaëtan,
> About the squelch, I'm interested in monitoring a particular channel
> (SSB) without hearing all the time the noise hiss, though I admit this
> is a bit wasting the WB rx capabilities of Linrad.
Ok. You need the wideband for good noise blanking so it is no waste:-)
The standard procedure would be to have AGC enabled and to
turn the volume bar in the baseband graph down to make the
noise hiss rather weak.
The problem with SSB squelch is that the SSB signal is likely to
be off frequency and that auto tuning is very difficult in SSB mode.
(An unprocessed voice is fairly easy, but when a good speech
processor has been used it is difficult. I have tried and failed...)
> I guess it is
> difficult to implement for a particular channel (or the sampling BW
> has to be limited to a few kHz around that channel). The easiest would
> be to define a threshold below which the receiver is muted but at 96
> or 192 kHz sampling, there would always be some birdies (eventually
> not removed by the autospur) triggering the squelch.
A squelch would operate on whatever comes out from the baseband
filter and it would be possible to set a threshold for average power
below which the output would be muted. Very easy, but there has
to be some kind of user interface with yet another control bar....
> For what it worth, FM squelsh works on quieting so is always less > sensitive than the receiver.
That would not be true if I would add a squelch in Linrad. The baseband is available in several forms and I guess the most sensitive squelch would be based on the same spectral information used to produce waterfall graphs.
I think the FM squelch is a well defined problem, few operators use Linrad for FM as far as I know so priority is low....
> We would rather squelsh on subaudible tone > or some digital pattern. These are not available in the standard ssb > signal. I once worked for Harris RF, they had an ssb (reduced carrier) > squelsh that worked on the recovered carrier, again not available here.
OK. - But we need backwards compatibility to conventional SSB:-)
An SSB squelch could be based on RMS power in the passband. That would open it on lightening crasches and any other noise burst. One could look at RMS power in relation to the surrounding noise floor. That would be problematic in crowded bands. One could look for a non-flat power spectrum which would not open the squelch for stations using really heavy speech processing.
I can hear by ear when a station is properly tuned. Also when speech processing is allowed to distort the signal heavily. I have tried, but failed, to find an algorithm that could do the tuning automatically in the computer. It must be possible since my ear-brain system can do it, but I do not know how to compute whatever cross-correlation in the frequency or time domain that would say "yes. This is a voice signal and the carrier frequency is....." Once I know what is needed for that, any output would be a suitable control signal for squelch/muting.