307 Commits

Author SHA1 Message Date
Michael Ossmann
e6ca4d9b71 Set libhackrf version to 0.9.2 2026-01-29 22:16:11 -05:00
Martin Ling
06c1163d64 Provide access to the larger SPI flash on Praline. 2026-01-30 00:06:16 +00:00
Michael Ossmann
8d5e05cf3a Merge pull request #1632 from greatscottgadgets/praline
Add support for HackRF Pro (code name: Praline)
2026-01-03 22:59:42 -05:00
Michael Ossmann
9e0e0eb81c Increase maximum self-test buffer size
Closes #1617
2026-01-01 15:58:03 -05:00
Antoine van Gelder
4e90ee5c51 firmware: add register definitions for standard fpga bitstream 2025-12-19 16:10:15 +02:00
Martin Ling
23d69bf90c New method to test RTC oscillator. 2025-11-27 04:41:09 +00: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
Martin Ling
b3bf7a1b70 Report whether other devices are sharing the USB bus. 2025-11-06 16:27:21 +00:00
Martin Ling
384e8f270b Set libhackrf version to 0.9.1. 2025-10-04 18:27:55 +01:00
Martin Ling
8cbcc8a4e9 Use stdbool.h rather than our own bool definition. 2025-10-02 16:22:30 +01:00
Adam Sampson
aa6390a34a Fix missing shared library version
The libtarget variable isn't defined here (it's used in a helper
function above). This caused libhackrf to be built and installed without
a version number.
2025-10-01 12:14:45 +01:00
A. Maitland Bottoms
506c8cb292 modern cmake
Refactor HackRF build system with a more modern CMake style.
Install files to allow library users using CMake to
find_project(HackRF CONFIG) and obtain HackRF::hackrf
and/or HackRF::hackrf_static library targets.

Add options ENABLE_STATIC_LIB and ENABLE_SHARED_LIB
to allow shared or static library to be disabled.
(Default builds both shared and static libraries.)

Add option ENABLE_HACKRF_SWEEP, when disabled allows
building without FFT library. (Default enabled.)

