Timeline for RPi4B PCA9685 PWM Controlling Many Servos
Current License: CC BY-SA 4.0
14 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Apr 12, 2021 at 1:28 | history | edited | tlfong01 | CC BY-SA 4.0 |
edited title
|
Feb 3, 2020 at 15:01 | history | bumped | CommunityBot | This question has answers that may be good or bad; the system has marked it active so that they can be reviewed. | |
Oct 6, 2019 at 13:02 | history | bumped | CommunityBot | This question has answers that may be good or bad; the system has marked it active so that they can be reviewed. | |
Sep 6, 2019 at 11:35 | review | Close votes | |||
Sep 22, 2019 at 3:05 | |||||
Sep 6, 2019 at 4:52 | comment | added | joan | Are you sure you are using a PCA9685 (which is an I2C device)? You appear to be using servoblaster (or piblaster) which has not yet been updated for the Pi4B. | |
Sep 6, 2019 at 4:23 | comment | added | tlfong01 | @RAS, I checked my PCA9685 config function and found that I indeed base frequency. Perhaps I abstracted to often and forgot the original procedure. BTW I could no longer paste any more long code to my answer because I am hitting the Rpi Stack Exchange's 30k word limit. So I am listing my program as a Penzu entry: (1) penzu.com/p/3a36a526. You will find that in my program I call everything by name, to prevent typos, easy troubleshooting, and newbie understanding . | |
Sep 6, 2019 at 4:02 | history | edited | tlfong01 | CC BY-SA 4.0 |
Modified title to make it more specific to PWM servo control usingPCA9685
|
Sep 6, 2019 at 3:57 | comment | added | tlfong01 | @RAS, I skimmed you Rpi4B PCA9685 PWM log file again. I was a bit confused. I noticed that you said PWM frequency to 1.6 kHz. I forgot if I see the root frequency to around 50Hz for servos. Perhaps I forgot the details. I also found your setting the PCA6895 registers directory. I usually call the registers by name, to avoid any typos and easy troubleshooting. Perhaps I might show you my PCA9685 programming. BTW, I do use the scope to check out the 500uS to 2000uS pulses. Do you also use a scope or analyzer just to make sure? | |
Sep 6, 2019 at 3:19 | comment | added | tlfong01 | @RAS, I noticed that you use 8 Rpi GPIO pins in Rpi3B+ but also switched to PCA9685 in Rpi4B. If that is so, of course you would expect a lot of teething or tech transfer problems. BTW, my PCA9685 functions also abstract to use higher level parameters such as: servo name (4 Rpi4B x 4 I2C bus x 2 PCA9685 x 16 PWM channels = 4 x 4 x 2 x 16 = "my-stupid-brain-calculator-overflow-so-many" servos, all "called by name") , bus name (4 I2C buses each Rpi4B), pulse width (500 ~ 2000uS), postion (extreme left, right, mid, etc), position steps (like a stepping motor! :)), for a 64+ servo robot arm, ... | |
Sep 6, 2019 at 3:08 | comment | added | tlfong01 | @RAS, Brainstorming questions: (1) Why do you power your 8 servos from USB2/3 hub? I remember when I tried the Rpi4V USB3 hub, some Rpi3B+ USB device drivers no long work. So I sadly went back to USB2 hub. (2) Your octo GPIO DMA driver might not port from Rpi3 to 4. That is one of the reasons I gave up using Rpi PWM pins and use PCA9685 with 16 GPIO/PWM pins. The good thing about PCA9685 is that you can set a time lag (eg 1% of 50Hz period) so when start/stop all servos together, actually each of them start with a time lag, prevent power dip and also back EMF, EMI etc. | |
Sep 6, 2019 at 2:30 | comment | added | Milliways | What log files? What "bunch codes"? What doesn't work? What OS? | |
Sep 6, 2019 at 2:28 | answer | added | tlfong01 | timeline score: 1 | |
Sep 6, 2019 at 2:05 | review | First posts | |||
Sep 6, 2019 at 11:19 | |||||
Sep 6, 2019 at 2:02 | history | asked | RAS | CC BY-SA 4.0 |