Matrix VOICE Dev Board - Review

Table of contents

RoadTest: Matrix VOICE Dev Board

Author: MARK2011

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?: MATRIX Creator NODE ESP ESP8266 & ESP32

What were the biggest problems encountered?: Issue during initialization, Getting confused when faced changes in exercises/ examples; errors trying to run OTA

Detailed Review:

Introduction

I couldn’t suppose that Matrix Voice especially its ESP32 version differ so much from matrix creator. Honestly, I was sure, Voice is the little brother of Creator,

I was thinking wrong, Probably these boards shouldn’t be compared anymore, nevertheless, communication features, independency (from RPi motherboard) made Voice outstanding device.

Moreover I’m impressed by activity of matrix staff, and all supporting community. It was difficult for me to keep the pace of improved documentation,

changes in tutorials and supporting examples (Hackster). The creativity (despite the fact that we are talking of Voice) is on highest level.

Excuse my language, sorry for too many words and - on the other hand lack of professionalism sometimes.

I assure I have tried to do my best experimenting with Matrix Voice.

 

The day 1 - let's meet each other

 

Despite the fact, all the Matrix Voice project was exciting for me, the Unboxing phase was one of the most pleasant. 

 

May I present you:  very nice looking and poverful SPARTAN 6 ON-BOARD

encircled with LEDs and microphones

All above is widely advertised with the pride by MATRIX

and the new friend - ESP 32

Which seems to be the headquarter of modern communication of our board

 

What else?

The attached, adapter… thanks for it!

is necessary to simply and safely connect our disc with the Raspberry

That project can't be run (or at least initialized) without Raspberry.

In our Roadtest program unlike standard  Matrix Voice, the ESP32 model was delivered without RPi

Frankly I have some expectant to be exercised together with our Voice

The first sight just after powering the couple.

 

Matrix voice main features:

  • Everloop: 18 RGBW LED
  • RAM:        64 MByte 132MHz SDRAM
  • FLASH:    64Mbit Flash Memory
  • ESP32:     (MCU w/WiFi/BT) Wifi 2.4Ghz 802.11bgn - BT 4.0 LE - Microcontroller Tensilica Xtensa dual-core 32-bit LX6

all above make quite comprehensive system:

 

Raspberry Pi 3 features:

  • Quad Core 1.2GHz Broadcom BCM2837 64bit CPU
  • 1GB RAM
  • BCM43438 wireless LAN and Bluetooth Low Energy (BLE) on board
  • 40-pin extended GPIO
  • operating system - Raspbian

 

Documentation overview

 

 

Summary of Information, resources and documentation

 

Some more documentation,

https://voice.matrix.one/

http://community.matrix.one/

https://matrix-io.github.io/matrix-documentation/

https://github.com/matrix-io

 

http://www.farnell.com/datasheets/2608207.pdf

 

For additional documentation and support please refer to:

https://voice.matrix.one/

http://community.matrix.one/

https://matrix-io.github.io/matrix-documentation/

https://github.com/matrix-io

 

It would by siny at all to copy here, in my reports technical description, features and specifications list etc

all these materials are easily available, even linking them is unnecessary IMO.

following resources links from the Matrix site:

 

Nevertheless, let me put here only:

Dealing with RPi + Matrix Voice in the "software" way only above information is not important very much.

But starting experiments with I/Os peripheral instrumentation etc, we must be carry about above voltage and current levels.

 

 

Above drawing I hope to use building appropriate housing. Until now it was only for overall sight of the device.

 

Except, the ESP32 model focuses on wireless communication and connecting

we have still conventional GPIOs RPi compatible

 

 

Preparation to experiments - review of available examples

Starting the adventure with the MATRIX VOICE I simply went at matrix site

https://www.matrix.one/products/voice

It is full of documentation instruction and all required resources to start and experiment with the Voice and Creator.

I decided to check matrix voice capabilities taking exercises from Hackster

https://www.hackster.io/matrix-labs

 

which seems IMHO to be official resource with, worth to emphasize!,  very helpful support!

During my roadtest the content of the above sites have changed quite often.

Which looks great from the point of view of further development

but on the other hand it was confusing when the base concepcion is shifted onto different software resources.

Anyway it was well documented and supported. details - below.

 

I shouldn't neglect one more source of knowledge and ideas for my experiments - there are good materials on GitHub as well!

And

Matrix Voice blogs on Element14

 

 

 

Description of installation and setup as well as previously commented technical specification,  are not needed to be copied here.

Matrix gather all information in their "MATRIX Ecosystem overview "  https://matrix-io.github.io/matrix-documentation/

with three programming concepts ("Layers" : Lite / HAL / Core)

MATRIX Lite  https://matrix-io.github.io/matrix-documentation/matrix-lite/overview/

MATRIX Hardware Abstraction Layer  https://matrix-io.github.io/matrix-documentation/matrix-hal/overview/

