Hi everybody,
So I am installing control systems into the Historic Fox Fullerton Theatre in Fullerton Ca.
We have this sign on our roof that spells out Fox Theatre on three sides. Total of 30 letters, I'd like to control 30 solid state relays with the pi using QLCPlus and this
http://www.amazon.com/gp/aw/d/B00VY9TXQ ... ref=plSrch
How hard is it to incorporate this thing?... Fyi it also works both ways, 32 inputs/outputs only uses 4 pins on pi.
Also they are daisy chainable , meaning unlimited GPIO
Also note, I am installing this as a volunteer, the theater is owned by a non-profit which is restoring the building. Check us out... www.foxfullerton.org
Gpio expansion
- mcallegari
- Posts: 4830
- Joined: Sun Apr 12, 2015 9:09 am
- Location: Italy
- Real Name: Massimo Callegari
- Contact:
Hi, according to this page: http://www.seeedstudio.com/depot/Raspbe ... -2280.html
the module works on the SPI bus.
At the moment, the QLC+ SPI plugin is output only. It would require a bit of work and the proper hardware to integrate the input support.
I can order one of those expansion board, but I don't know when I can dedicate some time to it.
At the moment I'm busy on other matters.
the module works on the SPI bus.
At the moment, the QLC+ SPI plugin is output only. It would require a bit of work and the proper hardware to integrate the input support.
I can order one of those expansion board, but I don't know when I can dedicate some time to it.
At the moment I'm busy on other matters.
- karrika
- Posts: 60
- Joined: Tue May 12, 2015 6:50 am
- Real Name: Karri Kaksonen
An interesting approach. This board has shift registers and latches. I cannot see any input functionality or SPI.
It also seems to need two additional bits:
- latch the sent byte from the shift register. You need a low->high transition on this pin when all data bytes have been sent.
- set output enable for the pins. This can be 0 all the time.
So you need to modify the code or add some magic to get the low->high transition at the right time.
I am using MP23S17 for expanding the GPIO. A Raspberry Pi has two SPI buses. The first bus has 2 CE signals. So you can drive 16 MP23S17 chips allowing you to control 256 pins that can be inputs, outputs and even interrupts.
The second SPI bus has 3 CE signals allowing you to have 384 more pins.
Unfortunately the logic for SPI and 74HC595 is very different. Adding control signals to the SPI plugin that are not part of SPI may have side effects.
It would be better to control 74HC595 things outside the QLC+ framework so that the side effects don't hit other SPI users.
I would probably create a custom fixture that has 30 lights and use a little python scripting for sending the data to the board. The python script could listen to ArtNet output from the QLC+ and decode the light changes from there. The SPI plugin would not be activated in QLC+. You could activate it in wiringPi and send the bytes out to 74HC595 chips by spidev in python.
Perhaps something parts from https://github.com/philchristensen/python-artnet could be used.
It also seems to need two additional bits:
- latch the sent byte from the shift register. You need a low->high transition on this pin when all data bytes have been sent.
- set output enable for the pins. This can be 0 all the time.
So you need to modify the code or add some magic to get the low->high transition at the right time.
I am using MP23S17 for expanding the GPIO. A Raspberry Pi has two SPI buses. The first bus has 2 CE signals. So you can drive 16 MP23S17 chips allowing you to control 256 pins that can be inputs, outputs and even interrupts.
The second SPI bus has 3 CE signals allowing you to have 384 more pins.
Unfortunately the logic for SPI and 74HC595 is very different. Adding control signals to the SPI plugin that are not part of SPI may have side effects.
It would be better to control 74HC595 things outside the QLC+ framework so that the side effects don't hit other SPI users.
I would probably create a custom fixture that has 30 lights and use a little python scripting for sending the data to the board. The python script could listen to ArtNet output from the QLC+ and decode the light changes from there. The SPI plugin would not be activated in QLC+. You could activate it in wiringPi and send the bytes out to 74HC595 chips by spidev in python.
Code: Select all
import spidev
import time
spi = spidev.SpiDev()
spi.open(0,0)
while True:
resp = spi.xfer2([0x00])
time.sleep(1)
Last edited by karrika on Wed Nov 18, 2015 7:46 am, edited 1 time in total.
- mcallegari
- Posts: 4830
- Joined: Sun Apr 12, 2015 9:09 am
- Location: Italy
- Real Name: Massimo Callegari
- Contact:
In the product page I linked it says:
- Connection through SPI
- 100 MHz (typical) shift out frequency
- 8-bit serial input
- 8-bit serial or parallel output
It makes sense to me if it sends data to the SPI, especially when cascading a few of those hats
- Connection through SPI
- 100 MHz (typical) shift out frequency
- 8-bit serial input
- 8-bit serial or parallel output
It makes sense to me if it sends data to the SPI, especially when cascading a few of those hats
- karrika
- Posts: 60
- Joined: Tue May 12, 2015 6:50 am
- Real Name: Karri Kaksonen
100 MHz is in line with my measurements. The Raspberry Pi SPI can deliver 16Mbytes/sec max. After that you get just bit errors.
I am happy to see that historical venues like the Fox are kept alive and not just torn down.
From a practical point of view the board lacks mechanics support. You could use a 3D printer and design a frame that keeps it in place. Also when doing the cables from the Pi to the relays use long wires and take care of the heat. Fans wear out but metal is good for transferring heat out to the surroundings.
I am happy to see that historical venues like the Fox are kept alive and not just torn down.
From a practical point of view the board lacks mechanics support. You could use a 3D printer and design a frame that keeps it in place. Also when doing the cables from the Pi to the relays use long wires and take care of the heat. Fans wear out but metal is good for transferring heat out to the surroundings.