For people who backed the "Acusis" project on CrowdSupply and want to compare notes on developing their own firmware for the device.
https://www.crowdsupply.com/antimatter-research/acusis
Acusis Linear Microphone Array Users
-
- New User
- Posts: 2
- Joined: Sat Feb 24, 2018 3:45 am
-
- Junior Member
- Posts: 7
- Joined: Wed Feb 28, 2018 2:21 am
Will you be sharing the firmware source code that the units shipped with? Can you put this up on github.com?
-
- Newbie
- Posts: 1
- Joined: Mon Mar 05, 2018 12:15 am
I asked a very similar question back in December 2017. The response was rather short:wtip wrote:Will you be sharing the firmware source code that the units shipped with? Can you put this up on github.com?
Hopefully they'll stick to Free Software principles and publish the source code for what's running on the XMOS device.For the source code, we are still figuring it out.
-
- Junior Member
- Posts: 5
- Joined: Mon Mar 05, 2018 10:42 pm
While we wait to see if we can get the source code in Github for everyone, I put together some quick instructions that should be able to get you started.
# ACUSIS firmware setup
These are instructions for getting your firmware to a similar starting state as the firmware that shipped on the Acusis microphone.
## Step 1: Get needed software
- Download and install [XTimeComposer][https://www.xmos.com/support/tools] from the XMOS website
- Download [VocalFusion][http://www.xmos.com/support/software/vfspeaker] from the XMOS website and move it to a folder of your choice
## Step 2: Launch XTimeComposer and import
Launch XTimeComposer. If this is your first time launching, log in using your tools key found in your MyXMOS area of the XMOS website
Go to File->Import, General->Existing project into workspace.
Select the donwloaded VocalFusion folder as the root folder, then select all of the projects.
Click Finish.
## Step 3: Modify the project for Acusis
Go to the Edit section.
Right-click on app_vf_spk_base, go to Build Configurations->Manage.
Click on "New". Make a configuration called 1i1o2_Acusis_lin, and base it on the existing 1i1o2_lin33.
Right-clickon app_vf_spk_base, go to *Properties*, then *C/C++ Build*.
Change Build command to read
Open *app_vf_spk_base/Makefile*.
Add the following line right after the comment #L33 Builds (or anywhere in the XCC_FLAGS section):
In module_beclear_conf/includes/beclear_conf.h, add the following code:
In app_vf_spk_base/src/core/cusomdefines.h, change:
to read:
In the file app_vs_spk_core/src/extentions/ledctrl.xc, in the function SetLed at the beginning, add the following code:
# ACUSIS firmware setup
These are instructions for getting your firmware to a similar starting state as the firmware that shipped on the Acusis microphone.
## Step 1: Get needed software
- Download and install [XTimeComposer][https://www.xmos.com/support/tools] from the XMOS website
- Download [VocalFusion][http://www.xmos.com/support/software/vfspeaker] from the XMOS website and move it to a folder of your choice
## Step 2: Launch XTimeComposer and import
Launch XTimeComposer. If this is your first time launching, log in using your tools key found in your MyXMOS area of the XMOS website
Go to File->Import, General->Existing project into workspace.
Select the donwloaded VocalFusion folder as the root folder, then select all of the projects.
Click Finish.
## Step 3: Modify the project for Acusis
Go to the Edit section.
Right-click on app_vf_spk_base, go to Build Configurations->Manage.
Click on "New". Make a configuration called 1i1o2_Acusis_lin, and base it on the existing 1i1o2_lin33.
Right-clickon app_vf_spk_base, go to *Properties*, then *C/C++ Build*.
Change Build command to read
Code: Select all
xmake CONFIG=1i1o2_Acusis_lin
Add the following line right after the comment #L33 Builds (or anywhere in the XCC_FLAGS section):
Code: Select all
XCC_FLAGS_1i1o2_Acusis_lin = $(COMBINED_BUILD_FLAGS) $(I1O2) $(FREQ48K) -DBECLEAR_SMARTTV=1 -DBECLEAR_OUTPUT_ASR=1 -DMIC_GEO_ACUSIS=1
Code: Select all
#if (MIC_GEO_ACUSIS == 1)
#define XBECLEAR_MIC_GEO 175, 0, 0,\
125, 0, 0,\
25, 0, 0,\
0, 0, 0
#define XBECLEAR_AGC_DESIREDLEVEL 0.98F //override default 0.005
#define XBECLEAR_AGC_MAXGAIN 200 //override default 31.6
#endif
Code: Select all
#if (BECLEAR_SMARTHOME == 1)
#define MIC_ARRAY_CH0 PIN6
#define MIC_ARRAY_CH1 PIN1
#define MIC_ARRAY_CH2 PIN3
#define MIC_ARRAY_CH3 PIN4
#elif (BECLEAR_SMARTTV == 1 ) && (MIC_GEO_L33 ==1)
#define MIC_ARRAY_CH0 PIN0
#define MIC_ARRAY_CH1 PIN3
#define MIC_ARRAY_CH2 PIN1
#define MIC_ARRAY_CH3 PIN2
#endif
Code: Select all
#if (BECLEAR_SMARTHOME == 1)
#define MIC_ARRAY_CH0 PIN6
#define MIC_ARRAY_CH1 PIN1
#define MIC_ARRAY_CH2 PIN3
#define MIC_ARRAY_CH3 PIN4
#elif (BECLEAR_SMARTTV == 1 ) && (MIC_GEO_L33 == 1)
#define MIC_ARRAY_CH0 PIN0
#define MIC_ARRAY_CH1 PIN3
#define MIC_ARRAY_CH2 PIN1
#define MIC_ARRAY_CH3 PIN2
#elif (MIC_GEO_ACUSIS == 1)
#define MIC_ARRAY_CH0 PIN0
#define MIC_ARRAY_CH1 PIN3
#define MIC_ARRAY_CH2 PIN2
#define MIC_ARRAY_CH3 PIN1
#endif
Code: Select all
switch (ledNo)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5: break;
case 6:
ledNo = 5; break;
case 7:
ledNo = 4; break;
case 8:
ledNo = 3; break;
case 9:
ledNo = 2; break;
case 10:
ledNo = 1; break;
case 11:
ledNo = 0; break;
case 12:
break;
}
-
- Junior Member
- Posts: 7
- Joined: Wed Feb 28, 2018 2:21 am
There may be some restrictions on redistributing the xcore firmware.
If you create an account on https://www.xmos.com/ you can download the source and binaries for the "xCORE VocalFusion Speaker: Linear Array".
I'm wondering if this is basically the same thing that's running on the Acusis?
In the block diagram here http://www.xmos.com/products/silicon/xcore-voice/xvf it shows that the XVF3000 has two output configurations. I'm wondering how the Acusis is configured?
My intended application for the Acusis is for a video conferencing system but after testing the board out I'm not sure it's suitable without adjustments to the microphone gain. I'm perceiving what I would call audio clipping on the input when I talk at a normal volume from a few feet away. I adjusted the UAC volume control down on Windows which reduces the volume but still produces clipping. I also tried it on an Ubuntu system with the same results.
Before I ordered my board I heard this in the Bil Herd demo video starting at 3:15 but I assumed that the level matching between all of the different recording devices was screwed up. https://www.crowdsupply.com/antimatter- ... m-bil-herd
If you create an account on https://www.xmos.com/ you can download the source and binaries for the "xCORE VocalFusion Speaker: Linear Array".
I'm wondering if this is basically the same thing that's running on the Acusis?
In the block diagram here http://www.xmos.com/products/silicon/xcore-voice/xvf it shows that the XVF3000 has two output configurations. I'm wondering how the Acusis is configured?
My intended application for the Acusis is for a video conferencing system but after testing the board out I'm not sure it's suitable without adjustments to the microphone gain. I'm perceiving what I would call audio clipping on the input when I talk at a normal volume from a few feet away. I adjusted the UAC volume control down on Windows which reduces the volume but still produces clipping. I also tried it on an Ubuntu system with the same results.
Before I ordered my board I heard this in the Bil Herd demo video starting at 3:15 but I assumed that the level matching between all of the different recording devices was screwed up. https://www.crowdsupply.com/antimatter- ... m-bil-herd
-
- Junior Member
- Posts: 7
- Joined: Wed Feb 28, 2018 2:21 am
I didn't order my Acusis with an xtag programmer.
I'm guessing you don't have any more available for sale?
Is this what I would want to order? https://www.digikey.com/product-detail/ ... ND/2183686
I'm guessing you don't have any more available for sale?
Is this what I would want to order? https://www.digikey.com/product-detail/ ... ND/2183686
-
- New User
- Posts: 2
- Joined: Sat Feb 24, 2018 3:45 am
@wtip yes, that's the correct part. Unfortunately we don't have any extras.
-
- Junior Member
- Posts: 5
- Joined: Mon Mar 05, 2018 10:42 pm
@wtip there is also a usb DFU bootloader on board you may find helpful. It doesn't have debug and you need to build the binaries and use the command line to use it, but it might be good to start out. Disclaimer: I haven't used it much personally
You can use xflash to generate the .bin file, and then upload it with your built tool. In the sw_vocalfusion package, under sc_usb_audio/module_dfu/host/xmosdfu there are some makefiles for building the host application.
Creating the binary image can be done from the .xe image XTimeComposer produces, the command should look something like:
xflash -v --upgrade 1 output.xe -o new_firmware.bin --factory-version 14.0
And then the upload would look something like:
./xmosdfu 0x11 --download new_firmware.bin
Also, useful note: if you do get the XTAG programmer, use the --no-compression flag for command-line programming. It's faster!
You can use xflash to generate the .bin file, and then upload it with your built tool. In the sw_vocalfusion package, under sc_usb_audio/module_dfu/host/xmosdfu there are some makefiles for building the host application.
Creating the binary image can be done from the .xe image XTimeComposer produces, the command should look something like:
xflash -v --upgrade 1 output.xe -o new_firmware.bin --factory-version 14.0
And then the upload would look something like:
./xmosdfu 0x11 --download new_firmware.bin
Also, useful note: if you do get the XTAG programmer, use the --no-compression flag for command-line programming. It's faster!
-
- Junior Member
- Posts: 7
- Joined: Wed Feb 28, 2018 2:21 am
Reading through some of the source and documentation in the vocalfusion sw zip archive it looks like the chip has the option for USB control of configuration parameters if the loaded firmware has this enabled.
It looks like the flags would control this.
Based on the setup instructions posted earlier I'm guessing this was not enabled on the shipped firmware.
Is this correct?
Just want to verify that this is correct before I order an xtag.
It looks like the
Code: Select all
-DBECLEAR_CONTROL_USB=1 -DUSB_CONTROL_DESCS=1
Based on the setup instructions posted earlier I'm guessing this was not enabled on the shipped firmware.
Is this correct?
Just want to verify that this is correct before I order an xtag.
-
- Junior Member
- Posts: 7
- Joined: Wed Feb 28, 2018 2:21 am
@peterm thanks for the tip.