Howdy. Need some help as I've got two boards, and cannot get any servo movement on either of them using the main programs.
Neither program will drop in to calibration mode either (or any other mode based on an interrupt through the serial monitor), when I run WriteInstinct but I can still get the MPU calibrated, and the Y/ns generally work. But I never get asked "do I want to calibrate all servos". If I run nybble.ino, the IR port isn't triggering any movement, although I know from the testing that it is working.
I do get warnings when building both programs. Lots of things like...
Nybble.ino:500:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] motion.loadBySkillName("rest");
WriteInstinct.ino:231:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] motion.loadBySkillName("rest");
OpenCat.h:603:1: warning: narrowing conversion of '-4.5e+1' from 'double' to 'int8_t {aka signed char}' inside { } [-Wnarrowing]
I've re-downloaded the files, and re-uploaded. All other settings are fine, and the battery is putting out 7.9v at the moment.
If I run testServo.Ino (which really needs to have some documentation to explain it can do more than just server 1) I can get them to move, but no action when the others are run.
(I do have slightly different behaviour with the LED on a second board, but that can wait for now)
Help!?!?!? Please.
Euan
If the servos never rotate, you should check the polarity when you plug them in. External power supply to the power socket is required to drive the servos. You can verify the servos' functionalities with this diagnose sketch.
When first time uploading the codes, enter 'Y' for all the prompts of writeInstinct.h, and let the board finish calibrating itself. The "⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮" are non displayable character from the serial communication, or by malfunctioning of the chip, usually caused by unstable power supply.
Take off the board from Nybble and run diagnose sketch first. Send screenshots/videos if you see any strange outcomes.
In the latest code "do I want to calibrate all servos" is rephrased as "Reset joint calibration? (Y/n)", and comes as the first prompt before the MPU calibration. It will reset all joint calibration to 0. After MPU calibration is done (or skipped), you can type in "cIndex offset" commands to calibrate each servo.
The warning messages won't affect the functionality. It's just complaining some type casting in the design of the program.
I'll put more answers and a checklist as response to your second post.