Having issues connecting to Matrix Creator

Aside from these commands, any other thoughts to try debugging? I'm not sure if my Rpi 4 board is broken or if something else is at play.
sudo cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-53, parent: platform/fe200000.gpio, pinctrl-bcm2835:
 gpio-4   (                    |onewire@0           ) out hi    
 gpio-18  (                    |sysfs               ) out hi    
 gpio-26  (                    |sysfs               ) out hi    
 gpio-42  (                    |led0                ) out lo    

gpiochip1: GPIOs 504-511, parent: platform/soc:firmware:gpio, raspberrypi-exp-gpio, can sleep:
 gpio-504 (BT_ON               )
 gpio-505 (WL_ON               )
 gpio-506 (PWR_LED_OFF         |led1                ) out lo    
 gpio-507 (GLOBAL_RESET        )
 gpio-508 (VDD_SD_IO_SEL       |vdd-sd-io           ) out hi    
 gpio-509 (CAM_GPIO            )
 gpio-510 (                    |vcc-sd              ) out hi    
 gpio-511 (                    )

sudo /usr/share/matrixlabs/matrixio-devices/fpga_info
can't open any device
FPGA IDENTIFY = 0
FPGA VERSION = 10bc4

sudo ./fpga-program.bash
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 774 $ OS: Linux
Free software: If you contribute nothing, expect nothing!
Feedback on success/failure/enhancement requests:
        http://sourceforge.net/mail/?group_id=170565 
Check Sourceforge for updates:
        http://sourceforge.net/projects/xc3sprog/develop

WARNING: gpio 4 already exported
ERROR: Couldn't set direction for gpio 4
11111010000000000000000000000000000000000No JTAG Chain found
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 774 $ OS: Linux
Free software: If you contribute nothing, expect nothing!
Feedback on success/failure/enhancement requests:
        http://sourceforge.net/mail/?group_id=170565 
Check Sourceforge for updates:
        http://sourceforge.net/projects/xc3sprog/develop

WARNING: gpio 4 already exported
ERROR: Couldn't set direction for gpio 4
11111010000000000000000000000000000000000No JTAG Chain found
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 774 $ OS: Linux
Free software: If you contribute nothing, expect nothing!
Feedback on success/failure/enhancement requests:
        http://sourceforge.net/mail/?group_id=170565 
Check Sourceforge for updates:
        http://sourceforge.net/projects/xc3sprog/develop

WARNING: gpio 4 already exported
ERROR: Couldn't set direction for gpio 4
11111010000000000000000000000000000000000No JTAG Chain found
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 774 $ OS: Linux
Free software: If you contribute nothing, expect nothing!
Feedback on success/failure/enhancement requests:
        http://sourceforge.net/mail/?group_id=170565 
Check Sourceforge for updates:
        http://sourceforge.net/projects/xc3sprog/develop

WARNING: gpio 4 already exported
ERROR: Couldn't set direction for gpio 4
11111010000000000000000000000000000000000No JTAG Chain found
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 774 $ OS: Linux
Free software: If you contribute nothing, expect nothing!
Feedback on success/failure/enhancement requests:
        http://sourceforge.net/mail/?group_id=170565 
Check Sourceforge for updates:
        http://sourceforge.net/projects/xc3sprog/develop

WARNING: gpio 4 already exported
ERROR: Couldn't set direction for gpio 4
11111010000000000000000000000000000000000No JTAG Chain found
can't open any device
**** Could not program FPGA

