Hello,
I am working to try to add support for the BladeRF into a P25 trunking project, sdrtrunk (https://github.com/DSheirer/sdrtrunk).
With the way that other SDR (rtlsdr, hackrf, etc) support is added, the project dev basically implemented the important parts of the library such as configuring a device, setting frequency, gain, bandwidth, sample rate and importing the rx'd samples into java code utilizing the usb4java library to take care of the libusb calls to the target device.
I'm really not experienced in java (or C for that matter) but have taken on working through reversing the libbladerf library into the low level libusb calls that the library is using to configure the bladerf. This has atleast led me to learn alot of how the device works at a lower level, but a lot is still unclear.
sdrtrunk already takes care of opening the device, and I have been able to request the firmware version and serial number from the bladerf using a getStringDescriptor, but obviously a lot more to go.
I'm looking for any insight into the direct device calls to the bladerf - whether to the USB controller, FPGA or directly to the RF deck. Still a bit confused how it all fits together, so anything would be helpful at this point. Me and a friend worked out that it may have to do with the NIOS packets being sent, but I'm still a bit all over the place.
Appreciate any input.