1994 Commits

Author SHA1 Message Date
Marco Bartolucci
533f9ee332 Hardware (CPLD-based) synchronisation
=======================================

This commit allows to synchronise multiple HackRFs with a synchronisation error **below 1 sampling period**

> WARNING: Use this at your own risk. If you don't know what you are doing you may damage your HackRF.
> The author takes no responsability for potential damages

Usage example: synchronise two HackRFs
======================================
1. Chose the master HackRF which will send the synchronisation pulse (HackRF0). HackRF1 will represent the slave hackrf.
2. Retreive the serial number of both HackRFs using `hackrf_info`
3. Use a wire to connect `SYNC_CMD` of HackRF0 to `SYNC_IN` of HackRF0 and HackRF1
4. Run `hackrf_transfer` with the argument `-H 1` to enable hardware synchronisation:
    ```
    $ hackrf_tranfer ... -r rec1.bin -d HackRF1_serial -H 1 | hackrf_transfer ... -r rec0.bin -d HackRF0_serial -H 1
    ```
rec0.bin and rec1.bin will have a time offset below 1 sampling period.
The 1PPS output of GNSS receivers can be used to synchronise HackRFs even if they are far from each other.
>DON'T APPLY INCOMPATIBLE VOLTAGE LEVELS TO THE CPLD PINS

Signal | Header |Pin | Description
-------|--------|----|------------
`SYNC_IN` | P28 | 16 | Synchronisation pulse input
`SYNC_CMD` | P28 | 15 | Synchronisation pulse output

Note:
=====
I had to remove CPLD-based decimation to use a GPIO for enabling hardware.

