My nybble servo number 12 suddenly stopped working yesterday. There seems to be no problem with the servo itself. Because when I plug the servo into the 8th connector, the servo moves. Probably the problem occurred on the NyBoard side. When I connect the servo to connector number 12, it stops working. In this case, does my NyBoard need repair? Is there any way to repair it by myself? Or is there any other good solution?
I am always grateful for your help!
There's a moduleTest.ino in the repository. You can upload and run the code following the prompts in the serial monitor. The first one is a test servo section. If you find that one servo can rotate on one pin but not the other, then it should be the problem of the servo.
For brushed servo, the most frequent failure is on the brush due to friction and sparks. I have a post explains how to fix this kind of problem. https://www.petoi.com/forum/hardware/double-the-lifespan-of-brushed-dc-motor
Try to reupload the writeInstinct.ino and run it once to re-write the setting parameters to the board. No need to reset the joint angles when prompted for (Y/n). Then upload Nybble.ino.
If it doesn't fix the problem, then it's probably that the pin is broken. Though I never had that problem before. In that case, you can plug the servo to the nearby unused pin and modify the pin map in OpenCat.h.
#ifdef NyBoard_V0_2 byte pins[] = {4, 3, 11, 12, 5, 2, 13, 10, 6, 1, 14, 9, 7, 0, 15, 8 }; #endif
The mapping rule is between the array index to the value in that location.
For example, the head pan is joint 0, and its corresponding PWM pin number on the board is 4. Joint 12 is the 13th element in the pins[] array, so the corresponding PWM pin number on the board is 7. You can plug the servo into PWM pin 5 (for example) and replace the 7 in the array with 5. Replace the original 5 with 16 so that it won't be in effect.