Getting started with the drivers and the SSC-32 board

Starting MS Robotics Studio for the first time and getting something up and running is generally a daunting task. I thought I’d provide a quick tutorial on how to get the SSC-32 driver up and operational.

Start by downloading the drivers from Lynxmotion’s site. They are in the form of a .zip file.

Assuming you installed Robotics Studio into the default location unzip this file to C:. If you installed RS somewhere else you’ll need to unpack the .zip into the folder that contains “Microsoft Robotics Studio (1.0)”.

Now you should be able to bring up Visual Studio using the .csproj file in samples\Lynxmotion\SSC32. Just open explorer there and double-click the SSC32.csproj file.

In a bit you should be staring at a Visual Studio window. Determine which serial port your SSC-32 is connected to on your PC. You’ll want to open the file SSC32State.cs and locate the variable named _portName. This is currently set to “COM5”. Change it to be whatever port you have attached the SSC-32 to.

Select Build/Build Solution and you should see it successfully build. If the last line of the output doesn’t say “0 failed” then something went wrong and don’t try to go any further.

Assuming you’re still here the build worked. You should now be able to power on the SSC-32 and then run the program by hitting F5 in Visual Studio. It would probably help to have a servo or 2 attached to the SSC-32 so you can actually control something.

A DOS box will pop up with various log messages in it. Once that stops the servos might jump to a new position but then everything seems to just sit there. That’s OK since the service is now running but there are no requests being made to it.

Open up your web browser and point it to localhost:50000/ssc32

You should see a list of 32 servos and there values along with a single button. Go ahead and enter a value into one of the servo fields and click the button. This will send the value to the SSC-32 and the servo should move.

Go back to Visual Studio and stop the program. Now you need to be able to run it from the command-line. Robotics Studio installs a command prompt with a special environment. It’s under the Start menu for Robotics Studio. Go and run this.

Once the command box comes up enter the command

bin\dsshost -port:50000 -tcpport:50001 -manifest:samples\Config\Lynxmotion.SSC32.manifest.xml

This should make the driver come up in the same way as it did under Visual Studio. You should also be able to control the servos via the web browser.

Actually, it isn’t so difficult when everything works as it is supposed to work. :smiley: What version of Microsoft Robotics Studio is this tutorial aimed at? I have v1.0 installed now and there are some problems with the current Lynxmotion MSRS driver files - one URL does not exist, for instance schemas.coroware.com/robotics/2007/01/ssc32.html which is referenced in samples\Config\Lynxmotion.SSC32.manifest.xml.

I got this done.

I also got this done.

I tried this. but everything disappears after the file seems to load into VC#. I also have Visual C++ Express installed, so there may be a conflict here. Neither one seems to like that .cproj file.

I’m not sure how to get beyond this point.

8-Dale

I wrote the tutorial based on version 1.0 of Robotics Studio and version 1.2 of the Lynxmotion services (that’s what is out on the web site now).

All of the installs were done in the default folder “C:\Microsoft Robotics Studio (1.0)”.

This URI should come from the file SSC32Types.cs near the top. There is a class named **Contract **with a string in it named Identifier. This is how the URI listed in the manifest is used to determine which service it actually references. This doesn’t relate to a real URL on the web.

Visual C++ of any flavor won’t understand the file since it’s c-sharp code. You need to make sure and run Visual Studio for C#. You can start up Visual Studio first and then use file Open to load the project file in. This should allow you to get started.

Hmmmmm. I should be getting this to work then, because I have MSRS v1.0 installed.

