One comment - the 48 kHz sample rate is only because many PC sound cards can't sample at 8kHz accurately, e.g. we have seen examples of them sampling at 8100Hz.
A spec of 8kHz +/- 500ppm would be fine, as the fdmdv modem has been tested at +/- 2000ppm - David On Thu, 2013-03-07 at 16:24 -0800, Bruce Perens wrote: > It's probably time to write up what you should do to add Codec2/FreeDV > to a commercial product. Please check this out and tell me what you > would add or change. > > Thanks > > Bruce > > As part of making this next step in wireless codecs and modems, we are > asking for a different hardware environment than you might be used to. > > Your proprietary code: If your system has proprietary code that you can > not allow users to access, or if you feel that locked-down code is > required for regulatory type approval, put that code in a separate CPU > from the one where our software will live. > > User programmable in C: Our codec and modems are not standing still, and > our over-the-air protocols change frequently as we innovate. We don't > want them cast in concrete in your product. Thus, we specify a > user-programmable microprocessor as the host of the Codec2 and FreeDV > software. You will find that all of the necessary embedded systems > programming software is available in Open Source form, and we strongly > suggest that you do not use any proprietary software tools at all. Our > low-level code including the codec and modems are written in C, while > applications are in C++ or Java (depending on the platform). GCC and > LLVM are both fine compilers and are already available for the processor > architectures we would have you use. > > Hardware floating point: We appreciate that most of the embedded > wireless world are coding in fixed point on specialized DSP chips. > However, we find that there is a large people-time cost to creating good > fixed-point code over that of its floating-point equivalent. We would > pay this cost in several ways: longer time to develop, fewer programmers > participating, greater complexity of resulting code. People are much > more expensive than microprocessors, and hardware floating-point > processors capable of handling our software are available in chips > costing less than USD$4. Thus, we require hardware floating point. > > Intellectual property: Publicly disclose your programming documentation. > Do not embed a proprietary operating system or other proprietary > software that would create intellectual property hassles when combined > with our Open Source code. Make sure that any headers required for > programming your product are released under a minimally-restrictive Open > Source license such as the BSD license, so that they can be combined > with any software. Libraries should be available in source-code form and > placed under an Open Source license that allows linking with any > software, such as BSD or LGPL3. Don't require developer agreements, Open > Source licensing is easier to deal with than such things. > > DAC and ADC: A 48K sampling rate is required as this is the common speed > on PC sound cards, add as many other optional sampling rates as you > wish. 16 bits minimum per sample are required, more bits are better. At > a minimum we require inputs for microphone and receive audio, outputs > for speaker/headphone and transmit audio. > > CPU Clock Precision: Quartz crystal or better. > > Interfaces: The best FLASH loader would be for your hardware to load a > file from an inserted USB storage device using the VFAT or FAT > filesystem. All relevant host operating systems can deal with that > format, it's most easy for users, and it doesn't require that your > device and the computer be cabled together. The exFAT filesystem is > strongly discouraged due to its actively-enforced patent restrictions. > Other USB protocols are OK as long as Open Source software is provided > to drive them. > > Debugging: serial console terminal, JTAG, and in-system debugging > interfaces are encouraged. All of the modern microprocessors that we > would have you use provide some such interface. Please make them > available on an internal PC board if you can't bring them to an outside > connector. Consider standard pinouts such as the ones given for Cortex-M > at > http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf > ------------------------------------------------------------------------------ > Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester > Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the > endpoint security space. For insight on selecting the right partner to > tackle endpoint security challenges, access the full report. > http://p.sf.net/sfu/symantec-dev2dev > _______________________________________________ Freetel-codec2 mailing list > Freetel-codec2@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/freetel-codec2 ------------------------------------------------------------------------------ Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the endpoint security space. For insight on selecting the right partner to tackle endpoint security challenges, access the full report. http://p.sf.net/sfu/symantec-dev2dev _______________________________________________ Freetel-codec2 mailing list Freetel-codec2@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freetel-codec2