I have a friend with a consulting client (who will remain unnamed) who is using a digital radio receiver (that will remain unidentified). They are having a hell of a time getting the receiver to work for this client's application, but for a number of reasons that I won't detail here there's a strong motivation to use this particular receiver, regardless of the difficulties.
The problem appears to be in the receiver device driver. So the client runs a test, and the receiver interface fails, and they send the results to the radio vendor. The vendor sends back some questions about the test. They send some answers. The vendor recommends another test. They try it. The vendor asks more questions. Since the client and the vendor are in radically different time zones, every step of this little dance takes at least a day. This has been going on for weeks.
So I ask this friend, "Why wait for the vendor? Why don't you just look at the source code for the device driver and fix this problem yourself?" Damned good idea, but they don't have the source code because the interface to the radio is proprietary. Make a nasally whining noise when you say that: proprietary. No one is suggesting that the vendor should put everything under GPL and give it out to world in a free download. Hell, my friend can even sign an NDA.
Just show them the code. I seriously doubt there's anything there he hasn't seen before. He's worked with several of digital radio systems over the years and all of the interfaces look pretty much the same. You have packets or frames of baseband samples. The packets or frames are timecoded, maybe with sequence numbers, a sample clock, IRIG, SMPTE, whatever. You've seen the G.711 steam in RTP? Most digital radio interfaces look a lot like that. It's the only approach that makes any sense.
On second though, to hell with the NDA. Once anyone sees the code under NDA their careers are in mortal danger. What's the problem? Suppose you sign that NDA and see this proprietary interface and then go off and design another interface for another digital radio. And since there's really only one way to build that interface that makes any sense, it will inevitably have similarities to the design you received under NDA. You may well end up getting sued even though you've done nothing wrong. Legally, those similarities are justified under the "merger" doctrine, but it's not like you just go stand in front of a judge and say "It's just merger, your honor." Instead, there's a process, a process that takes many months and costs a frightful amount of money and has an uncertain outcome. And since your ability to participate in this process is directly related to available funds (and not much else), and since if you fail to participate in the process you lose by default, you can easily get railroaded into signing away your intellectual rights to avoid personal financial ruin. This can happen. I've seen it happen. No thanks. Let them fix their own driver.
Getting back to the original problem, though, what my friend has isn't really a technical problem with the radio interface so much as a psychological problem with the vendor. As an engineering consultant, maybe he should start charging double to deal with psychological problems.