660 Commits

Author SHA1 Message Date
Dominic Spill
72a03cffa8 Merge pull request #382 from dominicgs/operaglasses
Opera glasses: allow user specified ranges for operacake ports
2017-06-02 10:23:24 -06:00
Dominic Spill
8c7941b0ef Opera glasses: allow user specified ranges for operacake ports
- HackRF switches antenna when tuning
 - ports specified using hackrf_operacake cmdline tool
 hackrf_operacake -f 2350:2800:0 -f 0:400:1 -f 400:700:2 -f 700:6000:3
2017-05-16 17:18:54 -06:00
Marco Bartolucci
a773b463cb cleanup 2017-05-16 15:37:27 +02:00
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
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
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
3eb00ed0df Disable CLK7 and power down CLK6/7 to reduce emissions 2017-02-20 12:34:35 -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
Dominic Spill
a4036eab76 Remove last mentions of Jellybean 2017-02-16 18:03:32 -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
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
schneider42
4117cd3903 Merge branch 'master' into rad1o 2017-02-11 18:02:51 +01:00
Dominic Spill
c0396ea2fb Reenable some clocks so that HackRF boots 2017-02-10 10:29:54 -07:00
Dominic Spill
2163ebac9c Power down or disable all clocks that we aren't using 2017-02-09 21:23:58 -07:00
Dominic Spill
3de6d2d360 Disable EMC clock 2017-02-09 16:34:57 -07:00
schneider
5f46bce325 fix(rad1o): Restore hackrf max2837_freq_nominal_hz behaviour 2017-02-03 19:33:25 +01:00
schneider
c0c0fab368 chore(rad1o): White space fixes and cleanup 2017-02-03 19:27:19 +01:00
schneider
7526723f50 fix(cmake): Add max2871_regs.c to the build 2017-02-03 19:26:19 +01:00
schneider
c04b1cbc8d Merge remote-tracking branch 'mossmann/master' into opera-merge 2017-02-03 16:25:32 +01:00
Dominic Spill
d61efc0c07 Remove experimental firmware code - never used in firmware 2017-02-01 16:02:08 -07:00
Dominic Spill
78182194e0 Turn off VBUS discharge to reduce current draw 2017-01-31 15:54:48 -07:00
schneider
642feac51e Merge remote-tracking branch 'mossmann/master' into opera-merge
Conflicts:
	firmware/common/hackrf_core.c
	firmware/common/rf_path.c
	firmware/hackrf-common.cmake
	firmware/hackrf_usb/hackrf_usb.c
	firmware/hackrf_usb/usb_api_transceiver.c
	host/hackrf-tools/src/hackrf_transfer.c
2017-01-28 23:46:43 +01:00
schneider
f96ea4b8c2 change(usb): Make usb_phy_enable() non static 2017-01-28 22:32:27 +01:00
schneider
202f2ecf54 fix(mixer): Use correct pins for MAX2871 2017-01-28 22:31:00 +01:00
schneider
9d8890ae62 fix(rad1o): gpio cleanup 2017-01-27 21:42:48 +01:00
schneider
566c9ad4bd feat(mixer): Full MAX2871 integration for rad1o 2017-01-27 21:41:24 +01:00
schneider
f063f87c49 fix(sgpio): Update rad1o update_q_invert gpio access 2017-01-27 20:51:44 +01:00
schneider
fb2057cd09 fix(rf_path): Port rad1o pin config 2017-01-27 20:45:49 +01:00
Dominic Spill
cb06ce9656 ifdef out HackRF One rf path pins for jawbreaker build 2017-01-27 12:24:19 -07:00
Michael Ossmann
a6b9f8f96d fixed operacake indentation warning in firmware 2017-01-26 15:24:55 -07:00
schneider
70c41463b1 refact(mixer): Basic mixer abstraction 2017-01-26 00:31:43 +01:00
schneider
35ca538c18 Merge remote-tracking branch 'mossmann/master' into rad1o
Just a very rough merge to get off the ground. Major parts are not yet
implemented. The mixer intergration is in a messed up state. Part which
need work have been marked with XXX

Conflicts:
	firmware/common/hackrf_core.c
	firmware/common/hackrf_core.h
	firmware/common/max2837.c
	firmware/common/max2837.h
	firmware/common/rf_path.c
	firmware/common/rffc5071.c
	firmware/common/rffc5071.h
	firmware/common/sgpio.c
	firmware/common/si5351c.c
	firmware/common/tuning.c
	firmware/common/w25q80bv.c
	firmware/common/w25q80bv.h
	firmware/common/xapp058/ports.c
	firmware/hackrf-common.cmake
	firmware/hackrf_usb/hackrf_usb.c
	firmware/hackrf_usb/usb_api_register.c
	firmware/hackrf_usb/usb_api_transceiver.c
	host/hackrf-tools/src/hackrf_transfer.c
2017-01-26 00:21:58 +01:00
Michael Ossmann
3474ad50c0 Merge branch 'multi-device-hardware-sync' of https://github.com/dodgymike/hackrf into dodgymike-multi-device-hardware-sync 2017-01-24 16:18:33 -07:00
Dominic Spill
60f64928d3 Merge branch 'master' into operacake 2017-01-23 17:50:09 -07:00
Mike Davis
ddb19a86fe Add vendor request for enabling/disabling gpio-based sync 2017-01-22 22:28:11 +02:00
Mike Davis
4b4cd181d8 Sync ready 2017-01-03 22:25:32 +02:00
Mike Walters
31a37bd841 Output RFFC5072 LOCK status 2016-12-27 21:08:12 +00:00
Mike Walters
f7bdbb07d8 Speed up RFFC5072 comms by 50%! 2016-12-27 21:08:12 +00:00
Mike Walters
303334870f Don't bother setting path 1 when tuning RFFC5072
Mixer path 1 only exists in the RFFC5071
2016-12-27 21:08:12 +00:00
Dominic Spill
b528af46c1 Tidy unused operacake code and use addresses to refer to boards 2016-12-25 11:01:55 +00:00
Dominic Spill
c54e31f397 Add support for multiple operacake boards connected to one HackRF 2016-12-23 21:59:45 +00:00
Dominic Spill
1cec9ad4db Add Operacake USB API (firmware) 2016-12-19 21:50:29 -07:00