Braccio Tinkerkit Robotic Arm- Startup is so fast it strips the splines

I have purchased 12 Tinkerbot Braccio Robotic Arms for classroom use. This has been a great way to introduce Arduino IDE and code to change the robotic arm configuration. We are programming them to pour a drink in consecutive order. One arm picks up a cup and pours it into another and it goes down the line with each student responsible for the code that will keep the pour going to the next.

Problem

When the robotic arm starts it violently moves to it's startup position. When it whips the arm around the splines on M2 the "shoulder" servo strips out the plastic splines in the orange "horn" that mounts to the servo. This has happened to the majority of the arms. It also makes it hard to not knock over other arms or cups.

Is there a way to stop this from happening? I would like it to move really slow to it's starting position or removing the startup feature all together. I believe the startup code is in the Braccio library.

I am a beginner with Arduino and I am trying to get students excited about coding. Our inability to stop the violent startup is time consuming and taking away from focusing on programming.

"Is there a way to stop this from happening? I would like it to move really slow to it's starting position or removing the startup feature all together."

A solution might be to keep the arms parked in a low stress position for startup. Then in your code you would command the arm to this parked position, then "attach" the servos. This should command the servos to the current parked position for startup.

When I was experimenting with a robotic arm I arranged for it to return to a parked position after making a series of moves then in setup() before attach()ing the servos to pins I wrote the parked positions to the 4 servos. The result is that if previously parked properly the servos do not move on startup.

This is not a perfect solution by any means but it got over my immediate problem

I see that the Braccio library has a softStart option as the second parameter of its init() function

 void init(Position& startPosition=_BraccioRobot::initialPosition, bool doSoftStart=true);

It is a boolean and defaults to true but I don't know the details.