But you yourselves make the claim that your hardware isn't unique.

What I think is really the issue here is *credit*. If you open up the software, even in the method I described before, you'd dilute the credit you'd receive for developing the product.

Using NDAs, you have nothing to lose, yet you still remain staunchly against sharing the code. I personally don't care - I couldn't program my way out of a paper bag - but I've seen how open source makes for quality code in short periods of time, so the "credit" thing is all I can see as a reason.