everyword™ – quick start and user guide - arkx labs

48
1 EVERYWORDQUICK START AND USER GUIDE EVERYWORD™ – QUICK START AND USER GUIDE September 2020

Upload: others

Post on 26-Apr-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

1

EVERYWORD™ – QUICK START AND USER GUIDE

EVERYWORD™ – QUICK START AND USER GUIDE September 2020

Page 2: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 3: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 4: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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)

Page 5: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 6: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 7: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 8: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 9: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 10: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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:

Page 11: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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”

Page 12: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 13: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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,

Page 14: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 15: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 16: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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!”

Page 17: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 18: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

18

EVERYWORD™ – QUICK START AND USER GUIDE

Page 19: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 20: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 21: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 22: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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)

Page 23: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 24: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 25: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 26: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 27: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 28: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 29: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 30: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 31: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 32: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 33: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 34: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 35: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 36: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 37: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 38: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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:

Page 39: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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:

Page 40: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 41: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 42: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 43: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 44: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 45: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 46: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.

Page 47: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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

Page 48: EVERYWORD™ – QUICK START AND USER GUIDE - ArkX Labs

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.