Could not program FPGA

Hi, i’m a new user of MATRIX CREATOR.
Sorry for my english, is not the best one…

I have a problem when i want to try the hardware tests…

pi@raspberrypi:~ $ sudo /usr/share/matrixlabs/matrixio-devices/matrix-init.bash
MATRIX device has not been detected
**** Could not program FPGA
MATRIX device has not been detected

pi@raspberrypi:~ $ sudo /usr/share/matrixlabs/matrixio-devices/fpga_info
INFO: [/dev/spidev0.0] was opened
MATRIX device has not been detected

pi@raspberrypi:~ $ cd /usr/share/matrixlabs/matrixio-devices/
pi@raspberrypi:/usr/share/matrixlabs/matrixio-devices $ sudo ./fpga-program.bash
MATRIX device has not been detected
**** Could not program FPGA

pi@raspberrypi:/usr/share/matrixlabs/matrixio-devices $ 

I have read that i have to contact the assistance…

That’s why i’m here.
Thanks for your respond.

Hi @domino,

Can you share this to better help you troubleshoot the board?:

  1. What version of Raspberry Pi are you using?
  2. What version of Raspbian are you using? With desktop or Lite version?
  3. Did you do a fresh install of Raspbian before following the Hardware Test guide? If not please can you try this and share results?
  4. Have you done any modification change or solder onto the board?
  5. Would it be possible for you to share front and back photo of your MATRIX Creator board?

Thank you.

I am having the same problem…
I am using Raspbian desktop
I have fresh installed Raspbian today, but getting the same results…

The matrix board was not damaged or soldered… …

Can you post some fixes…

Hi Ahsan,

Did you try this hardware test from scratch?

If so, please post your output from the tests so we can better understand what is going on. Thanks!

I was using GPIO cable. That took me. Some time to realize that the cable was power up the matrix careator but was not communication properly with rpi.
It started working when I switched them directly.
I will keep on posting my project results and my progress.

1 Like

Hi Ahsan, can you explain with more details what were you using the GPIO cable for and how you connected it?
Also if you can share the outputs you got would be useful.


Hi All,
I 3D printed a tube device in which all of my equipment i.e Rpi MC Power Supply, goes in.
The MC is not connected directly on to the Rpi, but I have to use GPIO cable male-female for the connection.
In my case, the cable was not functioning properly. It was powering up the MC but, the HW tests still showed -No hardware Found-.

Hi All,
I want to test some HW for my project, I am looking for a small script, to control a relay using GPIO extension pins of the Matrix creator.
Please share a link.


Hey Ahsan,

Not sure if you’ve figured it out already, but using a relay is fairly simple. It consists of sending “on” or “off” through the GPIOs on the MATRIX device. I’m not sure what programming layer you are using, but for example in MATRIX HAL, following the HAL GPIO references and examples, turning a pin high or low would look something like this.

// System calls
#include <unistd.h>
// Input/output streams and functions
#include <iostream>

// Interfaces with GPIO
#include "matrix_hal/gpio_control.h"
// Communicates with MATRIX device
#include "matrix_hal/matrixio_bus.h"

// GPIOOutputMode is 1
const uint16_t GPIOOutputMode = 1;
// GPIOInputMode is 0
const uint16_t GPIOInputMode = 0;

// Holds desired GPIO pin for output [0-15]
uint16_t pin_out;
// Holds desired output state
uint16_t pin_out_state;
// Holds desired GPIO pin for input [0-15]
uint16_t pin_in;

int main() {
// Create MatrixIOBus object for hardware communication
  matrix_hal::MatrixIOBus bus;
// Initialize bus and exit program if error occurs
  if (!bus.Init()) return false;

// Create GPIOControl object
  matrix_hal::GPIOControl gpio;
// Set gpio to use MatrixIOBus bus

// Select a GPIO pin that you connect the relay board signal to. Pin 0 here.
   pin_out = 0;
// Set pinout state to 0 for "LOW" and 1 for "HIGH". "HIGH" in this case.
   pin_out_state = 1;

// Set pin_out mode to output
  gpio.SetMode(pin_out, GPIOOutputMode);

 // Set pin_out to output pin_out_state
  gpio.SetGPIOValue(pin_out, pin_out_state);

If you wish to use JavaScript or Python, check out the MATRIX Core examples & references here.

Hey Samreen,
Yes, thank you. I already figured out. I was a bit with the dissertation of my other project.
I want to use GPIO Ribbon cable between my RPi and MC, but the problem I am getting from the start of the project is that, the MC don’t work with the GPIO ribbon cable but works fin when I plug it directly to the RPi.
I trying to find some solution to my problem. The project apparatus needs a few inches gap between RPi and MC for my project.

MATRIX device has not been detected with the GPIO ribbon.
Need some solution, for that I have changed multiple GPIO ribbon cables.

Thank you.


Can you send a picture here of the ribbon cable connected to the RPi and MATRIX Creator so I can see how you’re connecting them?

The matrix has started working with GPIO Ribbon cable.
Previously, I was using a GPIO (female to female) which was about 1 foot long, for which I was using the connection pins to connect it with the MC. This orientation made the the upper part (near the pressure module) of the MC to heat up . I don’t know what to question, the resistance from the longer wire or the quality of the connector pins.
Now, I have cut the wire short, about 4 inches and attached a male connector at the end. it started working.

I have tested that, if the Rpi and MC are switched the other way round, the Rpi dont boot up.


1 Like


Thank you for the update. Glad it’s working!