Synchronization two Hardware SDR

We now disscuss about synchronization, this subject is one of most important challeneg in multi hardware digital communication.We have two general mechanism for sychronization, hardware based we use external clokc, other way .i.e. software based is same clock recovery.So here we discuss about hardware synchronization implentation,

We know that RTL-SDR is one of basic hardwareSDR.So we first follow syncronization two external clock for hardware SDR we know that internal oscillator.

We can use Output/Input Ports(GPIO, for embeded ARM programer we usally GPIO, that is abbreviation General Purpose Input/Output) of RTL-SDR board, internal clock of a RTL-SDR is based for external clock of second RTL-SDR.before us a github project work on it, he  even created block for  multi-RTL-SDR.For more info please see this link.

Fig1:Solution  of Synchronization two RTL-SDR

Other way we can design a external clock and use this as a Clock synchronization for two RTL-SDR.

For HackRFOne we too to pin that predict for same problmes.we can see other HackRF One ClkOut and CLKIn So this is a same RTL-SDR for synchronization two HackRFOne.

extenral pin clock hackrfoneFig2:Port external clock in/out in hackrf one

So we saw this link that is used for starting external  clock reference for HackRFOne.

Warning:please carefull for synchronization two HackRFOne it is very important that they same ground,plase carefull don't connect ClkOut and ClkIn with out common ground.

You can see more info from wiki HackRF One here.

Fig3:Ground common and two hackrf one

For other solution we should use a external clock,Synchronization with GPS Disciplined Oscillator.

For more info you can see more info from this link.

Fig4:Clock signal as reference

 

Finally i synchronized two hackrf one i shared here result and output:

root@SP:/home/sp# hackrf_transfer -d hackrf=0 -r 10  -H  & hackrf_transfer -d hackrf=1  -r 11 -H
[1] 3396
hackrf_transfer: option requires an argument — 'H'
Usage:
    -h # this help
    [-d serial_number] # Serial number of desired HackRF.
    -r <filename> # Receive data into file (use '-' for stdout).
    -t <filename> # Transmit data from file (use '-' for stdin).
    -w # Receive data into file with WAV header and automatic name.
       # This is for SDR# compatibility and may not work with other software.
    [-f freq_hz] # Frequency in Hz [0MHz to 7250MHz].
    [-i if_freq_hz] # Intermediate Frequency (IF) in Hz [2150MHz to 2750MHz].
    [-o lo_freq_hz] # Front-end Local Oscillator (LO) frequency in Hz [84MHz to 5400MHz].
    [-m image_reject] # Image rejection filter selection, 0=bypass, 1=low pass, 2=high pass.
    [-a amp_enable] # RX/TX RF amplifier 1=Enable, 0=Disable.
    [-p antenna_enable] # Antenna port power, 1=Enable, 0=Disable.
    [-l gain_db] # RX LNA (IF) gain, 0-40dB, 8dB steps
    [-g gain_db] # RX VGA (baseband) gain, 0-62dB, 2dB steps
    [-x gain_db] # TX VGA (IF) gain, 0-47dB, 1dB steps
    [-s sample_rate_hz] # Sample rate in Hz (4/8/10/12.5/16/20MHz, default 10MHz).
    [-n num_samples] # Number of samples to transfer (default is unlimited).
    [-S buf_size] # Enable receive streaming with buffer size buf_size.
    [-c amplitude] # CW signal source mode, amplitude 0-127 (DC value to DAC).
    [-R] # Repeat TX mode (default is off)
    [-b baseband_filter_bw_hz] # Set baseband filter bandwidth in Hz.
    Possible values: 1.75/2.5/3.5/5/5.5/6/7/8/9/10/12/14/15/20/24/28MHz, default <= 0.75 * sample_rate_hz.
    [-C ppm] # Set Internal crystal clock error in ppm.
    [-H hw_sync_enable] # Synchronise USB transfer using GPIO pins.
