Search code examples
gnuradiognuradio-companion

GMSK transmission issues on GnuRadio


I'm trying to implement rather simple scheme to transfer data from one sdr board to another. I'm using GnuRadio 3.7.14 and my scheme in companion looks like this

enter image description here

Source file is a binary of 96 bytes long and it looks like this

00000000  00 00 00 ff aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00000010  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00000020  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00000030  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000060

At output I expect that after some noise there will be input pattern repeated (maybe with some errors), but in reality it looks like this

00004610  00 00 00 1f f5 55 55 55  55 55 55 55 55 55 55 55  |.....UUUUUUUUUUU|
00004620  55 55 55 55 55 55 55 55  53 63 eb ea aa a8 aa aa  |UUUUUUUUSc......|
00004630  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00004640  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00004650  80 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00004660  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 88  |................|
00004670  80 00 00 7f d5 55 55 55  55 55 55 55 55 55 55 55  |.....UUUUUUUUUUU|
00004680  55 55 55 55 55 55 55 0d  0b a2 aa aa aa aa aa aa  |UUUUUUU.........|
00004690  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
000046a0  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
000046b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000046c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000046d0  00 00 01 ff 55 55 55 55  55 55 55 55 55 55 55 51  |....UUUUUUUUUUUQ|
000046e0  15 61 55 31 75 fc aa aa  aa aa aa aa aa aa aa aa  |.aU1u...........|
000046f0  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00004700  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa a8  |................|
00004710  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00004720  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00004730  00 00 03 fe aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00004740  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00004750  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00004760  aa aa 9a ac 6e 8a db 59  3c ae aa b8 aa ac aa a8  |....n..Y<.......|
00004770  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00004780  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00004790  00 00 07 fd 55 55 55 55  55 55 55 55 55 55 55 55  |....UUUUUUUUUUUU|
000047a0  55 55 55 55 55 55 55 55  55 45 55 55 55 55 5b 55  |UUUUUUUUUEUUUU[U|
000047b0  28 aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |(...............|
000047c0  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa a0  |................|
000047d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000047e0  00 00 00 00 00 00 00 00  00 00 00 00 01 40 20 00  |.............@ .|
000047f0  00 00 1f f5 55 55 55 55  55 55 55 55 55 55 55 55  |....UUUUUUUUUUUU|
00004800  55 55 55 55 55 55 55 55  55 55 55 55 55 64 ab aa  |UUUUUUUUUUUUUd..|
00004810  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00004820  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa 80  |................|
00004830  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00004840  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00004850  00 00 7f d5 55 55 55 55  55 55 55 55 55 55 55 55  |....UUUUUUUUUUUU|
00004860  55 55 55 55 55 55 55 6e  aa aa aa aa aa aa aa aa  |UUUUUUUn........|
00004870  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
00004880  aa aa aa aa aa aa aa aa  aa aa aa a8 ab b3 54 00  |..............T.|
00004890  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000048a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000048b0  00 03 fe aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
000048c0  aa aa aa aa aa aa a8 5d  15 55 55 55 55 55 55 55  |.......].UUUUUUU|
000048d0  55 55 55 55 55 55 55 55  55 55 55 55 55 55 55 55  |UUUUUUUUUUUUUUUU|
000048e0  55 55 55 55 55 55 55 55  55 55 41 56 b6 aa a0 00  |UUUUUUUUUUAV....|
000048f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00004900  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

I manually took this piece of output file, so it aligns close to input. So, here I see two issues (which I believe have one cause):

  • byte 0xAA (10101010b) switches to 0x55(01010101b) in some part of the message and vice versa
  • beginning of the message is "sliding" out, there are a 8 bits difference between string 47f0 and 4610

The obvious reason for that is that receiver gets different amount of bits, than sender sends, but I doubt, what exactly leads to this behaviour? How can I debug this to find out what is going wrong?

A couple of words about my setup: I use 3 boards, one USRP B210, one Limesdr-USB and one Limesdr-Mini. I tried this experiment at least in 4 different combinations, including sending from the board to itself, and every time received same result. The boards seems to be ok, they successfully receive fm broadcast and transmit/receive sound by fm from one another.

Thanks!


Solution

  • Actually I found similar question, and recipe given there works for me as well. GFSK demodulation with Xlating filter in GNU Radio