MATRIX CORE (MALOS)  https://matrix-io.github.io/matrix-documentation/matrix-core/overview/

 

Well, plenty - and here is the point I was first time confused a little with the "simple"  question... Which way would be most convenient form me?...

The ESP32 model gives even more alternatives…

 

frankly, I had a little experience with dealing with MATRIX boards

My previous tests of Matrix Creator was helpful

https://www.element14.com/community/roadTestReviews/2773/l/matrix-creator-for-the-raspberry-pi-review#jive_content_id_Ma…

On the other hand, I must admit, the technology is in development all the time, It is necessary to update hardvare/ software resources and refresh your knowladge.

 

Anyway, I went on the sure path thanks to the " Device Setup" described on the "matrix.one" site.

 

ESP32 Setup

The aim of that phase is to update Matrix Voice FPGA firmware

and install necessary tools to flash the ESP-WROOM-32.

following you can see selected screens from the ESP32 Setup and my remarks from the installation phase.

https://matrix-io.github.io/matrix-documentation/matrix-voice/esp32/

Success and no warnings  - as you can see above

 

But at the very beginning, attempting to matrix initialization installig MATRIX CORE I got

Trying matrixio-creator-init the error persists

 

 

when "update" "upgrade" I get following failures:

Hit:1 http://archive.raspberrypi.org/debian stretch InRelease

Hit:2 http://raspbian.raspberrypi.org/raspbian stretch InRelease

Reading package lists... Done

E: The method driver /usr/lib/apt/methods/https could not be found.

N: Is the package apt-transport-https installed?

E: Failed to fetch https://apt.matrix.one/raspbian/dists/stretch/InRelease

E: Some index files failed to download. They have been ignored, or old ones used instead.

 

I was sure the solution will be easy available and vell described on Raspberry or Matrix forums

but after weeks of surfing/digging I have nothing!

proposal from the MATRIX community

https://community.matrix.one/t/solved-matrix-creator-hal-not-work/831/5    - doesn't work...

I noticed, that I’m not alone, founding the similar problem:

https://community.matrix.one/t/there-was-a-problem-installing-the-voice-matrices-packages-on-the-up-board-2/1967

My issue remained unsolved for several days...

Then I decided to refresh my Raspberry, downloading the raspbian again

It was the only and the best solution!

Additionally, thanks to the internet/ forums etc I finally found the solution, following line was necessary:

sudo apt-get install apt-transport-https

And now it works fine!

 

There was no obstacles to run

 

  Downloading https://files.pythonhosted.org/packages/5c/85/5654e7b9019739d3d89af0adf528c9ae57a9a26682e3aa012e1e30f20674/esptool-2.6.tar.gz (80kB)

    100% |████████████████████████████████| 81kB 425kB/s

Collecting ecdsa (from esptool)

  Downloading https://files.pythonhosted.org/packages/23/a8/8aa68e70959e1287da9154e5164bb8bd5dd7025e41ae54e8d177b8d165c9/ecdsa-0.13.2-py2.py3-none-any.whl (59kB)

    100% |████████████████████████████████| 61kB 812kB/s

Collecting pyaes (from esptool)

  Downloading https://files.pythonhosted.org/packages/44/66/2c17bae31c906613795711fc78045c285048168919ace2220daa372c7d72/pyaes-1.6.1.tar.gz

Requirement already satisfied: pyserial>=3.0 in /usr/lib/python2.7/dist-packages (from esptool)

Building wheels for collected packages: esptool, pyaes

  Running setup.py bdist_wheel for esptool ... done

  Stored in directory: /root/.cache/pip/wheels/cf/1f/62/7ad4e47843affd4f5b7032a39f1ef8a153c6d27533614d21aa

  Running setup.py bdist_wheel for pyaes ... done

  Stored in directory: /root/.cache/pip/wheels/bd/cf/7b/ced9e8f28c50ed666728e8ab178ffedeb9d06f6a10f85d6432

Successfully built esptool pyaes

Installing collected packages: ecdsa, pyaes, esptool

Successfully installed ecdsa-0.13.2 esptool-2.6 pyaes-1.6.1

Please restart your Raspberry Pi after installation

Processing triggers for libc-bin (2.24-11+deb9u4) ...

 

and finally:

according to instruction I run reset command

 

The Matrix Voice ESP32 model is ready now!

Then I started to modify my arduino environment on the PC to continue the resources setup and make the base for further experiments.

In the middle of that task, I realized, that new idea arose and matrix Voice with ESP32 module

could be run using Platformio instead of Arduino IDE .

Here we're installing all required stuff needed to allow the PC to develop and compile ESP32 projects.

as described in the instructions I had to balance between:

 

VOICE  ESP32 version  and Platformio

Platformio https://platformio.org/  is / among others/ developed as the addon to Visual Studio Code

It is well described and supported

https://github.com/matrix-io/esp32-platformio

 

