Welcome, Guest. Please Login.
Surveyor Corporation Surveyor SRV-1
Home Help Search Login

Surveyor Robotics Forum

Welcome to the user support forum for Surveyor SRV-1 robots, SRV-1 robot controllers and SVS stereo vision systems. To register for this forum, please send an email to support@surveyor.com which includes your desired forum user name, your registration email address, and a brief explanation of why you wish to join, and we will create a forum account for you.

Please note that there is a Search button in the forum toolbar for forum topics. Another effective search method for the entire surveyor.com site is to use Google, e.g. "xyz site://www.surveyor.com" where "xyz" is the search topic.



Pages: 1
Send Topic Print
SRV-1 Blackfin Architectural Overview (Read 4967 times)
admin
YaBB Administrator
*****




Posts: 3675
SRV-1 Blackfin Architectural Overview
07/12/08 at 7:14am
 
In response to a request from a robotics magazine for an overview of the SRV-1 Blackfin architecture, I wrote the following.  Perhaps this will also provide a useful summary for new SRV-1 Blackfin users ...
 
=========================
 
From a hardware perspective, our products are organized as follows -  
 
1.  The SRV-1 Blackfin Camera - this is our core Blackfin processor card with a 1.3MPix camera module and a 32-pin expansion bus, as described here -  
      http://www.surveyor.com/blackfin/
 
2.  A set of expansion i/o circuit boards, mostly as open source published here - http://www.surveyor.com/blackfin/#blackfin1 - in Eagle PCB format, though some 3rd party expansion boards already exist, including one from www.abotics.com.  The main configurations are the "Combo Matchport / Motor Driver" and the forthcoming "Stereo Camera".  These boards host the SRV-1 Blackfin Cameras, the Matchport WiFi radio module, H-bridge motor interface, transistor drivers for laser pointers or LED lighting, and provide regulated 3.3V from the battery source,  
 
3. A motorized robot base - the latest version was a cooperative design with Inertia Labs - http://www.inertialabs.com/srv.htm
 
The SRV-1 Blackfin Robot is comprised of the SRV-1 Blackfin Camera, the combo Matchport / motor board, and the new Inertia Labs base.  The main point I wanted to make is that many of our customers and projects build around just the SRV-1 Blackfin Camera or Blackfin Camera + radio / motor board.  Examples of this include -  
      http://www.surveyor.com/cgi-bin/robot_journal.cgi/2008/02/04#141
      http://www.societyofrobots.com/robot_ERP.shtml
      http://www.surveyor.com/YARB.html
      http://www.surveyor.com/cgi-bin/yabb2/YaBB.pl?num=1205375683
      http://www.surveyor.com/cgi-bin/robot_journal.cgi/2007/11/25#130
      http://www.surveyor.com/cgi-bin/robot_journal.cgi/2008/02/03#140
 
 
From a software perspective, it is worth mentioning that there is a uClinux port to the SRV-1 Blackfin Camera, but the default configuration preferred by most users is "bare metal" (no operating system) code that is published as open source that fits 100% in the L1 cache of the Blackfin and runs very fast.   The command interface to the firmware is described here -  
      http://www.surveyor.com/SRV_protocol.html
 
All of the 3rd party software for the SRV-1 such as Microsoft Robotics Studio, Roborealm, Webots, interfaces to the SRV-1 Blackfin through this protocol, as do our java-based SRV1Console, python-based pySRV1Console, and various customer-published consoles and development environments, e.g.
      http://www.voxatec.com/
      http://www.transterpreter.org/
      http://www.swarthmore.edu/NatSci/mhsieh1/Courses/E28/
      http://agents.sci.brooklyn.cuny.edu/robotics.edu/bcsoftware.php
 
Also built into the SRV-1 firmware is picoC C interpreter.
 
So there are 3 main modes of interfacing to / controlling the SRV-1 -
 
1.  use one of the above-mentioned console / development environments
 
2.  write code for the on-board picoC interpreter
 
3.  modify and recompile the SRV-1 firmware using the GNU bfin-elf-gcc compiler toolchain or Analog Device's VDSP++
 
Our users are fairly evenly divided in these approaches, and you will find active discussions of these various efforts on the Surveyor Robotics Forum - http://www.surveyor.com/robot_forum.html
 
===========================
Back to top
 
« Last Edit: 11/14/09 at 10:32am by admin »  

SRV-1 Development Team
Surveyor Corporation
Email WWW   IP Logged
gliderproject
YaBB Newbies
*




Posts: 8
Re: SRV-1 Blackfin Architectural Overview
Reply #1 - 02/22/09 at 7:26am
 
I want to write a program in C and send it to the Blackfin to run and I don't know where to start. i can program C on a computer. I have only the camera and wifi board, I don't have the complete robot.
Back to top
 
 
  IP Logged
admin
YaBB Administrator
*****




Posts: 3675
Re: SRV-1 Blackfin Architectural Overview
Reply #2 - 02/22/09 at 7:47am
 
You don't need the complete robot.  Take a look at  
       http://www.surveyor.com/cgi-bin/yabb2/YaBB.pl?num=1234544290
 
This will tell you a bit about using the C interpreter.
 
As regards transferring your C program to the SRV-1, it depends on your host computer.  If you are using Linux, you can use a script like "send1" -  
 
