RoadTest: PiRack Accessory board for Raspberry Pi
Evaluation Type: Independent Products
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?:
What were the biggest problems encountered?: finding the correct documentation / settings
First of all: thanks for selecting me to review this item!
I have been selected to review the PiFace in a previous roadtest. One observation was that when you use the PiFace you cannot connect other components to your Raspberry Pi which would use the same connector. With the PiRack this problem is solved.
I must say that I was surprised by the quick delivery of this item (way faster than the PiFace!).
To test the PiRack I had the following project in mind: Use the PiRack to connect PiFace Digital and PiDapter for Adafruit Servo driver to Raspberry Pi. In this way I could use the PiFace and use servos too!
So for this project I used a servo driver board from Adafruit http://www.adafruit.com/products/815 (hope you don't mind me mentioning them here... :-) if you do: my apologies). This board however does not fit on a Raspberry Pi because it uses a different connector. So I took a piece of perf. board and created the "PiDapter for Adafruit Servo driver":
The board fits nicely on my Raspberry Pi.
But, when I tried to fit it on the PiRack I discovered that I had made a design error: the Adafruit board is fitted onto my perf. board in such a way that it is in the way of the jumpers on the PiRack. So this is something you should consider when you design your own board. Fortunately I was able to use the connector at the end of the PiRack:
Since I already used the PiFace I just plugged it in the first slot and assumed it would work. This however proved me wrong. When you use more than one PiFace it seems that you have to address it differently. I had to download the latest software and the functions seem to have changed a bit. It turned out that I had to change the jumper settings on the PiRack too, it was set default to not swap the SPI lines and use external power. I had to change it to swap the lines and use the power from the Raspberry Pi. It seems that I wasn't the only one:
After this it worked! I changed my code to properly address the correct board. Here's the code I used:
import pifacedigitalio as p p.init() from Adafruit_PWM_Servo_Driver import PWM import time p.init() pwm = PWM(0x40, debug=True) pwm.setPWMFreq(50) pwm.setPWM(0, 0, 103) while True: if p.digital_read(0) == 1: pwm.setPWM(0, 0, 205) p.digital_write(0,1,0) else: p.digital_write(0,0,0) if p.digital_read(1) == 1: pwm.setPWM(0, 0, 307) p.digital_write(1,1,0) else: p.digital_write(1,0,0) if p.digital_read(2) == 1: pwm.setPWM(0, 0, 410) p.digital_write(2,1,0) else: p.digital_write(2,0,0) if p.digital_read(3) == 1: pwm.setPWM(0, 0, 512) p.digital_write(3,1,0) else: p.digital_write(3,0,0)
And here is a video of the result:
As you might notice my servo doesn't rotate very smooth all the time. I don't know what causes this, I didn't have this problem when I used the servo board without the PiRack, but I don't know if the PiRack really interferes or not...
My opinion to the PiRack: It is very handy to mount several boards onto the Raspberry Pi, although the complete setup isn't very compact anymore.