Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   cRio external 'co-processor' options (http://www.chiefdelphi.com/forums/showthread.php?t=69636)

EHaskins 19-10-2008 01:08

cRio external 'co-processor' options
 
What options are there for interfacing other devices with the cRio? From the photos I see two Ethernet ports and a serial port. Obviously there are the Digitial I/O ports, but I'm looking to transfer a significant amount of data.

One of the Ethernet ports has to be used for the access point, so I suspect that the rules will be strict about that configuration.

The other Ethernet port is supposed to be used for an Ethernet camera, but would it be possible to put an Ethernet switch on that port and attach another device to the switch as well? Or, are there restrictions (software, hardware, or rules) in place to prevent this type of configuration?

Is the serial port accessible from user code?


I realize that rules and software may change before the season starts, but I'm working on a project and I'd like to get an idea of the options before I proceed any further. I'm hoping that some of the beta test teams will be able to provide me with some answers.

Greg McKaskle 19-10-2008 08:58

Re: cRio external 'co-processor' options
 
I can't tell you much about the rules, but I can tell you that the serial port is accessible.

Greg McKaskle

EHaskins 19-10-2008 12:30

Re: cRio external 'co-processor' options
 
Quote:

Originally Posted by Greg McKaskle (Post 770973)
I can't tell you much about the rules, but I can tell you that the serial port is accessible.

Greg McKaskle

Thanks, that what I needed to know.

EricVanWyk 19-10-2008 12:38

Re: cRio external 'co-processor' options
 
I think we are all curious - what is this co-processor you are adding?

Joe Ross 19-10-2008 12:48

Re: cRio external 'co-processor' options
 
There is also an I2C port.

David Brinza 19-10-2008 12:56

Re: cRio external 'co-processor' options
 
Past rules will not necessarily apply to what will be allowed in 2009, but "co-processors" and other custom circuits were allowed on robots, subject to cost limits ($400). There were other restrictions as well: no custom PWM circuits to Victor inputs, no wireless communications, no connections to radio or tether ports on the RC, etc.

There are some interesting co-processor options out there; just check out the choices at Tern, Inc.

But, before I'd worry about how to interface external processing capability, I'd want to understand what the cRIO system can do itself!

EHaskins 19-10-2008 13:01

Re: cRio external 'co-processor' options
 
Quote:

Originally Posted by EricVanWyk (Post 770988)
I think we are all curious - what is this co-processor you are adding?

I don't want to talk about the details, yet. I will say I'm not really going to be doing any processing that requires an external processor, but I now have a functional prototype and I'm concerned about the time involved porting and debugging it on another platform.

If I have time once the new system ships I will probably port it over, but I want to plan for the very likely scenario where I don't have that much time.

Quote:

Originally Posted by David Brinza (Post 770993)
Past rules will not necessarily apply to what will be allowed in 2009, but "co-processors" and other custom circuits were allowed on robots, subject to cost limits ($400).
...
But, before I'd worry about how to interface external processing capability, I'd want to understand what the cRIO system can do itself!

My current prototype is using a system which is far less than $400, and I'm not concerned that the cRio couldn't handle what I'm doing. I don't believe the time involved to port my current project to the cRio is worth the effort if I can simply interface with my existing hardware using a relativity simple protocol.

Quote:

Originally Posted by Joe Ross (Post 770990)
There is also an I2C port.

Didn't know that, thanks.

tdlrali 19-10-2008 14:11

Re: cRio external 'co-processor' options
 
How much data do you have to transfer? If it's just motor values (since your co-processor mustn't control motors directly, correct?), then serial should be adequate.

EHaskins 19-10-2008 15:36

Re: cRio external 'co-processor' options
 
Quote:

Originally Posted by tdlrali (Post 770998)
How much data do you have to transfer? If it's just motor values (since your co-processor mustn't control motors directly, correct?), then serial should be adequate.

I've been testing with serial between my prototype and a PC, and that seems to be adequate.

Daniel_LaFleur 19-10-2008 15:40

Re: cRio external 'co-processor' options
 
Quote:

Originally Posted by EHaskins (Post 770962)
One of the Ethernet ports has to be used for the access point, so I suspect that the rules will be strict about that configuration.

The other Ethernet port is supposed to be used for an Ethernet camera, but would it be possible to put an Ethernet switch on that port and attach another device to the switch as well? Or, are there restrictions (software, hardware, or rules) in place to prevent this type of configuration?

