Loading ...
Sorry, an error occurred while loading the content.

Re: [softrock40] Re: sound card for multi-sdr array

Expand Messages
  • Victor A. Kean, Jr.
    I observe that some people are contemplating experiments with multiple SDR receivers. I have been running 8 Softrock equivalent receivers using 2 Delta 1010LT
    Message 1 of 8 , Jun 3, 2009
    • 0 Attachment
      I observe that some people are contemplating experiments with multiple
      SDR receivers. I have been running 8 Softrock equivalent receivers
      using 2 Delta 1010LT sound cards on a Linux machine for about a year
      now. Basically, it works, but there are issues. If I share my
      experience, maybe I can save some people a lot of time and trouble.

      The Delta 1010LT is based on the same Envy24 or ICE1712 chip that is
      used in the Delta 44 and the Delta 66. Also, the same Linux driver is
      used for all of these cards. The Delta 1010 has 8 analog inputs and 8
      analog outputs. It also has a pair of SPDIF inputs and a pair of
      SPDIF outputs, which gives a total of 10 input channels, and 10 output
      channels, hence 1010. For SDR purposes, one card supports 4 receivers.

      I have an operational 4 SDR receiver setup which I use along with 4 2
      element end-fire arrays of short verticals to do beam steering on 160
      meters. Look at k1lt.com for more information about that activity.

      I have been working on an 8 SDR receiver setup to use with a circular
      array of short verticals. This requires 2 Delta 1010LTs, and requires
      that the 1010s be "phase locked". Fortunately, the 1010LT supports
      this requirement with a feature called "word clock". The 1010 has a
      word clock output and a word clock input, so that one card can be the
      master sample clock and one or more other cards be the synced to the
      master. One can also do phase locking with the SPDIF inputs and
      outputs, so theoretically, a pair of Delta 66s can be locked together.

      Supposedly, SPDIF locking causes more phase jitter than using the word
      clocks, but I haven't yet noticed, for reasons that I explain below.
      One uses the envy24control utility to configure one card to be the
      master and the other to be a slave. One also uses ALSA configuration
      file tricks to make multiple physical sound cards appear to be one
      logical sound card to audio applications, such as JACK.

      The ICE1712 driver on Linux supports up to 4 cards.

      When working with phased array, calibrating sources of phase error
      becomes a major chore. Each Softrock has a slightly different phase
      shift, each analog input has a slightly different phase shift, and
      each sound card has a significantly different phase shift.

      My original SDR beam steering development system had an Athalon XP
      2000 or whatever processor, which is a single core, 1.5 GHz chip.
      Even though there seemed to be plenty of CPU horsepower for DSP, one
      Delta 1010LT would experience a "phase jump" with respect to the
      other, from time to time. A good run would last a few minutes.

      I got a newer motherboard with a duo core Intel chip running at 2.0
      GHz. I also selected PCI slots so each Delta 1010LT has the exclusive
      use of a single interrupt. I am also running the RT version of the
      Linux kernel. Some say that the RT patches are no longer required,
      but I have not tested that assertion. The newer mobo seems to
      eliminate the sporadic phase jumps.

      However, the phase shift from one set of 4 channels (8 analog inputs)
      to the other set of 4 channels varies from one startup to the next.
      (A "startup" is an instance of starting JACK.) The amount of phase
      shift varies widely, from essentially 0 degrees to more than 100
      degrees, when measured with RF and local oscillator signals that
      result in 25 kHz audio signals. Apparently, the phase shift varies
      linearly with audio frequency, which means the phase shift is really a
      time delay.

      For Pro Audio purposes, this phase shift is probably of no
      consequence, but for beam forming, the phase shift must be known.

      As my research has progressed, I have developed the following
      calibration strategy. The steps overall steps are: calibrate the
      analog inputs, then calibrate the RF inputs, and finally calibrate the
      antennas.

      First, one applies the same known audio signal to each of the N (in my
      case, 8) analog inputs and measures the amplitude and phase of each
      digital signal relative to one of the channels. Rather than move 8
      sets of plugs and cables around, I apply the calibration signal
      through 10k ohm resistors in parallel to the Softrock outputs. That
      is, I soldered 10k 5% resistors (need to order some 1% resistors) to
      the Delta side of the 0.1 uF coupling capacitors at the output of each
      Softrock audio channel. I currently drive just the "Q" channels with
      a signal generator. This step shows that the "mike" input channels
      (first two channels of each 1010LT) have a 7 degree (at 25 kHz) phase
      offset from the other channels. I don't know the sign because I'm
      only driving the "Q" channels. This step also shows that the phase
      offset from one card to the other varies from nearly zero (3 degrees
      on a good day) to more than 90 degrees. Again, I don't know the sign,
      and that thwarts my efforts.

      Second, I apply a known RF signal through a Mini-circuits 8-way
      splitter to each of the SDR receivers simultaneously. If I subtract
      out the analog input calibration factors, I find that properly
      constructed Softrock equivalent receivers typically vary about 10
      degrees at 25 kHz below the center frequency (1830 kHz and 1855 kHz in
      my case), and vary about 10-15% in amplitude. By properly constructed
      Softrock equivalent receivers, I mean that the front-end pass band
      filter has been selected for "constant group delay" (read: phase
      shift) across the pass band, and that all of the inductors have been
      wound correctly. One or two turns count errors will not keep the
      receiver from working, but it does contribute a considerable amount of
      phase error. I also used 5% tolerance capacitors, and I measured all
      of the inductors, and selected inductors that were within 5% of a
      nominal value.

      Third, I apply a known RF signal to the whole array. If I subtract
      out the analog input calibration factors, and the receiver calibration
      factors, I find that K7TJR Hi-Z active antennas typically have a 3-5%
      variation in phase and very little variation in amplitude. I apply a
      known signal by tuning the AM broadcast band during the middle of the
      daytime when propagation is almost exclusively ground wave and tune to
      a couple or 3 strong stations in the upper end of the band. Since I
      know the location of transmitter, courtesy of the FCC database, I can
      calculate the phase offset relative to one of the antennas of all of
      the others based on the bearing to the station. A caveat: because I
      can't choose the frequency of the AM station, and because I'm too lazy
      to change my center frequencies (I use 1355, 1455, 1555 and 1655 kHz),
      I am no longer consistently applying a 25 kHz audio signal.

      So, one those days that I get lucky, and I fire up my beam forming
      software, and the analog input calibration shows both cards within a
      few degrees of each other, then I can use over-the-air radio stations
      to calibrate my circular phased array. The one day when everything
      came together properly, I was able to find a pair of reversed
      feedlines, and another feedline that was 14 feet too short, which
      translated to a 10 degree phase error for that element. When all of
      the errors are corrected, and I remove all of my Beverage wires from
      the vicinity of the phased array verticals, then I can measure the
      bearing to strong AM radio stations to within a couple of degrees.

      The next step is to use a couple of analog outputs so that I can
      generate quadrature phased audio signals, and calibrate the analog
      inputs using both the I and Q channels so I know the sign of the phase
      error. The next next step is to measure the phase error at several
      frequencies to I can calculate the slope of the phase error "curve"
      (hopefully, a nearly straight line).

      Note that the motivation of all of the work above is that circular
      phased arrays, especially "superdirective" arrays require significantly
      more precise element amplitude and phase coefficients than do linear
      arrays. My 8 element linear array is very forgiving of error.

      BTW, I have no experience with the Delta 1010LTs on Windows, and I
      have no experience with any other sound cards.

      Hopefully, this helps. Hopefully noone will be scared away by the
      apparent complexity.

      Victor, K1LT
    • dan edwards
      hi victor   i wish you could dumb it down for winXP and a rx 4square!   K7TJR s active antennas work nicely here also. 73, w5xz, dan ... From: Victor A.
      Message 2 of 8 , Jun 4, 2009
      • 0 Attachment
        hi victor
         
        i wish you could 'dumb it down' for winXP and a rx 4square!
         
        K7TJR's active antennas work nicely here also.
        73, w5xz, dan

        --- On Thu, 6/4/09, Victor A. Kean, Jr. <vkean@...> wrote:

        From: Victor A. Kean, Jr. <vkean@...>
        Subject: Re: [softrock40] Re: sound card for multi-sdr array
        To: softrock40@yahoogroups.com
        Date: Thursday, June 4, 2009, 5:30 AM

        I observe that some people are contemplating experiments with multiple
        SDR receivers. I have been running 8 Softrock equivalent receivers
        using 2 Delta 1010LT sound cards on a Linux machine for about a year
        now. Basically, it works, but there are issues. If I share my
        experience, maybe I can save some people a lot of time and trouble.

        The Delta 1010LT is based on the same Envy24 or ICE1712 chip that is
        used in the Delta 44 and the Delta 66. Also, the same Linux driver is
        used for all of these cards. The Delta 1010 has 8 analog inputs and 8
        analog outputs. It also has a pair of SPDIF inputs and a pair of
        SPDIF outputs, which gives a total of 10 input channels, and 10 output
        channels, hence 1010. For SDR purposes, one card supports 4 receivers.

        I have an operational 4 SDR receiver setup which I use along with 4 2
        element end-fire arrays of short verticals to do beam steering on 160
        meters. Look at k1lt.com for more information about that activity.

        I have been working on an 8 SDR receiver setup to use with a circular
        array of short verticals. This requires 2 Delta 1010LTs, and requires
        that the 1010s be "phase locked". Fortunately, the 1010LT supports
        this requirement with a feature called "word clock". The 1010 has a
        word clock output and a word clock input, so that one card can be the
        master sample clock and one or more other cards be the synced to the
        master. One can also do phase locking with the SPDIF inputs and
        outputs, so theoretically, a pair of Delta 66s can be locked together.

        Supposedly, SPDIF locking causes more phase jitter than using the word
        clocks, but I haven't yet noticed, for reasons that I explain below.
        One uses the envy24control utility to configure one card to be the
        master and the other to be a slave. One also uses ALSA configuration
        file tricks to make multiple physical sound cards appear to be one
        logical sound card to audio applications, such as JACK.

        The ICE1712 driver on Linux supports up to 4 cards.

        When working with phased array, calibrating sources of phase error
        becomes a major chore. Each Softrock has a slightly different phase
        shift, each analog input has a slightly different phase shift, and
        each sound card has a significantly different phase shift.

        My original SDR beam steering development system had an Athalon XP
        2000 or whatever processor, which is a single core, 1.5 GHz chip.
        Even though there seemed to be plenty of CPU horsepower for DSP, one
        Delta 1010LT would experience a "phase jump" with respect to the
        other, from time to time. A good run would last a few minutes.

        I got a newer motherboard with a duo core Intel chip running at 2.0
        GHz. I also selected PCI slots so each Delta 1010LT has the exclusive
        use of a single interrupt. I am also running the RT version of the
        Linux kernel. Some say that the RT patches are no longer required,
        but I have not tested that assertion. The newer mobo seems to
        eliminate the sporadic phase jumps.

        However, the phase shift from one set of 4 channels (8 analog inputs)
        to the other set of 4 channels varies from one startup to the next.
        (A "startup" is an instance of starting JACK.) The amount of phase
        shift varies widely, from essentially 0 degrees to more than 100
        degrees, when measured with RF and local oscillator signals that
        result in 25 kHz audio signals. Apparently, the phase shift varies
        linearly with audio frequency, which means the phase shift is really a
        time delay.

        For Pro Audio purposes, this phase shift is probably of no
        consequence, but for beam forming, the phase shift must be known.

        As my research has progressed, I have developed the following
        calibration strategy. The steps overall steps are: calibrate the
        analog inputs, then calibrate the RF inputs, and finally calibrate the
        antennas.

        First, one applies the same known audio signal to each of the N (in my
        case, 8) analog inputs and measures the amplitude and phase of each
        digital signal relative to one of the channels. Rather than move 8
        sets of plugs and cables around, I apply the calibration signal
        through 10k ohm resistors in parallel to the Softrock outputs. That
        is, I soldered 10k 5% resistors (need to order some 1% resistors) to
        the Delta side of the 0.1 uF coupling capacitors at the output of each
        Softrock audio channel. I currently drive just the "Q" channels with
        a signal generator. This step shows that the "mike" input channels
        (first two channels of each 1010LT) have a 7 degree (at 25 kHz) phase
        offset from the other channels. I don't know the sign because I'm
        only driving the "Q" channels. This step also shows that the phase
        offset from one card to the other varies from nearly zero (3 degrees
        on a good day) to more than 90 degrees. Again, I don't know the sign,
        and that thwarts my efforts.

        Second, I apply a known RF signal through a Mini-circuits 8-way
        splitter to each of the SDR receivers simultaneously. If I subtract
        out the analog input calibration factors, I find that properly
        constructed Softrock equivalent receivers typically vary about 10
        degrees at 25 kHz below the center frequency (1830 kHz and 1855 kHz in
        my case), and vary about 10-15% in amplitude. By properly constructed
        Softrock equivalent receivers, I mean that the front-end pass band
        filter has been selected for "constant group delay" (read: phase
        shift) across the pass band, and that all of the inductors have been
        wound correctly. One or two turns count errors will not keep the
        receiver from working, but it does contribute a considerable amount of
        phase error. I also used 5% tolerance capacitors, and I measured all
        of the inductors, and selected inductors that were within 5% of a
        nominal value.

        Third, I apply a known RF signal to the whole array. If I subtract
        out the analog input calibration factors, and the receiver calibration
        factors, I find that K7TJR Hi-Z active antennas typically have a 3-5%
        variation in phase and very little variation in amplitude. I apply a
        known signal by tuning the AM broadcast band during the middle of the
        daytime when propagation is almost exclusively ground wave and tune to
        a couple or 3 strong stations in the upper end of the band. Since I
        know the location of transmitter, courtesy of the FCC database, I can
        calculate the phase offset relative to one of the antennas of all of
        the others based on the bearing to the station. A caveat: because I
        can't choose the frequency of the AM station, and because I'm too lazy
        to change my center frequencies (I use 1355, 1455, 1555 and 1655 kHz),
        I am no longer consistently applying a 25 kHz audio signal.

        So, one those days that I get lucky, and I fire up my beam forming
        software, and the analog input calibration shows both cards within a
        few degrees of each other, then I can use over-the-air radio stations
        to calibrate my circular phased array. The one day when everything
        came together properly, I was able to find a pair of reversed
        feedlines, and another feedline that was 14 feet too short, which
        translated to a 10 degree phase error for that element. When all of
        the errors are corrected, and I remove all of my Beverage wires from
        the vicinity of the phased array verticals, then I can measure the
        bearing to strong AM radio stations to within a couple of degrees.

        The next step is to use a couple of analog outputs so that I can
        generate quadrature phased audio signals, and calibrate the analog
        inputs using both the I and Q channels so I know the sign of the phase
        error. The next next step is to measure the phase error at several
        frequencies to I can calculate the slope of the phase error "curve"
        (hopefully, a nearly straight line).

        Note that the motivation of all of the work above is that circular
        phased arrays, especially "superdirective" arrays require significantly
        more precise element amplitude and phase coefficients than do linear
        arrays. My 8 element linear array is very forgiving of error.

        BTW, I have no experience with the Delta 1010LTs on Windows, and I
        have no experience with any other sound cards.

        Hopefully, this helps. Hopefully noone will be scared away by the
        apparent complexity.

        Victor, K1LT
      • Jeff Blaine
        Victor, That is a fantastic project you are working on. Way, way beyond what I am trying do. Really fantastic... A couple of my extreme-antenna buddies were
        Message 3 of 8 , Jun 7, 2009
        • 0 Attachment
          Victor,

          That is a fantastic project you are working on. Way, way beyond what I
          am trying do. Really fantastic...

          A couple of my extreme-antenna buddies were very interested at your site
          after I mentioned this project of yours to them.

          I realize you are using Linux below. But I am wondering if, under
          Windows, if the ASIO driver enumerates the inputs individually?

          I have an otherwise exellent Quartet with dual inputs - but the inputs
          are only individually selectable under certain high-end a/v programs.
          For generic windows applications (like CW skimmer and PowerSDR), they
          only see the ASIO driver as a single entry - meaning only the first set
          of inputs and the first set of outputs are useable in "the real world."
          The Quartet guys say a driver revision that will allow individual
          selection from the generic windows app "is coming soon." Yes, "coming
          soon" and we know what that may mean... :)

          PowerSDR also lets a guy select the MME for inputs, but the Quartet
          driver in that case also just provides a signle input/output pair listed.

          I am hoping the Delta card does not have that problem... But sure want
          to confirm it before heading off to buy yet another pretty pricy sound card.

          Thanks

          73/jeff/ac0c


          73/jeff/ac0c

          Victor A. Kean, Jr. wrote:
          >
          >
          > I observe that some people are contemplating experiments with multiple
          > SDR receivers. I have been running 8 Softrock equivalent receivers
          > using 2 Delta 1010LT sound cards on a Linux machine for about a year
          > now. Basically, it works, but there are issues. If I share my
          > experience, maybe I can save some people a lot of time and trouble.
          >
          > The Delta 1010LT is based on the same Envy24 or ICE1712 chip that is
          > used in the Delta 44 and the Delta 66. Also, the same Linux driver is
          > used for all of these cards. The Delta 1010 has 8 analog inputs and 8
          > analog outputs. It also has a pair of SPDIF inputs and a pair of
          > SPDIF outputs, which gives a total of 10 input channels, and 10 output
          > channels, hence 1010. For SDR purposes, one card supports 4 receivers.
          >
          > I have an operational 4 SDR receiver setup which I use along with 4 2
          > element end-fire arrays of short verticals to do beam steering on 160
          > meters. Look at k1lt.com for more information about that activity.
          >
          > I have been working on an 8 SDR receiver setup to use with a circular
          > array of short verticals. This requires 2 Delta 1010LTs, and requires
          > that the 1010s be "phase locked". Fortunately, the 1010LT supports
          > this requirement with a feature called "word clock". The 1010 has a
          > word clock output and a word clock input, so that one card can be the
          > master sample clock and one or more other cards be the synced to the
          > master. One can also do phase locking with the SPDIF inputs and
          > outputs, so theoretically, a pair of Delta 66s can be locked together.
          >
          > Supposedly, SPDIF locking causes more phase jitter than using the word
          > clocks, but I haven't yet noticed, for reasons that I explain below.
          > One uses the envy24control utility to configure one card to be the
          > master and the other to be a slave. One also uses ALSA configuration
          > file tricks to make multiple physical sound cards appear to be one
          > logical sound card to audio applications, such as JACK.
          >
          > The ICE1712 driver on Linux supports up to 4 cards.
          >
          > When working with phased array, calibrating sources of phase error
          > becomes a major chore. Each Softrock has a slightly different phase
          > shift, each analog input has a slightly different phase shift, and
          > each sound card has a significantly different phase shift.
          >
          > My original SDR beam steering development system had an Athalon XP
          > 2000 or whatever processor, which is a single core, 1.5 GHz chip.
          > Even though there seemed to be plenty of CPU horsepower for DSP, one
          > Delta 1010LT would experience a "phase jump" with respect to the
          > other, from time to time. A good run would last a few minutes.
          >
          > I got a newer motherboard with a duo core Intel chip running at 2.0
          > GHz. I also selected PCI slots so each Delta 1010LT has the exclusive
          > use of a single interrupt. I am also running the RT version of the
          > Linux kernel. Some say that the RT patches are no longer required,
          > but I have not tested that assertion. The newer mobo seems to
          > eliminate the sporadic phase jumps.
          >
          > However, the phase shift from one set of 4 channels (8 analog inputs)
          > to the other set of 4 channels varies from one startup to the next.
          > (A "startup" is an instance of starting JACK.) The amount of phase
          > shift varies widely, from essentially 0 degrees to more than 100
          > degrees, when measured with RF and local oscillator signals that
          > result in 25 kHz audio signals. Apparently, the phase shift varies
          > linearly with audio frequency, which means the phase shift is really a
          > time delay.
          >
          > For Pro Audio purposes, this phase shift is probably of no
          > consequence, but for beam forming, the phase shift must be known.
          >
          > As my research has progressed, I have developed the following
          > calibration strategy. The steps overall steps are: calibrate the
          > analog inputs, then calibrate the RF inputs, and finally calibrate the
          > antennas.
          >
          > First, one applies the same known audio signal to each of the N (in my
          > case, 8) analog inputs and measures the amplitude and phase of each
          > digital signal relative to one of the channels. Rather than move 8
          > sets of plugs and cables around, I apply the calibration signal
          > through 10k ohm resistors in parallel to the Softrock outputs. That
          > is, I soldered 10k 5% resistors (need to order some 1% resistors) to
          > the Delta side of the 0.1 uF coupling capacitors at the output of each
          > Softrock audio channel. I currently drive just the "Q" channels with
          > a signal generator. This step shows that the "mike" input channels
          > (first two channels of each 1010LT) have a 7 degree (at 25 kHz) phase
          > offset from the other channels. I don't know the sign because I'm
          > only driving the "Q" channels. This step also shows that the phase
          > offset from one card to the other varies from nearly zero (3 degrees
          > on a good day) to more than 90 degrees. Again, I don't know the sign,
          > and that thwarts my efforts.
          >
          > Second, I apply a known RF signal through a Mini-circuits 8-way
          > splitter to each of the SDR receivers simultaneously. If I subtract
          > out the analog input calibration factors, I find that properly
          > constructed Softrock equivalent receivers typically vary about 10
          > degrees at 25 kHz below the center frequency (1830 kHz and 1855 kHz in
          > my case), and vary about 10-15% in amplitude. By properly constructed
          > Softrock equivalent receivers, I mean that the front-end pass band
          > filter has been selected for "constant group delay" (read: phase
          > shift) across the pass band, and that all of the inductors have been
          > wound correctly. One or two turns count errors will not keep the
          > receiver from working, but it does contribute a considerable amount of
          > phase error. I also used 5% tolerance capacitors, and I measured all
          > of the inductors, and selected inductors that were within 5% of a
          > nominal value.
          >
          > Third, I apply a known RF signal to the whole array. If I subtract
          > out the analog input calibration factors, and the receiver calibration
          > factors, I find that K7TJR Hi-Z active antennas typically have a 3-5%
          > variation in phase and very little variation in amplitude. I apply a
          > known signal by tuning the AM broadcast band during the middle of the
          > daytime when propagation is almost exclusively ground wave and tune to
          > a couple or 3 strong stations in the upper end of the band. Since I
          > know the location of transmitter, courtesy of the FCC database, I can
          > calculate the phase offset relative to one of the antennas of all of
          > the others based on the bearing to the station. A caveat: because I
          > can't choose the frequency of the AM station, and because I'm too lazy
          > to change my center frequencies (I use 1355, 1455, 1555 and 1655 kHz),
          > I am no longer consistently applying a 25 kHz audio signal.
          >
          > So, one those days that I get lucky, and I fire up my beam forming
          > software, and the analog input calibration shows both cards within a
          > few degrees of each other, then I can use over-the-air radio stations
          > to calibrate my circular phased array. The one day when everything
          > came together properly, I was able to find a pair of reversed
          > feedlines, and another feedline that was 14 feet too short, which
          > translated to a 10 degree phase error for that element. When all of
          > the errors are corrected, and I remove all of my Beverage wires from
          > the vicinity of the phased array verticals, then I can measure the
          > bearing to strong AM radio stations to within a couple of degrees.
          >
          > The next step is to use a couple of analog outputs so that I can
          > generate quadrature phased audio signals, and calibrate the analog
          > inputs using both the I and Q channels so I know the sign of the phase
          > error. The next next step is to measure the phase error at several
          > frequencies to I can calculate the slope of the phase error "curve"
          > (hopefully, a nearly straight line).
          >
          > Note that the motivation of all of the work above is that circular
          > phased arrays, especially "superdirective" arrays require significantly
          > more precise element amplitude and phase coefficients than do linear
          > arrays. My 8 element linear array is very forgiving of error.
          >
          > BTW, I have no experience with the Delta 1010LTs on Windows, and I
          > have no experience with any other sound cards.
          >
          > Hopefully, this helps. Hopefully noone will be scared away by the
          > apparent complexity.
          >
          > Victor, K1LT
          >
          >
        Your message has been successfully submitted and would be delivered to recipients shortly.