Re: [Discuss-gnuradio] CC1101 GFSK packet decode with variable length

2019-01-19 Thread Alban Meffre
Hi
i spent the past few weeks studying the gnuradio blocks c++ source codes,
the doxygen documentation, and the provided examples (specially packet_tx
and packet_rx ones)
and eventually i managed to understand how packetized transmission, tags
and messages work
it was easer than i thought initially even if the learning curve is very
steep
many thanks for your support

now i plan to learn how to write my own blocks based on the existing, using
gr_modtool
i need to write my own custom header formats

bob

Le lun. 31 déc. 2018 à 01:28, Julian Arnold  a
écrit :

> Hey Bob,
>
> there is plenty of documentation on this topic you can check out under
> [1,2].
> Especially, the Header Payload Demuxer (HPD) [3] should be worth a look
> if you are dealing with packetized variable length data.
>
> Hope those pointer can get you started. If you have further questions
> after going through those pages, let me know.
>
> Cheers,
> Julian
>
> [1] https://www.gnuradio.org/doc/doxygen/page_packet_data.html
> [2] https://www.gnuradio.org/doc/doxygen/page_packet_comms.html
> [3]
>
> https://www.gnuradio.org/doc/doxygen/classgr_1_1digital_1_1header__payload__demux.html
>
> On 31.12.18 01:00, Alban Meffre wrote:
> > Hi
> > I would like to decode a simple GFSK packet
> >
> > here is the packet structure :
> > preamble : AAh x 4
> > sync word : D391h
> > length byte : 1 byte
> > payload : 1 to 64 bytes
> > CRC : 2 bytes
> >
> > TX : arduino + CC1101 module, 2GFSK, 100kbps, excursion 50kHz, carrier
> > 433 MHz
> > RX : RTLSDR
> >
> > until now i was able to demodulate the signal and add a "sync" tag using
> > the correlate access code.
> >
> > my goal is to extract the payload and send it to a file or a socket.
> > is there a simple way to do that without writing my own block ?
> >
> > i can't go further, because i do not manage to find the info i need
> > i do not know where to start : stream, tagged stream, PDU, messages,
> etc..
> > i do not figure out how to use these tag for variable length. nothing
> > clear in the doc
> >
> > i'd be glad if someone helps me
> > best regards
> > bob
> >
> >
> >
> > ___
> > Discuss-gnuradio mailing list
> > Discuss-gnuradio@gnu.org
> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> >
>


-- 
Alban MEFFRE F4GSW
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] CC1101 GFSK packet decode with variable length

2019-01-02 Thread Andre Puschmann
Hey,
not sure if this still works but I've worked on a CC1101 receiver a
while ago. Have a look here [1] if you're interested.

Cheers
Andre


[1] https://github.com/andrepuschmann/gr-cc11xx

On 31/12/18 1:00, Alban Meffre wrote:
> Hi
> I would like to decode a simple GFSK packet
> 
> here is the packet structure :
> preamble : AAh x 4
> sync word : D391h
> length byte : 1 byte
> payload : 1 to 64 bytes
> CRC : 2 bytes
> 
> TX : arduino + CC1101 module, 2GFSK, 100kbps, excursion 50kHz, carrier
> 433 MHz
> RX : RTLSDR
> 
> until now i was able to demodulate the signal and add a "sync" tag using
> the correlate access code.
> 
> my goal is to extract the payload and send it to a file or a socket.
> is there a simple way to do that without writing my own block ?
> 
> i can't go further, because i do not manage to find the info i need
> i do not know where to start : stream, tagged stream, PDU, messages, etc..
> i do not figure out how to use these tag for variable length. nothing
> clear in the doc
> 
> i'd be glad if someone helps me
> best regards
> bob
> 
> 
> 
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] CC1101 GFSK packet decode with variable length

2019-01-01 Thread Alban Meffre
i just typed "RTFM" in google images :)

concerning the documentation :


IMHO

i can't blame anyone to have written the documentation in C++ or Python. in
my early days of a C code dev i used to write the doc in raw C code if no
doc at all

do you know why ARDUINO or RASPBERRY PI have become essential tools for
discovering electronics ?
it is because it was not intended for electronics engineer
it was intended to be used by artists, musicians, hobbyists, kids,
scholars, etc...
as a consequence, you don't have to write (at first) any line of code to
make you LED blink
there is PLENTY of examples of code and SCHEMATICS all over the internet

i'm a hamradio op and an EE engineer, i love to talk about antennas,
modulations, bit error correcting/detection, linear algebra, filters,
signal and so on, but i don't like C++
that is why MY ideal documentation would have been AN EXAMPLE FOR EACH
BLOCK with graphics
and simple diagrams explaining tags, messages for each block

i don't think that the diagram below is self explanatory  for packet
decoding
[image: image.png]

Bob

Le mar. 1 janv. 2019 à 19:01, Kevin McQuiggin  a écrit :

