Re: Capturing 2 Level FSK with frequency hopping?
It might also help to look at the FHSS utilities from Sandia Labs, which has a burst detector and FSK demodulator. https://github.com/sandialabs/gr-fhss_utils For a more application specific implementation, gr-smartmeters is built on FHSS_utils. The developer has some fantastic tutorial videos explaining the approach, the protocol, the decoding and also walks through burst detection to frame decode/crc check. https://github.com/BitBangingBytes/gr-smart_meters https://wiki.recessim.com/view/Gr-smart_meters_Setup_Guide > On Jul 10, 2022, at 08:16, Johannes Demel wrote: > > Hi Peter, > > since you're looking at a signal with less than 10MHz bandwidth around > 910MHz, you might have hardware available that is able to capture the whole > bandwidth. This should be a good starting point. > > Besides, the best approach to solve your challenge depends on more parameters. > > Questions that I'd consider first: > Do you need to process all 6 bands in parallel? > Are all signal sources synchronized? Do they come from the same source? > How large are the guard bands? > How large is the time gap between every sequential hop in a subband? > Do the subbands depend on each other in some way? > Is there a preamble to sync to? > Do you intend to change block parameters at runtime? > > It might be interesting to use polyphase filters to divide your ~10MHz signal > into 6 subbands first. Then use a polyphase filter to separate your channels. > Or use the Xlating FIR for your subbands. I'd play around and observe the > effects of each approach. > You might want to use a polyphase filter for all your 6 * 60 channels. > > Cheers > Johannes > >> On 10.07.22 12:18, Peter Lambrechtsen wrote: >> Hello, >> Excuse my ignorance as I am fairly new to gnuradio but I am trying to figure >> out how best to capture a data stream that is in the ISM band that also has >> frequency hopping. >> Channel spacing of 25kHz >> It has two data bit rates of 62.5bps and 500bps >> Starting at 910.5Mhz and going up to 919.975 and in there it has 6 sub bands >> of 60 channels it hops between sequentially between the frequencies in the >> sub band every 0.4s >> I'm wondering what the best approach would be to capture the data and figure >> out when the timing frame was to determine which was the initial frame as >> then it should be able to follow the sequential hopping. >> Still trying to work on the blocks to capture all the traffic as I haven't >> figured that out yet as I am just working off the specification and trying >> to understand the Frequency Xlating FIR Filter to at least capture one FSK >> stream to make sure it is sane what I should be receiving, then move to the >> frequency hopping. >> Thanks, Peter >
Re: Invalid type specifier
Thank you Ron for the bug in 3.10.2. But after correction and new compilation the error message is unfortunately still present when I launch GRC. [*** LOG ERROR #0001 ***] [2022-07-09 17:52:42] [test_bvb] {invalid type specifier} Jeff - Le 10/07/2022 à 11:57, Ron Economos a écrit : Are you trying to set the Minoutbuf setting on your block to something other than 0? There was a bug with that in 3.10.2. Fixed in 3.10.3. https://github.com/gnuradio/gnuradio/commit/af6f28e3ba7042ac5eeb8c4b39857cbb15d436a5 Ron On 7/10/22 01:44, user 1 wrote: Hello, I have build a simple test OOT block to learn and play with vectors. My OOT block written in C++ is between a file data source and a file data sink. The gcc compilation is error free. All is OK, my block works fine, the resulting data are consistent. However, at the start of the execution in GRC, I get the following error message: [*** LOG ERROR #0001 ***] [2022-07-09 17:52:42] [test_bvb] {invalid type specifier} Probably something wrong ! I work under: Ubuntu 20.04.1 GnuRadio 3.10.2 gcc 9.4.0 python 3.8.10 Thank you for your help. Jeff
Re: Capturing 2 Level FSK with frequency hopping?
Hi Peter, since you're looking at a signal with less than 10MHz bandwidth around 910MHz, you might have hardware available that is able to capture the whole bandwidth. This should be a good starting point. Besides, the best approach to solve your challenge depends on more parameters. Questions that I'd consider first: Do you need to process all 6 bands in parallel? Are all signal sources synchronized? Do they come from the same source? How large are the guard bands? How large is the time gap between every sequential hop in a subband? Do the subbands depend on each other in some way? Is there a preamble to sync to? Do you intend to change block parameters at runtime? It might be interesting to use polyphase filters to divide your ~10MHz signal into 6 subbands first. Then use a polyphase filter to separate your channels. Or use the Xlating FIR for your subbands. I'd play around and observe the effects of each approach. You might want to use a polyphase filter for all your 6 * 60 channels. Cheers Johannes On 10.07.22 12:18, Peter Lambrechtsen wrote: Hello, Excuse my ignorance as I am fairly new to gnuradio but I am trying to figure out how best to capture a data stream that is in the ISM band that also has frequency hopping. Channel spacing of 25kHz It has two data bit rates of 62.5bps and 500bps Starting at 910.5Mhz and going up to 919.975 and in there it has 6 sub bands of 60 channels it hops between sequentially between the frequencies in the sub band every 0.4s I'm wondering what the best approach would be to capture the data and figure out when the timing frame was to determine which was the initial frame as then it should be able to follow the sequential hopping. Still trying to work on the blocks to capture all the traffic as I haven't figured that out yet as I am just working off the specification and trying to understand the Frequency Xlating FIR Filter to at least capture one FSK stream to make sure it is sane what I should be receiving, then move to the frequency hopping. Thanks, Peter
Fwd: Capturing 2 Level FSK with frequency hopping?
First you should build a packet detector which can determine if there is a packet over the air or not. This can be done by detecting channel power change Then you can cut out the part of I/Q stream which just includes one packet. After that you can run frequency demod on the packet. To demod this kind of burst please consider it as an optimizing procedure: you guess the center freq, symbol phase and symbol rate of the FSK burst, making both the freq and symbol timing error minimized. Peter Lambrechtsen 于2022年7月10日周日 18:20写道: > Hello, > > Excuse my ignorance as I am fairly new to gnuradio but I am trying to > figure out how best to capture a data stream that is in the ISM band that > also has frequency hopping. > > Channel spacing of 25kHz > It has two data bit rates of 62.5bps and 500bps > Starting at 910.5Mhz and going up to 919.975 and in there it has 6 sub > bands of 60 channels it hops between sequentially between the frequencies > in the sub band every 0.4s > > I'm wondering what the best approach would be to capture the data and > figure out when the timing frame was to determine which was the > initial frame as then it should be able to follow the sequential hopping. > > Still trying to work on the blocks to capture all the traffic as I haven't > figured that out yet as I am just working off the specification and trying > to understand the Frequency Xlating FIR Filter to at least capture one FSK > stream to make sure it is sane what I should be receiving, then move to the > frequency hopping. > > Thanks, Peter >
Capturing 2 Level FSK with frequency hopping?
Hello, Excuse my ignorance as I am fairly new to gnuradio but I am trying to figure out how best to capture a data stream that is in the ISM band that also has frequency hopping. Channel spacing of 25kHz It has two data bit rates of 62.5bps and 500bps Starting at 910.5Mhz and going up to 919.975 and in there it has 6 sub bands of 60 channels it hops between sequentially between the frequencies in the sub band every 0.4s I'm wondering what the best approach would be to capture the data and figure out when the timing frame was to determine which was the initial frame as then it should be able to follow the sequential hopping. Still trying to work on the blocks to capture all the traffic as I haven't figured that out yet as I am just working off the specification and trying to understand the Frequency Xlating FIR Filter to at least capture one FSK stream to make sure it is sane what I should be receiving, then move to the frequency hopping. Thanks, Peter
Re: Invalid type specifier
Are you trying to set the Minoutbuf setting on your block to something other than 0? There was a bug with that in 3.10.2. Fixed in 3.10.3. https://github.com/gnuradio/gnuradio/commit/af6f28e3ba7042ac5eeb8c4b39857cbb15d436a5 Ron On 7/10/22 01:44, user 1 wrote: Hello, I have build a simple test OOT block to learn and play with vectors. My OOT block written in C++ is between a file data source and a file data sink. The gcc compilation is error free. All is OK, my block works fine, the resulting data are consistent. However, at the start of the execution in GRC, I get the following error message: [*** LOG ERROR #0001 ***] [2022-07-09 17:52:42] [test_bvb] {invalid type specifier} Probably something wrong ! I work under: Ubuntu 20.04.1 GnuRadio 3.10.2 gcc 9.4.0 python 3.8.10 Thank you for your help. Jeff
Invalid type specifier
Hello, I have build a simple test OOT block to learn and play with vectors. My OOT block written in C++ is between a file data source and a file data sink. The gcc compilation is error free. All is OK, my block works fine, the resulting data are consistent. However, at the start of the execution in GRC, I get the following error message: [*** LOG ERROR #0001 ***] [2022-07-09 17:52:42] [test_bvb] {invalid type specifier} Probably something wrong ! I work under: Ubuntu 20.04.1 GnuRadio 3.10.2 gcc 9.4.0 python 3.8.10 Thank you for your help. Jeff