installation is quite easy as well

 

Soon I was ready to conduct first tests following example instructions

 

Following STAGE - running EXAMPLES

Simplest exercises from Matrix are just "plug and play"

the only requirement is to individually customize the platformio.ini file

 

inside the esp32-platformio folder

 

 

here we are:

I must admit, there was unpleasant issues regarding these relative simple settings

Finally I managed it, according to the last remark from Hackstar:

using Windows, I had to replace the upload_port parameter with the IP of  the MATRIX VOICE ESP32.

to:

upload_port = 192.168.0.46   ;  'MVESP.local'     ; MatrixVoice ESP32 LAN name

 

and save the project

 

installation using ./install.sh and IP number:

 

password to the raspberry is required

 

conducting update:

 

and lib update

finally:

pio run --target upload

 

The  first setup and "Initial" upload must be conducted through Raspberry as described above.

After that the doors (windows at least) to OTA are opened!

 

Matrix Voice board can be powered directly.

 

 

Via OTA

As mentioned above, deploying after "Initial Upload" all further uploads can be done using Over the air concept.

Upload using OTA seems to be simple way indeed

the only thing I need is to open a terminal, go into the project directory,

and run the following command.

pio run --target upload

 

Well that stage works fine

but honestly, exploring the Voice deeper more questions or even issues arised.

Nevertheless it is fascinating and very instructive experience!

 

The next task was to employ both WiFi as well as Bluetooth technology delivered by ESP32

Bluetooth

I went to

Get Started with Bluetooth on MATRIX Voice ESP32

https://www.hackster.io/matrix-labs/get-started-with-bluetooth-on-matrix-voice-esp32-d7a648

 

Initially I was a little confused, thinking, that having "platformio - related" environment

I need to go to the ARDUINO IDE/ ESP32 toolchain installation

Fortunately, at the beginning of september 1019 (thanks for perceptivity)

september 2019 new (revolutionary) instruction appears on Hackster

It shows how to conduct BT/WiFi example using Platformio

 

Create a Bluetooth Mesh of MATRIX Voices

https://www.hackster.io/matrix-labs/create-a-bluetooth-mesh-of-matrix-voices-3748ba

 

in the folder bluetooth

Run Platformio

 

 

Installation via Raspberry went smooth...

but my attempts to upload OTA fails!

according to instructions, running the command.

pio run --target upload

I got error

Despite my efforts, that issue still remains unsolved.

 

In the meantime I tried to set voice direction detection - ODAS system

Using my experience from Matrix Creator https://www.element14.com/community/roadTestReviews/2773/l/matrix-creator-for-the-raspberry-pi-review#jive_content_id_Di…

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

I confirmed that Voice and Creator works fine in that sphere.

 

Conducting other exercises from Hackster, I realized, that description and support is significantly helpful,

I don't want to say,it was worse at the beginning of my adventure with MATRIX anyway, I feel much more comfortable now.

 

The  troubleshooting instructions have been improved and extended.

There are new sections in online manuals as "Reinstall MATRIX Init Package and Reflash FPGA" & “Reinstall MATRIX Kernel Modules”

https://matrix-io.github.io/matrix-documentation/matrix-voice/troubleshooting/

Above you can find also very handy "Hardware Tests".

Conclusions

Thank you for giving me the chance to work with Matrix Voice - indeed - very interesting tool with impressive functions.

It is hard to express everything in simple words. I hope my report above, could help to imagine advantages of the Matrix Voice board.

It is outstanding, comprehensive and gives the great opportunity for interesting experiment or projects.

Combination of microphones array and LEDs enhanced now with ESP32 wireless device give truly new power

and let go beyond barriers. The independence - possibility to run and program the board without the raspberry can’t be overemphasized!

 

Regarding my assessment:

  • Product Performed to Expectations  = 10 no doubts ! (issues are mostly related to my faults or lack of experience!)
  • Specifications were sufficient to design with - Yes of course - as written in my report = 10
  • Demo Software was of good quality   - sorry i give only 6 demo is good or even better but I found some confusions, fuss there.
  • Product was easy to use  - generally yes but as written above some issues and confusions arose
  • Support materials were available - support is perfect and consequently upgraded but sometimes overall update is neglected that cause my confusion nevertheless  I want to repeat my statement: materials are perfect, and thank you for support
  • The price to performance ratio was good  - hard to say… some features and ideas are priceless
Anonymous
  • Thank you,

    I don't give up, support is helpful, my skills are going better thus I hope that cute board will not be thrown to the drawer and forgotten for next centuries

     

    1019 Indeed, I've put my story into definitely pre-MATRIX era

    thank you for perceptivity

  • Great review. Although I could like the device from Matrix, the support issue(s) would scare any reasonable person. It appears if you are not tenacious or have good skills debugging, then the device would be in a dusty corner.

    beginning of september 1019 new (revolutionary) instruction

    Sorry that was before my time