sudo raspi-gpio get
BANK0 (GPIO 0 to 27):
GPIO 0: level=1 fsel=0 func=INPUT pull=UP
GPIO 1: level=1 fsel=0 func=INPUT pull=UP
GPIO 2: level=1 fsel=4 alt=0 func=SDA1 pull=UP
GPIO 3: level=1 fsel=4 alt=0 func=SCL1 pull=UP
GPIO 4: level=1 fsel=0 func=INPUT pull=NONE
GPIO 5: level=1 fsel=0 func=INPUT pull=UP
GPIO 6: level=1 fsel=0 func=INPUT pull=UP
GPIO 7: level=1 fsel=0 func=INPUT pull=UP
GPIO 8: level=0 fsel=1 func=OUTPUT pull=UP
GPIO 9: level=0 fsel=4 alt=0 func=SPI0_MISO pull=DOWN
GPIO 10: level=0 fsel=4 alt=0 func=SPI0_MOSI pull=DOWN
GPIO 11: level=0 fsel=4 alt=0 func=SPI0_SCLK pull=DOWN
GPIO 12: level=1 fsel=1 func=OUTPUT pull=DOWN
GPIO 13: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 14: level=1 fsel=4 alt=0 func=TXD0 pull=NONE
GPIO 15: level=1 fsel=4 alt=0 func=RXD0 pull=UP
GPIO 16: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 17: level=1 fsel=0 func=INPUT pull=DOWN
GPIO 18: level=1 fsel=1 func=OUTPUT pull=DOWN
GPIO 19: level=0 fsel=4 alt=0 func=PCM_FS pull=DOWN
GPIO 20: level=1 fsel=4 alt=0 func=PCM_DIN pull=DOWN
GPIO 21: level=0 fsel=4 alt=0 func=PCM_DOUT pull=DOWN
GPIO 22: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 23: level=1 fsel=0 func=INPUT pull=DOWN
GPIO 24: level=1 fsel=3 alt=4 func=ARM_TDO pull=DOWN
GPIO 25: level=0 fsel=3 alt=4 func=ARM_TCK pull=DOWN
GPIO 26: level=1 fsel=1 func=OUTPUT pull=DOWN
GPIO 27: level=1 fsel=0 func=INPUT pull=DOWN
BANK1 (GPIO 28 to 45):
GPIO 28: level=1 fsel=2 alt=5 func=RGMII_MDIO pull=UP
GPIO 29: level=0 fsel=2 alt=5 func=RGMII_MDC pull=DOWN
GPIO 30: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 31: level=0 fsel=1 func=OUTPUT pull=DOWN
GPIO 32: level=1 fsel=2 alt=5 func=TXD1 pull=NONE
GPIO 33: level=1 fsel=2 alt=5 func=RXD1 pull=UP
GPIO 34: level=1 fsel=0 func=INPUT pull=UP
GPIO 35: level=1 fsel=0 func=INPUT pull=UP
GPIO 36: level=1 fsel=0 func=INPUT pull=UP
GPIO 37: level=1 fsel=0 func=INPUT pull=UP
GPIO 38: level=1 fsel=0 func=INPUT pull=UP
GPIO 39: level=1 fsel=0 func=INPUT pull=UP
GPIO 40: level=0 fsel=4 alt=0 func=PWM1_0 pull=NONE
GPIO 41: level=0 fsel=4 alt=0 func=PWM1_1 pull=NONE
GPIO 42: level=0 fsel=1 func=OUTPUT pull=UP
GPIO 43: level=1 fsel=0 func=INPUT pull=UP
GPIO 44: level=1 fsel=5 alt=1 func=SDA0 pull=UP
GPIO 45: level=1 fsel=5 alt=1 func=SCL0 pull=UP
BANK2 (GPIO 46 to 53):
GPIO 46: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 47: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 48: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 49: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 50: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 51: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 52: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 53: level=0 fsel=0 func=INPUT pull=DOWN

5V, 3A Power supply too

I just tried using this guy’s test program: http://abyz.me.uk/rpi/pigpio/download.html with the following results:
sudo ./x_pigpio # check C I/F

