[hpsdr] Ozy/Mercury Protocol
Bob Cowdery
bob at bobcowdery.plus.com
Sun Aug 23 01:02:43 PDT 2009
Phil, John
That explanation sounds totally logical. I don't claim to have tested
very extensively and the machines I tried it on may be 'in-sync' but
Acorn can output to both/either Mercury/Jack although I keep Jack at
48KHz usually. In practice I don't hear any disturbance but I think
thats just luck or I didn't listen long enough.
I may be wrong but I think John was trying to do something different,
writing a Mercury back-end to Jack which may have a completely different
set of issues. At the time I though that sounds a good way to go because
there is only one API to deal with and net-jack would maintain sync when
output to a different sound card. In principal Jack should get its
timing from the Mercury input samples and there shouldn't be any timing
aberration.
Bob
Phil Harman wrote:
> ***** High Performance Software Defined Radio Discussion List *****
>
> Subject: Re: [hpsdr] Ozy/Mercury Protocol
>
>
>> This sounds familiar ;-)
>>
>> It is exactly the problem I see with interfacing HPSDR with Jack on
>> Linux.
>>
>> -- John g0orx/n6lyt
>>
>
> Hi John,
>
> I don't know Jack..... but I fear that its doomed not to work - here
> is my reasoning.
>
> With Mercury we send data to the PC at 48/96/192ksps at very high
> accuracy (GPS locked if necessary). Using Windows the PC has not the
> slightest idea what sample rate we send it, neither does it care. It
> only needs to be told what the sample rate is so the various DSP
> functions are calculated correctly.
>
> All we ask of the PC is to process our samples and send them back to
> us so we can hear the results. If the PC is not too busy with other
> tasks, and despite only being able to service our request
> infrequently, it does manage to 'keep the bucket' from either filling
> up or emptying for most of us.
>
> For a soundcard based SDR (e.g. SDR1000 or Softrock) then the clock in
> the sound card determines the rate that samples are fed to the PC code
> and also how fast they are played back. Since these use the same clock
> then it does not need to be exactly 48kHz etc and any drift is common
> to both the ADC and DAC paths. If you are using Jack and Linux then I
> would hope that Jack gets its clock from the sound card.
>
> Now if we use Mercury and Jack under Linux and the Mercury sampling
> rate (48/96/192ksps) and the clock that somehow Jack gets from the PC
> are **exactly** the same then things are going to be sweet.
>
> But, if the Jack clock is slightly faster or slower than the Mercury
> sampling rate then, (depending on the absolute frequency error) in
> seconds/minutes/hours or days we are either going to run out of
> samples for Jack to process or we are going to have to drop some since
> we have too many. This results in regular 'pops' in the data that I
> know you are familiar with.
>
> We could use a large buffer on the input of Jack to delay the
> inevitable but this just adds additional latency which for CW is not
> going to be acceptable.
>
> The only way I can see this working is to resample the data going to
> Jack to a lower rate so it never runs out of data. This will reduce
> the bandwidth of the signals we can process to the new (lower)
> sampling rate.
>
> As I said at the beginning... I don't know Jack.... so it possible I'm
> doing it a huge injustice since it may be much smarter than my simple
> explanation. If not..... then I can't see how it is ever going to work.
>
> Perhaps we have someone in the group who has a good understand of Jack
> and how it could be made to work?
>
> 73's Phil...VK6APH
>
>
>
>
>
>
> _______________________________________________
> HPSDR Discussion List
> To post msg: hpsdr at openhpsdr.org
> Subscription help:
> http://lists.openhpsdr.org/listinfo.cgi/hpsdr-openhpsdr.org
> HPSDR web page: http://openhpsdr.org
> Archives: http://lists.openhpsdr.org/pipermail/hpsdr-openhpsdr.org/
1251014563.0
More information about the Hpsdr
mailing list