Hi. I enjoyed the building process but ran into some issues in getting Nybble to function properly.
1) I received Nyboard V0_2. The labeling for the servos appear to be reversed. The right, head side quadrant is labeled 3, 2, 1, 0 from the head to the tail. I connected the servos according to the instructions and they were completely flipped around. I ended up connecting them based on the illustration instead and it worked. All four quadrants are numbered backwards. I did catch the #define in Instinct.h. That's not mentioned in the documentation.
2) I think the servo power regulator is faulty. I set the potentiometer throughout its range and read voltage from 5v to 7.2v. Regardless of its position, the yellow light always blinks. It starts up with the tone and the meow and Nybble goes into the rest position. At this point if I hit a button on the remote, it goes into a static position and no longer accepts input. It's the same with the terminal. It will take one command and then stops responding. If I command it to sit, it does so but no other commands work until I reset. Also, balance doesn't function. Nybble just stands still.
If I put the jumper to battery input, everything works. But I thought it might be a bad idea to run servos rated for 6v at 8v for too long. I removed the jumper and connected a 5.8v servo power regulator used for RC airplanes (BEC) and fed power through the servo header. This works well so I assume something's wrong with the on-board regulator.
3) There was a previous post about the roll function being reversed in balance. I'm experiencing the same. If I place Nybble on a board and tilt the board up toward its head, the front legs collapse and rear legs extend to keep the torso level. And of course the reverse happens when the board is tilted the other way. When the board is tilted to the left, the left legs collapse and the right legs extend so the body wants to roll off the board. I tried to correct this but since I'm not any good at coding it doesn't work too well. I simply added "* -1" to the if/else statements for rollAdj. It sort of tries to keep level, but it only extends the low side instead of collapsing the high side. I hope I explained it adequately.
Got it. I guess it's for compliance? I'll play around with it a bit more. Thank you.
Thanks for your response. I'll call 1 & 2 resolved. But I don't think we're understanding each other on 3.
On the pitch axis, it balances appropriately. If the ground is higher on the rear, Nybble bends its hind legs and extends its front legs to try and level the body.
This is what it does in the roll axis. When the left leg is raised, it extends the left and bends the right, so if the left is raised a little more, it falls over.
This is what I thought it should do: If the left leg is raised, it should bend its left legs and extend its right to keep the body level. I can't figure out how to do this so it's powered off and staged in the photo below.
Thanks for your feedback.
1. The order of servo pins on two boards are rotated, but the physical connection remains the same. The adjustment is done in the index map (byte pins) in OpenCat.h by predefining the board version .
I just added "You need to change the * on #define NyBoard_V0_* in Instinct.h to match your NyBoard’s version. The version number is to the left of the green battery terminal." in the instruction document.
2. There should be a stable range and the yellow LED should stay. During servo motion the brightness may fluctuate. But it should be able to drive 16 plastic 9g servos, or at least 8 metal servos included in the kit.
I agree that the power regulator is a little weak to supply large current for intense motion by metal geared servos. I'm keep looking for more powerful chips that can fit into the limited area on NyBoard.
8V is higher than the rated 6V if directly connected. But when the servos are moving, the voltage will fluctuate between 5~8V, and the battery's voltage will keep dropping until 7V when it's too low to work properly. So it's not always cooking the servos with 8V voltage. In practice, I never got servo damage due to high voltage. The output torque will be larger than standard, so the mechanical wearing will be faster than usual.
3. The design is intentional. Think about the cases when Nybble gets tilted:
a. the ground is flat and you push nybble from sides.
b. you lift Nybble with hand.
c. the ground is uneven, or you are playing it on a flexible board.
They should have different adjustment modes. It will require additional sensors to understand the situation.
Because Nybble doesn't have a brain yet, I'm just setting the default code to deal with the most frequent case (stabilize itself during standing or walking on flat surface). I have a remote button to switch the modes, and will push it in later code updates.