# RX-Stream after SetFrequency()

**URL:** <https://discourse.myriadrf.org/t/rx-stream-after-setfrequency/12963>\
**Category:** Lime Suite\
**Created:** [19 November 2025 12:47 UTC](https://discourse.myriadrf.org/t/rx-stream-after-setfrequency/12963 "2025-11-19T12:47:56Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![flopat2000](https://avatars.discourse-cdn.com/v4/letter/f/8e7dd6/32.png) [@flopat2000](https://discourse.myriadrf.org/u/flopat2000)\
**Post date:** [19 November 2025 12:47 UTC](https://discourse.myriadrf.org/t/rx-stream-after-setfrequency/12963/1 "2025-11-19T12:47:56Z")

</div>

I have some issues regarding the RX stream after the LO is set to a new frequency. More specifically, I implemented a for-loop to capture data at several frequencies and noticed that the captured data does not correspond to the expected results. After using the `lime::RFStream::Stop()` and `lime::RFStream::Start()` methods at the beginning of each loop iteration, the system works just fine. Unfortunately, these methods are quite time-consuming. I suspect that this behavior has to do with internal buffer handling. The issue was reproduced with an identical setup.

I’m using an **XTRX v3** in SISO mode (only RX-A enabled).

_Pseudo Code:_

`config_stream_and_device()`  
` for freq in frequencies :`  
` Stream->Stop() //needed to capture properly`  
` Stream->Start() //needed to capture properly`  
` XTRX->SetFrequency(freq)`  
` Stream->StreamRx()`  
` readRXBuffer()`

---

<div class="post-metadata">

**Author:** ![ricardas](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/ricardas/32/86_2.png) [@ricardas](https://discourse.myriadrf.org/u/ricardas)\
**Post date:** [24 November 2025 21:16 UTC](https://discourse.myriadrf.org/t/rx-stream-after-setfrequency/12963/2 "2025-11-24T21:16:19Z")

</div>

You can change LO while streaming, but because the data streaming is buffered you won’t be able to know at which time data from the new LO will appear. So you need to Stop() to clear internal buffers, then you can be guaranteed that the next received data will be with just the new LO.
