Commit Graph

715 Commits

Author SHA1 Message Date
Michael Ossmann
cd4eb19a2b Merge pull request #1631 from greatscottgadgets/praline-legacy
Add HackRF Pro legacy radio mode
2026-01-03 22:44:28 -05:00
Michael Ossmann
b225a8a7e3 Fix RFFC5072 GPO bug on Jawbreaker 2026-01-03 19:03:15 -05:00
Michael Ossmann
eb9b1e0ffe Improve tuning tables 2026-01-02 16:27:54 -05:00
Michael Ossmann
9949100982 Don't try to self-test during clockgen shutdown 2026-01-01 15:41:23 -05:00
Michael Ossmann
6c25a06d16 Merge pull request #1625 from greatscottgadgets/tx-filters
Praline TX filter bandwidth
2026-01-01 13:46:18 -05:00
Michael Ossmann
ed2e2ce2d2 Use consistent feedback divider in RFFC5072 2025-12-31 14:05:13 -05:00
Michael Ossmann
636f8bde6e Add special tuning configuration case at 0 Hz 2025-12-30 22:07:30 -05:00
Michael Ossmann
5766678b6f Don't repeat tuning and baseband filter setting 2025-12-30 22:04:07 -05:00
Michael Ossmann
1ad8adb449 Automatically configure Praline baseband LPF
For compatibility with old host software, the analog baseband filter is
automatically selected based on the sample rate and offset tuning
configuration. The bandwidth set by legacy vendor request is ignored.
2025-12-30 21:57:58 -05:00
Michael Ossmann
d8a9d445f5 Rename tuning config tables 2025-12-30 21:42:30 -05:00
Michael Ossmann
fc4b9aca68 Implement automatic offset tuning
Add RX tuning table
2025-12-30 21:42:19 -05:00
Michael Ossmann
7e1c17593d Move tuning config search to radio_set_frequency() 2025-12-30 21:42:01 -05:00
Michael Ossmann
10e8b0d934 Decimate automatically in RX and RX sweep modes 2025-12-30 20:35:25 -05:00
Michael Ossmann
0ab032c4fc Rename hw_sync to trigger
Replace hw_sync_mode_t with bool.
2025-12-30 20:10:10 -05:00
Michael Ossmann
8e14cf6b0c Make tuning_set_frequency() return type consistent 2025-12-30 19:52:05 -05:00
Michael Ossmann
4580824866 Don't commit to table-based tuning for non-praline 2025-12-30 19:42:42 -05:00
Michael Ossmann
c9c5e1bddd Enable DC block by default 2025-12-30 18:21:35 -05:00
Michael Ossmann
d5361ea523 Don't use doubles in firmware
The FPU supports only single-precision floats.
2025-12-30 18:14:28 -05:00
Michael Ossmann
f6c23be2d9 Set default MAX2831 RX HPF to 30 kHz
The 100 Hz setting that is recommended by the data sheet doesn't seem to
work correctly.  The other settings would be appropriate only with the
extended precision RX gateware.

