# LimeSDR XTRX Operation on Raspberry Pi 5 via mPCIe HAT

**URL:** <https://discourse.myriadrf.org/t/limesdr-xtrx-operation-on-raspberry-pi-5-via-mpcie-hat/8850>\
**Category:** LimeSDR\
**Created:** [6 June 2025 03:37 UTC](https://discourse.myriadrf.org/t/limesdr-xtrx-operation-on-raspberry-pi-5-via-mpcie-hat/8850 "2025-06-06T03:37:31Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![osqzss](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/osqzss/32/4567_2.png) [@osqzss](https://discourse.myriadrf.org/u/osqzss)\
**Post date:** [6 June 2025 03:37 UTC](https://discourse.myriadrf.org/t/limesdr-xtrx-operation-on-raspberry-pi-5-via-mpcie-hat/8850/1 "2025-06-06T03:37:31Z")

</div>

I recently purchased a LimeSDR XTRX (board version v1.2) from Mouser and am trying to use it with a Raspberry Pi 5 for an SDR project.

To connect the XTRX, I’m using a Mini PCIe to PCIe adapter HAT from 52Pi.

> **[52Pi M02 PCIe Express to Mini PCIe HAT for Raspberry Pi 5, Support Mini PCIe...](https://52pi.com/products/52pi-mini-pcie-hat-m02-for-rpi-5)**
>
> \[Product Description\] The 52Pi Mini PCIe HAT M02 is a dedicated expansion board meticulously crafted for use with the Raspberry Pi 5. Utilizing the Raspberry Pi 5's PCIe interface, this HAT provides seamless integration with Mini PCIe devices, making...

I enabled the PCIe interface on the Raspberry Pi by adding the “dtparam=pciex1” line to /boot/firmware/config.txt.

After rebooting, the LED1 on the XTRX is flashing slowly, and the LED2 is blinking more rapidly. I’m not sure if this is the expected behavior. Could someone clarify what these LEDs indicate?

When I run the ‘lspci’ command, I get the following output:

0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)  
0001:01:00.0 Multimedia audio controller: Xilinx Corporation Device 7023 (rev 01)

These lines do not appear when the XTRX is disconnected, so I assume the device is at least partially detected and shows up as a multimedia audio controller.

Is this the correct output for a properly recognized LimeSDR XTRX? If not, what should I expect to see when the device is correctly initialized?

I tried “dmesg | grep litepcie” as suggested by @sergey, but nothing showed up.

> [@Limesdr xtrx not found](https://discourse.myriadrf.org/t/limesdr-xtrx-not-found/8342/21):
>
> I think it is correct that it is detected as a Xilinx audio controller. Is something aligned with the information in other threads here. And I don’t think it is that uncommon for smaller teams of developers to re-use all those PCIe or USB identifiers, as registering your own is not that easy or cheap. But, again, that is my understanding slight_smile I use [CM4 IO Board](https://www.welectron.com/Raspberry-Pi-Compute-Module-CM4-IO-Board_1), which, I think, is the official one. And for the adapter I got some generic adapter typically used for WiFi module. I think [t…](https://www.amazon.nl/dp/B09NBQSNR4/ref=pe_28126711_487805961_TE_item)

I am also concerned about the device’s temperature. The XTRX becomes quite hot even when idle, and it seems to start transmitting immediately upon powering on the Raspberry Pi. This causes the WiFi connection on the Pi to drop, possibly due to interference. Is this expected behavior, and is there a way to prevent unintended transmission at startup?

Any advice on verifying the setup and ensuring full functionality would be greatly appreciated.

---

<div class="post-metadata">

**Author:** ![osqzss](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/osqzss/32/4567_2.png) [@osqzss](https://discourse.myriadrf.org/u/osqzss)\
**Post date:** [6 June 2025 06:51 UTC](https://discourse.myriadrf.org/t/limesdr-xtrx-operation-on-raspberry-pi-5-via-mpcie-hat/8850/2 "2025-06-06T06:51:16Z")

</div>

Just after posting the questions above, I came across a very informative post by @tszn.

> [@XTRX not found](https://discourse.myriadrf.org/t/xtrx-not-found/8386/18):
>
> Dear All, I come with good news, for the ones, who want to use the XTRX on the RPi5, and share with you this post as sort of Manual and Lessons Learnt, of how I was able to get my unit(s) to work. Note that I use the pineboards (former pineberrypi) HatMPCIe (my version is 2024/V1), as miniPCIe interface. I got a multitude of other adapter combinations first to PCIx1 and then to mPCIe, however I’ve been using the pineboards products from the beginning and would recommend all their products -…

My LimeSDR XTRX board does not have R114 populated, but it was still consistently recognized as a Multimedia audio controller, and LED2 was blinking. I decided to leave R114 open and move forward.

I followed the instructions and successfully built LimeSuiteNG as described in Step 2.2. I skipped Steps 2.3 and 2.4, and after that, running “limeDevice --full” correctly detected the LimeSDR XTRX without any trouble.

Many thanks to @tszn for the detailed and helpful guidance.

That said, I still have some concern about the board’s temperature. It runs noticeably hot even when idle. I saw a related comment by @0x12BFB9FA, but I’m still unsure if this behavior is considered normal or requires attention.

> [@Temperature of LimeSDR XTRX](https://discourse.myriadrf.org/t/temperature-of-limesdr-xtrx/8366/2):
>
> Hey, when running with sample rates around the max possible mine definitely gets uncomfortably warm (\>85C, which is what the original fairwaves XTRX pro was rated for) I ended up adding a small 40mm fan to actively cool it (after which it hovers ~50-55C on the onboard temp sensor)

Any insights on the thermal behavior of the XTRX would be appreciated.

---

<div class="post-metadata">

**Author:** ![sergey](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/sergey/32/4871_2.png) [@sergey](https://discourse.myriadrf.org/u/sergey)\
**Post date:** [6 June 2025 07:05 UTC](https://discourse.myriadrf.org/t/limesdr-xtrx-operation-on-raspberry-pi-5-via-mpcie-hat/8850/3 "2025-06-06T07:05:35Z")

</div>

Hey,

The blinking LEDs sounds correct.

The `lspci` output also seems correct to me: that is how the device has always been identified for me. At some point it seems to have changed to “Wireless controller: 2058:001b (rev 01)” for me. Not sure if that’s because I currently using different OS and adapter, or whether it changed in a gateware at some point.

I don’t think there is registered VID:PID for XTRX, so it will not be presented as XTRX in the output of `lspci`. And as long as the driver and gateware are using the same VID:PID it shouldn’t really matter.

So I’d suggest just to try building LimeSuiteNG and using utilities like `limeDevice` and `limeOEM --test` to see whether the driver can enumerate the device and that the software can communicate to the device.

The temperature could raise quite a bit. You need a good cooling. The carrier board can be equipped with a thermal pad to help dissipation. Some configurations might also require having active cooling – this is what i end up using in my dev setup as the system is open and there is no good airflow.

The TX during startup I has not been able to confirm so far. Some deeper investigation is needed.

---

<div class="post-metadata">

**Author:** ![andrewback](https://avatars.discourse-cdn.com/v4/letter/a/22d042/32.png) [@andrewback](https://discourse.myriadrf.org/u/andrewback)\
**Post date:** [6 June 2025 08:22 UTC](https://discourse.myriadrf.org/t/limesdr-xtrx-operation-on-raspberry-pi-5-via-mpcie-hat/8850/4 "2025-06-06T08:22:22Z")

</div>

> [@osqzss](#):
>
> Any insights on the thermal behavior of the XTRX would be appreciated.

It’s a small board and depending upon various factors can get quite warm. In general we would recommend some sort of cooling. The Front-End Adapter board which we sell has a large copper section under the XTRX and a thermal pad supplied with it. In your case you might use a small fan.

> [@sergey](#):
>
> I don’t think there is registered VID:PID for XTRX,

I believe there should be with the latest gateware, but @VytautasB could confirm.

---

<div class="post-metadata">

**Author:** ![sergey](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/sergey/32/4871_2.png) [@sergey](https://discourse.myriadrf.org/u/sergey)\
**Post date:** [6 June 2025 08:27 UTC](https://discourse.myriadrf.org/t/limesdr-xtrx-operation-on-raspberry-pi-5-via-mpcie-hat/8850/5 "2025-06-06T08:27:38Z")

</div>

> [@andrewback](#):
>
> I believe there should be with the latest gateware, but @VytautasB could confirm.

Ah, great to know!  
Would indeed be fantastic to confirm the expected VID:PID and how the `lspci` expected to name the device 🙂

---

<div class="post-metadata">

**Author:** ![VytautasB](https://avatars.discourse-cdn.com/v4/letter/v/ccd318/32.png) [@VytautasB](https://discourse.myriadrf.org/u/VytautasB)\
**Post date:** [6 June 2025 08:35 UTC](https://discourse.myriadrf.org/t/limesdr-xtrx-operation-on-raspberry-pi-5-via-mpcie-hat/8850/6 "2025-06-06T08:35:47Z")

</div>

With latest GW it should show as:

Wireless controller: Device 2058:001b (rev 01)

---

<div class="post-metadata">

**Author:** ![markterry2](https://avatars.discourse-cdn.com/v4/letter/m/71e660/32.png) [@markterry2](https://discourse.myriadrf.org/u/markterry2)\
**Post date:** [11 June 2025 14:10 UTC](https://discourse.myriadrf.org/t/limesdr-xtrx-operation-on-raspberry-pi-5-via-mpcie-hat/8850/7 "2025-06-11T14:10:56Z")

</div>

The boards we have received since about March of this year no longer need R114 polulated. R89 and R90 values changed and it now works properly as shipped.

---

<div class="post-metadata">

**Author:** ![Zack](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/zack/32/89_2.png) [@Zack](https://discourse.myriadrf.org/u/Zack)\
**Post date:** [5 August 2025 08:00 UTC](https://discourse.myriadrf.org/t/limesdr-xtrx-operation-on-raspberry-pi-5-via-mpcie-hat/8850/8 "2025-08-05T08:00:26Z")

</div>

Check this post for more information, please:

> [@XTRX not found](https://discourse.myriadrf.org/t/xtrx-not-found/8386/28):
>
> In LimeSDR XTRX v1.2 BOM\_VER = 0 boards and earlier versions, the PERST control was not properly implemented. As a workaround, soldering a 0-ohm resistor at R114 offers a simple solution, though it is not ideal. In this case, the PERST signal directly controls the entire board’s power supply, which is suboptimal and should be avoided. The correct approach is to use the PERST signal to properly control the PCIe core within the FPGA. This issue was resolved in LimeSDR XTRX v1.2 BOM\_VER = 1 and l…