> Hi Alban et al:
>
> Great RTFM graphic!
>
> gnuradio’s documentation could indeed be much better: this is a discussion
> topic at conferences and meetings.  I had the same issues a couple of years
> ago when I was brand new.
>
> Unfortunately, for undocumented blocks, or those ones where the docs are
> not complete, the best way to figure out what the block or component does
> is to read the source code.  This is not ideal if you don’t have (for
> example) C++ experience, but if you have any coding experience at all then
> with a bit of effort (and support from the excellent helpers on this list)
> you can likely figure it out.
>
> The online docs do give enough information on gnuradio’s methodology that
> you can then figure out what a block does, what its parameters mean etc.
> If it isn’t, then you can simply ask “what does parameter k do in block
> so-and-so” on the list, and (likely) the author will get back to you to
> explain it.
>
> This is not a perfect answer to your question but it’s a start.  gnuradio
> is complex, and especially complex behind the curtain, so expect that it
> will take some digging (and consequent learning, which is good!) to get to
> where you want to be,
>
> Happy 2019,
>
> Kevin
>
>
>
>
> On Jan 1, 2019, at 9:53 AM, Alban Meffre  wrote:
>
> Happy new year everyone  !
>
> i would be glad if someone explain me how to use the HPD block, how do i
> setup messages with PMT blabla, and what is to packet_len tag and how to
> pass the packet length etc.
> the packet_rx exmple work with OFDM and has nothing to do with simple FSK
> frame decoding
> i will try do decode the documentation 
> 
> very best regards,
> Bob
>
>
> Le mar. 1 janv. 2019 à 11:21, Daniel Estévez  a
> écrit :
>
>> El 31/12/18 a las 21:27, Ed Criscuolo escribió:
>> > But this would only work well if there is enough gap time and/or
>> preamble bits and/or fill bytes between the packets. Otherwise, you will
>> consume and discard the beginning of the next packet.
>>
>> Hi Ed,
>>
>> My solution makes a PDU of the maximum size whenever a syncword is
>> detected, even if different detections overlap.
>>
>> ___
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>
>
> --
> Alban MEFFRE F4GSW
>
>
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
>

-- 
Alban MEFFRE F4GSW
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] CC1101 GFSK packet decode with variable length

2019-01-01 Thread Kevin McQuiggin
Hi Alban et al:

Great RTFM graphic!

gnuradio’s documentation could indeed be much better: this is a discussion 
topic at conferences and meetings.  I had the same issues a couple of years ago 
when I was brand new.  

Unfortunately, for undocumented blocks, or those ones where the docs are not 
complete, the best way to figure out what the block or component does is to 
read the source code.  This is not ideal if you don’t have (for example) C++ 
experience, but if you have any coding experience at all then with a bit of 
effort (and support from the excellent helpers on this list) you can likely 
figure it out.  

The online docs do give enough information on gnuradio’s methodology that you 
can then figure out what a block does, what its parameters mean etc.  If it 
isn’t, then you can simply ask “what does parameter k do in block so-and-so” on 
the list, and (likely) the author will get back to you to explain it.

This is not a perfect answer to your question but it’s a start.  gnuradio is 
complex, and especially complex behind the curtain, so expect that it will take 
some digging (and consequent learning, which is good!) to get to where you want 
to be,

Happy 2019,

Kevin




> On Jan 1, 2019, at 9:53 AM, Alban Meffre  wrote:
> 
> Happy new year everyone  !
> 
> i would be glad if someone explain me how to use the HPD block, how do i 
> setup messages with PMT blabla, and what is to packet_len tag and how to pass 
> the packet length etc.
> the packet_rx exmple work with OFDM and has nothing to do with simple FSK 
> frame decoding
> i will try do decode the documentation 
> 
> very best regards,
> Bob
> 
> 
> Le mar. 1 janv. 2019 à 11:21, Daniel Estévez  > a écrit :
> El 31/12/18 a las 21:27, Ed Criscuolo escribió:
> > But this would only work well if there is enough gap time and/or preamble 
> > bits and/or fill bytes between the packets. Otherwise, you will consume and 
> > discard the beginning of the next packet. 
> 
> Hi Ed,
> 
> My solution makes a PDU of the maximum size whenever a syncword is
> detected, even if different detections overlap.
> 
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org 
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio 
> 
> 
> 
> -- 
> Alban MEFFRE F4GSW
> 
> 
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] CC1101 GFSK packet decode with variable length

2019-01-01 Thread Alban Meffre
Happy new year everyone  !

i would be glad if someone explain me how to use the HPD block, how do i
setup messages with PMT blabla, and what is to packet_len tag and how to
pass the packet length etc.
the packet_rx exmple work with OFDM and has nothing to do with simple FSK
frame decoding
i will try do decode the documentation 
[image: image.png]
very best regards,
Bob


Le mar. 1 janv. 2019 à 11:21, Daniel Estévez  a écrit :

> El 31/12/18 a las 21:27, Ed Criscuolo escribió:
> > But this would only work well if there is enough gap time and/or
> preamble bits and/or fill bytes between the packets. Otherwise, you will
> consume and discard the beginning of the next packet.
>
> Hi Ed,
>
> My solution makes a PDU of the maximum size whenever a syncword is
> detected, even if different detections overlap.
>
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>