More info:
==========
[M. Bartolucci, J. A. Del Peral-Rosado, R. Estatuet-Castillo, J. A. Garcia-Molina, M. Crisci and G. E. Corazza, "Synchronisation of low-cost open source SDRs for navigation applications," 2016 8th ESA Workshop on Satellite Navigation Technologies and European Workshop on GNSS Signals and Signal Processing (NAVITEC), Noordwijk, 2016, pp. 1-7.](http://ieeexplore.ieee.org/document/7849328/)

[Alternative link](http://spcomnav.uab.es/docs/conferences/Bartolucci_NAVITEC_2016.pdf)
2017-05-16 11:39:44 +02:00
Marco Bartolucci
747d8e2278 Removed decimation in CPLD 2017-05-15 12:56:51 +02:00
Marco Bartolucci
d47dece3ba Fixed indentation 2017-05-15 11:49:23 +02:00
Marco Bartolucci
808fd9410e Bump to latest version
Merge remote-tracking branch 'upstream/master'
2017-05-05 11:58:43 +02:00
Michael Ossmann
9bbbbbfbfb Merge pull request #355 from dominicgs/firmware_cleanup
Firmware cleanup
2017-02-28 16:03:15 -07:00
Dominic Spill
8b853266ef Power down CLK3 (CLKOUT) at boot, don't reset it when clocks are reset 2017-02-28 15:26:43 -07:00
Dominic Spill
00b6099bb3 Make comments more informative (possibly) 2017-02-28 15:25:27 -07:00
Dominic Spill
c2e775b1b9 hackrf_info: continue probing devices after errors 2017-02-23 14:34:41 -07:00
Dominic Spill
c89364b2a8 Merge pull request #353 from mossmann/ifft
IFFT
2017-02-23 04:29:40 -07:00
Dominic Spill
e7f890e0c2 Merge branch 'mossmann-master' into firmware_cleanup 2017-02-22 12:10:42 -07:00
Dominic Spill
0a48dccd66 CLOKOUT off by default 2017-02-21 18:38:50 -07:00
Dominic Spill
acaf0d192c Change RFFC5071 clock from 40MHz to 50MHz and invert it
Now the MAX2837 and RFFC5071 clocks are out of phase with each other
Hopefully this reduces some noise
2017-02-21 17:56:37 -07:00
Dominic Spill
15ea074bdb Clean up Si5351c initialisation code 2017-02-21 17:43:19 -07:00
Dominic Spill
f636658c54 Add clock control hackrf_debug 2017-02-21 17:41:05 -07:00
Michael Ossmann
c7956b49b1 hackrf_sweep: report sweep rate instead of data rate 2017-02-21 12:43:59 -07:00
Michael Ossmann
9baac39962 hackrf_sweep: suppress ifft output unless requested 2017-02-21 12:19:00 -07:00
Michael Ossmann
886ba6acfb hackrf_sweep: corrected output file descriptors in binary and ifft modes for compatibility with output file option 2017-02-20 21:43:12 -07:00
Michael Ossmann
f34cc960ff hackrf_sweep: Added experimental Inverse FFT binary output mode.
In this mode, FFT output bins from multiple hops are stitched together into a
single set of bins per sweep.  Each sweep is then processed with an inverse FFT
to simulate a time domain signal at a sample rate equal to the sweep bandwidth.
This wideband time domain signal is sent to the output as complex floats and
can be piped to or viewed with tools such as fosphor or inspectrum.  The output
signal is discontinuous, so the time axis (e.g. in inspectrum) will be
incorrect.
2017-02-20 21:07:00 -07:00
Dominic Spill
3eb00ed0df Disable CLK7 and power down CLK6/7 to reduce emissions 2017-02-20 12:34:35 -07:00
Dominic Spill
c4d7d308a4 Merge pull request #351 from schneider42/rad1o-clocks
fix(rad1o): Restore old clock behaviour for now.
2017-02-19 19:09:13 -07:00
Michael Ossmann
13e4dea446 hackrf_sweep: avoid starting RX too early 2017-02-19 11:10:30 -07:00
schneider
d4c69890b5 fix(rad1o): Restore old clock behaviour for now. 2017-02-19 01:39:51 +01:00
Dominic Spill
ef695a36e0 Reinstate LPC4330 linker script 2017-02-17 07:49:16 -07:00
Marco Bartolucci
9d6f2a7e9c Fixed sgpio_if readme 2017-02-17 14:05:33 +01:00
Marco Bartolucci
fa6bde951c Added CPLD-based synchronization
This is a proof of concept and it's still very crude
For more info read (http://spcomnav.uab.es/docs/conferences/Bartolucci_NAVITEC_2016.pdf)
2017-02-17 13:58:55 +01:00
Michael Ossmann
378b65a598 added cast to fix tv_usec formatting on various platforms 2017-02-17 00:28:32 -07:00
Michael Ossmann
fd579445df improved accuracy of hackrf_sweep timestamps 2017-02-16 23:22:07 -07:00
Dominic Spill
a4036eab76 Remove last mentions of Jellybean 2017-02-16 18:03:32 -07:00
Michael Ossmann
bc49bdc344 update timestamp once per sweep 2017-02-16 17:34:38 -07:00
Michael Ossmann
d794ac0e20 output timestamps in microseconds 2017-02-16 14:47:53 -07:00
Michael Ossmann
79f95abdb3 correct discrepancy between number of samples and number of bytes in blocks of samples
related to #346
2017-02-16 12:46:17 -07:00
Michael Ossmann
6aacfa2cc9 corrected maximum permitted number of FFT bins
Fixes #346
2017-02-16 12:06:52 -07:00
Dominic Spill
a8c1fc92e9 Appveyor config for building hackrf_sweep (#344)
Appveyor builds for hackrf_sweep
2017-02-15 16:44:44 -07:00
Michael Ossmann
d7a799d6f2 report actual bin width with indicated precision instead of to the nearest Hz 2017-02-15 16:36:25 -07:00
Michael Ossmann
7cd8e5f7eb hackrf_sweep output file support 2017-02-15 16:20:35 -07:00
Michael Ossmann
ae367880bf _USE_MATH_DEFINES only on Windows 2017-02-15 15:03:54 -07:00
Michael Ossmann
0f6cc649d1 Merge pull request #343 from mrbubble62/master
build hackrf_sweep on Windows
2017-02-15 14:47:44 -07:00
Michael Ossmann
1ba64c674c do not add hackrf_sweep to cmake list twice 2017-02-15 08:56:19 -07:00
Michael Ossmann
db47032592 Merge pull request #342 from dominicgs/firmware_cleanup
Firmware cleanup
2017-02-15 00:28:38 -07:00
mrbubble62
2b96ab02df Merge remote-tracking branch 'refs/remotes/mossmann/master' 2017-02-15 02:14:53 -05:00
mrbubble62
e4106f5aca Cleaned up 2017-02-15 01:01:09 -05:00
Dominic Spill
09eb15cb53 Remove unused development firmware from build 2017-02-14 21:34:44 -07:00
Dominic Spill
9e3b69a9b7 Remove source for development firmwares 2017-02-14 21:34:28 -07:00
Dominic Spill
c6be7dea3e Fix build warnings for unused GPIO pins 2017-02-14 21:34:20 -07:00
Dominic Spill
49257e60e3 Remove Jellybean support from firmware
- nobody has a jellybean board
2017-02-14 21:33:52 -07:00
Michael Ossmann
6e3544ddec Merge pull request #329 from schneider42/rad1o
rad1o support
2017-02-14 21:30:48 -07:00
mrbubble62
63435f5616 hackrf_sweep on Windows
added precompiled fftw-3.3.5
2017-02-14 01:43:14 -05:00
Michael Ossmann
0335f1a317 Reverted 31a37bd841b99154fce7217d2b3d78a24f8aacd9 Output RFFC5072 LOCK status
This enabled a debug signal used during sweep mode development on HackRF One, but it broke Jawbreaker.
2017-02-11 12:24:22 -07:00
schneider
6b08a86255 chore(Makefile): Remove rad1o specific plain Makefile 2017-02-11 18:07:34 +01:00
schneider42
4117cd3903 Merge branch 'master' into rad1o 2017-02-11 18:02:51 +01:00