Hello I am using openRB-150. The eight PWM ports of 0, 1, 4, 5 are used, and parallel 3 dynamixels are connected through provided dxl port. The problem is that the openRB 150 is always freezed. Is it possible to have crash when I use the PWM and dxl ports at the same time?
I have not encountered such situations yet. So just a suggestion: if you just enabled PWM only or DXL only, does your code still freeze? Or can you add some time delays into the main loop to see if it helped? I had similar issues when various internal Arduino buffers got full too quickly.
Thanks for your reply!
I found that which point makes a problem.
I am using PWM ports 0,1,4, and 5.
I think using PWM ports 0 and 1 with DXL has a problem.
If I use these four ports without using DXL, it works fine.
If I use DXL without PWM, it works fine.
If I use PWM ports 4 and 5 with DXL, works fine.
If I use PWM ports 0 and 1 with DXL, the board freezes.
Do you have any idea how to fix this problem?
I tried to use delay. and Serialflush() function just after the “setGoalPosition” functions.
Great troubleshooting! Can you use Pins 6 and 7 instead of 0 and 1? Or how about 2 and 3?
Yes. If I switch the PWM pins from 0 and 1 to 6 and 7, it works fine with DXL.
I think there are something problems with using PWM pins 0 and 1 with DXL.
Glad to be of help to you. My “strategy” has always been to look for “alternatives” first, as hardware and software are not under the control of us, the users!
BTW, the 150s are working for you now?
Just checked back with my Arduino book whereas I used D0 and D1 successfully for UART programming (TX/RX).
So still not sure why they did not work for you as PWM pins. Maybe because they are reserved for Sercom3?
I figured out what was the problem. It looks like the ID of the Dynamixel is related to PWM pins in openRB-150. I am using 3 Dynamixels which have ID 0,1 and 2. I changed the ID to 10,11,12, and then everything worked.
How interesting . You need to report this issue to Robotis GitHub.