hackrf_transfer: option requires an argument — 'H'
Usage:
    -h # this help
    [-d serial_number] # Serial number of desired HackRF.
    -r <filename> # Receive data into file (use '-' for stdout).
    -t <filename> # Transmit data from file (use '-' for stdin).
    -w # Receive data into file with WAV header and automatic name.
       # This is for SDR# compatibility and may not work with other software.
    [-f freq_hz] # Frequency in Hz [0MHz to 7250MHz].
    [-i if_freq_hz] # Intermediate Frequency (IF) in Hz [2150MHz to 2750MHz].
    [-o lo_freq_hz] # Front-end Local Oscillator (LO) frequency in Hz [84MHz to 5400MHz].
    [-m image_reject] # Image rejection filter selection, 0=bypass, 1=low pass, 2=high pass.
    [-a amp_enable] # RX/TX RF amplifier 1=Enable, 0=Disable.
    [-p antenna_enable] # Antenna port power, 1=Enable, 0=Disable.
    [-l gain_db] # RX LNA (IF) gain, 0-40dB, 8dB steps
    [-g gain_db] # RX VGA (baseband) gain, 0-62dB, 2dB steps
    [-x gain_db] # TX VGA (IF) gain, 0-47dB, 1dB steps
    [-s sample_rate_hz] # Sample rate in Hz (4/8/10/12.5/16/20MHz, default 10MHz).
    [-n num_samples] # Number of samples to transfer (default is unlimited).
    [-S buf_size] # Enable receive streaming with buffer size buf_size.
    [-c amplitude] # CW signal source mode, amplitude 0-127 (DC value to DAC).
    [-R] # Repeat TX mode (default is off)
    [-b baseband_filter_bw_hz] # Set baseband filter bandwidth in Hz.
    Possible values: 1.75/2.5/3.5/5/5.5/6/7/8/9/10/12/14/15/20/24/28MHz, default <= 0.75 * sample_rate_hz.
    [-C ppm] # Set Internal crystal clock error in ppm.
    [-H hw_sync_enable] # Synchronise USB transfer using GPIO pins.
[1]+  Done                    hackrf_transfer -d hackrf=0 -r 10 -H
root@SP:/home/sp#

 

root@SP:/home/sp# hackrf_transfer -d hackrf=0 -r 10  -H  ||  hackrf_transfer -d hackrf=1  -r 11 -H
hackrf_transfer: option requires an argument — 'H'
Usage:
    -h # this help
    [-d serial_number] # Serial number of desired HackRF.
    -r <filename> # Receive data into file (use '-' for stdout).
    -t <filename> # Transmit data from file (use '-' for stdin).
    -w # Receive data into file with WAV header and automatic name.
       # This is for SDR# compatibility and may not work with other software.
    [-f freq_hz] # Frequency in Hz [0MHz to 7250MHz].
    [-i if_freq_hz] # Intermediate Frequency (IF) in Hz [2150MHz to 2750MHz].
    [-o lo_freq_hz] # Front-end Local Oscillator (LO) frequency in Hz [84MHz to 5400MHz].
    [-m image_reject] # Image rejection filter selection, 0=bypass, 1=low pass, 2=high pass.
    [-a amp_enable] # RX/TX RF amplifier 1=Enable, 0=Disable.
    [-p antenna_enable] # Antenna port power, 1=Enable, 0=Disable.
    [-l gain_db] # RX LNA (IF) gain, 0-40dB, 8dB steps
    [-g gain_db] # RX VGA (baseband) gain, 0-62dB, 2dB steps
    [-x gain_db] # TX VGA (IF) gain, 0-47dB, 1dB steps
    [-s sample_rate_hz] # Sample rate in Hz (4/8/10/12.5/16/20MHz, default 10MHz).
    [-n num_samples] # Number of samples to transfer (default is unlimited).
    [-S buf_size] # Enable receive streaming with buffer size buf_size.
    [-c amplitude] # CW signal source mode, amplitude 0-127 (DC value to DAC).
    [-R] # Repeat TX mode (default is off)
    [-b baseband_filter_bw_hz] # Set baseband filter bandwidth in Hz.
    Possible values: 1.75/2.5/3.5/5/5.5/6/7/8/9/10/12/14/15/20/24/28MHz, default <= 0.75 * sample_rate_hz.
    [-C ppm] # Set Internal crystal clock error in ppm.
    [-H hw_sync_enable] # Synchronise USB transfer using GPIO pins.
root@SP:/home/sp#

 

Sharing is caring!

Leave a Reply

Your email address will not be published. Required fields are marked *