Skip navigation
> RoadTest Reviews

Matrix Creator for the Raspberry Pi - Review

Scoring

Product Performed to Expectations: 7
Specifications were sufficient to design with: 8
Demo Software was of good quality: 7
Product was easy to use: 7
Support materials were available: 9
The price to performance ratio was good: 9
TotalScore: 47 / 60
  • RoadTest: Matrix Creator for the Raspberry Pi
  • Buy Now
  • Evaluation Type: Development Boards & Tools
  • Was everything in the box required?: Yes - I received only Matrix board while to run it, Raspberry PI is demanded. In my case it wasn't important as I had own RPi as well as received the newest model, participating previous roadtests.
  • Comparable Products/Other parts you considered: Raspberry Pi extension boards with set of sensors.
  • What were the biggest problems encountered?: Lack of FPGA programming support; Problems with power-off Raspberry with Matrix onboard; Unstability of the set - especially when stopping applications.

  • Detailed Review:

    Introduction

    MATRIX Creator

    A fully-featured development board for the Raspberry Pi with various sensors and communication protocols such as a 3D Gyroscope, Accelerometer, an 8 Microphone Array, zigbee, Z-Wave, and more!

     

    I was really curious about the Matrix Creator. Honestly, I found about it only on the E14 Roadtest page. Having no great hope, I send application but without the luck. Than around two months later the extra module was announced.

    Thank you for selecting me as the tester.

    Soon, the “roundel” was delivered and our adventure began.

     

    Let me quote something about specification and features of Matrix Creator

    The board is designed as the extension for the Raspberry Pi

    But according to R-T announcement (https://www.element14.com/community/roadTests/1887/l/matrix-creator-for-the-raspberry-pi)

    MATRIX Creator is a fully-featured development board and daughter board for the Raspberry Pi.

    Matrix disk includes sensors, wireless communications, and an FPGA.

    It is equipped  with full suite of short-range wireless radios and IR as well as an ultraviolet detector.

    Main features:

    The set of  sensors is truly impressing especially microphone array and  35 LEDs ensure fabulous visualization!

     

    Unpacking

    Can I repeat - from my previous test?...

    "There is nothing better than opening the package with brand new, sophisticated electronic device (for me at least…)"

    MATRIX Creator - the set

    I was provided with the box contained the MATRIX disc. It is EU Z-Wave version (868MHz).

    MATRIX BOX

    matrix top

    matrix bottom

     

    As mentioned in remarks on the beginning, I've been provided with the matrix board alone, unlike other testers who received it together with the RPi.

    hopefully Raspberry Pi (not only one - to be honest and precise) waited in my drawer - thus nothing stopped me from starting tests.

    I decided to take to that roadtest the newest Raspberry version - Raspberry Pi 3 Model B+

     

    HARDWARE - GPIO

    GPIO Locations

    Expansion GPIO

     

     

    Documentation, support etc.

    MATRIX Creator papers and instructions are available mostly on

    Matrix site:

    https://www.matrix.one


    And on GitHub - Matrix Labs

    https://github.com/matrix-io

     

    Especially also here:

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

     

    I must admit, I was lost sometimes using these sites and trying to use accumulated there knowledge but always the solution was available.

    There is very helpful matrix community forum:

    https://community.matrix.one

    I like examples collected  and made available on pages above.

    It is worth to notice that during my experiments some descriptions and fragments of the documentation have been significantly changed.

    Surprisingly, sometimes following notice appeared:

    It made the mess a little! Especially when making own documentation and notes, which became obsolate.

    But generally, documentation is becoming more and more complex and helpful when starting the board.

     

    According to above described instructions I decided to conduct setting up the MATRIX.

    I worked with Matrix using SSH - (VNC to be precise).

     

    MATRIX CORE

    MATRIX CORE is an abstraction layer for MATRIX HAL and the foundation for MATRIX OS. That makes device information accessible via high-level interfaces.

    This layer uses Protocol Buffers & ZeroMQ to communicate with MATRIX device. Applications for MATRIX device can be programmed with any language

    that supports these tools (Supports 40+ different languages through Protocol Buffers: C++, Python, Ruby, PHP, Java, etc).

    MATRIX CORE functions by sending and receiving Protocol Buffers over a ZeroMQ connection.

    This can be used to query sensors and control any MATRIX device from any language that supports Protocol Buffers (version 3.X) and ZeroMQ.

    This is the basis for how the MATRIX OS layer can communicate with the  MATRIX device.

    Ports & Protocol

    MATRIX CORE contains drivers (components & sensors) that communicate with the MATRIX device. This occurs by having each driver send

    or receive Protocol Buffers over a ZeroMQ driver port. Depending on the driver port it may allow for read-only, write-only or read-write.

    Current Driver Base Ports:

    • IMU - 20013
    • Humidity - 20017
    • Everloop - 20021
    • Pressure - 20025
    • UV - 20029
    • Servo - 20045
    • GPIO - 20049
    • Wakeword - 60001
    • IMU Keep-Alive Port - 20014
    • IMU Error Port - 20015

      IMU Data Update Port - 20016

     

    Installing MATRIX CORE

    The begin is truly simple.

    just few commands in RPi terminal

    pi@raspberrypi:~ $ curl https://apt.matrix.one/doc/apt-key.gpg | sudo apt-key add -

      % Total    % Received % Xferd  Average Speed Time    Time     Time  Current Dload  Upload  Total Spent    Left  Speed

    100  2203 100  2203    0     0  2633      0 --:--:-- --:--:-- --:--:--  2638

    pi@raspberrypi:~ $ echo "deb https://apt.matrix.one/raspbian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/matrixlabs.list

    deb https://apt.matrix.one/raspbian stretch main

    pi@raspberrypi:~ $ sudo apt-get install matrixio-malos

     

    The following additional packages will be installed:

      libfftw3-bin libfftw3-dev libftdi1 libgflags-dev libgflags2v5

      libmatrixio-creator-hal libmatrixio-malos libmatrixio-protos libzmq3-dev

      matrixio-creator-init matrixio-openocd matrixio-protobuf matrixio-xc3sprog

    Suggested packages:

      libfftw3-doc

    The following NEW packages will be installed:

      libfftw3-bin libfftw3-dev libftdi1 libgflags-dev libgflags2v5

      libmatrixio-creator-hal libmatrixio-malos libmatrixio-protos libzmq3-dev

      matrixio-creator-init matrixio-malos matrixio-openocd matrixio-protobuf

      matrixio-xc3sprog

     

    the result:

     

    Successfully built esptool pyaes

    Installing collected packages: ecdsa, pyaes, esptool

    Successfully installed ecdsa-0.13 esptool-2.4.0 pyaes-1.6.1

    Setting up matrixio-malos (0.3.5) ...

    Enabling MALOS service

    Created symlink /etc/systemd/system/multi-user.target.wants/matrixio-malos.service → /lib/systemd/system/matrixio-malos.service.

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

     

    Above step let me start the journey with Matrix.

    here i want to extend relative simple task - stopping and starting malos

    Stopping & Starting

    according to the manual, "if you need to manually stop MATRIX CORE use:"

    sudo pkill -9 malos

    If you need to manually start MATRIX CORE again use:

    malos &

     

    Problem with endless restarting

    I noticed, that RPi with Matrix still rebooting again and again regardless "halt" or "shutdown" command...

    I found discussion about the similiar issue here:  https://community.matrix.one/t/raspberry-pi-doesnt-shutdown-only-reboots/1018

    I knew, that powering-off by brutal unplugging without efficient stop all services may cause memory card breakage.

    Honestly, fear of damage acts really frustrating, on the other hand I didn't want to  keep my Raspberry still powered on...

    Finaly, on the Matrix Community forum I found the solution of the problem. Details here:

    and https://community.matrix.one/t/cant-shutdown-always-reboots/1770/10

    yoelrc88 suggested that The I2C SCL pin at GPIO03 is rebooting the Pi. It is necessary to halt the MCU using JTAG before shutdown.

     

    MATRIX Open System (MOS)

    Highest level of abstraction integrating with MATRIX hardware via MATRIX CORE. This layer requires an online connection and offers an integrated IoT environment that's easy to use.

    • Remote App Deployment
    • Mobile Interface
    • Online Dashboard
    • App Store

    MATRIX Open System (MOS) is open source software for hosting IoT applications. MATRIX Open System runs on node.js, and initially, applications will be written in JavaScript.

    The current workflow of this platform it to deploy and install apps into MATRIX device, from a separate computer, anywhere in the world.

     

    Here we have an example of serious change of manual. Starting experiment installing MOS seems to be natural path of setting up the Matrix. Now we have following remark:

    Installing MOS

     

    https://matrix-io.github.io/matrix-documentation/matrix-os/getting-started/installation/

    and here:

    https://www.hackster.io/ruchir1674/registration-and-installation-of-matrix-os-110057

    also:

    https://rootsaid.com/matrix-setup/

    and:

    https://github.com/matrix-io/matrix-cli

     

    Now I need to work a little on the PC using terminal mostly. It is worth to notice, that our PC must have GIT installed

    also these commands vere necessary!

     

     

    It was...

    hard work...

    something went wrong...

     

    I knew, my steps was incorrect

    first I've unregistered the device

    success!

     

    but now I encountered the massive error trying to register back...

     

    But finally - after renewed registration I got communication with my MATRIX

     

    Login test:

    Matrix login

     

    Screens from raspberry

     

    Command: node ~/matrix-os/index.js

    Let us see  fantastic visual phenomenon “rainbow - like” illuminated by Matrix LEDs

    ---------------------------

    ------------------------------

     

     

    One remark to the above screen - you can see on the bottom:!

    _ _   __  _ __   _ _  _

    |\/|   |__|  | |__/  |   \ /   [o__o]

    |  |   |   |  | |    \  | _/ \_ v0.17.1-nohash

    MATRIX OS can be upgraded. 0.17.0 available! 0.17.1

     

    Unfortunately I don’t know how to upgrade to the v. 0.17.1 (besides 0.17.2. Is visible on matric site)

     

    Using the PC terminal I could install first demo … Hello Word (the standard name of the first program as usual)

    Screen from the putty below:

    Let's start the demo program:

    matrix start HelloWorld  (on PC)

    What I see in the Putty:

    And again we can see  “rainbow - like” illumination on  Matrix LEDs

    ---------------------------

    ------------------------------

     

    Creating own applications

    I did act according to instructions here:

    https://matrix-io.github.io/matrix-documentation/matrix-os/getting-started/applications/

     

    After command:

    matrix create moja_APP

    I’ve got as follow:

    One line in app.js should be enough as the beginning:

     

    Lets compile it

     

    And launch

    matrix deploy moja_APP

    matrix start moja_APP

     

    The result is,t as remarkable as the previous one…

    But it works indeed!

     

     

    GREEN LED APP

     

     

    I must admit there is one issue here, to be honest I couldn't stop the application properly. Sometimes few LEDS remain lighting.

    The best solution was the following sequence:

    source ~/.envrc

    node ~/matrix-os/index.js

    Which “restart” the MATRIX and “clean all LEDS in the end.

     

    WEATHER app

    Using following recipes I tested “weather- related” sensors of MATRIX Creator.

    https://beta.element14.com/community/community/raspberry-pi/blog/2017/08/21/matrix-creator-weather-app

     

    I had to register account on DARK Sky

     

     

    Application starts cloud-condition related animation using MATRIX LEDs

     

    PARTLY CLOUDY

     

    Creating Python Projects

    or – analogical - Java projects (require Node.js)

    Above programming utilities are based, communicate and uses “MATRIX CORE”

     

    programming in python for MATRIX  Is very simple thanks to good manual supported with lots of interesting examples

    https://matrix-io.github.io/matrix-documentation/matrix-core/getting-started/python-installation/

     

    Screens from the setup process below:

     

     

    Simple examples results below

    Pressure& altitude/ temperature  readouts:

     

    And humidity:

     

    MATRIX HAL

    Means - MATRIX Hardware Abstraction Layer

    MATRIX Hardware Abstraction Layer (HAL) is an open source library for directly interfacing with the MATRIX device.

    MATRIX HAL consists of driver files written in C++ which enable the user to write low level programs in C++.

    Interacts with the kernel modules by using C++ drivers, enabling it to access available sensors and components on the device.

     

    According to the advice,

    I’ve installed HAL from the package

    https://matrix-io.github.io/matrix-documentation/matrix-hal/getting-started/

    https://github.com/matrix-io/matrix-creator-hal

     

     

    That let us compile c++ programs.

     

    MATRIX HAL Examples

    As the “bonus” there are lot of demo programs ready to launch.

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

     

     

    My favourite is everloop_moving_dots

     

    Isnt it fantastic?

     

    everloop moving dots demo

     

    MICROPHONE

    First I checked if microphones were recognized by Raspberry.

    I used instructions from there:

    https://matrix-io.github.io/matrix-documentation/matrix-creator/resources/microphone/

    The important condition is Installation of  MATRIX Kernel Modules.

     

    After registering the microphone for Raspberry Pi, running alsamixer we can see - it works fine.

    The command:

    arecord recording.wav -f S16_LE -r 16000 -d 5

    Records sounds to wav file

     

    After installation of HAL we have  folder

    “/home/pi/matrix-hal-examples/build/microphone_array”

    And two applications here:

    Launching Mic_record_file produces 9 “.raw” files

    I converted it into .wav:

     

    sox -r 16000 -c 1 -e signed -c 1 -e signed -b 16 mic_16000_s16le_channel_0.raw channel_0.wav
    Consequently for each file 0 to 8 i.e. audio from channel 0 to 7 and common one with index 8.

    These files could be played using

    aplay channel_0.wav

    More details below:

    https://matrix-io.github.io/matrix-documentation/matrix-hal/examples/microphone/

     

    Direction of detected voice Using ODAS

    Surfing the hackster site with lots of funny examples I found:

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

    That guide shows how to use the MATRIX Creator with ODAS for direction of arrival, tracking, and visualize surrounding sounds.

    ODAS stands for Open embeddeD Audition System. This is a library dedicated to perform sound source localization, tracking, separation and post-filtering.

    ODAS is free and open source. Find more at: https://github.com/introlab/odas

     

    As previously mentioned, matrixio-kernel-modules must be installed.

    Then, I had to clone & build the ODAS repository

    Run of odaslive gave amazing effects:

     

    Direction of detected voice Using ODAS

    ODAS Studio

    I decided also to try ODAS Studio to see a outstanding visualization of the results from odaslive. It was necessary to install ODAS Studio package on my PC.

     

    To everybody who would like to copy this experiment

    Do not use “From prebuilt package” installation method

    The proper way is to follow the Installation From sources

     

     

    FPGA

    Honestly I'm disappointed by the lack of support for SPARTAN chip on the MATRIX board.

     

    ...

     

     

    The question is ... it really lack of proper assistance or... lack of my experience.

    I found following informations about FPGA handling

    https://github.com/matrix-io/matrix-creator-documentation/blob/master/docs/Hardware/fpga.md

    https://github.com/matrix-io/xc3sprog

     

    The xc3sprog is mentioned above.

    xc3sprog is a suite of utilities for programming Xilinx FPGAs, CPLDs, and EEPROMs with the Xilinx Parallel Cable and other JTAG adapters under Linux.

    Used to program the FPGA of the MATRIX Creator via Raspberry Pi.

     

    ...Unfortunately I wasn't brave enough to manipulate with firmware and reach deepest layer of the board.

    I hope I will come back to that issue soon.

     

    OTHER

    simple I2c device check can be preformedas below:

    sudo i2cdetect -y 1

    I2c addresses have been identified:

    1c 38 39 5f 6a

     

    Conclusions

    Below my humble comments to my Matrix Creator assessment

     

    Product Performed to Expectations  7

    I just had bigger expectations and imagination what we can do with MATRIX.

    Truly – we can do a lot or even more and more now. I hope it would be corrected as the device

    and instructions are under intensive update. I hope to get access and better support to manipulate both microcontroller and FPGA

     

    Specifications were sufficient to design with 8

    Again question of accessibility to very reach functionalities and resources of the unit.

    I know it will be adjusted… to be honest it is improved according to changes in documentation.

     

    Demo Software was of good quality 7

    It is under improvement now. I left the assessment from my first impression… sorry

     

    Product was easy to use 7

    Well that point is for assessment of the tester too!

    I can’t say the board was unfriendly…

    During the test we became more and more good friends. But I must mention unpleasant issues,

    when system had to be reinstall or something conducted exactly according to the manual failed.

    Well despite these adventures, MATRIX is still alive, it works well and I hope would bring many discoveries and lot of fun

     

    Support was available 9

    Why not 10… Im’ also wondering… but as written above – dead links, reedited manuals… sometimes I felt lost… but only for the while.

     

    The price to performance ratio was good 9

    Talking about money is difficult.  It nearly double the price of its base – RPI… I hope sales department  did a good job…

    I mentioned it before, the board is rich in sensors and extra modules, indeed. well I think it is worth that value.

     

    cons

    It seems FPGA and legendary Spartan is not provided to general experiments and extension of MATRIX functionality.

    I understand, that it is the core unit responsible form main functions. It is possible to flash new firmware nevertheless link to “required software” seems to be dead!

    Another issue  regards powering off the board.  I found the solution proposed on the forum but there still lack of official proposal.

    I couldn't also stop the single application properly. i.e. sometimes few LEDS remain lighting.

    I must admit that I encountered serious issues setting up and installing system. I tried to conduct it according to instructions

    but sometimes something went wrong resulting need of reinstallation. I must confirm its not big fault in prototyping device.

    I can’t declare, it was definitely not my mistake or problem of communication between Matrix and RPi.

    and one more: I’m not sure how to upgrade MATRIX OS.

     

    pros

    In simple words: fantastic extension for developers.

    As environment - weather related as well as motion/gyro sensors boards are widely popular Matrix gather tem adding microphones array, UV, IF and completes it with charming set of multicolor LEDs.

    Pay attention on variety of communication modules!

     

    FPGA... well...  I’ve put it in both – PROs and CONs details in my FPGA section…

     

    The support is generally very useful and friendly. Matrix Lab cares on their enthusiasts . On official documentation site, on the GitHub ad also on Matrix Community forum many questions can be answered and issues solved.

    I learn best using examples – there lot of them – thanks!

    The MARTIX – Alexa project, Google assistant, ODAS confirm the capacity, power and functionality of the board.

    I see that MATRIX Labs site with documentation https://matrix-io.github.io/matrix-documentation/ is still under serious update and upgrade and that looks promising!

    Now I can see answers for my previous doubts clearly described with friendly support of films and examples “how to do” and "what to type".

     

     

    Thank you again for selecting me as the roadtester and give me opportunity to deal with that extraordinary and amazing board.

    Marek


Comments

Also Enrolling

Enrollment Closes: Sep 4 
Enroll
Enrollment Closes: Sep 6 
Enroll
Enrollment Closes: Sep 9 
Enroll
Enrollment Closes: Aug 30 
Enroll
Enrollment Closes: Aug 31 
Enroll
Enrollment Closes: Sep 10 
Enroll