Michael Ossmann
a2b2728234
Implement bias tee with radio registers
2026-02-20 11:31:06 -05:00
Michael Ossmann
b1bfc246bf
Do not apply radio configuration inside ISRs
2026-02-20 11:30:50 -05:00
Michael Ossmann
547a851fba
Store radio configuration in register banks
2026-02-20 11:28:56 -05:00
Michael Ossmann
aaad548b0b
Track RFFC5071 enabled state
...
Re-lock PLL when re-tuning while enabled
2026-02-20 11:28:15 -05:00
Michael Ossmann
72a96a77f8
Call a sample rate a sample rate
...
Previously we used "sample rate" to mean a rate that is twice the sample
rate in several places in firmware.
2026-02-20 11:28:15 -05:00
Michael Ossmann
19d00fb5f9
Remove full-duplex support for RFFC5071
...
This eliminates unnecessary disable/enable cycles for our half-duplex
RFFC5072.
2026-02-20 11:28:15 -05:00
Martin Ling
8d1b1a5f9a
Rename gpio.not to gpio.inv to avoid conflict with C++ keyword.
2026-02-19 00:32:31 +00:00
Martin Ling
cc63a764ab
Don't allocate large LZ4 buffers on stack; use some dedicated RAM. ( #1670 )
2026-02-11 14:13:32 -05:00
Michael Ossmann
f6be9d54f1
Merge pull request #1669 from martinling/delay
...
Firmware: Move delay functions, add M0 version of `delay_us_at_mhz`.
2026-02-09 12:44:34 -05:00
Martin Ling
3ef784b830
Add delay loop implementation for M0 core.
2026-02-09 08:35:16 +00:00
Martin Ling
a246f9a35a
Add 'nonstring' attribute to firmware_info magic field.
...
Fixes compiler warnings such as:
firmware_info.c:49:18: warning: initializer-string for array of 'char'
truncates NUL terminator but destination lacks 'nonstring' attribute (9
chars into 8 available) [-Wunterminated-string-initialization]
49 | .magic = "HACKRFFW",
| ^~~~~~~~~~
2026-02-06 21:30:01 +00:00
Martin Ling
afb6d1372f
Move delay functions out of hackrf_core.
2026-02-06 18:29:54 +00:00
Martin Ling
ead77b91cf
Always use void argument type for functions taking no arguments.
2026-02-06 17:30:56 +00:00
Michael Ossmann
3ffda68f18
Merge pull request #1655 from martinling/flash-size
...
Provide access to the larger SPI flash on Praline
2026-01-29 21:58:15 -05:00
Martin Ling
06c1163d64
Provide access to the larger SPI flash on Praline.
2026-01-30 00:06:16 +00:00
Michael Ossmann
16355f8e5d
Update RFFC5072 default registers
2026-01-29 18:59:42 +00:00
Michael Ossmann
ec784cbfbc
Change from 5th order to 3rd order DSM modulator
2026-01-29 18:59:25 +00:00
Mike Walters
72636b53f5
Move dithering disable to rffc5071_setup
2026-01-29 18:03:57 +00:00
Michael Ossmann
b516631743
Use lower feedback divider when possible
...
This reverts a previous change that was a workaround for tuning glitches
in sweep mode. Increase of TVCO is a better solution.
2026-01-29 17:43:54 +00:00
Michael Ossmann
40bdea769b
Increase RFFC5072 VCO warm-up time TVCO
2026-01-29 17:43:47 +00:00
Michael Ossmann
38abc35e23
Output RFFC5072 LD to test point on HackRF One
2026-01-29 17:42:28 +00:00
Michael Ossmann
845c0c8394
Enable RFFC5072 reference oscillator standby
2026-01-29 17:42:28 +00:00
Michael Ossmann
e95b3afbc3
Zero only the bits we want to be zero
...
Previously we zeroed all RFFC5072 frequency synthesizer control
registers, resulting in an invalid configuration which could adversely
affect start-up if the part is enabled before a valid frequency is set.
2026-01-29 17:42:28 +00:00
Martin Ling
f4e120e50d
Test RFFC5072 PLL lock during startup.
2026-01-26 19:00:53 +00:00
Michael Ossmann
a5af0edabb
Ignore re-tune requests
...
If the requested frequency is the same as the already-configured
frequency, ignore the tuning request.
2026-01-13 14:54:26 -05:00
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