I've been desparate lately for a way to stream data from GNURadio back out to the hardware world without turning the data into an analog signal via the USRP's DAC. For example, if I have a software demodulator outputting bits (1 bit per byte, as done via a slicer in many of the examples), I would love to get that bit stream out to a digital pin on a USRP daughtercard. This would enable things like automated bit error rate testing.
I think I have an idea for how to do this, but I need somebody to check my sanity.
Let's say I have an unused BasicTX daughtercard. The idea is to alter the FPGA's .rbf file so that the MSB line going to the DAC is also connected to one of the io pins on the d'card. Now, some demod blocks (gmsk, for example) output a stream of floats representing soft symbols that are then thresholded (sliced) to produce a stream of bytes. Instead of slicing, could I convert my float stream to complex and send it to a usrp sink (the Basic TX), and thereby get my bits out on that io pin? The output of the DAC would be nonsensical, but I wouldn't be using it anyway, so who cares?
Does this approach make sense? Is there an easier way to do this sort of thing? Anything I need to be wary of (damaging my hardware, for example)?
If there is no better way to do this, then Ettus should really make a Digital I/O daughtercard -- it would sell like hotcakes.