Add option DISABLE_USB_DEVICE_DISCOVERY for a compile definition
which could be used to alter libusb usage as needed on Android.
2025-09-19 02:59:30 +01:00
Martin Ling
2d2b6231fb Bump CMake minimum version to 3.10. 2025-09-19 01:12:24 +01:00
Martin Ling
5c39452040 Bump CMake minimum version to 3.5.0.
This is the minimum now accepted by latest CMake releases.
2025-09-16 19:00:49 +01:00
Jamie Vital
3d5bddb88f Implement RAW_IO with WinUSB 2025-09-15 10:03:26 -04:00
Martin Ling
03551cb1fd Detect whether the M0 missed its deadline.
Counter-intuitively, this actually saves us two cycles because we unroll
the first iteration of the loop that spins on the interrupt flag, saving
a branch in the case that the flag is clear the first time.
2024-11-26 19:34:29 +00:00
Martin Ling
d4ed8474e5 Merge pull request #1442 from martinling/example-fix
Correct prototype of flush callback in example code.
2024-05-02 16:40:04 +01:00
Simon Ruderich
658829fdd5 hackrf.h: fix typos in documentation comments 2024-04-26 08:10:25 +02:00
Martin Ling
c201c14a7e Correct prototype of flush callback in example code. 2024-04-11 10:35:30 +01:00
Demetri Maltsiniotis
3d83a2f911 * Fix quoting issue causing bad library include path, add install step hackrf-tools.
* Add artifact publish step for Windows libraries and host tools.
* Replace runner.workspace with github.workspace.
* Update checkout task to v4 to supress warning.
* Update CMAKE for libhackrf and hackrf-tools to also install DLLs on WIN32 platforms.
* Update uploadartifact task to v4 since v3 uses an end-of-life node version 16.
* Add a new windows variable for the vcpkg cmake toolchain makefile.
2024-02-29 18:39:03 -06:00
Michael Ossmann
5bed412018 Set libhackrf API version to 0.9 2024-02-22 14:01:59 -05:00
Michael Ossmann
d0bb89643a Merge pull request #1403 from smburdick/build-updates
Update CMAKE minimum version to 2.8.12
2024-02-22 13:56:15 -05:00
Michael Ossmann
24ac1edf5a Support detection of HackRF One r10 2024-02-21 23:48:54 -05:00
Sam Burdick
3b55d5a65e Min CMAKE Version -> 2.8.12 2024-02-01 09:18:31 -08:00
Sam Burdick
f445c265b1 Update CMAKE minimum version 2024-01-15 18:31:42 -08:00
Michael Ossmann
1fd67f66ca Merge pull request #1346 from Sasszem/libhackrf_usb_api_versions
libhackrf: document required library versions
2023-09-13 11:23:31 -04:00
bsdmp
ed8a1a6f53 mask all signals in libhackrf transfer_threadproc (#1330)
* mask all signals in libhackrf transfer_threadproc

hackrf_transfer uses pause() and SIGALRM to print statistics and POSIX doesn't
specify which thread must recieve the signal, block all signals here, so we
don't interrupt their reception by hackrf_transfer or any other app which uses
the library (#1323)

* fix windows build and remove empty line
2023-09-13 11:20:14 -04:00
Jonathan Suite
dab548bf29 Firmware updates to allow fine-grained control of biast from command line (#1314)
* Initial commit of hackrf_biast

* Cleaned up hackrf_biast

* Cleaned up usage info

* Include getopt.h for non-GNU systems

* Add support for overriding HackRF's default antenna power behavior in firmware.  Add support for specifying antenna power behavior in libhackrf.

* Moved bias tee config routines into user_config.c, cleaned up operation of hackrf_biast

* hackrf_biast now calls usage() and exits when invoked with no arguments

* Fixed minor documentation error in usage()

* minor syntax cleanup

* Add some documentation to the host API call

* Add proper declaration magic in hackrf.h to hackrf_set_user_bias_t_opts() to appease Visual Studio

* Documentation changes suggested by @martinling

* Moved bias t setting above switch statement, removed line that explicit turned bias t off when entering OFF mode

* Change hackrf_set_user_bias_t_opts() to use a friendly struct() instead of a bitmask.  User friendliness fixes to hackrf_biast options.  More clang-format appeasement.

* Removed support for integer mode args from hackrf_biast

* clang-format error fixes

* Tweaked position of comment for clang-format v14

* Reformat files with clang-format v14 instead of 16

* Remove internal numeric modes for bias T settings

Co-authored-by: Martin Ling <martin-github@earth.li>

* Fix documentation error in hackrf_biast.c

---------

Co-authored-by: Martin Ling <martin-github@earth.li>
2023-09-13 11:15:30 -04:00
Sasszem
9910c88ac3 libhackrf: document required library versions 2023-07-06 01:37:08 +02:00
László Baráth
17269d3a7c Document libhackrf functions using Doxygen (#1244)
* Document & comment code

* document functions & add pages for groups

* Run clang-format

* Fix most review change requests

* Fix typos, add information on using multiple Opera Cake boards

* Update documentation

* Changes requested by @Straithe
- update project brief
- set paper type to letter
- move doxyfile

* Changes requested by @martinling
Excluding the USB API versioning

* Remove incomplete USB version info
The required versions were only noted at a few places. Will add complete info later, but for now, it's removed
2023-04-22 22:03:49 -04:00
Michael Ossmann
6f26b74e90 Merge pull request #1253 from Sasszem/memory-waste
Fix memory waste in allocated_transfers
2023-01-05 15:34:27 -05:00
Mike Walters
5084a84a3d libhackrf: add function to lookup platform ID from board ID 2023-01-05 15:13:06 +00:00
Sasszem
b52631b6f5 Fix memory waste in allocated_transfers
Did a search for allocations & all others were fine
2023-01-04 22:09:49 +01:00
Michael Ossmann
3d39660be1 Merge pull request #1237 from greatscottgadgets/tuning
restrict IF to 2170-2740 MHz
2022-12-23 11:56:38 -05:00
Michael Ossmann
3d687a20fd increase forceable IF range to 2000-3000 MHz 2022-12-23 06:06:22 -05:00
Michael Ossmann
173612ac77 add --led option to hackrf_debug
and corresponding changes to libhackrf and firmware
2022-12-18 07:22:17 -05:00
Michael Ossmann
86c1d8ce6e restrict IF to 2170-2740 MHz 2022-12-09 09:12:37 -05:00
Michael Ossmann
219abf7a4c Merge pull request #1180 from martinling/fix-transfer-locking
Improve transfer locking
2022-09-28 05:06:07 -04:00
Martin Ling
f7c219e30f Merge all_finished_lock with transfer_lock. 2022-09-26 14:01:16 +01:00
Martin Ling
367ce3d7b3 Hold transfer lock during initial submissions in prepare_transfers. 2022-09-26 14:01:15 +01:00
Martin Ling
559a45bd6b Extend scope of transfer_lock in callback. 2022-09-26 13:42:22 +01:00
Michael Ossmann
06b9d7bee0 Clean up source code copyright notices. 2022-09-23 14:46:52 -04:00
Martin Ling
2e73a4f2db If TX callback sets valid_length to 0, treat as end of data. 2022-09-23 12:46:49 +01:00
Martin Ling
0becbc6b4a Indicate success or failure to flush callback. 2022-09-23 05:19:29 -04:00
Martin Ling
4810d1f992 Fold transfer_finished function into libusb transfer callback. 2022-09-23 05:19:29 -04:00
Martin Ling
1484b78c05 Expand lock scope in libusb transfer callback.
This is required since cancel_transfers will also cancel the flush.
2022-09-23 05:19:29 -04:00
Martin Ling
770416f122 Cancel flush transfer if shutting down. 2022-09-23 05:19:29 -04:00
Martin Ling
14093fe73b Provide a callback for completion of a TX transfer. 2022-09-23 05:19:29 -04:00
Martin Ling
b872647e97 Provide a callback for TX flush, rather than a wait function. 2022-09-23 05:19:29 -04:00