"... and no one shall work for money, and no one shall work for fame; But each for the joy of the working, and each, in his separate star, shall draw the thing as he sees it, for the god of things as they are"

-Kipling

 

SRV1 CSharp Console

Background

The SRV1 robot is a small mobile tracked platform with a camera, WiFi connectivity and a fast Blackfin processor cpu. As shipped, the Blackfin cpu runs a compiled C program which acts as a kind of mini-operating system. This mini O/S manages the exchange of information with the WiFi handler chip and can accept simple one or two byte commands to perform actions. The O/S also contains a C interpreter and it is possible to send C source to it for execution. The interpreted C language contains most of the flow control and looping constructs one expects from a C language and also a number of extensions (for example a motor command). The maximum size for an interpreted C program is 65K.

Note: The company which makes the SRV1 robot has appeared to have gone offline and their domain (surveyor.com) now redirects to a company unrelated to robotics. This page has now been edited to remove links into that domain. If anybody knows the new home page or a community site for the SRV1 robot to which I can link please let me know.

When a command has been completed, the SRV1 will return a response via the open TCP/IP connection. This response is usually printable ASCII characters although in some cases (an image command for example) a binary data strean is returned to the caller.

So, if the SRV1 robot has a cpu running a program acting as a de-facto O/S and this program can accept simple commands, then there needs to be a way to send it these simple commands. One of the ways to do this is to use a simple program which performs these operations on behalf of the user. This program, called a console, also accepts the responses from the SRV1 and displays them in a nicely formatted manner.

A Java console which connects to the SRV1 robot is offered as a free download from the Surveyor.com website. The Java console contains a number of buttons which can send motor (and other) commands to the SRV1 and also has the ability to display on the PC screen the image currently visible to the SRV1 camera. However it cannot perform such tasks as sending a user specified command or hex string to the SRV1 robot. It is also unable to send an interpreted C file to the SRV1 robot for execution although various other tools and techniques for this purpose are described on the SRV1 website. The Java console is open source.

The SRV1CSharpConsole Software

The SRV1CSharpConsole is a completely re-written (not a port) CSharp version of the Java console. It provides some extended capabilities and retains a similar look and feel.

Capabilities

License

This software is offered as a binary and with source code under the terms of the the MIT License.

Download

Acknowledgements

The button graphics for the quick motor command buttons were obtained from the Java Console source. The commands which the buttons send are identical, although not every button present in the Java console was included in the CSharp version of the console.

Screenshots

The main panel of the SRV1 CSharp Console

 

The C-Code panel of the SRV1 CSharp Console