Serial / usb to serial port troubleshooting

If you are experiencing trouble communicating using the serial port or a usb to serial cable these are almost always issues with the PC. Here is a list of some of the most common problems. These suggestions pertain to the SSC-32 communications AND the Bot Board II programming.

** if anyone thinks I left something out please feel free to post here.**

I can’t connect to the SSC-32 with any of its PC applications, LynxTerm, RIOS, SEQ, or PowerPod.
The green LED on the SSC-32 is a status indicator, not a power light. If this LED does not illuminate then you have a power problem. When power is first applied the LED will light up steady telling you it’s 99% functional. The LED will go out after it has received its first byte of data, and then blink after that when it’s receiving data. This will happen even if the baud rate is wrong. It’s a useful tool for troubleshooting the communication system.

Note: LynxTerm, RIOS, SEQ and PowerPod all send commands to the serial port continuously when first opened. It’s possible that the LED is on for such a short time it appears to never go on. Remove the serial connector and try again.

If the green LED never lights up.
Make sure your VL terminal has from 6vdc to 9vdc connected to it. Red is positive and black is ground. For now remove the VS1 = VL jumper to isolate the servo power from the logic power. If possible check it with a VOM meter.

Note: LynxTerm, RIOS, SEQ and PowerPod all send commands to the serial port continuously when first opened. It’s possible that the LED is on for such a short time it appears to never go on. Remove the serial connector and try again.

If the green LED never goes out.
This is a sure indication that your program is not talking on the right serial, or “com” port, or the com port is defective, or the serial cable or USB to serial cable is defective, or the serial port enable jumpers are not installed on the SSC-32.

Normal DB9 serial ports, indicated by the 9 pins sticking out of the D shaped metal part are normally numbered as com1 or com2. Try changing the com port to a different number. If you don’t have a serial port it’s easy to add one.
lynxmotion.com/images/html/build126.htm
We will discuss USB to serial cables separately.

What USB to serial cable should I use?
We recommend only high quality name brand adapters. With these devices you literally get what you pay for, so don’t skimp. Look for cables that use the FTDI driver chip if possible. We highly recommend the FTDI UC-232R-NE ChiPi cable. Others have reported good results with the following cables. Belkin F5U409, BAFO BF-810, I/O Gear GUC-232A, Keyspan USA-19HS, Dynex DX-UBDB9, etc. Although these adapters have worked in the past, with manufacturer changes, and new operating systems emerging, there is no guarantee they will continue to do so. The only USB to serial adapter we know will work for sure the the FTDI.

**When using the FTDI cable we recommend the following changes within the driver settings. **
With the USB to serial cable plugged in and recognized by Windows go into:

control panel
system
hardware
device manager
Ports (COM & LPT)
USB Serial Port (COM?)
Port Settings
Advanced

Make sure the receive and transmit transfer sizes are 4096, and change the latency to 1. Click ok then ok. Then close the rest. The latency is the delay before sending data. If it’s too long problems arise.

If you plan to do a lot with this hobby and want a trouble free interface then install a real serial port as illustrated here. USB to serial cables do work, but some can be finicky to optimize for the best operation.
lynxmotion.com/images/html/build126.htm

What USB to serial cable should I avoid?
Nikkai USB to serial converter
Pololu USB to serial converter No. 391
Anything from e-bay for less than $15.00

My USB to serial cable doesn’t work properly, or is slow.
Check the power mapping for the USB ports. The mapping defines how much power each port has available to it. Some USB devices will take up to 500mA of power. Some mapping actually shares this 500mA with 4 or more ports. Insufficient power can cause problems. Some users mention they had to use a powered hub to get the adapter to work, especially with laptops.

Some PC’s use a serial channel for IR communications. Apparently it’s possible for this same channel to be selected by a USB to serial cable. A user reports changing the default com port from 6 to 7 fixed a speed issue.

The serial port settings may need to be changed to ensure the optimum performance. Look at the FIFO transmit and receive buffers. Some machines will have the two values off by one. They need to be the same and larger than one. So 4 and 4 or 8 and 8 or 14 and 14 all seam to work.

