Also gut, ich habe mal einen Blick in das nds3.c geworfen (Installationsverzeichnis - Sources - nds3.c)
Da ist für das nds3_init nur ein leerer Methodenrumpf drin, also da passiert derzeit gar nix, kannst den Aufruf sparen, oder besser durch nds3_reset ersetzen.
Und wenn man sich den Rest anschaut und mit dem Programm von hgs vergleicht, folgere ich, dass bevor das nds3_busy kommt, schon etliche mal das nds3_move aufgerufen wurde. Die Befehle gehen alle über den i2c, und der braucht bestimmt einige Zeit, bis er sagen kann "so jetzt bin ich busy", und das Hauptprogramm ruft derweil "move, move, move", und die Senderoutine in i2c_master.c schreit "Error, Error, Error".. aber das hört keiner.
Versuch mal ein delay(20) zwischen dem move und dem while(busy)..
Ich habe kein NDS3 und will auch keins mehr.
Der maximale mögliche Winkel ist 255, weil nur ein uint8 übertragen wird.
Alternativ gäbe es da noch eine Funktion nds3_move_servo(uint16_t usec); aber da fehlt irgendwie die Richtung