# Packet Data Transfer using BPSK Modulation with LimeSDR-Mini

**URL:** <https://discourse.myriadrf.org/t/packet-data-transfer-using-bpsk-modulation-with-limesdr-mini/7237>\
**Category:** LimeSDR\
**Created:** [6 July 2021 05:20 UTC](https://discourse.myriadrf.org/t/packet-data-transfer-using-bpsk-modulation-with-limesdr-mini/7237 "2021-07-06T05:20:15Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![phoenix](https://avatars.discourse-cdn.com/v4/letter/p/0ea827/32.png) [@phoenix](https://discourse.myriadrf.org/u/phoenix)\
**Post date:** [6 July 2021 05:20 UTC](https://discourse.myriadrf.org/t/packet-data-transfer-using-bpsk-modulation-with-limesdr-mini/7237/1 "2021-07-06T05:20:15Z")

</div>

Hi,

I’m learning to implement a grc flow-graph with BPSK modulation to send and receive text/image file or send chat message via UDP socket. It’s working in simulation mode perfectly as I intended but with real hardware obviously lot of issues are happening.

Ref:

> **[Simulation example: BPSK Demodulation - GNU Radio](https://wiki.gnuradio.org/index.php/Simulation_example:_BPSK_Demodulation)**

Initially, I was receiving only garbled data with limesdr-mini but after further reading I found that’s due to phase ambiguity problem in the receiver. Then I used differential encoding to resolve the issue. If I sent a text file in repeat mode, I can receive it on file sink.  
Receive file:

 ![image](https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/2X/f/f11d8bfbd5364e4ad1da640fb2db8e1b36042c61.png)

However, If I sent the file only once without repeat, I don’t get any data at all. I understand that the receiver perform clock, frequency, phase recovery on received data and when it sync, it decodes the data correctly.

TX and Rx constellation:

 ![image](https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/2X/0/0e2bcf7fe5eb7b9cce3363be35bc5a30df58e861.png)

TX Chain:

 ![image](https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/2X/4/492ca607f86e5a51c061979dc1bae9e30db93b8d.png)

RX Chain:

 ![image](https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/2X/2/25b9f148b9433ab0ca528672e81c3a4cfc376539.png)

Can somebody shed some light what I’m missing here. In simulation, this flow graph works correctly with text/image transfer and chat messaging (UDP Source/Sink).

What measures I have to consider further to make it work the same way with LimeSDR.

Appreciate any suggestions 🙂

---

<div class="post-metadata">

**Author:** ![DaveM](https://avatars.discourse-cdn.com/v4/letter/d/67e7ee/32.png) [@DaveM](https://discourse.myriadrf.org/u/DaveM)\
**Post date:** [21 August 2021 21:06 UTC](https://discourse.myriadrf.org/t/packet-data-transfer-using-bpsk-modulation-with-limesdr-mini/7237/2 "2021-08-21T21:06:59Z")

</div>

Phoenix,

I think I found a work around. Please see my last post this afternoon on “LimeSDR-Mini GR-3.8 Block Transmit Distortion” thread. It may work for you.

Regards,  
DaveM

---

<div class="post-metadata">

**Author:** ![phoenix](https://avatars.discourse-cdn.com/v4/letter/p/0ea827/32.png) [@phoenix](https://discourse.myriadrf.org/u/phoenix)\
**Post date:** [23 August 2021 03:30 UTC](https://discourse.myriadrf.org/t/packet-data-transfer-using-bpsk-modulation-with-limesdr-mini/7237/3 "2021-08-23T03:30:03Z")

</div>

Hi Dave,

Your solutions looks very interesting and glad that it’s working now. I have learnt few techniques from you now 🙂

I found an interesting problem in my setup - _‘CPU utilization’_. I noticed when I’m running the bpsk tx/rx flow graph in my vm, CPU shoots up to 200% utilization and nothing is coming out of the receiver file sink.

So, I split up the TX and RX chains and ran that in different computer. I can see it started to receive instantly. First 2-3 seconds I got garbled data but as soon as the sync done, I received the actual messages and the qt\_constellation looks very clean and almost perfect for bpsk mod.

 ![image](https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/2X/f/fa9c880d32200a067bb798c63b274d8234975f1e.png)

Now, I have to work on how to make it processor efficient and transmit and receive data without repeating infinitely.

Cheers!!

---

<div class="post-metadata">

**Author:** ![mehdi\_cuip](https://avatars.discourse-cdn.com/v4/letter/m/3ec8ea/32.png) [@mehdi\_cuip](https://discourse.myriadrf.org/u/mehdi_cuip)\
**Post date:** [12 February 2023 05:15 UTC](https://discourse.myriadrf.org/t/packet-data-transfer-using-bpsk-modulation-with-limesdr-mini/7237/4 "2023-02-12T05:15:22Z")

</div>

Dear Phoenix,  
Thank you for your information here. I am new to using SDR. I want to sent and receive via SDR trying to follow your chart to be able to send and receive message. Could you please send me your grc file? I don’t know what should I write in the protocol formatter ( format object) ?  
Thank you so much  
Mehdi