For FTDI based adapters. They have settings called Latency and buffer that can help with the speed. Under the advanced setting of the com port in device manager should have this. Reducing the buffer size to 1k and Latency from 16 to 3 or even 1 should improve the speed significantly.

For Prolific based adapters. Ensure you have the latest driver if you are experiencing problems.

Sometimes I can program the Basic Atom and sometimes I can’t.
Sometimes the applications recognize the SSC-32 sometimes they do not.
One thing that is not apparent is that the serial port is only available to one program at a time. Usually the first program that uses the serial port will not allow other programs to use it. After the program is closed the serial port will be available again. You can also add an additional serial port if you want to, for example, be able to program the Atom and connect with the SSC-32 at the same time.
lynxmotion.com/images/html/build126.htm

I am using Com8 on a MacBook Pro booted into Windows XP SP2.

Using Lynx SCC-32 terminal v.1.10. I can’t get it to show the version number by typing “VER” and the green light on the SCC-32 stays on.

When I try the “Reg” button it says it “can’t find SCC-32 card”.

Though COM8 according to the device manager is working fine?

Any pointers?

Thanks.

If the green light never goes out, then:

You are on the wrong com port.

Or the com port is not functioning.

Or the serial cable is defective.

Or the serial port enable jumpers are not in place.

Even if the baud rate or commands are totally wrong the light will still go out and blink when receiving data.

Tried it on a “old” Dell with serial port and it worked fine!

Must be the Nikkai USB to Serial Convertor.

As you appear to be UK based try checking Farnell for an FTDI part number UC232R-10.

Thanks - Ordered last night at 18.15 and here this morning, brilliant!

However …

Device Manager says everything working but still can’t connect to the Arm using LynxTerm.

Download the FTDI Cleanup utility and the latest drivers and reinstalled, still no joy.

Anyone using th FTDI product?

Most of the successful USB to serial cable users are using the FTDI chip set. Unfortunately you will have to work with FTDI to resolve any issues with your PC install. Because you are doing a dual boot thing are you sure something doesn’t need to allow access to the serial port hardware? I seem to remember reading something like that recently.

Have you tried the simple short pin 2 and 3 “loopback” test? This will tell you if the thing is at least sending and receiving data. Short pins 2 and 3 on the DB9 end of the cable and type in a terminal window connected to the port. If you see the characters it’s at least working at some level.

ok which drivers did you d/l? I would think the 2.04.16 driver would be the correct answer. This is what I have loaded on my XP Pro system. Have not tried it on Vista so if the following doesn’t match up let me know and I’ll set it up at home and get back to you.

When the driver is loaded and the adapter is plugged in you should have in device manage a “USB Serial Port (COMx)” under the Ports (COM & LPT) section (obviously the x in COMx being your port number).
In device manager, right click on the USB Serial Port (COMx) and select Properties.
On the general tab verify the manufacturer is FTDI
Select the Port Settings tab and hit the Advanced… button
Both transfer sizes should be set to 4096
Under BM Options set Latency Timer (msec) to 1
Under Timeouts both should be 0.
Under Miscellaneous Options only Serial Enumerator should be checked.
Close the dialogs, unplug the adapter, wait a couple seconds, re-attach the adapter.
Test it. Make certain the COMx port specified in the driver is what you have selected in your application.

Oh yeah the mac book pro thing, just noticed that, is a bit of a wildcard. If you find the above still doesn’t work I’d try the USB adapter on that old Dell and establish go or no go that way. If it works there and not on the mac book then you are a bit beyond anything I know how to help with. :blush:

Thanks for all that.

Still couldn’t get it to work on the MacBook Pro under Windows XP.

As suggested installed drivers etc on the Dell under Windows XP and it worked fine!

It’s strange as the MacBook Pro is an Intel Processor and the hard drive is partioned in two, one for Mac OS and the other for Windows XP. It is not a Virtual Drive with Windows running on.

Saying that I can’t upgrade the Mac to Windows XP SP3, due (I believe) to the modified Windows Boot INI file.

