Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for HackRf. #53

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Add support for HackRf. #53

wants to merge 1 commit into from

Conversation

nqbit
Copy link

@nqbit nqbit commented Jun 28, 2019

I have have verified that I am able to collect images with a HackRf plus a GOES SAW Bird (LNA + SAW Filter) attached to my laptop.

Copy link
Owner

@pietern pietern left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for submitting the PR! This is great.

Most of my comments are style related, where the style deviates from the style in the rest of the code. I don't have clang-format file in here yet but should add one so it's not longer something to review.

Could you rename HackRf -> HackRF? This is the capitalization used by GSG.

docs/commands/goesrecv.rst Outdated Show resolved Hide resolved
etc/goesrecv.conf Outdated Show resolved Hide resolved
src/goesrecv/config.h Show resolved Hide resolved
uint8_t bb_gain = 30;

// Enables or disables the RF amplifier
bool rf_amp_enabled = 0;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hadn't heard of this one. Is it some kind of AGC?

Copy link
Author

@nqbit nqbit Jul 8, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

src/goesrecv/hackrf_source.cc Outdated Show resolved Hide resolved
src/goesrecv/hackrf_source.cc Outdated Show resolved Hide resolved
src/goesrecv/hackrf_source.cc Outdated Show resolved Hide resolved
}

void HackRf::process(size_t nsamples, unsigned char* buf,
std::complex<float>* fo) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can go on the previous line.

Copy link
Author

@nqbit nqbit Jul 8, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For future reference, do you have a preferred line width? Done

src/goesrecv/hackrf_source.h Show resolved Hide resolved
src/goesrecv/source.cc Outdated Show resolved Hide resolved
@nqbit nqbit force-pushed the master branch 2 times, most recently from aa2f9d8 to cb3e5ae Compare July 8, 2019 16:17
@nqbit nqbit changed the title Add support for HackRf Add support for HackRF Jul 8, 2019
@nqbit
Copy link
Author

nqbit commented Jul 8, 2019

Please take another look :)

@gornstein
Copy link

Is there any update on this? I've been having the same issue.

@nqbit nqbit closed this Apr 9, 2022
@nqbit nqbit deleted the master branch April 9, 2022 17:11
@nqbit nqbit restored the master branch April 9, 2022 17:11
@nqbit nqbit reopened this Apr 9, 2022
@nqbit nqbit closed this Apr 9, 2022
@nqbit nqbit deleted the master branch April 9, 2022 17:14
@nqbit nqbit restored the master branch April 9, 2022 17:14
@nqbit nqbit reopened this Apr 9, 2022
@nqbit nqbit changed the title Add support for HackRF Add support for HackRf. Apr 9, 2022
@nqbit
Copy link
Author

nqbit commented Apr 9, 2022

Renaming complete HackRf -> HackRF.

@kazaril
Copy link

kazaril commented May 11, 2022

Hi, thanks Pietern for the tools and Nqbit for this PR!
I'm currently testing this but I get false locks at most frequencies (It locks on at 10MHz, 100MHz and the actual LRIT frequency, but not at 1MHz). It immediately locks, then gives me a string of ones. Viterbi error is 16 every single time at LRIT frequeny. Frequency offset jumps around between -20 and 20Hz. Goesrecv-monitor output can be seen here:
image

My setup works fine with this fork using an RTL-SDR. The Hackrf also seems to work fine in other situations (eg I can receive FM using GQRX). I don't know the specifics of the dish/LNA as I've just been provided with a line, but can find out if that's relevant.

My hackrf_info gives the following:
hackrf_info version: unknown
libhackrf version: unknown (0.5)
Found HackRF
Index: 0
Serial number: 0000000000000000088869dc382d851b
Board ID Number: 2 (HackRF One)
Firmware Version: 2021.03.1 (API:1.04)
Part ID Number: 0xa000cb3c 0x0066475e

The same issue was present with older firmware (2018.something). I'm using Ubuntu 20.04.
I would really love to get this working and would really appreciate any help. I'm also very happy to help test this PR.
-Sam

@pietern
Copy link
Owner

pietern commented May 11, 2022

@kazaril Hey Sam, are you sure you're pointing at the right satellite? It is possible you're looking at GOES-18 which is only transmitting a HRIT carrier at this point. That is consistent with the constellation you're seeing.

@kazaril
Copy link

kazaril commented May 12, 2022

@pietern the signal is immediately locking regardless of what frequency I select. I can receive LRIT fine using the RTLSDR dongle with the same setup, but I'm wanting to get the HackRF working so that I can move on to HRIT (pretty sure the RTLSDR doesn't have the bandwidth for it)

EDIT: OK, so it looks like the issue is due to HackRF having a big spike at centre frequency due to not having matched components (they had to make some sacrifices to keep the price down). I might have to write something to filter it/have a frequency offset. I wonder why @nqbit didn't have this issue, maybe just got lucky with his HRF.

@gornstein
Copy link

@kazaril I am now having the exact same issue as you with the large DC spike in the center causing lots of issues. Were you able to get a frequency offset working?
I have a frequency offset working fine in GQRX but I'm not sure how I would implement something similar into goestools. I'll take a stab at it unless you already have something working..
Thanks

@kazaril
Copy link

kazaril commented Jun 1, 2022

@gornstein I fumbled around for a while trying to add the offset to the code but in the end just switched to Satdump as it has a DC block option built in. If you do end up getting the offset working in Goestools please let me know - I'd be very curious to hear how it performs.

@gornstein
Copy link

@kazaril alright thanks, I'll be sure to let you know if I get anything working!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants