- First unpack the SRV-1 robot, battery charger, and USB base station radio. You'll also find a shorting block (jumper) attached to the installation instructions that is used for uploading new versions of SRV-1 firmware to the robot - just set this aside for later.
- Make certain that the run/charge switch is in the UP ("chg") position. Also, straighten the antenna for the radio - it's probably folded over. The Li-ion battery pack is probably already charged, but you can recharge the battery by first plugging in the charger to the robot with the power switch in the up position, and then plugging the charger into the wall. Charging shouldn't take more than 2 hours.
- Note that the radio on the SRV-1 and the USB radio may have a channel designation (e.g. CH.C, CH.D, CH.E ...). If you received a shipment of multiple robots with multiple radios, then the radio pairs have been configured to run on different channels, so just match up the pairs.
- download and install the base station radio driver from http://www.surveyor.com/srvdownload/. The latest robots are shipped with a "USB dongle" style of radio, and the corresponding drivers are found here. There are drivers for Windows, Linux and Mac OS/X in the srv1_usb_radio.zip file. If you're running Windows, unzip this archive, change to the "Windows Pre-Install" directory, and run the setup program ("PreInstaller.exe"). Note that the Windows installation may seem to run 2 installers in sequence - we haven't figured out why it does this, but it's not a problem. In any case, once the driver installation is finished, plug the USB radio into your computer, and your system should recognize the radio and assign a new COM port to it (typically "COM4", but you may have to experiment to figure out which port). For other operating systems, just follow the "readme" instructions in the respective directory.
- download and unzip the java console software from the download page. If you create a \SRV (/SRV) directory, and unzip everything into that directory, you'll end up with a bunch of .class and .jar files, along with \applet, \archive and \buttons subirectories.
On Windows, create a desktop icon for SRV1Console.exe and double-click to launch.
Alternatively, from a
Windows command prompt ("Run cmd"), assuming you have Java 1.4.2 or later installed, type
java -cp .;RXTXcomm.jar;ImageButton;wstreamd_embed.jar; SRV1Console
On a Mac or Linux, from a terminal shell, type
java -cp .:RXTXcomm.jar:ImageButton:wstreamd_embed.jar: SRV1Console
Note - there are now several command line options for SRV1Console
- -c connects SRV1Console to the robot via the most recently used com port or network connection
- -s enables the graphic overlay function for displaying image processing data from "wander mode"
- -p xxxx where xxxx = Port Number, changes port number of WebcamSat module from default 8888
These options can be used in any order, and also work from the Windows SRV1Console.exe command line, e.g.
> java -cp .:RXTXcomm.jar:ImageButton:wstreamd_embed.jar: SRV1Console -c -p 9999 (from Mac/Linux)
> java -cp .;RXTXcomm.jar;ImageButton;wstreamd_embed.jar; SRV1Console -s -c (from Windows)
> SRV1Console -p 9999 -s -c (from Windows)
Also note - on the Mac, you may need to download
"RXTX-for-Mac.zip" to install the RXTX serial comm library. You can also download the latest RXTX files from http://www.rxtx.org
For Linux 2.6, you don't actually use the above-mentioned Linux drivers - support for the USB radio is already built in ("/dev/usb0" or similar)
You should end up with a display that looks like this:
Assuming the base station radio drivers have loaded properly, you're almost ready to go ...
- One more quick note - the SRV-1 should arrive with the latest firmware, but in case it doesn't, the instructions for installing firmware are found further down in this document - click here for instructions on how to update the firmware.
- Switch the robot power switch to the down (RUN) position. You should see the large red LED on the SRV-1 controller light up.
Select the right serial port (probably COM4 on your PC, /dev/cu.SLAB_USBtoUART or /dev/cu.usbserial-2B1 on the Mac or Linux. Push the "connect"
button on the Java console, and you should start to see pictures.
The control buttons might not be completely obvious, except perhaps for Forward and Back (up and down arrows). The upper steering buttons will allow the robot
to drift left or right, and the lower steering buttons make fairly hard turns forward left/right or back left/right. The red button in the middle is STOP. There are 2 other
steering buttons for rotating left/right approx 20-degrees, and the right-hand image buttons set resolution to 320x240, 160x128 or 80x64, with correspondingly different frame rates
(160x128 is probably the most useful). The fast/slow buttons will increase/decrease motor speed, though they don't take effect until one of the direction buttons is pushed.
There are additional navigation functions now - "wander on/off" controls a robot wandering mode. Basically, the robot will try to match image characteristics of open space in front of
it when the "wander on" button is clicked, and will explore its environment, hopefully not running into things.
The failsafe button enables/disables a timeout for radio communication, so the motors will stop if the robot doesn't hear fro
the base station for more than 1 second in this mode.
Note: other autonomous robot functions are actively in development, so this display may change when firmware and java console software are updated.
- You'll see some messages in the command window that should look like this:
indicating that the WebcamSat module is functioning, and the base station console can be remotely accessed via a local network or Internet.
- To remotely control the console through the Internet or local network. Point your browser to
- The WebcamSat module allows you to configure user access control, and also has an archiving function. To access the admin functions of WebcamSat, go to
default user: webcamsat password: admin
(these can be changed through the setup menu accessed via the admin page)
Click on the "Admin Tools", and then click on "Schedule New Archive" if you want to schedule an archive:
Archives are stored in AVI format, but are easily converted to other formats such as Quicktime.
- More information on WebcamSat is found here
- New versions of SRV-1 firmware will appear on a pretty regular basis on the download page, and will have the filename "srv1.hex" . We'll eventually have a mechanism for updating the firmware via the Java base station console, but for now, the process is a bit of a kludge.
- There are a couple of jumpers on the SRV-1 controller board that force the ARM7 processor into a flash memory loading mode. Normally, these jumpers are not used -
To set up for updating the firmware, turn off the SRV-1 robot, and install jumper JP4.
Basically, this jumper forces the ARM7 processor into the Flash Memory Bootstrap Loader mode when the processor powers up, and it's just sitting and waiting for the next step.
- By this time, you have hopefully already downloaded the lpc21isp program from the download page.
- Make certain you have turned off the robot's power.
- Assuming your radio is on COM4, making certain that srv1.hex is in the same directory with lpc21isp.exe,
you'll start lpc21isp from a Windows command prompt as follows:
> lpc21isp -hex srv1.hex com4 115200 14746
(fyi - 115200 is the baud rate of the serial connection from host to robot, and 14746 is the clock speed of the robot's ARM7 processor in kHz)
- When the program runs, it should look something like this -
Note - the program will start running, and then stop here:
> Synchronizing . . .
- At this point, turn on the SRV-1 robot power -
The SRV-1 should start communicating with the lpc21isp program through the radio, downloading
the new firmware image. If the download completes successfully, you need to remove the JP4 jumper and power cycle (turn off, then turn on) the robot.
In case you are wondering, the JP4 jumper controls Pin 0.14 on the ARM7 processor. Basically,
the firmware in the processor looks at the level of P0.14 after a reset, and if it's low, the processor goes into Flash Loader mode, waiting for new firmware to download.
Normally, we don't want the processor in that mode, so that's why we leave the jumper off when actually running the robot firmware.
The new firmware should be running properly now.
- Important - it is fairly common to get an error message during the lpc21isp download, so -
- make certain that the antennas are straight on USB and SRV-1 XBee radio modules
- retry the process until you have a successful transfer - just turn off the SRV-1 power, restart the lpc21isp program, then turn on the SRV-1, and watch the firmware transfer process. it may as many as 5-10 attempts before you have a successful transfer, though this is not usually the case.
- if the transfer process starts but then stalls, you may have to change the baud rate of the transfer from 115200 to 112400. The syntax for this is
> lpc21isp -hex srv1.hex com4 112400 14746
- if you are still having problems, try moving the robot closer or further from the USB radio - sometimes there are dead zones or nulls in the radio signal field
- if you still can't get a connection, it may be necessary to change the radio frequency. Contact technical support for assistance - mailto:firstname.lastname@example.org
Additional Note - some versions of the ARM7 processor board have an RS-232 connector, as seen here ...
The ARM7 can be configured to connect either to the Zigbee radio or the RS-232 port, depending on the position of 2 jumpers, as shown below ...
If the jumpers are in the position shown above, the ARM7 will communicate through the Zigbee radio.
If the jumpers are in the position shown immediately above, the ARM7 will communicate through the RS-232 connector. In either case, you'll still download firmware to the processor using the JP4 jumper and the method described above.
Last Updated - 8 December 2006 18:50 gmt
Click to return to SRV home page