I have mine installed in E:\Robotics\Microsoft Robotics Studio (1.0) now, which should not make any difference since paths are (or should be) relative to the installation point. I have put the Lynxmotion files in the correct places (samples\config for the manifests, and the rest is in samples\Lynxmotion, which may not be right. I think it just that missing URL that is messing up at least some of this. I don’t know what URL to use now though.

I am using the Express versions of the Microsoft languages - Visual C#, Visual C++, Visual J#, and Visual Basic. Visual C# does not like that project file, and I do not know why, since I am brand new to the MS development languages. I have tried just double clicking on the project file and opening it from Visual C#. I get a load of sorts, but then my whole Visual C# windows clear out and I have what appears to be a blank slate waiting for me to open a project or C# file. If there are absolute paths in the C# project file, then this would definitely mess me up, since I do not have MSRS installed on drive C:.

8-Dale

I don’t think the URL is missing. Have you verified if it is located at the top of SSC32Types.cs? Once that is done and the build works it should be found automatically in the bin\services folder.

I do believe there are absolute paths in the .csproj files which could definitely be a problem building but it should still allow you to open the project. On my system I get a tab on one side of the display that is labelled Solution Explorer and this has a tree of files that can be double-clicked to edit them. You might try choosing **Build **on the top menu and then Build Solution and see if it builds.
You may have to go into the .csproj file using an editor like notepad and tweak the paths directly.

It is right there where you said it should be.

OK, I am making progress here now! :smiley: I have the Solution Explorer now -I had to select it from the View menu. I can not get the Project to Build though. I also had to find and change the paths for the project in Project -> SSC32 Properties --> Reference Paths. They were all set to drive C: just like the paths in the .csproj file were. I changed them to match my installation and was able to build the project and solution successfully. :smiley::smiley:

I did have to change the paths in the .csproj file, and modified them to point to where I have MSRS installed. I have built the project and solution and everything is now where it is supposed to be.

Many thanks for your assitance in figuring out what was wrong and getting it all straightened out! I hope this will help others like myself who do not care to install stuff on drive C: when it can be avoided. :smiley:

8-Dale

You are very welcome. I’ll put it in the bug list to change the paths to relative for our next release.

Excellent. :slight_smile: Also, the Readme.htm file for the SSC-32, it should be:

dsshost /p:50000 /m:"samples\config\Lynxmotion.SSC32.manifest.xml"

8-Dale

When I try to browse the service using

http://localhost:50000/ssc32

I am asked to login. What userid and password is this dialog expecting?

8-Dale

Ah, you’ve been bitten by an annoying “feature” of the environment. They provided a security setting pointing to a file that is non-existent.
Go into the file dsshost.exe.config in the bin folder and find the line

 <add key="Security" value="..\store\SecuritySettings.xml"/>

Using XML comments just change the line so it reads

<!--  <add key="Security" value="..\store\SecuritySettings.xml"/>-->

This should disable those security settings and allow you to browse the service.

Why do they do such stupid things?

I did that and it does seem to have disabled the security settings. Just the fact that security settings have been allowed for makes me wonder if I should have something setup. I know MSRS can be accessed over the Internet, and I don’t want anyone getting in I don’t specifically allow for.

I can get a response from the SSC-32 URI now, which is great. However, I am getting raw XML rather than the page I should get according to the readme,htm file. Maybe this is because I don’t have an SSC-32 directly connected to the COM port (COM1) right now. I will try it with my other SSC-32 when I get a chance, since one is now part of WALTER (I have a secret goal for him).

8-Dale

Never figured that one out :slight_smile:

Yes, that is a problem. You can write a security settings file and then uncomment that line. I don’t specifically recall the format but the MSRS forums should have something about it.

There should be a file named ssc32.xslt in the store\transforms folder which describes how to convert the XML. It should have been installed as part of the Lynxmotion drivers. If that is there you are probably correct about the SSC-32 not being attached.

I have the ssc32.xslt file and I put it in the store/transforms folder. I am still getting the same thing though and it says there is no style information. I didn’t exactly install the files as I should have. I didn’t realize it would be OK to just unarchive everything into the root MSRS folder.

8-Dale

Did you ever get this to work? I am encountering the same problem with Microsoft Robotics Studio 1.5 (CTP May 2007). I successfully rebuilt the SSC32 service with VC# 2005 Professional. I have the xml translator file in C:\Microsoft Robotics Studio 1.5 (CTP May 2007)\store\transforms\ssc32.xlst.

If I run the ssc32 dss service and fire up the webpage (i.e. ocalhost:50000/ssc32) to view the servo controller status I simply get some XML text. I cannot reproduce the text since this is my first post to this group.

Thanks for any input on this.

Bob

I’ve seen this occasionally and been unable to reliably reproduce it. I know I have used IE7 and had the XML come back up and then the next time I went to view the service it produced the nice formatted output. Haven’t seen any relationship to when it happens.

And I’ve never tried with 1.5.

Was there any requirement that the SSC32 board be connected? I am currently testing on a machine without the board.

Yes, that definitely seems to make a difference.

I haven’t done any work with MSRS for awhile now even though I did take time to “upgrade” to v1.5. The last time I checked with v1.5, the Lynxmotion support files would not work with that version.

8-Dale

We have not upgraded the drivers to work with 1.5 although I don’t think that should be a major issue. Once MS releases 1.5 rather than having CTP versions we will produce a new Lynxmotion release as quickly as possible.

Would it be possible to control a robot with MSRS, and get Sensor info?
I guess not yet, since it’s only connected to the SSC-32 and I wouldn’t plus sensors on the SSC-32…
But I would love to be able to do something like that, probably using the Bot board and AtomPro connected to the SSC-32 and to the computer via bluetooth or wifi.
Will Lynx ever make some MSRS services of this kind?

Maybe I could write some services to enable that (first I need to get a blueSmirf or other), and, why not, the services could also use the SEQ files in some way on the computer so that you don’t have to control each servo and just use some pre-made sequences. Anyway, if this happens, it will probably be in a long time (a few months, or next summer, or…)

BTW how can I use the blueSmirf with a bot board instead of SSC-32? Could I just wire it up and use serin/serout commands?