-- 
Alban MEFFRE F4GSW
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] CC1101 GFSK packet decode with variable length

2019-01-01 Thread Daniel Estévez
El 31/12/18 a las 21:27, Ed Criscuolo escribió:
> But this would only work well if there is enough gap time and/or preamble 
> bits and/or fill bytes between the packets. Otherwise, you will consume and 
> discard the beginning of the next packet. 

Hi Ed,

My solution makes a PDU of the maximum size whenever a syncword is
detected, even if different detections overlap.

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] CC1101 GFSK packet decode with variable length

2018-12-31 Thread Ed Criscuolo
But this would only work well if there is enough gap time and/or preamble bits 
and/or fill bytes between the packets. Otherwise, you will consume and discard 
the beginning of the next packet. 

@(^.^)@ Ed
Sent from my iPhone

> On Dec 31, 2018, at 4:52 AM, Daniel Estévez  wrote:
> 
> Hi,
> 
> Besides using the Header Payload Demuxer as Julian suggested, a simple
> trick when the packet size is unknown but limited to a (not very large)
> maximum size is to cut a PDU with the maximum packet size and then throw
> away everything you don't need.
> 

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] CC1101 GFSK packet decode with variable length

2018-12-31 Thread Daniel Estévez
Hi,

Besides using the Header Payload Demuxer as Julian suggested, a simple
trick when the packet size is unknown but limited to a (not very large)
maximum size is to cut a PDU with the maximum packet size and then throw
away everything you don't need.

I have a CC1101 decoder in gr-satellites that does variable length
packets using this trick. See
https://destevez.net/2018/12/decoding-reaktor-hello-world/

Best regards,

Daniel.

El 31/12/18 a las 01:28, Julian Arnold escribió:
> Hey Bob,
> 
> there is plenty of documentation on this topic you can check out under
> [1,2].
> Especially, the Header Payload Demuxer (HPD) [3] should be worth a look
> if you are dealing with packetized variable length data.
> 
> Hope those pointer can get you started. If you have further questions
> after going through those pages, let me know.
> 
> Cheers,
> Julian
> 
> [1] https://www.gnuradio.org/doc/doxygen/page_packet_data.html
> [2] https://www.gnuradio.org/doc/doxygen/page_packet_comms.html
> [3]
> https://www.gnuradio.org/doc/doxygen/classgr_1_1digital_1_1header__payload__demux.html
> 
> 
> On 31.12.18 01:00, Alban Meffre wrote:
>> Hi
>> I would like to decode a simple GFSK packet
>>
>> here is the packet structure :
>> preamble : AAh x 4
>> sync word : D391h
>> length byte : 1 byte
>> payload : 1 to 64 bytes
>> CRC : 2 bytes
>>
>> TX : arduino + CC1101 module, 2GFSK, 100kbps, excursion 50kHz, carrier
>> 433 MHz
>> RX : RTLSDR
>>
>> until now i was able to demodulate the signal and add a "sync" tag
>> using the correlate access code.
>>
>> my goal is to extract the payload and send it to a file or a socket.
>> is there a simple way to do that without writing my own block ?
>>
>> i can't go further, because i do not manage to find the info i need
>> i do not know where to start : stream, tagged stream, PDU, messages,
>> etc..
>> i do not figure out how to use these tag for variable length. nothing
>> clear in the doc
>>
>> i'd be glad if someone helps me
>> best regards
>> bob
>>
>>
>>
>> ___
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
> 
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] CC1101 GFSK packet decode with variable length

2018-12-30 Thread Julian Arnold

Hey Bob,

there is plenty of documentation on this topic you can check out under 
[1,2].
Especially, the Header Payload Demuxer (HPD) [3] should be worth a look 
if you are dealing with packetized variable length data.


Hope those pointer can get you started. If you have further questions 
after going through those pages, let me know.


Cheers,
Julian

[1] https://www.gnuradio.org/doc/doxygen/page_packet_data.html
[2] https://www.gnuradio.org/doc/doxygen/page_packet_comms.html
[3] 
https://www.gnuradio.org/doc/doxygen/classgr_1_1digital_1_1header__payload__demux.html


On 31.12.18 01:00, Alban Meffre wrote:

Hi
I would like to decode a simple GFSK packet

here is the packet structure :
preamble : AAh x 4
sync word : D391h
length byte : 1 byte
payload : 1 to 64 bytes
CRC : 2 bytes

TX : arduino + CC1101 module, 2GFSK, 100kbps, excursion 50kHz, carrier 
433 MHz

RX : RTLSDR

until now i was able to demodulate the signal and add a "sync" tag using 
the correlate access code.


my goal is to extract the payload and send it to a file or a socket.
is there a simple way to do that without writing my own block ?

i can't go further, because i do not manage to find the info i need
i do not know where to start : stream, tagged stream, PDU, messages, etc..
i do not figure out how to use these tag for variable length. nothing 
clear in the doc


i'd be glad if someone helps me
best regards
bob



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio