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]