USB Audio 2.0 Software License / Open Hardware Project

XCore Project reviews, ideas, videos and proposals.
Post Reply
doumdi
Member++
Posts: 18
Joined: Thu Mar 24, 2011 6:18 pm
Contact:

USB Audio 2.0 Software License / Open Hardware Project

Post by doumdi »

Hi,

We use the latest USB Audio 2.0 Device Software - source code (6.15.2rc1) for an open hardware project:

http://eightsoundsusb.sourceforge.net

The license is here :

https://www.xmos.com/download/agreement/XM-002775-SM

I would like to publish the "application code only" that is based on the app_usb_aud_l2 firmware example on github/sourceforge. Only the app code source would be available, the other modules containing the USB audio code will require download and registration from XMOS.

I would like to make sure it complies with the license and this is approved by XMOS. Is this an adequate use of the code?

Having open source hardware without the firmware code is a little restrictive. We still can distribute the binary firmware though. Maybe you would have suggestions for open source / open hardware projects?

Regards,

Dominic Létourneau, ing., M.Sc.A.
Dominic.Letourneau@USherbrooke.ca
IntRoLab - Laboratoire de robotique intelligente / interactive / intégrée / interdisciplinaire
http://introlab.3it.usherbrooke.ca
Institut interdisciplinaire d'innovation technologique - 3IT
Université de Sherbrooke
3000 Boul. de l'Université
Sherbrooke (Québec), J1K 0A5
Tél: (819) 821-8000 x65778


User avatar
xmark
Member++
Posts: 19
Joined: Mon Apr 26, 2010 2:35 pm

Post by xmark »

Hi Dominic,

Can you confirm that the "Application code" in your post relates to your code, and does not include the XMOS USB reference design code?

Thanks,

-Mark
doumdi
Member++
Posts: 18
Joined: Thu Mar 24, 2011 6:18 pm
Contact:

Post by doumdi »

xmark wrote:Hi Dominic,

Can you confirm that the "Application code" in your post relates to your code, and does not include the XMOS USB reference design code?

Thanks,

-Mark
Hello Mark,

The "Application code" is a modified version of the code you find in the "app_usb_aud_l2" directory. It contains :

1. src/core/customdefines.h --> definitions useful for configuring the USB module
2. src/core/xr-usb-audio-2.0-mc.xn --> core configurations
3. src/extensions/audiohw.xc --> codec initialization (CS2300 & CS42448). This file is modified to fit our design since we have two CS42448 codecs instead of one. Most of the code is taken from the app_usb_aud_l2 app.
4. src/extensions/user_main.h --> identical, but small header file to start genclock().
5. src/extensions/vendorledrefresh.xc --> not used, implementation removed or modified.

Basically, what I am asking is to allow us to reuse and put online the modified audiohw.xc file that configures the codec. This could be rewritten, but will be a waste of time and effort in my point of view. The resulting code should be very similar, we need to configure the same registers with I2C.

I can send the code to you for review if necessary.

Thanks for your answers.

Dominic
doumdi
Member++
Posts: 18
Joined: Thu Mar 24, 2011 6:18 pm
Contact:

Post by doumdi »

doumdi wrote:
xmark wrote:Hi Dominic,

Can you confirm that the "Application code" in your post relates to your code, and does not include the XMOS USB reference design code?

Thanks,

-Mark
Hello Mark,

The "Application code" is a modified version of the code you find in the "app_usb_aud_l2" directory. It contains :

1. src/core/customdefines.h --> definitions useful for configuring the USB module
2. src/core/xr-usb-audio-2.0-mc.xn --> core configurations
3. src/extensions/audiohw.xc --> codec initialization (CS2300 & CS42448). This file is modified to fit our design since we have two CS42448 codecs instead of one. Most of the code is taken from the app_usb_aud_l2 app.
4. src/extensions/user_main.h --> identical, but small header file to start genclock().
5. src/extensions/vendorledrefresh.xc --> not used, implementation removed or modified.

