Matrix VOICE Dev Board - Review

Table of contents

RoadTest: Matrix VOICE Dev Board

Author: shwetankv007

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Not Sure (probably RPi with alexa SDK for voice assistant)

What were the biggest problems encountered?: The product is good and since it's new, the community support is still growing. However, I didn't had any unsolved issues while testing the board for my review. But I have heard people talk that the community is quite active.

Detailed Review:

Pre-Notes:- Hello everyone, I know that I am quite late in posting the review for the Matrix Voice board. The deadline expired a couple of months back and I have been hung up with some personal and professional crisis. Now since things have started to fall in order, and I wanted to continue contributing to the E14 Community, I asked to let me write the review and I really appreciate that he supported me for the same.

So a big thanks to

Now let's get started with the product review.

 

INTRODUCTION

 

So in order to get started with the review and getting to know about the matrix voice, I came across it’s sibling i.e. Matrix Creator. Now the first and obvious question that came to my mind was......what is the difference between the two.

And so far as I could study and articulate, I found that indeed there is a need for a versus between the two...yeah I like the sound of that too....(evil laugh)

 

It seems like matrix creator is the big brother here, and no I am not quoting george orwell. Matrix creator is literally bigger in terms of the size and also the fetures with added sensors, NFC and an ESP32. Matrix voice however seems is built for voice and automation projects specifically. It features a huge support for voice assistance.

 

Here is what the official website of the product says:-

MATRIX Voice is a development board for building sound driven behaviors and interfaces. MATRIX Voice was built with a mission to give every maker, tinkerer, and developer around the world a complete, affordable, and user-friendly tool for simple to complex Internet of Things (IoT) voice app creation.

 

Now focus, the keyword above was VOICE.

 

So I was thinking of trying the Matrix Voice standalone and maybe use some communication medium to interface it with other devices. However I soon realized that in order to make this standalone you actually need to program it using a raspberry pi.

By now I am starting to feel that this product is basically a shield that adds an array of microphones to give a decent audio capture that can be used for further processing. Apart from that, I honestly don’t see much in this particular product. Now I know that it has a Spartan 6 FPGA and probably it be doing something that might blow my mind once I stumble upon the application of it.

For now I will be integrating the board with one of my existing and ongoing project i.e. the picasso project.

It already has a raspberry pi and I will be integrating the voice with it to see if we can have some voice assistance running.

Now here is the deal, this has an FPGA and a USB, I am thinking maybe somebody would be working on getting it directly connected with maybe a linux machine so that we can skip the raspberry pi part. I might just be blabbering words but I look forward to any development on that area.(Please let me know if I can find any material for reference on the same note)

 

 

As I suggested above, I would be using the matrix voice as basically a shield for raspberry pi( or a cape as they say) to the support integration with voice assistance.

As I said there is a space to add an ESP32, but I received the one with a raspberry pi, that basically solves a lot of FPGA programming and provides a wifi and ethernet functionality to it. So essentially I am going to exploit the voice assistant functionality. The voice assistant functionality will really add a lot of appeal to the project. Besides the LED array on the matrix board can be used to generate the radiance for the LCD screen. So yes let's get started with the product arrival.

 

SAY HELLO!!

Here is the first look of the product I received, I took the snaps recently as the package was just received and put in one corner for long. Anyhooo. The package seems intact and the board as I told came with a raspberry pi (as a replacement for ESP32 in order to add the internet functionality to it I suppose). And yes the GPIO extender header too.

So yes that was about it, and fired up the whole thing using just a USB power cable in order to see if there was any preloaded stuff. And yes there is I think a factory software of some sort that basically demonstrates the different radiance levels of the LEDs starting from "off" to "maximum radiance".

 

{gallery} Matrix Voice

Matrix Voice fired up with the demonstration software

 

Board Overview & Board Investigation

 

So the board itself stands out from many other development boards because of it's circular appeal. Well I actually find it cool along with the whole LEDs at the corner. Also I like the small cavity for the PiCam, there are literally half a dozen of cool projects right now in my mind that can be put to use because of this little detail.