Testing pigpio C I/F
pigpio version 76.
Hardware revision 12595474.
Mode/PUD/read/write tests.
TEST  1.1  PASS (set mode, get mode: 0)
TEST  1.2  PASS (set pull up down, read: 1)
TEST  1.3  PASS (set pull up down, read: 0)
TEST  1.4  PASS (write, get mode: 1)
TEST  1.5  PASS (read: 0)
TEST  1.6  PASS (write, read: 1)
PWM dutycycle/range/frequency tests.
TEST  2.1  PASS (set PWM range, set/get PWM frequency: 10)
TEST  2.2  PASS (get PWM dutycycle: 0)
TEST  2.3  PASS (set PWM dutycycle, callback: 0)
TEST  2.4  PASS (get PWM dutycycle: 128)
TEST  2.5  PASS (set PWM dutycycle, callback: 40)
TEST  2.6  PASS (set/get PWM frequency: 100)
TEST  2.7  PASS (callback: 400)
TEST  2.8  PASS (set/get PWM frequency: 1000)
TEST  2.9  PASS (callback: 4000)
TEST  2.10 PASS (get PWM range: 255)
TEST  2.11 PASS (get PWM real range: 200)
TEST  2.12 PASS (set/get PWM range: 2000)
TEST  2.13 PASS (get PWM real range: 200)
PWM/Servo pulse accuracy tests.
TEST  3.1  PASS (get servo pulsewidth: 500)
TEST  3.2  PASS (set servo pulsewidth: 40000)
TEST  3.3  PASS (get servo pulsewidth: 1500)
TEST  3.4  PASS (set servo pulsewidth: 13333)
TEST  3.5  PASS (get servo pulsewidth: 2500)
TEST  3.6  PASS (set servo pulsewidth: 8000)
TEST  3.7  PASS (set/get PWM frequency: 1000)
TEST  3.8  PASS (set PWM range: 200)
TEST  3.9  PASS (get PWM dutycycle: 20)
TEST  3.10 PASS (set PWM dutycycle: 200)
TEST  3.11 PASS (get PWM dutycycle: 40)
TEST  3.12 PASS (set PWM dutycycle: 400)
TEST  3.13 PASS (get PWM dutycycle: 60)
TEST  3.14 PASS (set PWM dutycycle: 600)
TEST  3.15 PASS (get PWM dutycycle: 80)
TEST  3.16 PASS (set PWM dutycycle: 800)
Pipe notification tests.
TEST  4.1  PASS (notify open/begin: 0)
TEST  4.2  PASS (notify pause: 0)
TEST  4.3  PASS (notify close: 0)
TEST  4.4  PASS (sequence numbers ok: 1)
TEST  4.5  PASS (gpio toggled ok: 1)
TEST  4.6  PASS (number of notifications: 80)
Waveforms & serial read/write tests.
TEST  5.1  PASS (callback, set mode, wave clear: 0)
TEST  5.2  PASS (pulse, wave add generic: 4)
TEST  5.3  PASS (wave tx repeat: 9)
0000000TEST  5.4  PASS (callback: 50)
TEST  5.5  PASS (wave tx stop: 0)
TEST  5.6  PASS (serial read open: 0)
TEST  5.7  PASS (wave clear, wave add serial: 3405)
TEST  5.8  PASS (wave tx start: 6811)
TEST  5.9  PASS (NOT APPLICABLE: 0)
TEST  5.10 PASS (NOT APPLICABLE: 0)
TEST  5.11 PASS (wave tx busy, serial read: 0)
TEST  5.12 PASS (serial read close: 0)
TEST  5.13 PASS (wave get micros: 6158148)
TEST  5.14 PASS (wave get high micros: 6158148)
TEST  5.15 PASS (wave get max micros: 1800000000)
TEST  5.16 PASS (wave get pulses: 3405)
TEST  5.17 PASS (wave get high pulses: 3405)
TEST  5.18 PASS (wave get max pulses: 12000)
TEST  5.19 PASS (wave get cbs: 6810)
TEST  5.20 PASS (wave get high cbs: 6810)
TEST  5.21 PASS (wave get max cbs: 25016)
TEST  5.22 PASS (wave create pad, count==1, wid==: 0)
TEST  5.23 PASS (wave create pad, count==2, wid==: 1)
TEST  5.24 PASS (delete wid==0 success: 0)
TEST  5.25 PASS (No more CBs using wave create: -67)
TEST  5.26 PASS (wave create pad, count==3, wid==: 0)
TEST  5.27 PASS (wave chain [1,0]: 0)
TEST  5.28 PASS (callback count==: 5)
Trigger tests
TEST  6.1  PASS (gpio trigger count: 5)
TEST  6.2  PASS (gpio trigger pulse length: 150)
Watchdog tests.
TEST  7.1  PASS (set watchdog on count: 39)
TEST  7.2  PASS (set watchdog off count: 0)
Bank read/write tests.
TEST  8.1  PASS (read bank 1: 0)
TEST  8.2  PASS (read bank 1: 33554432)
TEST  8.3  PASS (clear bank 1: 0)
TEST  8.4  PASS (set bank 1: 1)
TEST  8.5  PASS (read bank 2: 0)
TEST  8.6  PASS (clear bank 2: 0)
TEST  8.7  PASS (NOT APPLICABLE: 0)
TEST  8.8  PASS (set bank 2: 0)
TEST  8.9  PASS (NOT APPLICABLE: 0)
Script store/run/status/stop/delete tests.
TEST  9.1  PASS (store/run script: 100)
TEST  9.2  PASS (run script/script status: 201)
TEST  9.3  PASS (run/stop script/script status: 110)
TEST  9.4  PASS (delete script: 0)

