This is SO frustrating. I spent the day rewriting the CUL firmware so it sends the USB data more directly via the hardware, bypassing the higher level USB print functions. To no use it seems. The received pulse lengths still vary way too much, so the USB overhead was not the problem. The problem seems to be worse for short pulses, which makes CUL useless for at least the NexaL protocol.

I may have to release CUL-support with only sending enabled, I think it will only annoy people if I include reception and it works bad...

This feels like a lot of time wasted.


Ok, still no real luck in getting a better reception from the CUL-stick. I have exposed some of the radio parameters of the receiver circuit in the Protocol Analyzer settings, so I can try different settings easier, but I have not managed to get very much better signal.
The only theory I have left is that the USB sending routines spend too much time in interrupt disabled mode so it disturbs the interrupt driven sampling. So the last thing I will try is to bypass the higher level sending functions and program closer to the metal of the CPU to send the data. If does not work, I think I will give up the CUL for reception.