Hi all,
After having my NyBoard no longer be able to receive new code, I decided to toss it out and try to build my own mainboard, one without all the issues of processing power and memory limits.
I decided to try my luck with a Pi Pico W. Why? Because it has a 140MHz dual-core processor, more than enough memory for all your code, huge amount of community support, dirt cheap, enough PWM channels, tons of IO, CircuitPython/MicroPython/Arduino/FreeRTOS support and WiFi/BLE onboard.
I have it all wired up and am driving the servos, albeit without full torque. I am even attempting to use the kinematics provided in the Git repo.
Once I get a good amount of coding done, I will be more than happy to share it. However, I do need the community's support to solve some issues!
Driving servos: The servos are rated for 8V, but the Pico can only offer 5V (if USB is plugged in) or 3.3V. I can drive the servos with 5V power and 3.3V PWM, but I can tell the torque and speed isn't the best. Any attempt at 8V power and 3.3V PWM causes sputtering and does not work correctly. What is the PWM voltage of the NyBoard?
Kinematics 1: I have been attempting to use the kinematics provided in the Git repo, but am having trouble. First, there are some arrays that have 16 elements, some 8, and some with an odd 4 elements between each 16. Is there any clarification on the standard used? I have been getting some info from here: https://www.yuque.com/tinkergen-help-en/bittle_course/lesson_7
Kinematics 2: How do the numbers relate to the actual servo angles? I am still looking into this. The servos have 0-270, there is the calibration pose, and the numbers from the kinematics. How do they tie in together exactly? And is there a difference due to the direction of the servo?
I'm sure I'll have more questions in the future!
Thanks!
With any logical chips, you will need a separate power regulator for the actuator parts. The 5V output from a chip is usually limited to a few mA. Driving a servo directly may burn the pin or the entire chip.
This doc explains the formats of the skills. They are formatted for a balanced consideration for compatibility and memory efficiency.
The coordinate system is also explained on that manual page.
The conversion is implemented in src/pcaServo.h