Have a trip to the Apple Genius Bar tomorrow booked at the local Apple Store to resolve some warranty issues with key board. Will mention it then.

Thanks again for all you help. Will keep the board posted.

Have downloaded and installed Free Serial Port Monitor 3.31, monitoring COM9.

When I start Lynx Ssc32 Terminal and type ¨ver¨ I get;

Port opened by process “SSC32.exe” (PID: 3948)
Request: 05/06/2009 10:23:26.49464
51 50 30 0D 76 65 72 0D 0A QP0.ver…

and in the table view;

0,IRP_MJ_CREATE,DOWN,TRUE,0x0,53 00 53 00 43 00 33 00 32 00 2E 00 65 00 78 00 65 00 00 00 ,S.S.C.3.2…e.x.e…,
1,IRP_MJ_CREATE,UP,FALSE,0x0,
2,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_QUEUE_SIZE: Set queue size),DOWN,TRUE,0x0,00 04 00 00 00 04 00 00 ,…,
3,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_QUEUE_SIZE: Set queue size),UP,FALSE,0x0,
4,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),DOWN,FALSE,0x0,
5,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),UP,TRUE,0x0,80 25 00 00 ,?%…,
6,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),DOWN,FALSE,0x0,
7,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),UP,TRUE,0x0,00 00 08 ,…,
8,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),DOWN,FALSE,0x0,
9,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),UP,TRUE,0x0,68 40 40 00 11 13 ,h@@…,
10,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),DOWN,FALSE,0x0,
11,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 08 00 00 00 02 00 00 ,…,
12,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),DOWN,TRUE,0x0,80 25 00 00 ,?%…,
13,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),UP,FALSE,0x0,
14,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_CLR_RTS: Clear RTS),DOWN,FALSE,0x0,
15,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_CLR_RTS: Clear RTS),UP,FALSE,0x0,
16,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_CLR_DTR: Clear DTR),DOWN,FALSE,0x0,
17,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_CLR_DTR: Clear DTR),UP,FALSE,0x0,
18,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),DOWN,TRUE,0x0,00 00 08 ,…,
19,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),UP,FALSE,0x0,
20,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),DOWN,TRUE,0x0,90 40 40 00 11 13 ,Â

Are you using a virtual WinXP or are you just truely booting into WinXP?

Pure Windows XP Pro SP2.

Use Apple’s Boot Camp to partition the drive into two, one for MacOS X and the other for Windows.

On start-up chose Windows or MacOS.

Did you get an opportunity to do this? If they managed to resolve the issue I think the what and how of it would be of much interest. You could also pass it back to the FTDI guys so they can see about incorporating whatever needs to be done into a FAQ or something.

No. They said it was a Windows problem and they don’t do Windows!

I’m sure the problem is that something is blocking the COM port. Can’t see what though.

With the USB to serial cable plugged in and recognized by Windows go into:

control panel
system
hardware
device manager
Ports (COM & LPT)
USB Serial Port (COM?) <- I think you said it was com 8?
Port Settings
Advanced
At the top is the com port number. Change this to the next available one. Like COM 3 or COM 2. Do not change it to one that is physically there if there is any.

While this screen is open also make sure the receive and transmit transfer sizes are 4096, and change the latency to 1. Click ok then ok. Then close the rest.

Tell me what you get now! :open_mouth:

Now installed on COM3 changed it COM5.
(COM4 is used by Standard Serial over Bluetooth)

List shows COM1-COM256 with COM6 in use.

Connect and send “VER”, PortMon shows;