Moving on to the onboard peripherals and the hardware part. Now I soon realized that the hardware is not open source so I won't be going into much details myself for the sake of respect to the developers. Here are the list of Hardware components that one can find on the board along with the links to know more about each of the individual peripherals:-

Xilinx Spartan 6 FPGA - XC6SLX9-2FTG256C

8 MEMS audio sensor digital microphones - MP34DB02

Serial Flash - MX25L6406E

DDR2 SDRAM 512MBIT - MT47H32M16

3W Stereo Class-D Audio Amplifier and Class-AB Headphone Driver - PAM8019

RGBW LED - SK6812RGBW

 

The matrix voice datasheet actually provides a lot of insights on the onboard peripherals. So it starts with a neat block diagram that shows the raspberry pi extension connections and their signals, the microphone array, flash, SDRAM and the onboard LEDs

 

 

{gallery} Matrix Voice hardware components

The block diagram

Front side of the matrix voice board

Note that in my case the ESP32 is not populated on the PCB

I like the fact that there are minimal discrete components or support components on the board since most of the work had been done by using dedicated chips to improve performance and reduce the number of components.

 

 

Xilinx Spartan 6 FPGA

Let's get into details about each of the hardware components used in the board.

So first and foremost we have the heart of the whole development board i.e. the Spartan 6 FPGA. Well I am not at all an expert in FPGA but I know that these are highly specialized hardware that can be used to perform tasks such as signal processing, ASIC prototyping and maybe implementing a logic on top of these. Tools and software are used to program these devices that basically develops a whole new IC for you. They really differ from embedded MCUs in terms that these are generally high performing and faster since the logic can be directly implemented in the hardware by programming the gate arrays. I do have some verilog experience but never done a hands on any of these and that was also one of the reasons to get my hands on this particular roadtest. I look forward to learn and implement something serious on this tech. The matrix voice uses an XC6SLX9-2FTG256C, which is a 256 pin chip with a maximum of 186 user IOs. So just as the case for MCUs, the first thing that is considered while choosing an FPGA is the number of user IOs required. Then comes the number of logic cells and the RAM block.

 

Connectors & Headers

So there are essentially two header connections that we can see, there is a USB port and a 3.5mm audio jack(more on this later). So out of the two female headers, the longer one is for the raspberry pi header connections in order to interface with the raspberry pi. The second is basically an expansion of the IO ports from the spartan 6. I actually saw a few guides that walked through for using the IO ports by programming the FPGA. Then there is a standard micro USB port for powering and communication purpose perhaps.

 

Audio Section

As said above, there a 3.5mm jack on the board that can connect to a small external speaker while interacting with let's say the voice assistant. They have used a 3Watt PAM8019 that is a class D audio amplifier. I have used the PAM series of amplifiers and these are quite standard in the industry. The PAM8019 features a class D amplifier and support a class AB headphone driver, also it has DC volume control so a simple potentiometre can be used to adjust the volume level. Now the datasheet is good and one can find a lot of application notes for the chip. Also the datasheet shows a detailed table showing the voltage levels at volume pin and the corresponding amplifier gain, which is quite handy at the time of development and testing.

 

Memory Section

The FPGA supports upto DDR3 memory unit and also low power memory. In case of matrix voice, we get a 512Mb of DDR2 RAM that is fairly sufficient for the applications at hand. However the overall combination of raspberry pi and matrix voice created lot of heating issues in raspberry pi and reducing the performance of Pi. However I suppose the problem lies with raspberry pi's capabilities.

On the back side one can see a serial flash with a memory size of 64Mbits. This is basically an SPI serial flash and Macronix claims a lifetime of more than 100,000 read write cycles, which is pretty decent.

 

EDGE LEDs

And last but not the least, there are 18 RGBW( Red Green Blue White) LEDs, As I said the circular PCB and the corner LEDs give a really unique look to the development board for me. Also the radiance of these LEDs is quite good too.

 