Is the serial port accessible from user code?


I realize that rules and software may change before the season starts, but I'm working on a project and I'd like to get an idea of the options before I proceed any further. I'm hoping that some of the beta test teams will be able to provide me with some answers.


From what we saw at the demo (We're not a beta team) the Ethernet hardware is quite capable of networking to another system (co-prossessor). I did not see any DHCP controller software (Greg ... is the cRIO under VxWorks capable of being a DHCP server?) so the addressing may be in the FPGA (in which you wont be able to use the ethernet port for further networking). Since the rules haven't come out, no one can answer that, however if the hardware/software is capable it is unlikely that they will restrict coprossessors. They will, most likely, ban other transmitters (such as 900 MHz cameras) though.

Other data connections:
I2C
Serial
DIO
All are accessable but you'll most likely have to write your own (or modify) driver to interpret the data.

Last year the rules were no single electronics device over $400. There are a number of off the shelf devices that conform to that. Last year we used a $250 ARM gumstix coprossessor through the onboard serial (program?) port to interpret SONAR signals.

Good luck.

Greg McKaskle 19-10-2008 18:15

Re: cRio external 'co-processor' options
 
Quote:

From what we saw at the demo (We're not a beta team) the Ethernet hardware is quite capable of networking to another system (co-prossessor). I did not see any DHCP controller software (Greg ... is the cRIO under VxWorks capable of being a DHCP server?) so the addressing may be in the FPGA (in which you wont be able to use the ethernet port for further networking).
I know a DHCP server isn't running, and I don't think one is on the controller that simply needs to be enabled. The enet expandability depends directly on whether or not a switch, hub, or other enet expansion device will be allowed. Currently there are two ports, one for radio, and the other used by the camera, if you use it.

For future years, another expansion bus is CAN.

Greg McKaskle

MarkO 19-10-2008 20:25

Re: cRio external 'co-processor' options
 
Quote:

Originally Posted by Greg McKaskle (Post 771014)
I know a DHCP server isn't running, and I don't think one is on the controller that simply needs to be enabled. The enet expandability depends directly on whether or not a switch, hub, or other enet expansion device will be allowed. Currently there are two ports, one for radio, and the other used by the camera, if you use it.

For future years, another expansion bus is CAN.

Greg McKaskle


DHCP is only used with TCP/IP, which can be used over Ethernet, but other Protocols also work over Ethernet.

I like CAN, I use it every day at work....

Joe Hershberger 19-10-2008 21:52

Re: cRio external 'co-processor' options
 
Quote:

Originally Posted by Daniel_LaFleur (Post 771004)
From what we saw at the demo (We're not a beta team) the Ethernet hardware is quite capable of networking to another system (co-prossessor). I did not see any DHCP controller software (Greg ... is the cRIO under VxWorks capable of being a DHCP server?) so the addressing may be in the FPGA (in which you wont be able to use the ethernet port for further networking). Since the rules haven't come out, no one can answer that, however if the hardware/software is capable it is unlikely that they will restrict coprossessors. They will, most likely, ban other transmitters (such as 900 MHz cameras) though.

The FPGA has nothing to do with the Ethernet ports or the serial port. Those are connected directly to the PPC processor that will be running your code. As Greg said, no DHCP.

Quote:

Originally Posted by Daniel_LaFleur (Post 771004)
Other data connections:
I2C
Serial
DIO
All are accessable but you'll most likely have to write your own (or modify) driver to interpret the data.

The FPGA provides access to a dedicated I2C engine for each digital module. It also has a buffered (512 word send and 512 word receive) SPI interface. You can also use the DIO directly.

-Joe

EHaskins 19-10-2008 23:32

Re: cRio external 'co-processor' options
 
Why are people concerned about not having a DHCP server? DHCP is not an integral part of the TCP/IP stack, and can be bypassed simply by configuring a static IP address. DHCP is only used to allow more flexibility in network topology.

My assumption would be that the cRio's access point NIC would be a DHCP client and the cRio's second NIC and the camera would have static, but configurable, IP addresses. Can any of the beta teams confirm this?

Pat Fairbank 19-10-2008 23:42

Re: cRio external 'co-processor' options
 
Quote:

Originally Posted by EHaskins (Post 771049)
My assumption would be that the cRio's access point NIC would be a DHCP client and the cRio's second NIC and the camera would have static, but configurable, IP addresses. Can any of the beta teams confirm this?

Actually, both NICs are given static IPs. The access-point-facing IP is 10.xx.yy.2 (where xxyy is the team number in base 10 digits), and the camera-facing IP is 192.168.0.3. I imagine there's a way to change these from the cRIO software, but I don't know how, nor can I think of a reason for bothering to do it.

PhilBot 20-10-2008 10:41

Re: cRio external 'co-processor' options
 
1 Attachment(s)
Quote:

Originally Posted by Pat Fairbank (Post 771052)
Actually, both NICs are given static IPs. The access-point-facing IP is 10.xx.yy.2 (where xxyy is the team number in base 10 digits), and the camera-facing IP is 192.168.0.3

And to elaborate further, (for beta testing at least) the other devices (like driver station and host PC) are also given fixed IP's based on team number.
I put the attached pic together for our team.

The downside to this is that it limits us to only 25499 teams.

EHaskins 20-10-2008 13:55

Re: cRio external 'co-processor' options
 
Quote:

Originally Posted by Pat Fairbank (Post 771052)
Actually, both NICs are given static IPs. The access-point-facing IP is 10.xx.yy.2 (where xxyy is the team number in base 10 digits), and the camera-facing IP is 192.168.0.3. I imagine there's a way to change these from the cRIO software, but I don't know how, nor can I think of a reason for bothering to do it.

Quote:

Originally Posted by PhilBot (Post 771091)
And to elaborate further, (for beta testing at least) the other devices (like driver station and host PC) are also given fixed IP's based on team number.
I put the attached pic together for our team.

The downside to this is that it limits us to only 25499 teams.

Thanks.

ShotgunNinja 20-10-2008 21:00

Re: cRio external 'co-processor' options
 
Three words: Downloading the Internet.

(Just kidding)

But yeah, this is very nice. One possible tweak that someone might think about is designing a Bluetooth interface, then having the robot connect through someone's laptop and beam streaming video from the new cameras to a video stream server. Make it happen!

EDIT: Anyone know any good whitepapers on the digital stream format the FIRST cameras send out?

EHaskins 20-10-2008 23:16

Re: cRio external 'co-processor' options
 
Quote:

Originally Posted by ShotgunNinja (Post 771188)
Three words: Downloading the Internet.

(Just kidding)

But yeah, this is very nice. One possible tweak that someone might think about is designing a Bluetooth interface, then having the robot connect through someone's laptop and beam streaming video from the new cameras to a video stream server. Make it happen!

EDIT: Anyone know any good whitepapers on the digital stream format the FIRST cameras send out?

It appears from the demo videos that they use a standard Ethernet camera, and that it is possible to stream the data over the Wireless connection.

Usually Ethernet cameras use very simple protocols, often just a stream of JPEGs, but there doesn't seem to be very much standardization in this area.

Coding4Fun did an article about streaming Ethernet camera data, and doing motion detection a while ago.

keen101 27-10-2008 11:53

Re: cRio external 'co-processor' options
 
Here is a neat Linksys Linux robot that uses an ethernet camera. Maybe you can learn something from his project.

http://www.jbprojects.net/projects/wifirobot/

X-Istence 30-10-2008 03:23

Re: cRio external 'co-processor' options
 
My question with the cRio, are the teams allowed to write code directly for the FPGA? Verilog is nifty, and being able to accomplish certain tasks very fast could be win-win.

Also, where would I be able to find more information? As an Alumni I hear bits and pieces from my team, but not nearly enough and this year it looks like the control board alone is going to be pretty awesome.

Also, if someone is doing motion based stuff, take a look at OpenCV from Intel. That is some cool code :P

Nate Smith 30-10-2008 07:00

Re: cRio external 'co-processor' options
 
Quote:

Originally Posted by X-Istence (Post 772927)
My question with the cRio, are the teams allowed to write code directly for the FPGA? Verilog is nifty, and being able to accomplish certain tasks very fast could be win-win.

Also, where would I be able to find more information? As an Alumni I hear bits and pieces from my team, but not nearly enough and this year it looks like the control board alone is going to be pretty awesome.

Also, if someone is doing motion based stuff, take a look at OpenCV from Intel. That is some cool code :P

First, for more info...http://first.wpi.edu/FRC/csoverview.html

Also, my understanding is that teams will NOT be able to program the FPGA directly, as that is where FIRST is storing their "master code" for the system, similar to the master CPU in the older IFI system that handled the disable codes from the field, etc.


All times are GMT -5. The time now is 19:33.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi