everyword™ – quick start and user guide - arkx labs
TRANSCRIPT
1
EVERYWORD™ – QUICK START AND USER GUIDE
EVERYWORD™ – QUICK START AND USER GUIDE September 2020
2
EVERYWORD™ – QUICK START AND USER GUIDE
Contents Change History ............................................................................................................................... 3
EveryWord™ Quick Start Guide ..................................................................................................... 4
Getting to know the EveryWord™ developer kit ......................................................................... 4
EveryWord™ Initial Hardware setup and Power On .................................................................. 5
Please update to the latest SW package by following the instructions for Flashing software
updates to EveryWord™. ............................................................................................................ 5
LED Guide ................................................................................................................................... 6
Software Setup and AVS Startup ............................................................................................... 7
Connect EWM to your WiFi Network....................................................................................... 7
Alternative Way to connect to device on network ................................................................. 11
Authorize your device with an Amazon account ................................................................... 11
Additional ways to connect to EWM ......................................................................................... 14
Connect the internet via LAN/Ethernet ................................................................................. 14
Using a console terminal with EveryWord™ ......................................................................... 14
EveryWord™ User Guide ............................................................................................................. 20
Flashing software updates to EveryWord™ ............................................................................. 21
EveryWord™ built-in test scripts ............................................................................................... 24
Audio Module Board .................................................................................................................. 25
CS48LV41 Far-Field Voice Processor .................................................................................. 25
Stereo DAC CS4344 ............................................................................................................. 26
Microphone Array Board ........................................................................................................... 26
Microphone acoustics (and handling precautions) ............................................................... 27
Disabling/muting the microphones ........................................................................................ 27
Selecting the Microphone Array configuration ...................................................................... 27
MEMS microphone component specifications ...................................................................... 29
Microphone pairs ................................................................................................................... 30
Setting the optimal mic input gain ......................................................................................... 30
LED array configuration ......................................................................................................... 31
LED component specifications .............................................................................................. 31
Microphone Array Board connector pinout – J18 connector of Audio Module ..................... 33
Carrier board ............................................................................................................................. 34
Loudspeaker amplifiers ......................................................................................................... 34
Loudspeaker amplifier specifications .................................................................................... 34
Setting up the loudspeaker amplifier gain ............................................................................. 35
3
EVERYWORD™ – QUICK START AND USER GUIDE
EveryWord™ test points and connectors pinout................................................................... 35
Carrier Board test points - GPIOs ......................................................................................... 36
Carrier Board J11 connector pin out – UART ....................................................................... 37
Carrier Board J16 connector pinout – ASP3 ......................................................................... 38
Advanced Software Operations .................................................................................................... 38
EveryWord™ Tuning and Diagnostics Guide ........................................................................... 38
Swap File on EveryWord™ ....................................................................................................... 38
Customer-specific Connection to Amazon Servers for EveryWord™ ...................................... 39
Configuration on EveryWord™ ................................................................................................. 41
USB Audio on EveryWord™ ..................................................................................................... 43
USB Audio Setup using EveryWord™ Console .................................................................... 44
USB Audio Setup using Command line on EveryWord™ .................................................... 45
Using Cirrus Soundbridge on EveryWord™ ............................................................................. 46
Adjusting LED Behavior on the EveryWord™ .......................................................................... 46
Troubleshooting ............................................................................................................................ 46
More information and technical support ....................................................................................... 47
FCC Notice .................................................................................................................................... 47
Change History Rev 1.0 April 2020 Initial Release
Rev 1.4 Additional Amazon login info, speaker wire notes, revised trouble shooting for WiFi, add link to EveryWord™ Console Guide
Rev 1.5 Corrected password error on p.6
Rev 1.6 Corrected SSID on p. 6
Rev 1.7 August 2020 For use with 1.0.4 software release.
Rev 1.8 August 2020 For use with 1.0.5 software release. Added USB Audio capability.
Rev 1.9 September 2020 Added LED Table. Added notes for historical SSID and pwd.
4
EVERYWORD™ – QUICK START AND USER GUIDE
EveryWord™ Quick Start Guide Getting to know the EveryWord™ developer kit The EveryWord™ AVS developer kit is a full, self-contained voice processing unit that can be
used as a stand-alone user interface for a cloud voice assistant, such as Amazon Alexa, or as a
voice AFE (Audio Front End) for a separate system.
The top side of the EveryWord™module includes a center “Mic Control” button and six
microphone ports distributed along the surface. The USB, power and audio connectors can be
found on the side and back of the device as shown in the figure below.
The following is a description of the connectors available to the end user:
Connector Description
USB-A Used to connect the Ethernet dongle for wired network access to the EveryWord™ module. This is a USB master so it can accept a USB hub or other USB devices
microUSB-B Console UART port. Connect to a host computer with a serial terminal program (such as TeraTerm or PuTTY).
5V power jack Connect the included 5V|3.6A power supply to this jack. Please note: The power supply MUST be connected for the loudspeaker outputs to work.
Loudspeaker stereo outputs
Two pairs of +/- connectors for two passive loudspeakers. One suitable loudspeaker is included in the kit.
3.5mm Line-out audio jack
Used as output of line-level analog audio. Suitable for connecting external self-powered loudspeakers or any audio device with a “Line-in” port.
Action Button Required by Amazon. As an alternative to saying “Alexa”, one may depress this button for length of your question to Alexa. It is connected to GPIO2 of the SoM.
microUSB-B
USB-A
5V power jack Loudspeaker
stereo outputs
USB-C
3.5 mm
Line-out
Action
Button
Mic Control
Button
Mic ports
(x6)
5
EVERYWORD™ – QUICK START AND USER GUIDE
USB-C This port is primarily used to download a new software image in to the MMC flash memory. It can act as a power supply, but only partially (the loudspeaker outputs are not powered by the USB-C). By default, this is a USB peripheral and it should be connected to a USB master like a desktop/laptop computer. It can be used to make EWM appear as a usbAudio device to a computer. It is also USB OTG, so when used as a master it can have only one device.
Mic Control Button This is a push-on/push-off button for the microphones on the device. In the ‘Off’ state, the LEDs will turn RED. This button disconnects the power from all the microphones at the hardware level, as required by Amazon.
Mic Ports (6x) EveryWord™ listens to the user’s voice through these ports using the active microphones selected by the mic array configuration. By default, microphones D, A, C and E—the four farthest from the 5V power jack—are active
EveryWord™ Initial Hardware setup and Power On
Please update to the latest SW package by following the instructions for Flashing
software updates to EveryWord™.
The EveryWord™ developer kit includes the following components:
1) EveryWord™ Module (EWM)
2) Micca Covo-S loudspeaker
3) 5V|3.6A power supply (AC/DC adapter)
4) Power supply AC cord
5) Speaker Wire
6) 2 extra Jumpers
After taking all the EveryWord™ components out of its packaging, setup the kit as follows:
• Connect the included loudspeaker to one of the +/- loudspeaker output connectors
(either one) of the EveryWord™ module by pressing on the white release button and
inserting the wire.
6
EVERYWORD™ – QUICK START AND USER GUIDE
o Alternatively, you may also connect the module’s 3.5mm audio jack to an active
loudspeaker with a “Line-in” port.
• Optional: Connect a host computer console (Widows/Mac/Linux) to the module’s
microUSB connector if you plan to monitor the device with a serial console terminal
such as PuTTY or TeraTerm.
• Optional: Plug an USB-A to Ethernet adapter to the USB-A port if you wish to use a
wired internet connection instead of WiFi.
• Connect the included 5V power supply to the barrel connector on the module.
Important note on system power: The module can play audio through the loudspeaker
amplifier connectors only when the 5V power supply has been plugged into the device.
After boot, the EveryWord™ Module will attempt to connect via WiFi to a known local network. If
this is the first time the EWM is powered on, or if WiFi connection has not been setup yet, the
connection attempt will time-out after 45 seconds and all LEDs will turn Pulsing BLUE. If the
EWM finds and successfully connects to a previously known WiFi connection, all LEDs will turn
Pulsing GREEN.
It is possible to monitor the boot-up process via a serial terminal console and get a better insight
of the processes running currently on the device. To connect and configure the serial terminal,
follow the steps in section Using a console terminal with EveryWord™ .
LED Use Guide
App State Proposed Notes
OS Boot Pulse Cyan
Hostapd (Hoptspot)
Pulse Blue
WifiConnect Pulse Green
MicOff Red Overrides any other state
AVS Core/Speaking Cyan Really awaiting answer
Alerts Cyan
Core/Thinking Blue Really "Alexa" trigger
Alerts Blue
Pair/Discovery Blue
DeviceSetup Blue
MicOff Red Overrides any other state
Error Red
Calling/DropIn Green
7
EVERYWORD™ – QUICK START AND USER GUIDE
Notifications Yellow
DoNotDisturb Purple
DeviceChanges White
CfgChanges Orange
usbAudio Startup 3sec Blue Green Blink
Mics to USB Blink Green When data in transfer
USB to Speakers Blink Blue When data in transfer
Software Setup and AVS Startup
Connect EWM to your WiFi Network Note: EWM Wi-Fi connection does not always work when using VPN depending on configuration.
If you wish to use a wired ethernet connection to the internet, please refer to the section Connect the
internet via LAN/Ethernet.
When the EWM device is booted for the first time it will go into WiFi Access Point mode after 30
seconds. The LEDs on the device will light up in Pulsing BLUE to indicate the WiFi Access Point
mode.
In the wireless settings of your Windows/Mac/Linux computer, connect your host computer to
EveryWord™ Access Point network SSID:
SSID: EveryWord_XXXXXX (where XXXXXX are the last 6 digits of the EWM’s unique MAC address)
Password: arkxewm1 (Note: some early versions had an SSID beginning with “FlexConnect..” and the password was arkxfcm1. Please try this password if you see the older SSID)
On the same host computer, open a web browser and enter the URL:
https://192.168.48.1:3000
8
EVERYWORD™ – QUICK START AND USER GUIDE
This will open a page with the EveryWord™ Console. Please note, in some cases, you may
have to refresh the page or dismiss the privacy/security warnings.
9
EVERYWORD™ – QUICK START AND USER GUIDE
On the left-hand menu, click on “WiFi Config” (if needed). Then, in the “WiFi Settings” section
follow the steps below.
1) Choose the desired WiFi network from the “Networks” dropdown list.
2) Click the “Add” button. In the pop-up window enter the password for the selected WiFi
network and click on “Save”, then wait a few seconds for the network credentials to be
saved.
3) Once the WiFi network credentials have been added to the device, select the name from
the dropdown list once again and then click “Connect”. EveryWord™ will reboot and
connect to the selected WiFi network after.
4) In addition, after clicking “Connect”, the webpage will ask you to download an HTML file
to your host computer. This will be used to determine the new IP address of EWM. You
can either save it to disk (to run later) or run it immediately. This page will poll for the
new IP address. When EWM has rebooted and received it’s new IP address, the URL
with that address will appear on this web page.
10
EVERYWORD™ – QUICK START AND USER GUIDE
At that point, you will lose the connection between the device and your computer. A few
seconds later you will see the LEDs first turn CYAN during boot up and then light up in Pulsing
GREEN, indicating that EveryWord™ has booted and is connected to your WiFi network.
Clicking on displayIPaddr will get:
11
EVERYWORD™ – QUICK START AND USER GUIDE
From this page, you can connect to the EWM webserver with either of the two hotlinks listed:
• The first hotlink uses a standard URL that works if you are using mDNS or Bonjour. This
does not work on all network configurations.
• The 2nd hotlink directly uses the EWM IPaddress
Every time you turn EveryWord™ on, and it finds a known WiFi network, it will automatically
connect to it. If EveryWord™ does not find a known WiFi network, or if the connection was
unsuccessful, it will reenter WiFi Access Point mode, indicated by with the LEDs in Pulsing
BLUE.
Alternative Way to connect to device on network
After the EveryWord™ device has connected to your WiFi network you will be able to open the
EveryWord™ Console by having your computer and the device in the same WiFi network and
typing the following address on the computer’s browser:
http://pico-imx8mm.local:3000/
You can also replace pico-imx8mm.local with the device’s IP address on your network (for
example: “http://192.168.0.51:80”). Depending on your network configuration, pico-
imx8mm.local might not work and you will need to use the device’s IP address. One alternative
way to find the IP address is described in section Using a console terminal with EveryWord™.
Authorize your device with an Amazon account
Once EveryWord™ Console is opened in your browser, click to the “AVS Controls” page. By
default, the device is pre-registered with Amazon. These are the pre-populated numbers in the
ProductID and ClientID fields. Only change these fields if you have your own Amazon IDs for
development.
However, to link this individual device to your own Amazon account for music, purchases, and
other Amazon features:
1. Click on the “Start” button in the AVS-APP section near the bottom of the page.
2. Wait for a six-character code to appear to the right of “UserCode”
12
EVERYWORD™ – QUICK START AND USER GUIDE
Where to find the six-character User Code in EveryWord™ Console.
3. Copy the six-character code and then click on the ‘www.amazon.com/us/code’ link below
it.
4. The browser will open the Amazon login page in a new tab. Log in to the Amazon
account you want your EveryWord™ to be associated with. Please be aware that if
your browser is set to remember your personal Amazon account credentials it may skip
the login page. If you don’t want your EveryWord™ associated with such Amazon
account, you may have to log out of the account in the browser and re-open the
‘www.amazon.com/us/code’ link.
13
EVERYWORD™ – QUICK START AND USER GUIDE
5. Enter the six-character User Code in the page that follows and click on “Continue”.
Amazon’s device authorization page. Enter the six-character User Code from your device
here.
6. Return to the “AVS Controls” section in your browser and the AVS-APP console should
show the message “Authorized”
The AVS-APP console window shows the message “Authorized!” after the six-digit code has
been submitted at amazon.com/us/code
After the device has been authorized you will be able to interact with the Alexa voice assistant.
Say “Alexa, good morning” or “Alexa, what time is it?”. The blue LEDs will light up and a spoken,
14
EVERYWORD™ – QUICK START AND USER GUIDE
contextual response from Alexa will confirm the Alexa Voice Service (AVS) is connected and
running correctly.
7. If desired, turn on “Autostart AVS-APP on boot” to have the device automatically launch
AVS upon boot. This will avoid the need to use the EveryWord™ Console to launch
AVS each time the device powers up.
Congratulations! Your EveryWord™ Module is now a fully-functional Alexa device.
Additional ways to connect to EWM
Connect the internet via LAN/Ethernet
If a wired LAN/ethernet connection is preferred, you can use a USB-A to Ethernet adapter to
connect your network’s router to EveryWord™ USB-A jack. When the device boots up it will
automatically detect the Ethernet connection and request an IP address from the router.
Example of an USB-A to Ethernet adapter
Using a console terminal with EveryWord™
A host computer (Windows, MacOSX or Linux) can be connected to the EveryWord™ module’s
microUSB port to control or monitor the device via a serial terminal console such as Tera Term,
PuTTY or Minicom. The parameters for the serial port communication are:
• Speed: 115200
• Data: 8 bit
• Parity: None
• Stop bits: 1
• Flow control: None
You can find the COM port number from the settings menu of your host computer.
Once the computer is connected, and the console program is running, log in to the
EveryWord™ module by using the login username root with no password.
15
EVERYWORD™ – QUICK START AND USER GUIDE
To obtain the IP address of the device, type ifconfig and look at the assigned IP address under
wlan0 (for a wireless internet connection) or eth1 (for a wired connection using a USB dongle to
USB-A).
Where to find EveryWord™ IP address in terminal console, after typing ifconfig
Using SSH with EWM
Alternatively, you can also use SSH to log in to the module once it has been connected to your
network and you have obtained the device’s IP address from your network’s router. Login as
root for ssh (i.e. ssh [email protected]).
Getting the Amazon authorization code from the terminal console
1. Connect your computer’s terminal console to EveryWord™
2. Go to the folder AVSnix and run the runDevAvs.sh script by typing the following two
commands
• cd AVSnix
• sh runDevAvs.sh
16
EVERYWORD™ – QUICK START AND USER GUIDE
3. The script will indicate that the device is not authorized, and it will provide a User Code.
The authorization User Code is shown after running the runDevAvs.sh script on an unregistered
device.
After the authorization code is entered at amazon.com/us/code, the script will show the
message “Authorized”! as shown below.
The terminal console will indicate a successful device authorization when it displays the
message “Authorized!”
17
EVERYWORD™ – QUICK START AND USER GUIDE
De-registering the device through the terminal console
If you wish to register the EveryWord™ device to a different Amazon account, you will first need to deregister it from the current account. This must be done in two steps: once on the device itself, and once on the web portal of your Amazon account.
1. To perform this procedure, you must make sure that “Autostart AVS-APP on boot” is off. If you know “Autostart” is off you can proceed to step 2. Otherwise continue . . .
a. Connect to the EveryWord™ Console using an Ethernet or WiFi URL connection on a browser
i. Select “AVS Controls” on EveryWord™ Console ii. Make sure “Autostart AVS-APP on boot” is off
2. Next you must de-register the device via terminal console a. Open a terminal window with either ssh or using the USB console, press enter
and login using username “root” b. Reboot device by typing “reboot” enter c. Wait for all 6 LED’s to turn cyan then return to green d. On the terminal window press enter then login with username “root” e. Type “cd AVSnix” enter, to change directories f. Type “sh runDevAvs.sh” enter
3. A screen similar to this will appear
18
EVERYWORD™ – QUICK START AND USER GUIDE
19
EVERYWORD™ – QUICK START AND USER GUIDE
4. Press “k” Enter 5. Press “y” Enter 6. You should see a screen similar to the following
7. You have successfully de-registered on the device but now must de-register on the
Amazon account web page 8. Go to alexa.amazon.com and log in to your Amazon account 9. From the “Settings” menu, click on the name of your EveryWord™ under the “Devices”
section. (Note the pre-release device name was FlexConnect so you may see that referenced instead).
10. Click on “Deregister” near the bottom of the page. Your de-registration is complete and you can follow the section Authorize your device with an Amazon account to authorize and register the device to your account
Resetting Wifi and Wifi Hotspot
If you wish to reset the Wifi to Hotspot mode and remove all the known SSIDs stored in it, do
the following:
1) Log into a terminal on EWM through either ssh or USB console
2) Login as “root”, no password
3) Type the following line at the console
reset_wifi
This script will overwrite the wpa supplicant and then reboot the EWM. When reboot is finished,
the device will go into Hotspot mode after 30sec.
20
EVERYWORD™ – QUICK START AND USER GUIDE
EveryWord™ User Guide Internally, the EveryWord™ Module is mainly comprised of three components:
1) The Audio Module Board that houses the AFE based on the Cirrus CS48LV41 voice
processor and the TechNexion Pico i.MX8MM SoM (System on Module). The voice
processor and SoM in this board comprise the “brains” of the dev kit, taking the role of
processing the audio signals, enabling wireless connectivity and initiating a response to
the voice commands.
2) A Carrier Board that provides access to the device’s various I/O signals, interrupts,
USB connectivity, power connections and loudspeaker amplifier outputs.
3) The Microphone Array Board. This board includes the six-microphone array and the
six-LED array that serve as the device’s voice input and visual feedback to the end-user.
The board itself is mounted on the internal side of the EveryWord™ top housing and
connects to the Audio Module Board through a ribbon cable.
The images below show the Audio Module Board, marked by the purple dashed line, assembled
on top of the Carrier Board. The Pico iMX8M SoM, marked by the yellow dashed line, sits on top
of the Audio Module Board. Finally, the Carrier Board is shown on the bottom, marked by the
blue dashed line. The image also shows the location of some of the most relevant components
and connectors.
Top view of the Audio Module board with i.MX8MM SoM mounted on top
USB-A
Micro-USB-
B
5V power
jack
Loudspeaker
amplifier
outputs
USB-C Action
Button
3.5 mm Line-out
audio jack
21
EVERYWORD™ – QUICK START AND USER GUIDE
Side view of the Audio Module board with iMX8M SoM mounted on top
The following image shows the EveryWord™ module opened, and the Microphone Array Board
disconnected from the Audio Module Board.
Microphone Array Board mounted on the EveryWord™ top housing (left). The other two boards
are mounted in the bottom housing (right).
Flashing software updates to EveryWord™ This section will explain how to update the software image to your EveryWord™ module.
The software update package for EveryWord™ will be a ZIP file that contains:
• A SDCARD file. This is a large IMG file that will be flashed on the EveryWord™ board.
• NXP’s UUU (Universal Update Utility) for Linux and Windows.
• Scripts for Linux and Windows to load the image file.
Carrier
board Audio
Module
Board
Pico i.MX8MM
SoM (with heat
sink)
Microphone
Array Board
Connector for
Mic Array Board
22
EVERYWORD™ – QUICK START AND USER GUIDE
Download the latest SW package here. Once you have downloaded the update package ZIP to
your computer, follow the instructions below to flash it to your EveryWord™ module.
1. Unplug the power supply from the EveryWord™ module.
2. Remove the top housing of the EveryWord™ module. This will require a 1.5mm Allen
wrench to remove the four corner screws that hold the housing in place.
2. Find the jumper connectors closest to the 3.5 mm audio jack. Position those jumpers as
shown in the photo below to put the EveryWord™ board into serial load mode. This
mode makes it possible to load the SDCARD IMG file over USB-C using NXP’s UUU
(Universal Update Utility).
Location of jumpers in the EveryWord™ Audio Module Board (left) and close-up view of their
correct position to put the module in Serial Load mode (right).
3. Connect a cable from your host computer to the USB-C connector on the EveryWord™
module. The device will boot up into Serial Load mode.
4. Unzip the ZIP package file. In Linux you can type:
unzip nextRelease.zip
5. Go into the main folder:
cd nextRelease
6. Run the flashing script corresponding to your host computer’s OS (Linux or Windows).
• On Linux run the script by typing:
sh loadEMMC.sh
• On Windows execute the script by typing on command line:
windowsLoadEMMC.bat
The script will flash the device using UUU (which is already contained in the update
package)
23
EVERYWORD™ – QUICK START AND USER GUIDE
If you are running an Ubuntu VM on a Windows or Mac computer, it will ask you
to connect a “NXP Semiconductor SE Blank” device
7. The boot-loader will be loaded into memory. This may take approximately 20 seconds.
If you are running an Ubuntu VM on top of a Windows or Mac computer, it will
ask you a second time to connect to a “Netchip USB download gadget”.
8. Next, the MMC flash memory will be loaded with the given SDCARD file. The flashing
process usually takes about five minutes to complete.
9. Remove USB-C cable to power down the EveryWord™ device.
10. Move the jumpers on the Audio Module Board back to normal boot mode as shown in
the photo below.
24
EVERYWORD™ – QUICK START AND USER GUIDE
Close-up view of the jumpers correct position
to put the module in normal boot mode.
Connect the 5V power supply to the barrel connector and the EveryWord™ will reboot into the
newly loaded software release.
EveryWord™ built-in test scripts The following program scripts are included in the default software image and are located inside
the “home/root/audioTests” folder. These can be run from the serial console to test basic audio
operation.
Command Functionality
aplay Front_Center.wav Plays the file Front_Center.wav, or any other WAV file you specify, through the loudspeaker outputs.
gst-play mp3Test.mp3 Plays the MP3 file mp3Test.mp3. You can replace the filename with any other MP3 file that you load on the device.
sh loopRecTest.sh [numLoops] Does a 5 second recording and then plays the recording for the number of times specified by numLoops. The script can be modified to specify the name of the WAV file to be recorded and played. The default filename is ltest48.wav.
sh loopPlayTest.sh [numLoops] Plays a WAV file for the number of times specified by numLoops. The script can be modified to specify the filename of the WAV file to be played. By default, the script will play the file Front_Center.wav.
sh test_leds_init.sh Init LED test code
sh test_leds.sh [R][G][B] Light all LEDs with RGB color value
sh test_leds_color.sh red grn blu Sets all LEDs to the color specified by the red, grn, blu values. Each must be from 0 to 255
sh test_btn.sh Test the push button on the Audio Module board.
sh alsaSimple.sh Sets up the CS48LV41 as a simple soundcard. The mic inputs are summed into the left and
25
EVERYWORD™ – QUICK START AND USER GUIDE
right channels for audio record. Audio playback is routed to the CS35L41B amplifiers and the CS4344 codec.
Audio Module Board The Audio Module Board is the main signal processing component of the system. It includes the
EveryWord™Cirrus CS48LV41 Far-Field Voice Processor, and all its pertinent connections for
power, control, and the digital/analog audio signal connections to the carrier board and mic-
array board. It also houses the sockets that connect to the Pico iMX8M SoM and a 3.5 mm jack
that provides a “Line-Out” audio signal.
CS48LV41 Far-Field Voice Processor
Cirrus’ CS48LV41 is used as EveryWord™ voice trigger detector, mic-array signal processor
and overall audio signal mixer/router. The CS48LV41 has four PDM microphone pair inputs and
four multichannel audio serial ports. It is an integrated audio processing solution for wake-word
detection, voice recognition and voice communications.
Microphone Inputs and audio interfaces
• Each PDM interface can be configured in master or slave mode.
• The PDM clock output can support up to 6.144 MHz to allow 96 kHz bandwidth
• There are 4 multichannel Tx/Rx ASPs (Audio Serial Ports). Up to 8 channels per ASP. In
EveryWord™:
o ASP1 and APS2 are wired for audio signal Rx/Tx between the Pico i.MX8MM
and the CS48LV41 voice processor
o ASP3 is used to send digital audio data to the line-out DAC
o ASP4 is used to send audio to EveryWord™ loudspeaker amplifier in the carrier
board.
26
EVERYWORD™ – QUICK START AND USER GUIDE
• Audio Mixing Core processing is available to all ASP input or output signals.
• The CS48LV41 allows flexible re-routing, re-sampling and re-configuration of each ASP
signal path.
Voice Processing capabilities
• Voice Trigger
• Multi-mic far-field spatial processing
• Echo Cancellation
• De-Reverberation
• Noise Reduction
• Automatic Gain Control
Audio Processing Capabilities
• 5-Band Equalizer
• Dynamic Range Control
• High-Pass and Low-Pass filtering
• Asynchronous sample-rate conversion
• Isosynchronous sample-rate conversion
Stereo DAC CS4344
The CS4344 provides the analog “Line-out” signal to EveryWord™ 3.5mm audio jack. It
receives the digital audio stream from CS48LV41’s ASP3 and converts the audio to stereo
analog at line level. The output is suitable for external audio devices with a high-impedance
“Line-In” stereo inputs (for example: a soundcard, a loudspeaker amplifier, or a wireless
transmitter adapter). The end user or developer then has a choice to use an external audio
playback system connected to the “Line-Out” port, or to use passive loudspeakers connected to
the amplified output on the Carrier Board (described later in this document).
DAC Characteristics
• Up to 24-bit conversion
• Dynamic Range: 105 dB (full-scale 1 kHz, 24 bit)
• Supports sample rates of up to 192 kHz
• Maximum Full-Scale voltage output: 4.2 Vpp
• Output Impedance: 100 ohm
• THD+N: -90 dB (full-scale 1 kHz)
In the EveryWord™ Development Kit Quick Start Guide Outline 2020-06-10-001 audio module,
the “Line-out” 3.5 mm jack is DC-coupled with 3.3 uF series capacitors on each channel. This
series capacitance combined with the “Line-in” input impedance of the connected device will
form a high-pass filter (HPF) for the audio playback. The higher the input impedance, the lower
the corner frequency of the HPF.
Microphone Array Board The Microphone Array Board is located right below the top housing of EveryWord™ and is
connected to the Audio Module via a 13x2 board-to-board connector.
The Microphone Array Board also includes the RGB LED array that provides the visual
feedback required to comply with Alexa Voice Service certification. The light from the LEDs is
visible on EveryWord™ top plastic cover.
27
EVERYWORD™ – QUICK START AND USER GUIDE
The default LED visual cues and notifications in EveryWord™ are aligned with Amazon’s AVS
UX/UI Requirements. Up to four LEDs are used to indicate the different states of the Alexa
visual cues. The developer can also program any customized routine to be displayed in the LED
array by modifying a Python script in the device.
Microphone acoustics (and handling precautions)
The size of the microphone ports was chosen to extend the usable bandwidth as much as
possible, while maintaining a pleasing aesthetic. All microphones are protected against dust and
other particles with an acoustic mesh, located on the internal side of each microphone’s port. Do
not poke through any of the microphone ports with any object as it can tear the mesh and
expose the microphone to contamination over time. Poking through the ports can also damage
the microphone component itself.
The microphones on the board are acoustically sealed to the ports on the top housing with a set
of adhesive gaskets. Do not detach the Microphone Array Board from the top housing by force,
as these gaskets will be damaged beyond repair and the acoustic seal will be severely
compromised. In such condition, the module may show a degraded performance on speech
recognition.
Disabling/muting the microphones
EveryWord™ “Mic Control” button on the top of the device toggles the “MIC_OFF” signal which
will cut off the voltage bias to the microphones and disable the buffers that carry the mic data
and clock streams. “MIC_OFF” also serves as a mic status signal to the Pico i.MX8MM which,
by default, will turn the LED arrays to RED to indicate that the microphones have been disabled.
Selecting the Microphone Array configuration
EveryWord™ can enable any 2 to 4 microphones from the 6-microphone array. The design of
the array allows the developer to configure EveryWord™ as a dual or multi-mic array in several
different geometric arrangements.
28
EVERYWORD™ – QUICK START AND USER GUIDE
The six microphones in Microphone Array Board are labeled with the letters A to F as indicated
in the image below. Then, each one of the available array configurations is designated with 2 to
4 letters corresponding to the active mics used that configuration.
Labels of the microphones on the EveryWord™ module
The following graph shows the location of each microphone in the array plane and the distance
between each. A few examples of the different types of arrays that can be configured are: 4-mic
“Y” (DACE), 4-mic linear (DEFB) and 3-mic triangular (DAC).
A
D
B F
C
Pairwise distances
-------------------
A - B: 62.9 mm
A - C: 62.9 mm
A - D: 62.9 mm
A - E: 36.3 mm
A - F: 36.3 mm
B - C: 62.9 mm
B - D: 108.9 mm
B - E: 72.6 mm
B - F: 36.3 mm
C - D: 62.9 mm
C - E: 36.3 mm
C - F: 36.3 mm
D - E: 36.3 mm
D - F: 72.6 mm
E - F: 36.3 mm
E
29
EVERYWORD™ – QUICK START AND USER GUIDE
To select the microphone array configuration used by AVS, edit the AVSnix/runAvs.sh or
AVSnix/runDevAvs.sh files.
The file runAvs.sh is used by the EveryWord™ Console Start button to direct AVS text to the
console.
The file runDevAvs.sh can be used to direct AVS text to the terminal.
To change the mic configuration, you should edit the set_mic_pattern.sh line in one or both of
these (files as appropriate). The line of text is as follows:
# Set MIC PATTERN, which will replace the symlinks in /opt/tunings to point # at the desired files in /home/root/AVSnix/cirrusACFs/ # then LOAD the new tuning and routing files into the Wright. # USAGE: set_mic_pattern.sh (dace, df, ca, def, pattern name) # default pattern is Y-array D,A,C,E, with 36mm mic spacing sh /home/root/AVSnix/cirrusACFs/set_mic_pattern.sh DACE
The mic pattern can be set to one of the following which correspond to the six mics labeled ABCDEF on mic board: DACE FOUR MIC Y-ARRAY 36.3mm, 63mm DEFB FOUR MIC LINE Array 36.3mm spacing DABC FOUR MIC SQUARE Array 63mm spacing, 109mm diagonal DEF THREE MIC Line Array 36.3mm spacing DAC THREE MIC TRIANGLE Array 62.9mm spacing DB TWO MIC LINE Array 108.9mm spacing DF TWO MIC LINE Array 72.6mm spacing CA TWO MIC LINE Array 62.9mm spacing
MEMS microphone component specifications
Each microphone in the EveryWord™ mic array board is a Knowles SPH0641LM4H-1. This
model is a bottom-ported, digital MEMS microphone, ideal for sound capturing applications
Microphone relative XY coordinates
Mic x (mm) y (mm)
--- --------- ---------
A -18.150 31.437
B 36.300 0.000
C -18.150 -31.437
D -72.600 0.000
E -36.300 0.000
F 0.000 0.000
30
EVERYWORD™ – QUICK START AND USER GUIDE
where the audio bandwidth needs to be maximized while avoiding interference from higher
current sub-systems in the device.
Below are the more relevant electro-acoustical parameters of the SPH0641LM4H-1. For more
details, refer to Knowles component datasheet available at www.knowles.com.
Parameter Name Parameter Value, Description
Notes, Conditions
Output signal format PDM (Pulse Density Modulation)
Microphone sensitivity -26 dB FS @ 94 dB SPL
1 kHz tone
+/-3 dB Mic Bandwidth (without housing)
45 Hz – 15.5 kHz
Mic bias voltage 1.8 V All mics are connected to the 1.8V supplied by EveryWord™ mic array LDO audio module. The SPH0641LM4H-1 itself can support up to 3.6V.
Directivity Omnidirectional
Polarity Increasing density of 1’s with increasing sound pressure
Signal to Noise Ratio 64.3 dB 94 dB SPL, 1 kHz, A-weighted
1% THD acoustic level 108 dB SPL
Acoustic Overload Point 120 dB SPL (10% THD)
Operation modes by CLK frequency
Normal Mode (CLK=1.0-4.8 MHz), Low-Power (CLK=351-815 kHz), Sleep Mode (CLK<280kHz)
Microphone pairs
In EveryWord™, MicC/A and MicF/B are paired in a single stream, as is typical of PDM mic
applications. MicD and MicE are assigned each to a separate stream, for more flexibility in
desired implementations. In EveryWord™ mic array board, the PDM microphones are paired as
shown in the table below.
Microphone “Select” Pin CS48LV41 input
Digital stereo line
MicD Hi IN1L IN1_PDMDATA
MicC Hi IN2L IN2_PDMDATA
MicA Lo IN2R
MicE Hi IN3L IN3_PDMDATA
MicF Hi IN4L IN4_PDMDATA
MicB Lo IN4R
Setting the optimal mic input gain
Please note from the mic parameter table that the Knowles SPH0641LM4H-1 will start
saturating when the acoustic level reaches 108 dB SPL and will be clipping heavily at 120 dB
SPL.
31
EVERYWORD™ – QUICK START AND USER GUIDE
Depending on the user’s implementation of EveryWord™, the gain applied to each mic by the
CS48LV41 processor will have to be optimized to amplify the user’s voice to an acceptable level
without clipping the signal unnecessarily. That is, the developer should estimate the maximum
acoustic level arriving to the array and set the gains in the CS48LV41 voice processor
accordingly. A voice input signal heavily distorted by digital clipping would hamper the voice
processor’s ability to understand the user’s voice commands and it may even reduce the user’s
ability to barge-in during audio playback.
An example command to adjust the microphones’ input gain is shown below. Please note that,
depending on the signal routing selected, there will be additional stages in the mic signal path
with adjustable gains.
Commands Functionality
nanomix ‘IN1L Digital Volume’ 128
Sets the gain at the IN1L mic input to 0 dB (0 = -64 dB dB, 1 = -63.5 dB, … 128 = 0 dB, … 191 = +31.5 dB). IN1L can be replaced with the input label corresponding to any particular mic, as described in the section “Microphone pairs”
As a rule of thumb, higher gains are needed for far-field voice applications (e.g., smart speakers
or appliances) and lower gains needed for near-field applications (e.g., wearables, headsets).
For reference, a person talking at a comfortable level generates roughly 60 – 75 dB SPL at
arm’s length, and 90 – 105 dB SPL an inch away from the person’s mouth.
LED array configuration
The microphone array board includes the RGB LED array that provides visual feedback to the
user’s actions. The LED array is driven by an NXP PCA9956B, which is controlled by the Pico
i.MX8MM on the audio module via the I2C lines on the board-to-board connector.
Six outputs of the LED driver are left unused and available for the developer as test points TP3
to TP8. These unused outputs can be used to add two more RGB LEDs to the array.
The LEDs patterns are controlled by a Python script located at*
/home/pi/si_hook/led_state.py
The script sets the LED patterns according to the state enabled by the application. The script
can be modified to change the LEDs or add animations.
*Please note that the location of this script file is subject to change in future software updates
LED component specifications
The LEDs used in the EveryWord™ mic array board are SunLED part number
XZMDKCBDDG45S-9. This model is a reverse-mount 3.2x2.8 RGB LED. Below is a summary
list of specifications of the part. More details can be found in the product page at SunLED USA
website.
32
EVERYWORD™ – QUICK START AND USER GUIDE
Parameter Name Parameter Value, Description Notes, Conditions
Forward Voltage Red: 1.95 V, Blue: 3.3 V, Green: 3.3 V
If = 20 mA
Wavelength of Peak Emission
Red: 645 nm, Blue: 460 nm, Green: 515 nm
If = 20 mA
Luminous intensity Red: 108 mcd, Blue: 98 mcd, Green: 497 mcd
If = 20 mA
Viewing angle, 2θ 1/2 120 degrees
Note: Due to the nature of the material used for the plastic top on the dev kit, some colors may
be distorted from normal. If tuning LED colors for a final product it will be better to separate the
plastic top from the Microphone Array Board.
33
EVERYWORD™ – QUICK START AND USER GUIDE
Microphone Array Board connector pinout – J18 connector of Audio Module
The Microphone Array Board communicates with the Audio Module Board by the 13x2 ribbon
cable connector (shown below in the yellow dashed line). Please note the location of pin 1. The
pin-out of the connector in listed in the table below.
Location of the Mic Array 13x2 connector J18 in the Audio Module Board (left) and close-up
view of the connector (right).
Pin Signal Pin Signal
1 5 V 14 GROUND
2 ACE_GPIO4_1V8 15 IN2_PDMCLK
3 ACE_GPIO3_1V8 16 GROUND
4 ACE_GPIO5_1V8 17 IN2_PDMDATA
5 1.8 V 18 GROUND
6 MIC_OFF 19 IN3_PDMCLK
7 ACE_I2C1_SDA_1V8 20 GROUND
8 GROUND 21 IN3_PDMDATA
9 ACE_I2C1_SCL_1V8 22 GROUND
10 GROUND 23 IN4_PDMCLK
11 IN1_PDMCLK 24 GROUND
12 GROUND 25 IN4_PDMDATA
13 IN1_PDMDATA 26 GROUND
34
EVERYWORD™ – QUICK START AND USER GUIDE
Carrier board The carrier board includes the loudspeaker amplifiers that deliver up to 5 W per channel to
external passive loudspeakers. Depending on the configuration of the AFE modules CS48LV41,
the output can be stereo, single-mono or dual-mono.
Loudspeaker amplifiers
The carrier board in EveryWord™ includes two of Cirrus’ CS35L41B amplifiers. Each
CS35L41B is a single-channel audio Class-D audio amplifier with an integrated boost with
optional DSP speaker protection and equalization.
IMPORTANT: The CS35L41B amplifiers are not powered by the Audio Module’s 5 V USB-C
connector. It can only be powered by an external supply capable of delivering a minimum of 10
W via the Carrier Board’s J5 barrel connector (one such power supply is included in the kit). The
5 V voltage supply is boosted internally to 11 V which feeds the Class-D amplifying output
stage.
The amplifiers are controlled by the Pico i.MX8MM via I2C. They take their digital audio input
signal from the ASP4 connection from the EveryWord™ AFE module..
Loudspeaker amplifier specifications
The more relevant audio parameters of the CS35L41B are shown in the table below. For full
details on the operation of the amplifier please refer to Cirrus Logic’s component datasheet and
user guide of the CS35L41B.
Parameter Name Parameter Value, Description Notes
Supported input formats
I2S, TDM (via AFE Module’s ASP4)
PDM input mode of the CS35L41B is not supported in EveryWord™ configuration
Output power 5.3 W @ 1% THD+N 8 ohm, 1 kHz
Boosted voltage Programmable to 11 V maximum
35
EVERYWORD™ – QUICK START AND USER GUIDE
Idle-channel noise 9 – 28 uVrms(A) Dependent on Analog gain = 0.5 – 20.5 dB, Noise Gate disabled
Supported sample rate
8 kHz – 192 kHz
Amplifier efficiency 81%-85% >500 mW output
Amplifier response 20 Hz – 20 kHz, +/- 0.1 dB
Setting up the loudspeaker amplifier gain
The software for EveryWord™ and its updates are released with a loudspeaker playback tuning
specifically intended for the Micca loudspeaker included in the kit. It should also work
reasonably well with a loudspeaker of equivalent impedance and power rating.
If EveryWord™ is used with a different model of loudspeaker(s), then it may be necessary to
modify the playback gains accordingly. Changing the value of the gains is done via nanomix
commands. Below are a few useful examples.
Commands Functionality
nanomix ‘Left_AMP AMP PCM Gain’ 19 nanomix ‘Right_AMP AMP PCM Gain’ 19
Sets the amplifiers analog output gain to 19.5 dB in each channel (0 = 0.5 dB, 1 = 1.5 dB, … 19 = 19.5 dB, 20 = 20.5 dB)
nanomix ‘ASP4TX1 Input 1 Volume’ 32 nanomix ‘ASP4TX2 Input 1 Volume’ 32
Sets the amplifiers digital input gain to 0 dB on each channel (0 = -32 dB, 1 = -31 dB, … 32 = 0 dB, … 48 = +16 dB)
For a full description of parameters and corresponding registers please refer to the user guide
and datasheets of the CS48LV41 voice processor and the CS35L41B loudspeaker amplifier.
You may also contact ArkX Laboratories for help with tuning for your specific application.
When choosing the gain for the loudspeaker amplifier output, there are a few considerations to
keep in mind.
• The overall gain should be such that the loudspeaker power rating (from its specification
sheet) is not exceeded during playback.
• Try to use the lowest possible analog gain in the amplifier, while keeping the digital gains
with little to no attenuation (and not the other way around). This will minimize idle noise
“hissing” and reduce the peak power demanded by the amplifiers.
• Use DRC wisely. The dynamic range compressor can help increase the playback
loudness, but too much will lead to a harsh sound quality.
• Use EQ wisely. The equalizer cannot overcome the physical limitations of the
loudspeaker. Too much gain or too much attenuation in the EQ is more likely to produce
unwanted artifacts.
EveryWord™ test points and connectors pinout
Most of the relevant audio signals and GPIOs of EveryWord™ are accessible through the test
points and connectors on the Carrier Board and the Audio Module.
36
EVERYWORD™ – QUICK START AND USER GUIDE
The bottom side of the Carrier Board includes 18 test points and two connectors that provide
access to all the relevant GPIOs in the EveryWord™ system. Their location is shown in the
photo below:
The following tables list all of the test points and connectors and which GPIO signal it is
connected to.
Carrier Board test points - GPIOs
Test point
i.MX8MM SoM pin
Pad name GPIO Signal
SI GPIO number
Notes
TP1 J7-24 NAND_CE0_B GPIO3_IO01
1 This is used for USB-C control
TP2 J7-25 NAND_ALE GPIO3_IO00
2 This GPIO is connected to the “Action Button” on the side of the module
TP3 J7-28 NAND_DATA00
GPIO3_IO06
3 GPIO3 (TP9) of Mic Array Board
Test points
J11
connector
J16 connector
37
EVERYWORD™ – QUICK START AND USER GUIDE
TP4 J7-32 NAND_DATA02
GPIO3_IO08
4 GPIO4 (TP11) of Mic Array Board
TP5 J7-33 SPDIF_RX GPIO5_IO4**
5 GPIO5 (TP10) of Mic Array Board
TP6 J7-35 SPDIF_EXT_CLK
GPIO5_IO5**
6
TP7 J7-42 SAI3_RXFS GPIO4_IO28
7
TP8 J7-44 I2C4_SCL GPIO5_IO20
8
TP9 J7-45 I2C3_SCL GPIO5_IO18
9
TP10 J7-47 I2C3_SDA GPIO5_IO19
10
TP18 J7-26 NAND_READY_B
GPIO3_IO16
FF_GPIO1
TP17 J7-60 SD2_CD_B GPIO2_IO12
FF_GPIO2
TP16 J7-37 SPDIF_TX GPIO5_IO3 FF_GPIO4
Carrier Board J11 connector pin out – UART
Connector J11 pin
i.MX8MM SoM pin
Pad name Signal name GPIO Signal
SI GPIO number
Notes
J11-1 J7-63 ECSPI1_SS0 SPI2_#SS_1V8 GPIO5_IO09
Extra This defaults to UART but can be GPIO or another SPI
J11-2 J7-46 ECSPI1_MOSI
SPI2_MOSI_1V8
GPIO5_IO07
Extra This defaults to UART but can be GPIO or another SPI
J11-3 J7-65 ECSPI1_MISO
SPI2_MISO_1V8
GPIO5_IO08
Extra This defaults to UART but can be GPIO or another SPI
J11-4 J7-61 ECSPI1_SCLK
SPI2_SCLK_1V8
GPIO5_IO06
Extra This defaults to UART but can be GPIO or another SPI
J11-5 GROUND
J11-6 1.8 V
38
EVERYWORD™ – QUICK START AND USER GUIDE
Carrier Board J16 connector pinout – ASP3
Connector J16 gives the developer access to the ASP3 digital audio stream. It is the digital
version of the 3.5 mm “Line-Out” audio signal.
Pin Signal
1 ASP3_DIN_3V3
2 GROUND
3 ASP3_DOUT_3V3
4 GROUND
5 ASP3_LRCLK_3V3
6 GROUND
7 ASP3_BCLK_3V3
8 GROUND
9 ACE_I2C1_SCL_1V8
10 MCLK1_3V3
Advanced Software Operations EveryWord™ Tuning and Diagnostics Guide
Swap File on EveryWord™ In general, embedded Linux systems like EveryWord™ usually do not use swap files. However,
if one wishes to use a EveryWord™ module as a development system to compile things like the
Amazon AVS, it might be required.
The EveryWord™ module has a 16GB of Flash and 1GB of RAM memory. The default
configuration of bootloader, OS, and Apps disk was made on somewhat less than 8GB. This
allows enough space to load a new release, swap to the new release, and potentially revert to
the last release. This is not required, nor implemented.
Part of the extra 8GB in flash can therefore be used as swap space if desired. Instead of being
confined to the physical 1GB of space, swap space creates virtual RAM up to 8GB. For
example, the compilers to build the complete Amazon AVS tree seem to need more than 1GB of
RAM.
To create and use a 1GB swap file, follow the steps below on a Linux bash shell of the EWM:
39
EVERYWORD™ – QUICK START AND USER GUIDE
BASH> fallocate -l 1G /swapfile
BASH> chmod 600 /swapfile
BASH> mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=ecebb168-4e0f-4f17-ae9a-f82a52b2c4cb
BASH> swapon /swapfile
[ 182.552788] Adding 1048572k swap on /swapfile. Priority:-2 extents:2
across:1253372k SS
When complete, you should see the following output from swapon:
BASH> swapon
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2
After a reboot, you will need to re-run:
root@pico-imx8mm:~# swapon /swapfile
To make the change permanent add this to /etc/fstab:
/swapfile swap swap defaults 0 0
Customer-specific Connection to Amazon Servers for EveryWord™
To facilitate quick-bringup for the EWM, the initial connection to Amazon servers is with ArkX
credentials. Eventually, customer will probably want to create their own product to make use of
the Analytics that Amazon provides. This will require one to create their own Amazon
credentials.
These credentials are specified in the following JSON file on the EWM.
/home/root/AVSnix/siAlexaClientSDKConfig.json
One can edit this file directly or through the EveryWord™ Console. By clicking on “AVS
Controls” in the left margin of the EveryWord™ Console, you will get the following:
40
EVERYWORD™ – QUICK START AND USER GUIDE
Any of the 3 fields (ClientID, ProdID, SerialNum) can be modified on the EveryWord™ Console
and then written to the JSON file by clicking on the Submit button. Note that clicking on Submit
button (with or without changes to the 3 fields) will clear out the AVS databases on the EWM.
This de-authorizes the device and the authorization process (userCode) must be re-done.
ClientID and ProdID credentials are obtained by defining the product on the Amazon
Developer’s page. The SerialNum MUST be unique on each individual device within the
(ClientID/ProdID) domain.
The steps to create your own credentials for youe device are:
• Logon to your Amazon Developer’s account under Amazon Voice Services
URL: https://developer.amazon.com/alexa/console/avs/products?
• Create a New Product by clicking “ADD NEW PRODUCT” and answering all the (mostly
marketing) questions
• The ProdID was specified as part of product creation and will be in the 2nd column of the
above page.
• To find the ClientID, it is a little less obvious since there are a number of items called
“ClientID”. To find the correct client ID, do the following:
o Click on your ProductName in the above page
o On the left Margin, click on SerialProfile
o Halfway down the page, click on “Other devices and platforms”
o You should see a grey box similar to below. This is the Client ID you should use.
41
EVERYWORD™ – QUICK START AND USER GUIDE
• SerialNum – By default, the SerialNum is determined by the MAC address of the Wifi
module in EWM. If you wish to modify this to produce a different unique number,
modified the file:
/home/root/AVSnix/genSerialNum.sh
• Enter ProdID and Client ID into the AVS Config fields. You can also enter your own
SerialNum to override default but suggest you only do this for testing.
• Click on SUBMIT button to overwrite JSON file and delete AVS databases
• Start AVS and redo Authorization
o Wait for User code to appear
o Login to Amazon User account (not necessarily the Developer account)
o Enter userCode to create the connection to Amazon
Configuration on EveryWord™
The audio configuration for the EWM is usually done in the /opt/ewmSetup.sh file. This script is
run on every boot. One can edit this file to change:
• The mic configuration (9 choices) – Varies the number and orientation of the
microphones being used. The choices are:
o (default) DACE – 4 mics in Y
o EF – 2 mics in line
o CA – 2 mics in line
o DF– 2 mics in line
o DB – 2 mics in line
o DEF – 3 mics in line
o DAC – 2 mics in triangle
o DEFB – 4 mics in line
o DABC – 4 mics in diamond
42
EVERYWORD™ – QUICK START AND USER GUIDE
The microphones A-F are oriented as follows:
• The Trigger select (4 choices) – The WWE (WakeWordEngine) being used as the trigger
o (defrault) AmzVPU – Amazon trigger running on DSP
o AmzAP – Amazon trigger running on NXP processor
o SensoryVPU – Sensory trigger running on DSP (requires license)
o SensoryAP – Sensory trigger running on NXP processor (requires license)
• Number of AudioRef channels – Number of audio ref channels in the RX direction. This
can vary from 1 to 5 and is used to minimize audio in the RX path from the TX
(microphone path). Output of these signals on the 2 availble channels in EWM is
optional. Only NumAudio=1 or 2 is completely enabled in v1.0.5.
NOTE: This parameter is for the TX output path. The RX microphone path always
reduces 2 to 4 microphones down to a single audio channel. Therefore the RX
microphone path is never stereo but can be two versions of the same signal with
different amount of processing. Therefore the number of channels on the RX and TX
paths are independent of each other.
NOTE: 3 to 5 audio channels of audio reference can be implemented in this device but
cannot be output directly (since there are only 2 output channels). How these additional
audio channels are input to the device varies by application. Please contact ArkX for
further info.
• UAC1 or UAC2 for usbAudio – The USB Audio class drivers being used within EWM.
o (default) UAC1 – Used for 2in/2out of 48KHz 16b audio over USB. This format is
supported by MacOS, Windows, and Linux.
o UAC2 – Used for more than 2in/2out audio channels and requires USB2. Linux
and MacOS support a partial implementation of UAC2 which is supported in
EWM. Windows requires a fuller implementation of UAC2 which is not yet
supported in EWM as of v1.0.5
• Sbridge – Program to connect EWM to Cirrus SoundClear development program over
the network
43
EVERYWORD™ – QUICK START AND USER GUIDE
o (default) Enabled – starts up small server program for SoundBridge to connect to
o Disabled – Does NOT startup soundbridge program
• Initial audio tuning – DSP in the Cirrus chips can be tuned for either ASR
(AudioSpeechRecognition) or VOICE (human-to-human). By default, we set DSP to
VOICE so they can handle usbAudio. If AVS is started, it will load the ASR values.
Therefore, the user should be aware of this setting when using usbAudio.
USB Audio on EveryWord™
The EWM device can be used as an audio device connected over USB using either UAC1 or
UAC2 (UsbAudioClass2) protocol. Since these protocols are “standard”, one should be able to
use it with native drivers on MacOS, Linux, and Windows. Currently we are using UAC1 since
it will work on all three OS’s while UAC2 only works on Mac/Linux. This can be changed in the
/opt/ewmSetup.sh file on EWM.
With the UAC1 or UAC2 audio connection, the EWM appears as a USB peripheral to the host
computer. Only the USB-C port on the EWM can be used as a USB peripheral (although the
USB-C is OTG and can also be used as a single device master). Use a USB cable with a USB-
C on the EWM end and either a USB-C or USB-A on the other (depending on your available
host connections). Although it uses the USB-C connector, the EWM only supports USB2.0 (High
Speed), not USB3.0/3.1 (SuperSpeed).
In the v1.0.5 version of EWM, the usbAudio can be setup in two configurations for the output TX
path:
• (default) NumAudio=1 TX - Speaker TX path combines the LR audio signals from USB
and outputs the same combined signal to both the L and R output. This allows AVS to
play stereo music that is properly combined for a signal speaker output.
• NumAudio=2 TX path - Speaker TX path is 2 channel stero
The RX microphone path in usbAudio is always the same. It processes the 2 to 4 mics down to
a single audio signal with two variations:
• Spectral filtered signal from mics to L
• Spatial filtered signal from mics to R (this is also the WWE audio input)
The initial USB Audio use cases provided on EWM are:
• 2in/2out soundcard - This allows EWM to be connected to a host computer as a
soundcard where: o Stereo audio is sent to the EWM for output and audio ref signal o 2 variations of the processed mic signal are returned
44
EVERYWORD™ – QUICK START AND USER GUIDE
• Audio signals go thru the ASP1 port on the Wright chip which is configured as 2in/2out
16bit 48Hz.
The stereo audio in signal is used as audio reference for echo cancellation and other
processing. Each signal (left/right) is 16bits at 48KHz sampling rate. Although internal
processing is done at 16KHz sampling, the Audio In signal at 48KHz is carried thru to Speakers
and Lineout in 48KHz format. Although Audio In is required for processing, it is not required to
use the Speaker or Line Out outputs. The Audio-In signal can be tee'ed before EWM and sent
to Speakers in parallel with EWM.
The stereo out signal is actually 2 mono signals. The 4 mics on the EWM will be processed
down to a signal mono signal with two versions returned over the Left/Right channels. One will
be more highly processed than the other. The user may use the most appropriate for their use.
Currently, Amazon Alexa servers prefer a highly processed mic signal while Google Assistant
works better with a lightly processed mic signal.
USB Audio Setup using EveryWord™ Console
The user can control usbAudio thru the EveryWord™ Console by clicking on the “usbAudio
Controls” tab in the left side of the EveryWord™ Console.
AutoStart – toggle to enable usbAudio to always start on boot
Start/Stop button – Pushbutton to start/stop usbAudio. Its function changes according to
whether usbAudio is running or not.
ReloadVoiceSettings – Pushbutton to reload DSP with settings oriented toward Voice (human-
to-human) audio rather than ASR (AudioSpeechRecognition) audio. When AVS is started, it will
load ASR settings. This button allows user to return setting to VOICE when using usbAudio for
45
EVERYWORD™ – QUICK START AND USER GUIDE
Zoom or Skype or Audacity. The user may not want the VOICE settings if the intent is to use
Audacity to see ASR audio signals going to Amazon or the WWE.
USB Audio Setup using Command line on EveryWord™
The script to implement this use case is /opt/usbSoundcard.sh on the EWM. The steps to run
this use case are:
1) Reboot EWM and log into the EWM (HW console or ssh)
2) Start the script
sh /opt/usbSoundcard.sh
3) Connect a USB cable from a Mac or Linux (not VM) machine to the USB-C on the EWM
4) On the EWM, the connection to the host appears as a UAC2 Gadget
# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SoundCard [SurfaceInk SoundCard], device 0: cpu-codec-asp1 clsic-asp1-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: SoundCard [SurfaceInk SoundCard], device 1: cpu-codec-asp2 clsic-asp2-1 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: UAC2Gadget [UAC2_Gadget], device 0: UAC2 PCM [UAC2 PCM]
Subdevices: 0/1
Subdevice #0: subdevice #0
5) If the host computer is Linux it will appear as
a. lsusb Linux Foundation Audio Gadget
b. Audacity Linux USB Audio Gadget
6) If the host computer is Mac it will appear as
a. ioreg -p IOUSB -l Linux USB Audio Gadget
b. Audacity EWM UAC2 Capture or EWM UAC2 Playback
7) At this point the EWM looks like USB soundcard to the host until the EWM is
disconnected or rebooted. Currently, this can not be run at the same time as the AVS
application.
46
EVERYWORD™ – QUICK START AND USER GUIDE
Using Cirrus Soundbridge on EveryWord™
Cirrus supplies a tuning tool called SoundClear Studio that is run on a Windows computer. The
EWM can be connected to this tool through a network tool called SoundBridge. To connect the
EWM to SoundClear Studio, do the following steps:
1) Login to EWM and start the sound bridge daemon as follows
Sbridge --daemonize
2) Determine the IP address of the EWM with “ipconfig” or “ip addr”. One can use either the
WiFi (WLAN) IP address or an Ethernet connection that will appear if one connects a
USB dongle to the USB-A port on the EWM.
3) Startup Cirrus Logic SoundClear Studio
a. Tools StudioBridge Connection
b. Enter the IP address if EWM
c. Connect
Adjusting LED Behavior on the EveryWord™
The LED behavior of the EWM is controlled by a python script at:
/home/pi/si_hook/led_state.py
This script converts AVS “state” to a particular LED behavior. Look for the “cmds” array that
associates the “state” with a LED behavior. One can change the LED behavior by modifying the
LED routines or which LED routine is associated with each state.
Troubleshooting
Wi-Fi having issues connecting: If the device is having trouble connecting to WiFi, please try:
1. Connect to the internet via LAN / Ethernet of the User Manual
2. Check that the antenna is plugged in as shown in the image below.
47
EVERYWORD™ – QUICK START AND USER GUIDE
Red LEDs Lit Up: If the red LEDs are lit up, then the microphones are disabled. Press the Mic
Control Button in the center of the top of the unit to enable the microphones.
Alexa stops responding to Commands: If Alexa stops responding to commands try:
1. Stopping and restarting the AVS-APP under the AVS controls tab in the console.
2. If #1 does not resolve the issue, unplug the unit and then plug back in to reboot the system.
Reconnect to the device using the EveryWord™ Console and restart the AVS-APP if
needed.
More information and technical support For full details of the EveryWord™ Module hardware and to request help with your specific
implementation, please contact ArkX Laboratories by visiting arkxlabs.com
Cirrus Logic components’ user guides and datasheets can be downloaded or obtained online at:
www.cirrus.com
The full datasheet of the microphone components in EveryWord™ is available at:
www.knowles.com
Model Number: EWM-DK1
Ark-x Laboratories
115 E. Santa Clara Street, Suite 210
San Jose, CA 95113
http://www.arkxlabs.com
FCC Notice This kit is designed to allow:
(1) Product developers to evaluate electronic components, circuitry, or software associated with
the kit to determine whether to incorporate such items in a finished product and
48
EVERYWORD™ – QUICK START AND USER GUIDE
(2) Software developers to write software applications for use with the end product. This kit is
not a finished product and when assembled may not be resold or otherwise marketed unless all
required FCC equipment authorizations are first obtained. Operation is subject to the condition
that this product not cause harmful interference to licensed radio stations and that this product
accept harmful interference. Unless the assembled kit is designed to operate under part 15, part
18 or part 95 of this chapter, the operator of the kit must operate under the authority of an FCC
license holder or must secure an experimental authorization under part 5 of this chapter.
CAUTION: Changes or modifications not expressly approved by the party responsible for
compliance could void the user's authority to operate the equipment.
This equipment is a prototype unit which is intended for purposes of research and
development, experimentation, demonstration or assessment of marketability. It cannot be
leased, sold, or offered for sale in Canada.
Ce matériel est un prototype destiné à la recherche et au développement, à
l’expérimentation, à la démonstration ou à l’évaluation de sa commercialité. Il ne peut être
loué, vendu ou mis en vente au Canada.