Giter Site home page Giter Site logo

introlab / 16soundsusb Goto Github PK

View Code? Open in Web Editor NEW
91.0 17.0 20.0 36.76 MB

16 Synchronized Inputs USB (UAC2) Sound Card Based on XMOS xCORE-200

License: Creative Commons Attribution Share Alike 4.0 International

usb openhardware soundcard 16-inputs xmos xcore-200 uac2 cs5368 cs4384 odas

16soundsusb's People

Contributors

doumdi avatar vrheaume avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

16soundsusb's Issues

Getting started - Interface configuration and flashing firmware

Hello!

Our laboratory recently bought the 16soundsUSB. I'm running into trouble getting the board up and running in the ODAS Studio environment. This may be pretty basic, so please excuse the inexperience.

I've followed the installation (from source) and configuration procedures for ODAS and have added the TCP sockets required for local communication with ODAS Studio (in the sounds16USB.cfg file, zipped below). I've installed ODAS Studio and it starts up without any issue, and added the following paths in ODAS control:
/home/sean/odas/bin/odaslive
/home/sean/odas/config/odaslive/sounds16USB.cfg

At this point I'm not sure of the next step to take in order to get ODAS Studio running with the board.

In my .cfg file, I've specified a .raw input file named "raw_16mics.raw". Is this the correct interface for the 16soundsUBS or does the choice, eg soundcard, depend on the application? I can't seem to find any info for the interface configuration in the wiki. In what cases do I need to flash firmware? There are instructions given for flashing firmware using OSX, but none for the operating system I'm currently using, Ubuntu 18.04.2 LTS.

sounds16USB.zip

UPDATE:
I'm using Audacity to record audio from the board and then saving it as a .raw file to be accessed when running ODAS. Once I launch ODAS Studio the audio is registered on-screen, however I'd like to be able to write/read from a .raw file in real-time. Have you any suggestions of how to do this?

Thanks,
Sean

16SoundsUSB open source board debugging records and issues

1、Hardware part
We obtained hardware design information and firmware information from the open source website https://github.com/introlab/16SoundsUSB. The first version produced five development boards that were exactly the same as the open source website (due to a procurement error, the main chip was soldered to XE216-512-TQ128, instead of XEF216-512-TQ128 in the BOM of the open source website), and purchased a piece of xTAG-v3 emulation programmer from Taobao, as shown in Figure 1 below:

Figure 1、16SoundsUSB xTAG-v3
Fixed the error of reverse polarity connection of D21 and D31, the 24MHz main clock U23 was soldered, the dual power strobe MOSFET Q4 was soldered, and the clock source selection resistors R118 and R146 were redundantly soldered. After several hardware errors, the system basically worked normally after power on Except that the entire system does not have QSPI FLASH (there is no inside or outside of the XMOS main control chip), is it possible to try to make the system work by downloading the firmware program inside the XMOS chip?
The system first uses an external 5V constant current source to supply power, and the power-on current of the system is about 0.0784A, as shown in Figure 2.

Figure 2. Voltage and current at first power-up
XMOS supply voltage 3.3V works normally, as shown in Figure 3

Figure 3. 3.3V voltage
XMOS supply voltage 1.0V works normally, as shown in Figure 4

Figure 4. 1.0V voltage
XMOS external 24MHz active crystal is working normally, as shown in Figure 5

