Post Go back to editing

Pluto SDR 8 bit firmware RX amplitude difference

Thread Summary

The user is experiencing lower amplitude in received samples when using a custom 8-bit firmware build for the Pluto SDR, compared to the original 12-bit firmware. The final answer confirms that pyadi-iio interprets the buffer based on the channel format specified in the DMA driver and does not perform additional data normalization. The amplitude reduction is likely due to the change in data width from 12 to 8 bits, and the user should consider scaling the data by 2^4 to compensate.
AI Generated Content
Category: Software
Product Number: PLUTO

I am currently using a custom firmware build for my Pluto SDR which has been created by another developer and is aimed at converting the Pluto from 12 bit -> 8 bit data width. Currently it is done mainly in the cpack utility which keeps the 16 bit width, but then packs the 4 samples into a 32 bit output for the DMA. The ad9361 iio driver was also updated to have it's axiadc_chip_info_tbl channels set to 8 bits so that change is communicated in iio.

I am using pyadi-iio to read and process this data. I have found that while the data is relatively accurate with the custom firmware, the amplitude of any received samples seems to be substantially lower. It doesn't seem that pyadi-iio is doing any data normalization, is this correct? Is the reduction in amplitude due to the loss of sample space moving to 8 bits or can this be explained by something else?

This is the Pluto pyadi-iio example (https://github.com/analogdevicesinc/pyadi-iio/blob/main/examples/pluto.py) slightly modified and using the original Pluto v39 firmware:



This is with the 8 bit firmware, before and after I multiplied the RX data by 2^4:

Edit Notes

Update to mention I am not the author of the firmware
[edited by: Christianwl at 2:51 AM (GMT -4) on 8 Oct 2025]
Parents Reply Children
No Data