This program checks the Pi's (user) gpios.

The program reads and writes all the gpios.  Make sure NOTHING
is connected to the gpios during this test.

The program uses the pigpio daemon which must be running.

To start the daemon use the command sudo pigpiod.

Press the ENTER key to continue or ctrl-C to abort...

Testing...
Write 1 to gpio 4 failed.
Skipped non-user gpios: 0 1 28 29 30 31 
Tested user gpios: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 
Failed user gpios: 4

It appears to me that the 4th pin on my GPIO is dead? I don’t have a way to check this (volt meter), but is there anything else I should try before trying different raspberry pi?

I just booted up the python hello world LED app on my other Rpi (V3) and it worked straight away so I know at least that the Matrix Creator is good. Still not sure if what I have is completely a hardware fault or some configuration difference. The only thing I could try would be to reflash the SD card on the non-working one to see if there was some configuration option that I broke the GPIO with.

1 Like

Progress! I didn’t realize the option I added last night DISABLED instead of enabling some GPIO features…setting me back: https://github.com/fivdi/onoff/issues/45#issuecomment-215209132

I’m back to where I started last night, where the Javascript, Python, and Golang applications hang in their respective hello world programs.

After a fresh format and setting up the Go dependencies, the application just hangs here:
➜ go-matrix-core-app go run main.go
Starting MATRIX CORE Everloop
received Data Update Port: CONNECTED
received Keep-Alive Port: CONNECTED
received Error Port: CONNECTED
I don’t know what else I can do to test my hardware. I’m using a RPi V4 instead of 3 like my working setup. If anyone has ideas, I would love to know before I go buy a new RPi.

Ok, nevermind. I just needed to reinstall CORE and I was good to go! Have no idea why my pins were having issues connecting before, but I’m glad to say neither my RPi or the Matrix Creator are broken.

Here are some findings if anyone goes through this process myself. I assume some of these should be addressed in the documentation

  1. If you are installing ZeroMQ for a Node project, you need to set a specific version of ZeroMQ. Version 4.0 was the latest I tested that was able to build: npm install zeromq@4.0 --save
  2. If you came from any other smart home packages, especially those that mess with the GPIO (ZWay) make sure you completely remove those as they may lock you out of being able to manage the GPIO with Matrix.
  3. Before doing ANY installation of Javascript, Go or Python packages, make sure that your GPIO is working via: sudo cat /sys/kernel/debug/gpio && sudo /usr/share/matrixlabs/matrixio-devices/fpga_info && sudo ./usr/share/matrixlabs/matrixio-devices/fpga-program.bash
  4. Based on how many times it is re-emphasized that we use 5V3A power supplies, it should be included at the top of the install instructions.
  5. Based on my experience, I would recommend to EVERYONE to try the Python3 hello world example with the everloop first as it seemed to have the least amount of compatability issues with packages that needed to be complied on the RPi (and an ARM processor)
  6. If you are installing the Go library or the Node library, use a version manager (GVM, NVM). It is pretty nonsensical to work on any project that requires a specific version of node without using a package manager to make sure you are always using the right version, unless there is literally no chance of you using Node/Go anywhere else on your device.
1 Like

Hi @Chozandrias,

Welcome to the community and apologies for the delayed response, I somehow missed your posts. I am glad you figured everything out!

Have you tried MATRIX Lite? It is much easier to set up than MATRIX Core and has way less overhead since it directly wraps around our C++ base layer.

Best,
Samreen