PINE64
Adafruit 16-Channel PWM / Servo HAT for Raspberry Pi - Mini Kit - Printable Version

+- PINE64 (https://forum.pine64.org)
+-- Forum: PINE A64(+) (https://forum.pine64.org/forumdisplay.php?fid=4)
+--- Forum: Pine A64 Hardware, Accessories and POT (https://forum.pine64.org/forumdisplay.php?fid=32)
+---- Forum: Enclosures (https://forum.pine64.org/forumdisplay.php?fid=14)
+---- Thread: Adafruit 16-Channel PWM / Servo HAT for Raspberry Pi - Mini Kit (/showthread.php?tid=2060)



Adafruit 16-Channel PWM / Servo HAT for Raspberry Pi - Mini Kit - pelgrim - 08-22-2016

https://www.adafruit.com/products/2327

will this work on the the pine64 ?
When stacked, it can control around 900 servos (so they claim)


RE: Adafruit 16-Channel PWM / Servo HAT for Raspberry Pi - Mini Kit - KnReLe - 08-22-2016

(08-22-2016, 08:33 AM)pelgrim Wrote: https://www.adafruit.com/products/2327

will this work on the the pine64 ?
When stacked, it can control around 900 servos (so they claim)

It seems likely, based on what I have found when connecting various i2c-capable devices to the PineA64+ that I have here. The /dev/i2c-1 bus is operating well on the 3.10.102-2-pine64-longsleep kernel that I run here. With one little addition.

Only different thing I have noticed is that the PineA64 doesn't have the same strong pull-up resistors on the i2c lines that the Raspberry Pi has, in fact, on the one I have here, the voltages on pins 3 and 5 (on the PI-2-Bus) measure at 0V when nothing is connected and only 1.8V when connected to +3.3V via a resistor and LED. Thus we have a weak pull-down instead here. Data-sheet indicates that this is on the order of 100 kOhms.

And since there are no pull-up resistors on this HAT, they will have to be added somewhere, there are two of them: one between the SDA (pin 3) and the +3.3V line (pin 1) and the other between SCL (pin 5) and the +3.3V line (pin 1). Values around 3.3 kOhm will work fine. Only one such pair of resistors will be needed, since i2c is a «party-line» concept with all the hosts connected to SDA and SCL in parallell.

But I don't know if anyone has actually connected 62 of these boards in a stack and got that whole assembly to work. It is possible as far as i2c addressing goes, and it will probably be possible to make the i2c-buss work with the rather large total capacitance from all the boards connected, (as per the PCA9685 datasheet, each chip contributes 6 to 10pF, then add some for the boards and connectors, for a grand total of something on the order of 500pF, at low speeds that would still work). However, since each PCA9685 uses 6-10 mA to operate, the total load on the 3.3V line will be 370 mA or more so some kind of extra power will be required for this. I strongly suspect that this is more than the regulator on the PineA64 board has been given the capacity to deliver. Raspberry Pi only provides 50 mA here so that puts a limit to between 5 and 8 cards without extra power. And then there is the power needed for the servos themselves. Even tiny little aircraft-type servos require 100 mA or so when slewing fast, and having 900 of these going at the same time calls for peak currents of 90A.

However, one board should have good expectations of working. Stacking a few more on top seems reasonable as well; maybe a total of 5 boards will be a realistic workable maximum. That is enough for controlling 80 servos.