16:09:15 SSC32.exe IRP_MJ_CREATE VCP2 SUCCESS Options: Open
16:09:15 SSC32.exe IOCTL_SERIAL_SET_QUEUE_SIZE VCP2 SUCCESS InSize: 1024 OutSize: 1024
16:09:15 SSC32.exe IOCTL_SERIAL_GET_BAUD_RATE VCP2 SUCCESS
16:09:15 SSC32.exe IOCTL_SERIAL_GET_LINE_CONTROL VCP2 SUCCESS
16:09:15 SSC32.exe IOCTL_SERIAL_GET_CHARS VCP2 SUCCESS
16:09:15 SSC32.exe IOCTL_SERIAL_GET_HANDFLOW VCP2 SUCCESS
16:09:15 SSC32.exe IOCTL_SERIAL_SET_BAUD_RATE VCP2 SUCCESS Rate: 9600
16:09:15 SSC32.exe IOCTL_SERIAL_CLR_RTS VCP2 SUCCESS
16:09:15 SSC32.exe IOCTL_SERIAL_CLR_DTR VCP2 SUCCESS
16:09:15 SSC32.exe IOCTL_SERIAL_SET_LINE_CONTROL VCP2 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
16:09:15 SSC32.exe IOCTL_SERIAL_SET_CHAR VCP2 SUCCESS EOF:68 ERR:40 BRK:40 EVT:0 XON:11 XOFF:13
16:09:15 SSC32.exe IOCTL_SERIAL_SET_HANDFLOW VCP2 SUCCESS Shake:0 Replace:0 XonLimit:256 XoffLimit:256
16:09:15 SSC32.exe IOCTL_SERIAL_SET_TIMEOUTS VCP2 SUCCESS RI:20 RM:10 RC:10 WM:100 WC:1000
16:09:15 SSC32.exe IOCTL_SERIAL_SET_WAIT_MASK VCP2 SUCCESS Mask: RXCHAR RXFLAG TXEMPTY CTS DSR RLSD BRK ERR RING RX80FULL
16:09:15 SSC32.exe IOCTL_SERIAL_WAIT_ON_MASK VCP2 SUCCESS
16:09:15 SSC32.exe IRP_MJ_WRITE VCP2 SUCCESS Length 4: QP0.
16:09:15 SSC32.exe IOCTL_SERIAL_GET_MODEMSTATUS VCP2 SUCCESS
16:09:15 SSC32.exe IOCTL_SERIAL_GET_MODEMSTATUS VCP2 SUCCESS
16:09:15 SSC32.exe IOCTL_SERIAL_GET_MODEMSTATUS VCP2 SUCCESS
16:09:15 SSC32.exe IOCTL_SERIAL_WAIT_ON_MASK VCP2 SUCCESS
16:09:24 SSC32.exe IOCTL_SERIAL_PURGE VCP2 SUCCESS Purge: TXCLEAR RXCLEAR
16:09:24 SSC32.exe IRP_MJ_WRITE VCP2 SUCCESS Length 6: …VER.
16:09:24 SSC32.exe IRP_MJ_READ VCP2 TIMEOUT Length 0:
16:09:25 SSC32.exe IOCTL_SERIAL_GET_COMMSTATUS VCP2 SUCCESS
16:09:25 SSC32.exe IOCTL_SERIAL_PURGE VCP2 SUCCESS Purge: TXCLEAR RXCLEAR
16:09:25 SSC32.exe IOCTL_SERIAL_WAIT_ON_MASK VCP2

Also noticed the 9 volt battery gets used up really quickly. Turn off in between tests and a new one I started using two hours ago is down to 6v. Any reason for this?

Please stop sending all that garbage. Does the SSC-32 green LED go out when you type VER in LynxTerm? That’s all I care about! Please answer each question…

What was the com port associated with the USB cable before you changed anything?

What is is now?

What com ports does it show?

Do you have servos connected?

Do you have the VS=VL jumper installed?

Please stop sending all that garbage

It was meant to help. One of the other posters requested that info.

Does the SSC-32 green LED go out when you type VER in LynxTerm

No

What was the com port associated with the USB cable before you changed anything?

COM3

*What is is now? *

COM5

What com ports does it show?

Standard Serial over Bluetooth (COM4) (Disabled)
USB Serial Port (COM5)

*Do you have servos connected? *

Yes. That’s why in previous post I said when connected to the Dell I could move the arm!

Do you have the VS=VL jumper installed

No, removed as in step 16 page 6 of 7 in Arm Base Assembly Guide.

I’m out of ideas. I got nuthin! I’m really sorry, but I do not know what else to try.