Constant Yellow Light

I recently purchased an assembled serial 8 servo controller from here. When I hook the controller up I get a constant yellow light.

Power Supply:
I am using a computer power supply as my power source for the controller. I have checked the voltages with a voltmeter and I am positive that the power supply is supplying 12V and 5V. I have the +12V line connected to the VIN, +5V to the servo power, and the ground jumped to both of the ground pins. I have also tried connecting a wire between the Vcc=Vs jumper and using only the +12V supply but this didn’t seem to make any difference.

Servos:
I have one small hobby servo connected to output 0.

Protocol:
I have been mainly trying to use Mini SSC II Mode (protocol jumper on), but I have also tried to use the Pololu mode also with no result. I currently have the DTS/RTS jumper set to the right position (DB9 connector up). What position should this be set too? However, I have tried it on the left and I have also tried just leaving it off alltogether.

COM Port Settings:
Reading my COM port properties from device manager (WinXP SP3): Bits Per Second=9600, Data Bits=8, Parity=None, Stop Bits=1, Flow Control=None, Advanced->Use FIFO buffers=Yes. I have tried using both ports on my computer, the main DB9 connector and the motherboard connector, and I have also tried two different computers with the exact same results.

Serial Data:
I have tried two different methods of communicating with the controller. First, I tried using the Pololu Serial Transmitter. First I hooked the controller up as noted above. This resulted in a solid yellow light and and no others displayed. Also, when I first hook the servo up, it produces a small twitch (~10deg). Then I changed the COM port to the correct number and tried to send it a 3 bit sequence [255 0 128] (Mini SSC II Mode), but the light does not change (still solid yellow) and the servo does not move. I have tried different servo numbers and different positions, but it does not seem to even be accepting the input.

The other method that I have tried is using Matlab. First I hooked it up as in the above paragraph which resulted in the same solid yellow light and small twitch in the servo. Then I created a serial object and attempted to send the same above commands. Here is the code that I used (from the command line in Matlab):

>> port = 'COM2'

port =

COM2

>> serobj = serial(port)

   Serial Port Object : Serial-COM2

   Communication Settings 
      Port:               COM2
      BaudRate:           9600
      Terminator:         'LF'

   Communication State 
      Status:             closed
      RecordStatus:       off

   Read/Write State  
      TransferStatus:     idle
      BytesAvailable:     0
      ValuesReceived:     0
      ValuesSent:         0
 
>> set(serobj, 'BaudRate', 9600);
>> set(serobj, 'StopBits', 1);
>> set(serobj, 'Parity', 'none');
>> set(serobj, 'DataBits', 8);
>> serobj

   Serial Port Object : Serial-COM2

   Communication Settings 
      Port:               COM2
      BaudRate:           9600
      Terminator:         'LF'

   Communication State 
      Status:             closed
      RecordStatus:       off

   Read/Write State  
      TransferStatus:     idle
      BytesAvailable:     0
      ValuesReceived:     0
      ValuesSent:         0
 
>> fopen(serobj)
>> fwrite(serobj, [255,0,128]);
>> fclose(serobj)

When I used the above commands I recieved slightly different behaviors. When I executed fopen(serobj), the solid yellow light went off (all lights off). When I exectuted fwrite(serobj, [255,0,128]), nothing happened. When I executed fclose(serobj), the yellow light came back on.

Sorry for the long post, I just wanted to provide enough detail to properly troubleshoot my problems. Any advice would be greatly appreciated. Thanks!

-Brent

Hello,

Lots of details is good. (Connecting 12V to a servo isn’t.) In this case, until you get the yellow LED to go away, you’re not getting any data to the servo controller. So, for now, you should just leave the servo (and servo power) off, and focus on getting the servo controller to respond. Until the yellow LED goes out, the servo controller is waiting for the serial line to do something.

- Jan

Any advice on how to troubleshoot this problem? I have completely removed the servo and servo supply voltage, but I am still getting the same constant yellow light. I once again tried the other port on my computer with no change. I also tried it on another computer last night. I also plugged the servo controller directly into the port on the back of the computer to make sure that I do not have a short in my serial cable, but once again no change. In Matlab, I still get a yellow light until I try to open the communication with the servo controller (fopen(serobj):wink: then the light turns off until I close the communication. With the Pololu Serial Transmitter I get absolutely no reaction. Are my serial port settings correct? Where should the shorting block be placed? (right/left/off?) What does it indicate when all the lights turn off when I try to communicate with it? Thanks!

-Brent

The yellow LED going out with your Matlab is probably because of the handshaking line holding the board in reset. You should probably take off that jumper until you have control over those lines.

One thing you can try is just applying power and using a wire to briefly short the logic-level serial input to ground. Just touch the two pins (ground and SIN), and you should see that you get different kinds of flashing LEDs as the microcontroller fails to make sense of what is going on on the line. That should help convince you of whether the servo controller is alive.

What the yellow LED on the whole time indicates is that there is nothing coming out of your serial port. Do you have some independent way of verifying that? The best thing would be to look at the signals with an oscilloscope, but connecting some other device successfully would also be a nice indicator.

- Jan

I’ve got the same problem.

A pololu 8 servo controller with similar matlab code:

s = serial(‘COM1’,‘BaudRate’,9600,‘DataBits’,8,‘StopBits’,1);
fopen(s)
fwrite(s, uint8([0 1 200]));
fclose(s)

The yellow light is on solid, servo power disconnected, but when they are, it’s at 4.5 or 6V.
Board power supply is at 9V.

After about 2 minutes of being connected a couple of times all three lights started flashing (although the yellow flashed much brighter than the others). This even happened once as soon as i disconnected and reconnected the 9V power.

I too would like to know where the DTR/RTS jumper should be placed, although I’m having the same problem in both modes.

The DTR/RTS jumper is optional, so you can do your initial tests without using it at all. You should try our serial transmitter utility first, to make sure your servo controller and serial port are working.

- Jan

Thanks for the response,

I’ve tried the serial transmitter too, to no avail unfortunately. Could I test the serial link by outting an LED accross the TX terminals?

An LED is not that great of a serial data tester. You might be able to pick up some flickering, but make sure you use an appropriate resistor so as to not burn out your LED. It would really help if you could look at your serial line with an oscilloscope. You might also try some different computers if you think there is something wrong with the serial port on the one you’re using.

- Jan

I just updated my USB-RS232 converter drivers and a signal does seem to be reaching the board now.

Getting some funny behaviour right now- sometimes works, sometimes not. Seem to gert different combinations of lights every time I connect it :confused:

I’ll have anothre read of the manual tommorow and post my findings. Once I work it out, I’ll make a matlab function for the pololu mode (using mini ssc at the for the time being)