The 600 kHz setting seems like it should be useful with higher sample
rates, but it increases LPF roll-off.
2025-12-30 18:08:13 -05:00
Michael Ossmann
980c87417e Clean up compiler warnings 2025-12-30 18:07:18 -05:00
mndza
985c18c950 Check for null values in PRBS self-test 2025-12-19 17:12:55 +01:00
Antoine van Gelder
a53385af84 firmware: fix smol typo and off-by-one error 2025-12-19 17:40:11 +02:00
Antoine van Gelder
3faf82ede6 firmware: move fpga selftest to a separate file to resolve blinky linker issues 2025-12-19 16:10:15 +02:00
Antoine van Gelder
4e90ee5c51 firmware: add register definitions for standard fpga bitstream 2025-12-19 16:10:15 +02:00
Michael Ossmann
b9f28460d2 Merge pull request #1619 from antoinevg/praline-max2831-rx-hpf
Add support for setting the MAX2831 receiver's HPF corner frequency.
2025-12-19 08:35:01 -05:00
Michael Ossmann
0e869d31f7 Use measured MAX2831 TX filter bandwidth 2025-12-18 18:20:27 -05:00
Michael Ossmann
0ea91e2fa0 Merge pull request #1620 from greatscottgadgets/pin-shutdown
Improve firmware boot process
2025-12-18 13:44:35 -05:00
Michael Ossmann
8e390c3b79 Adjust transceiver loopback self-test thresholds 2025-12-18 00:27:29 -05:00
Diego Hurtado
4ed9169f4e fix gateware typo and update build, no DC block in loopback test (#1621) 2025-12-17 14:33:06 -05:00
Michael Ossmann
2aaa2213c9 Ensure clock generator off before turning on
Do not try to activate clock generator if power supply is disabled on
Praline.
2025-12-17 09:54:24 -05:00
Michael Ossmann
6f862a1349 Add pin_shutdown()
Portions of pin_setup() that establish a safe, low-power state are moved
into the new pin_shutdown(). Use pin_shutdown() to prepare for sleep or
reset or prior to calling pin_setup().
2025-12-16 21:52:53 -05:00
Michael Ossmann
44db1674d7 Use gateware default trigger setting on Praline
Don't try to talk to gateware before FPGA configuration
2025-12-16 21:31:48 -05:00
Michael Ossmann
22e56a7076 Simplify pin_setup() 2025-12-16 21:30:50 -05:00
Antoine van Gelder
7be3c7fdf1 firmware: add support for setting max2831 rx hpf corner frequency 2025-12-16 09:30:36 +02:00
Michael Ossmann
1925e5908a Merge pull request #1615 from mndza/xcvr-loopback-extended
Extend self-tests
2025-12-13 11:05:12 -05:00
mndza
d8fa93dcda Add FPGA SPI test 2025-12-11 18:22:17 +01:00
mndza
c7cf262486 Add skipped and timeout states as possible results for self-tests 2025-12-11 12:48:43 +01:00
mndza
86850fa14f Extend transceiver loopback self-tests 2025-12-05 09:44:42 +01:00
Michael Ossmann
9039eb063f Merge pull request #1616 from mndza/safe-pin-setup-fpga
Add safe defaults for the FPGA configuration pins in `pin_setup()`
2025-12-04 21:05:46 -05:00
mndza
e4c0dd3cee Add safe defaults for the FPGA configuration pins in pin_setup() 2025-12-04 11:17:41 +01:00
Antoine van Gelder
db73ecbf5b firmware: fix zlp bug when IN transfer length falls on a packet boundary 2025-12-03 15:50:02 +02:00
Michael Ossmann
90e15ec85f Merge pull request #1612 from martinling/new-rtc-test
New method to test RTC oscillator
2025-11-30 23:12:42 -05:00
Martin Ling
9726cf56e5 Flip Si5351 register bits back again after testing them flipped.
Needed since other tests expect this register to have its initial value.
2025-11-27 04:53:05 +00:00
mndza
24b05d6426 Do not halt when FPGA configuration fails: update report instead. 2025-11-26 20:53:49 +01:00
Michael Ossmann
cde5d754d3 Remove 32 kHz oscillator self-test
Reliable oscillator start-up requires several hundred milliseconds which
is longer than we are willing to wait at every boot. We could add an
on-demand test in the future instead of an automatic self-test.
2025-11-25 20:31:44 -05:00
Michael Ossmann
95e7e2a009 Fix readsel for RFFC5072 device ID read 2025-11-25 20:13:01 -05:00
Michael Ossmann
4832619823 Use MAX2831 RSSI mux and ADC for selftest
Co-authored-by: Martin Ling <martin-git@earth.li>
2025-11-25 20:12:27 -05:00
Michael Ossmann
29be31bf71 Add hackrf_debug option to read ADC
Co-authored-by: Martin Ling <martin-git@earth.li>
2025-11-25 20:08:20 -05:00
Michael Ossmann
409acbc3c9 Add support for HackRF Pro (code name: Praline)
Co-authored-by: mndza <diego.hdmp@gmail.com>
Co-authored-by: Martin Ling <martin-git@earth.li>
Co-authored-by: Antoine van Gelder <antoine@greatscottgadgets.com>
2025-11-24 20:53:41 -05:00
mndza
cae8060d0d firmware: disable rffc5071 dithering, tune to nearest 625000 Hz step 2025-08-21 10:04:45 +02:00