Servo16 Communication

WOW! :slight_smile:

This makes me kinda sad though. Since that servo would have cost me less than the ones I got :frowning:

Iā€™ve never buying things at my local stores again.

Iā€™m glad I have these forumsā€¦

So the manufacturer replied last night. Guess what their solution was:


            int position = 0;
            byte[] buffer = new byte[8];

            SerialPort UART = new SerialPort("COM1", 2400);
            UART.Open();
            while (true)
            {

                buffer[0] = (byte)('!');
                buffer[1] = (byte)('S');
                buffer[2] = (byte)('C');
                buffer[3] = 0;
                buffer[4] = 0;
                buffer[5] = (byte)(position % 256);
                buffer[6] = (byte)(position / 256);
                buffer[7] = 0x0d;
                UART.Write(buffer, 0, buffer.Length);
                Thread.Sleep(20);
            }

Send the data to the Servo16 as fast as possible, constantly. They even sent a video of it working! Itā€™s strange to me that iā€™d have to do that, but I have no choice to go along with it.

Yeah that is really stupid on their end?! You would think a servo controller will keep sending the servo signal continuously! Maybe we are missing something

I wonder if they googled the problem, found this forum and implemented your infinite loop suggestion :slight_smile: If there is a fix to be made then it should only be a firmware update I suppose.

So I did the threaded thing; yes it works. I did the tap on the servoā€™s potentiometer back into the Analog Input ports, and that works to; I can get the angle of the servo from the servo itself.

Plugged in all 3 of the servos and they started doing weird stuff. I think the drain on the potentiometers is causing a malfunction within the servos :frowning:

I might have to abandon the project until I get more sophisticated servos with feedback loops.

Ah boy.