Matrix Creator for the Raspberry Pi - Review

Table of contents

RoadTest: Matrix Creator for the Raspberry Pi

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?: 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:



imageMATRIX 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 (

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!



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…)"


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





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+



GPIO Locations


Expansion GPIO




Documentation, support etc.

MATRIX Creator papers and instructions are available mostly on

Matrix site:

And on GitHub - Matrix Labs



Especially also here:


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:

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 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 | 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 $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/matrixlabs.list

deb 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:


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



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/ → /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:

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:


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


and here:




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




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:


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!






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.



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




I had to register account on DARK Sky





Application starts cloud-condition related animation using MATRIX LEDs




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


Screens from the setup process below:







Simple examples results below

Pressure& altitude/ temperature  readouts:


And humidity:



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




That let us compile c++ programs.






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



My favourite is everloop_moving_dots



Isnt it fantastic?


everloop moving dots demo



First I checked if microphones were recognized by Raspberry.

I used instructions from there:

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


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:


Direction of detected voice Using ODAS

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

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:


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







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


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.



simple I2c device check can be preformedas below:

sudo i2cdetect -y 1


I2c addresses have been identified:

1c 38 39 5f 6a



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.



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.



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 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.


  • Thank you

    yeah... learning curve - inversely proportional to the tester's age increase

    ... adding vacation season ...

    Nevertheless, I do not give up and plan to explore the board. It will be regularly reported, for sure!

  • Thank you,

    I'm glad you understand my hasitations!


  • Nice review.  I really appreciate when people have scores that represent their opinions concerning the product.  As most products are not perfect, an all 10 score does no service to readers of a review.


    I had concerns about how much a person could make use of  a product that has so much potential, with such a high degree of complexity in a fixed period of time. Highly complex projects need a true evangelist in order to climb that steep of a ladder.  But I really was excited about the array of microphones and the prospect of utilizing this product to assist in performing bird studies and surveys.  I would have loved to try this out, but I honestly felt that given the steep learning curve, I had zero chance of proving this product to be capable of doing anything more that running the pre-developed applications in the time allotted (or that I could commit enough time during that time frame).


    Well done!


  • Nice honest review.


    You have confirmed the types of issues that caused me to pass on applying for this board.


    I suspect that it has the tools I would like to use, but digging through the documentation would be too much for me.