Figure 5, 24MHz active crystal oscillator
2、Software part
Download the firmware 16SoundsUSB_Firmware_REV_1_0.xe from the open source website https://github.com/introlab/16SoundsUSB/releases/tag/rev1.0, and from https://github.com/introlab/16SoundsUSB/tree/master/Firmware Download the configuration file 16SoundsUSB.xn in the project.
On the lubuntu16.04.6 system, configure the xTIMEcomposer 14.4.1 of the XMOS development software (from the official website
https://www.xmos.ai/software-tool)xTIMEcomposer-Community_14-Linux64-Installer_Community_14.4.1.tgz, after solving the problem of square characters and xTAG-v3 access rights. The project can be compiled, simulated and downloaded firmware through XMOS development software.
The first step is to test our own engineering project. The startup procedure is as follows:

Import the project app_usb_aud_xk_216_mc, as shown in the figure

Change the configuration file in the XMOS official website reference board project app_usb_aud_xk_216_mc
/home/skd/workspace/app_usb_aud_xk_216_mc/src/core/xk-audio-216-mc.xn and open source
https://github.com/introlab/16SoundsUSB/tree/master/Firmware to download the configuration file 16SoundsUSB in the project. xn for comparison, because the XS2-UnA-512-FB236 configuration is used in the XMOS official website configuration file, and our development board uses XE216-512-TQ128 (without FLASH). So replace the left side of the figure below with the content on the right

becomes

Also modified
/home/skd/workspace/app_usb_aud_xk_216_mc/src/core/customdefines.h

/* Enable/Disable SPDIF output - Default is S/PDIF on /
#ifndef SPDIF_TX
#define SPDIF_TX 1
#endif
becomes
/
Enable/Disable SPDIF output - Default is S/PDIF on /
#ifndef SPDIF_TX
#define SPDIF_TX 0
#endif
and
/
Number of IS2 chans to DAC..*/
#ifndef I2S_CHANS_DAC
#define I2S_CHANS_DAC (8)
#endif

/* Number of I2S chans from ADC /
#ifndef I2S_CHANS_ADC
#define I2S_CHANS_ADC (8)
#endif
becomes
/
Number of IS2 chans to DAC..*/
#ifndef I2S_CHANS_DAC
#define I2S_CHANS_DAC (4)
#endif

/* Number of I2S chans from ADC */
#ifndef I2S_CHANS_ADC
#define I2S_CHANS_ADC (8)
#endif
The compilation result is as shown in the figure below, and the binary executable file is obtained: app_usb_aud_xk_216_mc_1i2o2xxxxxx.xe

Ability to perform online simulation and operation in the IDE development environment

Online simulation selection simulator

The program is running normally, as shown in the figure below, where the second light from right to left on xTAG-v3 keeps flickering.

At this time, the system current increases to 0.411A, as shown in the figure below.

The ADC_RST_N level changes to 3.3V high level, and the quantity TP13 is shown in the figure below. It should be the ADC starting to work.

MCLK_AUDIO becomes 1.152MHz, and the right side of R146 is shown in the figure below, that is, the clock signal to ADC works normally.

Measured the 4 data ports ADC2_SDOUT4 of the second ADC chip, that is, R83 pin has data as shown below.

The 4 data pins related to the first ADC chip have no signals.
Insert the USB cable at this time, the current drops to about 0.10A, but after a while it returns to about 0.42A.
lsusb Check the newly added device and show Bus 001 Device 009: ID 20b1:0009 XMOS Ltd

Open the Audacity recording software, the xCORE USB Audio 2.0 device can be recognized, as shown below

But the multi-channel option is only 2, and 10 does not appear. As shown below:

The two channels seem to be able to record, but the front MIC is not connected for test verification.
The second step is to test the open source firmware --
16SoundsUSB_Firmware_REV_1_0.xe. First unplug the USB cable. Configure the open source firmware in the operating options of xTIMEcomposer, as shown in the figure below:

Then click the Run button in the lower right corner, the open source firmware is downloaded to the board through xTAG-v3 and starts to run, the xTAG light flashes, and the system current becomes 0.355A, as shown in the figure below.

At this time, ADC_RST_N is high, MCLK_AUDIO has a signal of 1.152MHz, and at this time, each of the four data lines of ADC1 and ADC2 has data signals.
But unlike the compiled firmware, after plugging in the USB, the current drops to 0.1044A, ADC_RST_N becomes low level, MCLK_AUDIO clock signal disappears, and the 4 data lines of ADC1 and ADC2 become low level.

When the USB is plugged in, the two pins TP4 (SCL) and TP3 (SDA) of the I2C bus have signals, as shown in the figure below
TP3(SDA)

TP4(SCL)

At this time, lsusb checks the newly added device and shows Bus 001 Device 015: ID 20b1:0008 XMOS Ltd, as shown in the figure below

Open the Audacity recording software, the 16SoundsUSB Audio 2.0 device can be recognized, as shown below

And there are 16 channels in multi-channel selection,

But when I started recording, I couldn't turn on the device, as shown in the figure below.

At this time, unplug the USB line and plug in the USB line, lsusb will not appear new XMOS USB Audio devices.

3、summary of issues
a. How to correctly modify the rest of the files except .xn in the project app_usb_aud_xk_216_mc to drive ADC1, ADC2 and DAC1 correctly? Can open source projects provide complete source code? Including how to modify files such as customdefines.h and audiohw.xc.
b. Are there other problems with the hardware? In the absence of external QSPI-FLASH and the internal FLASH of the chip, can the firmware be downloaded to the XMOS on-chip RAM through xTAG to run normally, and at the same time, it can support repeated USB cable plugging and unplugging and correctly identify the USB Audio Device, and it can be used Does Audacity record 16 channels?

firmware load problems

Hello, nead help(((
I soldered board
XEF216-512-TQ128-C20 no longer manufactured , i used XEF216-512-TQ128-C20A
ASDMB-24.000MHZ-LC-T no in stock (((,i used FJ2400011 , it have identical parameters but its Crystal not Mems , is it critical?

XTC TOOLS 15.2.1
Studio Community 14.4.1

TP6 0.98V
TP5 3.38V
TP2 3.38V when JTAG connected 2.74V

I have error when upload firmware:
"C:\Users\Rider>xflash D:\16SoundsUSB_Firmware_REV_1_0.xe
Tile 0 has not booted following write to TestMode register. Target device may be held in resetxrun: Cannot load image, XCore 0 is not enabled"

Xflash indicates that chip is connected :
" ID Name Adapter ID Devices
0 XMOS XTAG-3 KCSMOEJN O[0]"

I soldered new board with new componetns, result is same
Processoe thermal pad is normal soldered , i used infrared reflow.
Ocsillator in change in randge 23.92-24.15 MHZ could this be a problem?
A revision of processor can be a problem?
Thanks))))

https://github.com/introlab/16SoundsUSB/assets/15078619/3209aee4-48fd-486a-b931-3f44f7893cae
TP7_MCLK
TP6_1V
TP5_3V3

Clarification on firmware patching/flashing

Hi all,
I just got my hardware kit, but unfortunately I am not sure how to flash the firmware properly. I understand the concept, but am not sure of which specific commands to run to apply the patch & flash the firmware onto the kit.

My OS:

  • Ubuntu 20.04

From XMOS, I have:

From this repository, I have:

And so far, I have done the following:

  • Set up udevrules for the device, as in section 2 here. When I connect it to a USB2.0 port, lsusb shows ID 20b1:0008 XMOS Ltd 16SoundsUSB Audio 2.0.
  • Sourced the shell script source .../xTIMEcomposer/Community_14.4.1/SetEnv.sh
  • .../xTIMEcomposer/Community_14.4.1/bin/xflash .../16SoundsUSB_Firmware_REV_1_0.xe

The last command results in the following error:
Error: F03136 No devices attached - Cannot run the enquirer until a device is found

Beyond this, I'm not sure which commands to run or files to edit. Could anyone provide some more specific information about how to apply the patch and flash it to the kit?

Thanks!

microphone RJ45

Hello there,

I made one of this 16SoundsUSB according to your design files. I found there is actually no microphone on board, instead there are 16 RJ45 sockets.

According to the schematics, there are already on board input amplifiers, so what I need is some analog microphone units, and connect their outputs to each RJ45 port 2 and 4, right?

Do you have some suggestion about the microphone model/brand?

Thank you!

Regards,
Shao

xrun: Cannot load image, XCore 0 is not enabled

Hello!

I apologize in advance for machine translation!

Today I wanted to download a binary file that you gave me, but there were problems. I confused several components R77, R79, R98 during installation, put the capacitors. Because of this, the supervisor issued on TP2 2.46V. After installing the correct components, the voltage became 3.3V
As far as I understand the RST should be LOW. And when resetting supervisors, issue a single HIGHT pulse for 140 ms and again LOW.
I have on RST (TP_2) HIGHT, while holding the button (SW1) LOW .....
The programmer works, the IDE shows it s / n, the diodes are shown.

Probably somewhere I was wrong again! I can not understand where. I would not want to burn the microcontroller, it was very difficult for me to get it.

voltage:
VDDIOR: 3.35V
VDD: 1.0V
RST_N: 3.3V
PLL_AVDD: 1.0V
OTP_VCC: 3.35V
PREREG: 5.65V
Crystal oscillator VCC: 3.3V
Я начал более подробное изучение документации и установленных сдвоенных диодов D11 "звонится только один диод", что странно. Я его поздно обнаружил и не успел поменять. Может ли это быть причиной HIGHT на RST?

Подскажите пожалуйста, что я ещё упустил????

About uploading the firmware

HI, this project is really awesome.

I have a few question about uploading the firmware.
due to not familiar with XMOS chips, so bare with me if i ask a silly question.

  1. Do I need to get a xTAG debug adapter to upload the firmware?
    or I can get it done by any JTAG-USB cable?

  2. Seems that I can't use the "USB to Host" to upload the firmware, right ?

  3. I'm getting error message by using windows:
    "C:/Program Files (x86)/XMOS/xTIMEcomposer/Community_14.2.3/bin/xflash.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory"
    and it might cause by the JAVA runtime environment error according to this post: https://www.xcore.com/viewtopic.php?t=6938
    is there a way to use xflash alone? that will be great.

Thanks about making this cool project, looking forward to give it a go.

About using 16SoundsUSB

I finally get the firmware uploaded (at least I think I do)

by following the instruction from "16SoundsUSB/Firmware/README.md"
I flashed "16SoundsUSB_Firmware_REV_1_0.xe " on my board

here comes the question, my Linux do not recognize 16SoundsUSB as a sound card
and I can't see the device by using "lsusb" or "audacity"

how do I know if this is done correctly? It should be recognize as a sound card, right?

also, after plugin to the computer, 4 leds keep lighting up
this does not match the description from #13

by @blursj
when the usb power supply is plugged in, LEDs 1~3 blink 4 times and then go out.

any advice or suggestions?

Thank you very much.

I'm using:
OS: Ubuntu 16.04
Version: xTIMEcomposer Community_14.2.3
Board: 16SoundsUSB Rev1.0

and the board looks like this:

PXL_20201229_131703030

[SUGGESTION] Multichannel Audio DSP Field Mixer Recorder project collaboration

Hi there, as a no profit foundation devoted to spread free/open technologies to help indipendent/emerging artists’ growth, we always try to stimulate collaborations between cool projects like this:

https://hackaday.io/project/7041-multichannel-audio-dsp-field-mixer-recorder

We do also have our own project - called RecRack - that aims to create an hardware to be (transparently) interposed between performers and stage/PA technicians in order to capture the purest possible audio of the show(s).
[ a “Columbus egg” idea that basically tries to integrate a recording function inside a DI / splitter unit ]

Last but not least, it would be great to "revive" the (unfortunally adbandoned) Open-NGDI project/idea:

Hope that inspires !

Marco Ravich

Error when uploading the firmware

HI,

I've been having a problem uploading the firmware to the 16SoundsUSB board using XTAG3 adapter.

OS: Ubuntu 16.04
Version: xTIMEcomposer Community_14.2.3
Board: 16SoundsUSB Rev1.0
Error message:

xrun: Cannot load image, XCore 0 is not enabled

I managed to see the adapter and device by "xflash -l"
so I think my environment is installed correctly .

Available XMOS Devices
"----------------------

ID Name Adapter ID Devices
"-- ---- ---------- -------
0 XMOS XTAG-3 9N94BDMW O[0]

According to other issue (#6) this might cause by "Thermal pad not connect to GND"
but I checked with my multimeter it seems connected properly.

Is there another way to resolve this error ?

Any help would be greatly appreciated

Thank you

PXL_20201228_104729352
PXL_20201228_104833831

Where can I purchase one of 16SoundsUSB?

This is probably rather an enquiry than an issue. I recently tried odas/odas_web with respeaker mic array v1.0 and v2.0. I am quite impressed by your project.

I want to improve the angle of separation, so that I can distinguish 2 sources in closer angles. I believe this 16 array would produce better result. So could you direct me some place that I can buy this 16 channel device?

Thanks.

I can not compile

Hello dear!

Thank you for such an interesting project, I was pleased to collect it!)

I compiled 16SoundUSB, but I cannot compile the project by changing the files as described.
An unmodified example app_usb_aud_xk_216_mc is compiled.

Additional targets can be installed from the xTIMEcomposer Studio
using the "Install New Hardware ..." option.
xmake [1]: *** [.build_2i16o16xxxxx_tdm8 / src / extensions / gpio_access.c.pca.xml.decouple] Error 1
xmake: *** [analyze] Error 2

Can anyone share a compiled project or a binary that I could check. I am an enthusiast and learn programming.

Thank you in advance!

[email protected]

Is 4-wire RJ11 cable NOT supported by the 16SoundsUSB?

Hi there,

Our lab bought a 16SoundsUSB from your lab a few months ago.

But now, we are trying to replace the original cable with a shorter one since the original cable is too long.

We bought some RJ11 cables from Amazon, and here is the link. However, these Rj11 cables do not work at all...

I was wondering what kind of cable is support by the 16SoundsUSB, and where can I find some shorter alternative cables.

Looking for your response, and thanks in advance :).

PS: I also took a picture of our RJ11 cable and the original cable. The left one is the RJ11 bought from Amazon, and the right one is the original cable.

1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.