# How do we make our robot work?

As a holiday project we are building a surveillance robot that is capable of transmitting live images using a webcam and is also capable of lifting small objects.

It uses a CC2500 module for communicating with the robot. The interface is designed in Visual Basic 6 and it allows us to set the port of the computer to which the transreceiver is connected. It is connected via a USB to RS232 port (USB side is connected to the computer).

We tried the settings as shown below and we get an error that the config is unsuccessful. We have tried the same settings in 4 different computers so far and it did not work.

Circuit diagram for the robot:

It is designed using an Atmel 89S52.

Please tell us what settings to try to make it work

• This question is incredibly uninformative. It could be my own ignorance, but what am I looking at in the circuit diagram? What is the error? Is it a VBasic error, and OS-level error, some output from whatever that circuit is? Mar 2 '13 at 18:02
• Given the icon in thee screenshot, are you talking about the CC2500 the ilabs module (since the screenshot looks like an older version of the ilabs GUI), or CC2500 the the TI chip? Mar 2 '13 at 19:39

I believe your question starts with 'how do I configure and talk to a TI CC2500 transceiver from Windows treating it as a USB Virtual COM Port'.

Unfortunately, the answer to this is going to be very specific to the TI CC2500 device. You'll need to load a driver. You'll need to understand the communications protocol the CC2500 uses over the serial port.

I'd recommend seeking help from a community closer to your device. I haven't seen people using the TI CC2500 in robotics before, so there may not be anyone on this forum familiar with it. Try the TI E2E Community or contact one of their customer support centers.

Good luck with your project. If you were to say using an Arduino with a Zigbee or Bluetooth communications chip in place of your TI CC2500 I think you'd find better support in the robotics community.

I use TI chips (typically the Stellaris line) and I agree that you need to provide much more information.

That being said I think your problem lies in one of two areas (probably the second one):

1) Your device isn't emulating: When you connect your device to the computer does it make the 'du-duh' sound? Alternatively press start, right-click 'Computer', go to 'Manage' and check in Devices manager if you are showing up as a COM port. If you are not, then your problem lies with a) your driver (although your device should still show up) or on your embedded side. I'd bet on the latter. This means this is not the website for your to figure it out on and fixing this is no small task. However if you've come this far, maybe you won't mind coming a little further. However from your screen shot it does look like it is emulating, so let's go to option number two.

2) You are throwing an exception when connecting: I'm going to assume that you are using the .NET framework SerialPort class in VB (btw you should update to something newer than VB2006 or at least make sure your .NET framework is up to date if you haven't already). The SerialPort class is widely regarding as being incredibly poorly written and the method SerialPort.Open() actually performs about 8 things and if a single one of them fails then the whole method fails and you are up the creek. What I would do is download something like Termite and see if you can connect to the device that way. Most terminal programs ignore IO Exceptions (which is what I bet is happening in your VB program). By the way, did you write the VB program yourself? If so, do you have a try-catch around your SerialPort.Open() method? Because that is a good way to figure out if that is where your problem lies. If you cannot connect with Termite then I would download Eltima which is port monitoring software. It runs in the background while you try to connect to a serial port and it will log what is happening and more importantly it will log errors.

Good luck and happy coding :)

TL;DR: get Eltima and find the error.