==============
echo type X [enter], then control-C, to start XMODEM file transfer of $1  
nc 192.168.0.15 10001
sleep 1
lsz -Xkbv --tcp-client 192.168.0.15:10001 $1
sleep 1
nc 192.168.0.15 10001
==============
 
If you are on windows, you need a terminal program such as TeraTerm -  
       http://hp.vector.co.jp/authors/VA002416/teraterm.html
that supports XMODEM file transfers.
 
On Windows with TeraTerm, when you connect, the host is the IP address of the SRV1, the TCP port is 10001, and you want to UNCHECK Telnet. If you leave Telnet selected, you will have problems with file transfer. As soon as you connect, send a 'V' to get the version string - that will let you know that things are working. To transfer a file, send 'X' to start XMODEM receive on the SRV-1, then from Tera Term, select:
     File .. Transfer .. XMODEM .. send
and select your file, or from the keyboard, use these shortcuts:
     ALT-F .. T .. X .. S
From your terminal program, you should see:
     ##Xmodem success. Count: 33792
 
Once your program has been transferred, you can run it by issuing the 'Q' command
 
Here is an example program -
 
=======================
    int x;
    char ch;
 
    ch = 0;
    while (ch == 0) {
       x = range();   /* user laser pointer ranging */
       print("range = " x);
       if (x < 30) {
           motors(-50 , 50);
       } else {
           motors(50, 50);
       }
       delay(500);
       ch = input();  /* continue until any console input */
    }  
    motors(0, 0);
    exit();
Back to top
 
« Last Edit: 01/28/10 at 2:19pm by admin »  

SRV-1 Development Team
Surveyor Corporation
Email WWW   IP Logged
gmonnat
YaBB Newbies
*




Posts: 5
Re: SRV-1 Blackfin Architectural Overview
Reply #3 - 01/28/10 at 2:14pm
 
Maybe it's because my brain hurts at the moment due to work, but I don't understand how I'm supposed to get custom C code into the SRV-1.  For example, if I wanted to add the example C program above, what steps should I take?  (I'm on a WinXP 32-bit laptop)
 
1) I followed Lefteris's "Compiling SRV-1 firmware under Windows - A Guide" and got the “mingw32-make” and Tera Term stuff compiling and talking to the SRV-1.  I think I can send files to the robot in order to update firmware with files provided by Surveyor, but I'm not sure in what format I need to have custom firmware in.
 
2) I'm assuming that the example code above needs to be compiled before passing it through Tera Term, it that right?  Can I use MS Visual Studio to compile it (meaning that I can write code there, too)?  If so, what files do I send over, and should they in the correct format?
 
3) Once I get the example C project over to the SRV-1, does it in any way mess up the previous firmware?  In other words, do I need to add it to a full/previous firmware project, or am I simply overwriting a "main.c"-type file?
 
Sorry about the confusion and thank you for any clarifications,
George
Back to top
 
 
  IP Logged
admin
YaBB Administrator
*****




Posts: 3675
Re: SRV-1 Blackfin Architectural Overview
Reply #4 - 01/28/10 at 2:18pm
 
Sorry - this post is out-of-date.  Look instead at  
    http://www.surveyor.com/cgi-bin/yabb2/YaBB.pl?num=1239459317
for using the onboard C interpreter.
 
Otherwise, you need to use the firmware posted here -  
    http://code.google.com/p/surveyor-srv1-firmware/
as a starting point.  The compiler toolchain is found here -  
    http://www.surveyor.com/blackfin/#blackfin4
 
Back to top
 
 

SRV-1 Development Team
Surveyor Corporation
Email WWW   IP Logged
gmonnat
YaBB Newbies
*




Posts: 5
Re: SRV-1 Blackfin Architectural Overview
Reply #5 - 01/28/10 at 3:07pm
 
Quote from admin on 01/28/10 at 2:18pm:
Sorry - this post is out-of-date.  Look instead at
   http://www.surveyor.com/cgi-bin/yabb2/YaBB.pl?num=1239459317
for using the onboard C interpreter.

Otherwise, you need to use the firmware posted here -
   http://code.google.com/p/surveyor-srv1-firmware/
as a starting point.  The compiler toolchain is found here -
   http://www.surveyor.com/blackfin/#blackfin4

 
I read that and downloaded picoC.  My fundamental issue is that my boss had me buy this robot last week, and I have to do a demo at the beginning of next week.  That's an extremely steep learning curve for the very limited time that I have.  If I can simply use MSVS,  the Blackfin compiler toolchain, and Tera Term (without having to learn picoC), then that would be great.
 
 
Edit: after downloading and looking at picoC I got a headache, so when I saw this thread with the 3 options, I was hoping to use an IDE that I'm already familiar with.
Back to top
 
« Last Edit: 01/28/10 at 3:17pm by gmonnat »  
  IP Logged
admin
YaBB Administrator
*****




Posts: 3675
Re: SRV-1 Blackfin Architectural Overview
Reply #6 - 01/28/10 at 3:16pm
 
MSVS isn't going to help you - the Blackfin toolchain is essentially command-line based.  Your best bet in such a short timeframe is to start working with picoC.
 
picoC is already built into the SRV-1 firmware - you don't need to download anything to have that capability.  Look at http://www.surveyor.com/C.html to get a better idea of picoC usage.
Back to top
 
« Last Edit: 01/28/10 at 3:17pm by admin »  

SRV-1 Development Team
Surveyor Corporation
Email WWW   IP Logged
Pages: 1
Send Topic Print