Basically, what I am asking is to allow us to reuse and put online the modified audiohw.xc file that configures the codec. This could be rewritten, but will be a waste of time and effort in my point of view. The resulting code should be very similar, we need to configure the same registers with I2C.

I can send the code to you for review if necessary.

Thanks for your answers.

Dominic

Mark,

I would be very grateful if you can answer this request. We are actually working on a 16+ input channels Open Hardware sound card design based on the XMOS XEF216 chip. The same question for the "application code" will apply since it is partly based on the XK-AUDIO-216-MC-AB reference board. We are also aware of the ReSpeaker project, based on the XK-USB-MIC-UF216 reference board, that probably would benefit for a clarification / alleviation of the license for some parts of the code. I have read some comments for the ReSpeaker project, and people are asking for the firmware code (same for 8SoundsUSB, but at a larger scale for ReSpeaker).

I think it may be an opportunity for XMOS to rethink its strategy regarding the USB Audio firmware stack / license. I always wondered why the code is not available like the other libraries on github. Of course, it may be related to other agreements you have with the authors of the USB firmware and I don't want to put you in an uncomfortable position. I just wish we can find a compromise that would be suitable for everybody.

Best Regards,

Dominic
doumdi
Member++
Posts: 18
Joined: Thu Mar 24, 2011 6:18 pm
Contact:

Post by doumdi »

doumdi wrote:
doumdi wrote:
xmark wrote:Hi Dominic,

Can you confirm that the "Application code" in your post relates to your code, and does not include the XMOS USB reference design code?

Thanks,

-Mark
Hello Mark,

The "Application code" is a modified version of the code you find in the "app_usb_aud_l2" directory. It contains :

1. src/core/customdefines.h --> definitions useful for configuring the USB module
2. src/core/xr-usb-audio-2.0-mc.xn --> core configurations
3. src/extensions/audiohw.xc --> codec initialization (CS2300 & CS42448). This file is modified to fit our design since we have two CS42448 codecs instead of one. Most of the code is taken from the app_usb_aud_l2 app.
4. src/extensions/user_main.h --> identical, but small header file to start genclock().
5. src/extensions/vendorledrefresh.xc --> not used, implementation removed or modified.

Basically, what I am asking is to allow us to reuse and put online the modified audiohw.xc file that configures the codec. This could be rewritten, but will be a waste of time and effort in my point of view. The resulting code should be very similar, we need to configure the same registers with I2C.

I can send the code to you for review if necessary.

Thanks for your answers.

Dominic

Mark,

I would be very grateful if you can answer this request. We are actually working on a 16+ input channels Open Hardware sound card design based on the XMOS XEF216 chip. The same question for the "application code" will apply since it is partly based on the XK-AUDIO-216-MC-AB reference board. We are also aware of the ReSpeaker project, based on the XK-USB-MIC-UF216 reference board, that probably would benefit for a clarification / alleviation of the license for some parts of the code. I have read some comments for the ReSpeaker project, and people are asking for the firmware code (same for 8SoundsUSB, but at a larger scale for ReSpeaker).

I think it may be an opportunity for XMOS to rethink its strategy regarding the USB Audio firmware stack / license. I always wondered why the code is not available like the other libraries on github. Of course, it may be related to other agreements you have with the authors of the USB firmware and I don't want to put you in an uncomfortable position. I just wish we can find a compromise that would be suitable for everybody.

Best Regards,

Dominic

Mark,

If I am not mistaken, the license changed and it is now allowed to distribute the code with Open Source projects?

Here is the license :

2. License

XMOS grants the Customer a non-exclusive license to use, develop, modify and distribute the XMOS Software with, or for the purpose of being used with, XMOS Hardware.

Open Source Software (OSS) must be used and dealt with in accordance with any license terms under which OSS is distributed.
Post Reply