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):
Code: Select all
XCC_FLAGS_1i1o2_Acusis_lin = $(COMBINED_BUILD_FLAGS) $(I1O2) $(FREQ48K) -DBECLEAR_SMARTTV=1 -DBECLEAR_OUTPUT_ASR=1 -DMIC_GEO_ACUSIS=1
In module_beclear_conf/includes/beclear_conf.h, add the following code:
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
In app_vf_spk_base/src/core/cusomdefines.h, change:
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
to read:
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
In the file app_vs_spk_core/src/extentions/ledctrl.xc, in the function SetLed at the beginning, add the following code:
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;
}