The Software Setup

So there is quite a lot material about the projects people have done over the platform and the matrix community also have legit guides about the projects. I followed one that walks through setting up of alexa on matrix voice. Here is the link https://www.hackster.io/matrix-labs/matrix-voice-and-matrix-creator-running-alexa-c-version-9b9d8d

 

Now the guide is pretty straightforward and it says you to firstly have a raspberry pi operating system if you don't have one already, setup the basic matrix package and the kernel modules for the same in order to communicate with the shield. I however got hung up with a lot of errors during the installation. Sometimes it was due to an unsupported kernel version, other times it were unknown to me. I searched online like anything but couldn't get the thing running. However at last I decided to reinstall the Raspbian image on a different SD card and the required packages.

 

This time it did worked well. Below are the steps that might be required in a nutshell:-

1.) Get an OS for raspberry pi if not already installed( On a class 10 SD card - recommended).

2.) Add the repository and key -> update the package list and download the same.

3.) Install the packages - "matrixio-creator-init" and "matrixio-kernel-modules"

4.) Reboot to get the changes made !!

5.) Register the Alexa device on amazon and save the ClientID.

6.) Download and install Alexa SDK for use.

7.) Run the sample file (startsample.sh)

8.) Alexa is up and running !!

 

 

 

Well I tried some basic stuff on alexa and the voice assistance, I have to say that the latency in response is better than I expected( I know it also depends on the internet connectivity, still it's good.) Well apart from the lame jokes, I actually like a lot of functionalities of the AI including the smart home. Currently I am a long way from integrating it with the Picasso for a complete product that will be running slideshows, can capture images and convert it into a masterpiece, play background music along with lights and includes a voice assistant. Sounds nothing less than a science fiction( well sort of), but I won't be stopping at this that's for sure.

Anyways, here is a little video of alexa.

 

 

 

 

{gallery} Matrix_voice and Picasso

 

 

And this is when Musical Picasso meets alexa, I have to say that the radiance is not upto the mark, I still might add some LED for the back radiance and try to sync it with alexa's response. But overall this might turn out to be good.

 

 

Some More Fun!!

Now while reading about the development board I actually found a lot of cool projects that used various features of the board. Of those I really liked the ODAS application for direction of arrival. ODAS here stands for Open embeddeD Audition System ( yeah that's a weird acronym). Apart from the creepy full form ODAS is basically a library that helps to perform sound source localization, tracking and post-filtering. This library is written in C and is quite effective. So what I did was I followed a well drafted project guide from hackster again.

https://www.hackster.io/matrix-labs/direction-of-arrival-for-matrix-voice-creator-using-odas-b7a15b

Above is the link for the same. What we basically need to do  is to install the required dependencies for Matrix development board such as the initialization package, HAL package and the kernel modules( skip anyone if already installed).

Then we need to get the ODAS library and compile the same (make make make)[ note that we need some dependencies such as the fft and sound package that are utilized by the ODAS library and need to be installed prior to ODAS]

Now we can go ahead and try out the example.

 

Ending Words!!

Well the product in a nutshell is a great place to get to know about the whole voice assistance arena. Moreover the microphone array gives a really good audio collection and response at the same time. There are barely any false or no reception per se. Besides that, the Spartan 6 is really something that I would like to work on more, the extended pins that are directly connected to the FPGA IOs are what I will be looking at next. This may share some processing load from the raspberry pi itself. Though I need to attach this to a raspberry pi for the sake of internet connectivity, using the FPGA for trivial tasks can reduce the load from pi in the overall project.

I would also say that the community support is not as good as the raspberry pi itself but these people are working really hard to put good information about the board and also support the debugging during any issues(hearsay ). My next step would be to finally fully integrate the musical picasso and add the voice assistant functionality to it. There would definitely be followup blogs after this review.

Again I really appreciate for the appreciation.

Anonymous