Log in

View Full Version : 2007 Robot Controller


groves
17-10-2006, 22:04
Innovation first has been out of robot controllers since before the end of last season. Does anyone have any clues to what might be involved with the new controller?

Tom Bottiglieri
17-10-2006, 22:13
If they are planning anything, its probably not major. I remember seeing mention somewhere of the RC being updated, but not redesigned.

EHaskins
17-10-2006, 22:54
You should search before you post. There have been many threads about this, but probably no big changes.

AdamHeard
17-10-2006, 22:57
If they are planning anything, its probably not major. I remember seeing mention somewhere of the RC being updated, but not redesigned.

I've heard the exact same thing.

Tazlikesrobots
18-10-2006, 12:48
I heard that the new controller will have the capability of using USB joysticks, and the radio receiver may be internal.

JamesBrown
18-10-2006, 14:56
I heard that the new controller will have the capability of using USB joysticks, and the radio receiver may be internal.

I would have to doubt that they would make the radio internal especially since all of the radio communication goes through the competition port. Most of the upgrades will probably be fixing the bugs that teams found last year.

James

chris31
18-10-2006, 15:46
The current radios also arent that small. Unless they redesigned them i think it might be a little hard to get them on the RC board.

bear24rw
18-10-2006, 16:28
I wouldnt be suprised if they switched the programming port from DB-9 to a mini usb... i have a feeling that will probably be the only major design change...

I personally would enjoy seeing a radicle change but im not going to get my hopes up

Conor Ryan
18-10-2006, 16:29
The current radios also arent that small. Unless they redesigned them i think it might be a little hard to get them on the RC board.
I'm pretty sure the radio modems are big for a reason, I believe, is mostly so they can get better reception. If you heard anything about Nextfest, they had a lot of reports of radio interference, and that is not good if you want to have matches that are fair. Another reason could be it's cheaper to have them larger, they keep Kit prices really reasonable, so size might be a sacrifice.

Anyway, I'm willing to predict a new controller available from IFI in the new future, whether or not it's for FIRST or not is a question. The only controller you can buy from IFI right now is the Mini Robot Controller (http://www.ifirobotics.com/edu-rc.shtml), so who knows. They discontinued the Isaac Controller line, and they look remarkably similar to the FIRST controllers. Who knows, maybe there was some business reasoning for that.

If there is a new system, I'd say it is going to be very close to the current Vex microcontroller (http://www.vexlabs.com/vex-robotics-design-system.shtml)

chris31
18-10-2006, 17:45
Right, many teams have the RC in the center of there bot. If the radio was internal you would have a small little radio that might not get reception because it is blocked. There is no reeal reason for the radio to be internal.

Billfred
18-10-2006, 18:05
They discontinued the Isaac Controller line, and they look remarkably similar to the FIRST controllers. Who knows, maybe there was some business reasoning for that.
I imagine so; with FIRST's and IFI's switch from the BS2 controller to the PIC, the Isaac controllers were obsolete, and in such a low-volume product (low enough to run out mid-season), there's no gain to be made in having two lines.

Tom Bottiglieri
18-10-2006, 18:17
Right, many teams have the RC in the center of there bot. If the radio was internal you would have a small little radio that might not get reception because it is blocked. There is no reeal reason for the radio to be internal.
I see plenty of reasons to incorporate the radio into the RC.

First of all, the argument that the radio is big and won't fit is moot, as the radio is years old and has changed a bit, but it seems it has stayed the same shape to ensure modularity. If Cingular can incorporate and edge antenna into a card bus slot and little tiny rc cars can run on 900mhz, the receiver can fit in the RC as it stands.

For benefits on the consumer side, it eliminates a serial cable and another electronics box. We can all use that extra weight. Its also just a more elegant solution than having cables running all over the place.

On the manufacturing side, it eliminates another PCB to print, and another box to mold. You can sell a cheaper product for the same price. More money in your pocket.

Joohoo
18-10-2006, 18:31
I wouldnt be suprised if they switched the programming port from DB-9 to a mini usb..

:) Ohh yeah That would be sweet seeing as that most laptops don't have serial ports anymore, and since when did you see a programmer working on a desktop in the pits?

chris31
18-10-2006, 19:14
:) Ohh yeah That would be sweet seeing as that most laptops don't have serial ports anymore, and since when did you see a programmer working on a desktop in the pits?

USB would be nice. The team in the pit next to us at VCU brought a desktop. Personally I just prefer a laptop and USB to Serial adapter.

EHaskins
18-10-2006, 19:33
:) Ohh yeah That would be sweet seeing as that most laptops don't have serial ports anymore, and since when did you see a programmer working on a desktop in the pits?

I saw one in Milwaukee, but I don't remember what team it was. USB programming would be nice.

Andrew Blair
18-10-2006, 20:04
I agree that integrating the radio can be done- there's buttloads of space in that box- but I don't think it will be done. The modems we use are not strictly for FIRSTs use, and IFI would either need a special order for a card type mount, or integration onto a reletively cramped board- something that requires quite a bit of work for, as Billfred said, a low volume product. But it could be done.

In my opinion, the only changes to the brain will be a firmware update. They just replaced the PIC (Which is software- the chips are the same size- pin count etc. I believe), they have a nice supplementary income from broken serial connectors ;).

But, I would like to see the USB programming support. There isn't a computer that can be used for programming that doesn't have USB support- the only problem is the addition of even more control hardware. PIC's, pull-ups, etc.

Stuart
18-10-2006, 20:51
Im willing to bet that the radio stuff will happen(tazlikesrobots has a nack for these things), also willing to bet that USB support will finally be added. . also going out on a limb and saying that the camera will be different/better(they show out of stock).

but hey what do I know.

Andrew Blair
18-10-2006, 21:51
I heard that the new controller will have the capability of using USB joysticks, and the radio receiver may be internal.
The problem with USB joysticks is that, unless there is a clever way around it, the RC needs to be a USB host to communicate- and even worse, may have to store several drivers just to support a reasonable number of joysticks. Which is a far different hardware story than a usb slave, as implementing a USB programming port would mean. It's a nice idea, but it poses a very steep set of obstacles to climb.


I would go out on a limb and say that FIRST would likely have us hack a USB joystick to gameport before they got IFI to develop the support. Additionally, if you wanted to support easy potentiometer/switch interfaces that teams construct on their own, you'd need either some gameport "ports", or a seperate analog-USB dongle to mediate.

ChuckDickerson
18-10-2006, 22:16
This entire thread somehow seems very familiar (http://www.chiefdelphi.com/forums/showthread.php?t=47078). As far as the whole USB joystick interface question on the OI I believe the solution has been posted (http://www.chiefdelphi.com/forums/showthread.php?t=48865).

Gdeaver
19-10-2006, 00:15
IFI will probably never incorporate a radio into the RC because of FCC issues. They may incorporate a FCC precertified module with and external antenna. This would be a significant cost savings. I think ZIGBEE would be a good fit however the technology needs a little maturing. Actually the are some Zigbee modules that could replace the operator interface.

bear24rw
19-10-2006, 17:02
I don't really think that the radios will change... i'm not sure if i would like the radio to beinside the RC.. it seems like it wouldnt get reception, but if it does and it works consistantly then i would defiently prefer that. As far as USB programming Parallax has done it and I have a feeling that IFI is going to follow suit..

http://www.parallax.com/detail.asp?product_id=28850

Hopefully IFI will supprise us this year

Astronouth7303
19-10-2006, 17:12
It wouldn't surprise me if a new camera was included; I've heard online that CMU developed a new all-in-one package for the camera.

I would hate for the program port to be removed (remember, that's also how you connect other peripherals - eg, the 2005 power distribution board). I would much rather see them start packaging USB-Serial adaptors. Also, moving to USB means developing drivers for it. (Windows for IFI, Linux for us.)

What may be helpful to alleviate this problem is if there was a SoIP (Serial over IP) system available for FIRST teams. Meaning that a virtual serial port is available to software that is forwarded to a "serial server" that is actually connected. Developing the server software isn't bad, it's the client driver in Windows that presents problems.

Conor Ryan
19-10-2006, 18:04
The 2007 controller(s) might already be out there, I had a thought today that maybe radical but it can be substantiated.

What if they are having teams build multiple minitaure robots this year? See, IFI only has the mini-controller for sale right now, and they are a good bit cheaper than the old controllers. So what if they give every team 3 controllers? And every time a light on the field changes like they demoed in Atlanta, a different robot needs to be operated? Instead of having one complex robot, we get three simple robots. Two heads are better than one, and three just might be fun.

It's just a thought.

Jon Jack
20-10-2006, 02:00
I'm not so sure going from serial to usb for the controller ports is all that great.

What if a team wanted to develop a custom controller? This year is a perfect example, many teams made custom controllers to control their shooters. If IFI did change the controller port to usb everyone could just about kiss the days of custom controllers good bye because teams would pretty much be limited to a list of controllers the OI supported. IMHO that takes some of the inventiveness out of FIRST.

I do remember there being a thread similar to this before last year's kick-off and people were saying much of the same things. When kick-off came around the only significant upgrade was the memory boost.

chris31
20-10-2006, 08:15
The 2007 controller(s) might already be out there, I had a thought today that maybe radical but it can be substantiated.

What if they are having teams build multiple minitaure robots this year? See, IFI only has the mini-controller for sale right now, and they are a good bit cheaper than the old controllers. So what if they give every team 3 controllers? And every time a light on the field changes like they demoed in Atlanta, a different robot needs to be operated? Instead of having one complex robot, we get three simple robots. Two heads are better than one, and three just might be fun.

It's just a thought.

I have always wanted to have about 3 small bots and have them work together. Being able to communicate with each other. Something like this would turn out pretty cool I think.

deshirider430
20-10-2006, 15:32
usb would be sweet

BrianBSL
20-10-2006, 19:22
IFI will probably never incorporate a radio into the RC because of FCC issues. They may incorporate a FCC precertified module with and external antenna. This would be a significant cost savings. I think ZIGBEE would be a good fit however the technology needs a little maturing. Actually the are some Zigbee modules that could replace the operator interface.

Not just FCC - but import/export regulatory reasons for other countries as well (different frequency bands, etc).

In addition, any time they made a major change to the RC, it would need new FCC testing.

I think it is very unlikely that the radios would be integrated - not much to gain from doing it for quite a large development cost.

bear24rw
21-10-2006, 11:21
I'm not so sure going from serial to usb for the controller ports is all that great.

What if a team wanted to develop a custom controller? This year is a perfect example, many teams made custom controllers to control their shooters. If IFI did change the controller port to usb everyone could just about kiss the days of custom controllers good bye because teams would pretty much be limited to a list of controllers the OI supported. IMHO that takes some of the inventiveness out of FIRST.

I do remember there being a thread similar to this before last year's kick-off and people were saying much of the same things. When kick-off came around the only significant upgrade was the memory boost.

I agree with you that the game ports need to stay on the OI, they are easy to use and custom controllers are easy.. I am reffering to the SERIAL port used for programming the robot. I think they should change that to USB.. not the Game Ports on the OI

efoote868
21-10-2006, 12:25
actually, it'd be interesting to see a firewire interface for programming. as for the joysticks, i don't think they would go usb, simply because they'd be switching from a bunch of pins to 4 or 6 (well, 4 really)

BrianBSL
21-10-2006, 12:59
actually, it'd be interesting to see a firewire interface for programming. as for the joysticks, i don't think they would go usb, simply because they'd be switching from a bunch of pins to 4 or 6 (well, 4 really)

Huh? USB is serial data and has much more bandwidth than the analog and digital joystick ports. There's only 2 data lines there - and you aren't going to be able to use them as GPIO without some custom circuitry.

I wouldn't mind seeing USB for Joysticks with some GPIO (yes IO, to allow some feedback as well as input) and analog inputs for custom controls.

As far as programming via IEEE1394 - that wouldn't make much sense either as
a) you don't need nearly that much bandwidth
b) interfacing IEEE1394 to a PIC is much more complicated than USB (off-the-shelf USB to serial converter chips)
c) IEEE1394 isn't nearly as standard on PC's as USB

Without switching PIC chips, however, they would simply be adding a USB to Serial adapter on the RC - which is pretty much pointless except they have control over it for troubleshooting reasons. They could accomplish the same thing by keeping the serial port, allowing the flexability of using the serial port for other applications (IE. breaker panel, custom circuits), and shipping a USB to serial adapter to every team that they have tested and know works well with the RC.

Kingofl337
30-10-2006, 12:00
For all of you who want USB because your laptop doesn't have any serial ports. Here is some inside info.

These rule! : CARDBUS / PCMCIA - RS232 Cards (http://cgi.ebay.com/PCMCIA-to-RS232-232-Serial-DB9-CardBus-Adapter-Card-by_W0QQitemZ200041545637QQihZ010QQcategoryZ3710QQr dZ1QQcmdZViewItem?hash=item200041545637)

They are insanely fast compared to USB to RS-232.

efoote868
30-10-2006, 18:14
c) IEEE1394 isn't nearly as standard on PC's as USB

PC's maybe... i've seen quite a few laptops with them though. Anyhow it was just a thought...

tux
06-11-2006, 17:40
> There isn't a computer that can be used for programming that doesn't have USB support

My old Pentium 1 begs to differ... And it's much faster than the 486 we used last year, too.

Mike
29-12-2006, 13:18
I used to be on the bandwagon that wanted a USB interface.

However much a USB interface would benefit those doing solely IFI programming, it would be detrimental to those teams using off-board processors. Right now there are two ways to get information to the IFI board during a game. The program port and the TTL port. Unless you feel like designing a pass-through system so you can use your system and the camera on the TTL port, the other option is using the program port.

I mean I guess we could just use a USB->Serial converter, but I'd rather have slow programming time than slow data transmission.

ThomasP
29-12-2006, 13:24
The new controller is going to be Java based.

chris31
29-12-2006, 13:40
The new controller is going to be Java based.

I almost spit my Mountain Dew out reading that.

bear24rw
29-12-2006, 13:47
The new controller is going to be Java based.

Yeah, i really hope they dont do that..

And to the post above that about needing another serial line for co processing, they could have two ttl ports and a mini usb just for programming...

Tom Bottiglieri
29-12-2006, 13:49
The new controller is going to be exactly the same as the old controller. They may upgrade the PIC again, seeing as there was so many problems with the 8722.

Tottanka
29-12-2006, 13:51
I heared that last year's controller has some major isues with gyro...
Some teams reported they gyro had actually burned their RC, so it is probably one of the things that gonna be cahnged..

Onboard radio would be awesome cause personnlay, we had one friendly match last year with no robot functioning' cause the Radio in came out of the RC, wich wouldnt have happened if we had it onboard...

USB's would be an awesome addition to the RC, cause i remember having many problems with that last year,like bringing a laptop wich doesnt support serial, but only USB, and then having to carry around with a huge Desktop computer and a monitor is not really fun...

Also, maybe they will change the OI too, having it supported with USB ins, so we can use much better joystics and other controllers, without having to switch from USB to Serial...

Getting a 9 pin cable was also a bit of aproblem last year, with USB, stuff will be much easier, as its used everywhere and there are like 10 of them in each house. At least 10...

ThomasP
29-12-2006, 13:56
Yeah, i really hope they dont do that..

And to the post above that about needing another serial line for co processing, they could have two ttl ports and a mini usb just for programming...

What's wrong with Java?

CollegeBoard uses Java for the AP Computer Science exam and schools with a FIRST team are likely to have an AP Computer Science class... there aren't many extreme syntax differences between C and Java but using a language that the average HS computer science student is familiar with would probably spark more interest.

chris31
29-12-2006, 14:07
USB's would be an awesome addition to the RC, cause i remember having many problems with that last year,like bringing a laptop wich doesnt support serial, but only USB, and then having to carry around with a huge Desktop computer and a monitor is not really fun...


Buy a USB to serial converter. I have seen people bring desktops to competiton and its a huge waste of pit area.

bear24rw
29-12-2006, 14:08
What's wrong with Java?

CollegeBoard uses Java for the AP Computer Science exam and schools with a FIRST team are likely to have an AP Computer Science class... there aren't many extreme syntax differences between C and Java but using a language that the average HS computer science student is familiar with would probably spark more interest.

Yeah i took AP CS last year, idk i guess its just a preference, i would just prefer C

chris31
29-12-2006, 14:11
What's wrong with Java?

CollegeBoard uses Java for the AP Computer Science exam and schools with a FIRST team are likely to have an AP Computer Science class... there aren't many extreme syntax differences between C and Java but using a language that the average HS computer science student is familiar with would probably spark more interest.

Java doesnt run on PICs by default. Plus Microchip is a sponsor of FIRST. I think that they hope with there donation of Mplab that they assume some people will grow to use and like it and then use PICs and there C compiler for personal and buisness projects..

Kristian Calhoun
29-12-2006, 14:18
on board radio would be awesome cause personnlay, we had one friendly match last year with no robot functioning' cause the Radio in came out of the RC, which wouldn't have happened if we had it on board...

Word of advice: make sure to check and tighten your radio connection on the processor before every match. It also doesn't hurt to check and see if any of your pwm cables are loose, and that the backup battery is securely fastened. There's nothing worse than being in the middle of a match and suddenly getting no response from a motor/sensor, or the entire robot as a whole if the radio comes loose.
What's wrong with Java?
Well you see, the thing is, that they have been working so hard developing and trying to perfect EasyC Pro, that if they switched over to Java, then they would have to start all over with EasyJava. And rumor has it that banana sensors don't quite work the right way in java. :p

Tom Bottiglieri
29-12-2006, 14:22
What's wrong with Java?


Java isnt built to run on small embedded devices. The main point of Java is to provide cross platform compatibility. When you compile a Java program, it does not compile to straight machine code, as a C program does. It compiles to whats called Java Byte Code, which then has to be run through an interpreter to be turned into machine code your processor can understand. Based on your system (Windows, Mac OS, Linux, UNIX, etc..) you will need a different interpreter. We are all using the same system in FIRST, so there is no need for that level of abstraction. Java is one of the slowest languages out there, and when developing for embedded devices you want to strive for speed and efficiency.

The reason AP CS is taught in Java is for its wide range of compatibility, and the fact it is an object oriented language which is built off the idea of classes. While your final product may be slow and limited, the programming methods you must use to create applications is very robust and practical. The AP CS class doesn't exist to teach you Java, but rather to teach good programming techniques in an object oriented language.

ThomasP
29-12-2006, 14:33
Java doesnt run on PICs by default. Plus Microchip is a sponsor of FIRST. I think that they hope with there donation of Mplab that they assume some people will grow to use and like it and then use PICs and there C compiler for personal and buisness projects..

There is actually a project people are working on to slave VEX controllers to a Java board here (https://jvex-robotics.dev.java.net/). If you check out Systronix's website (http://jcx.systronix.com/), you'll see that it has a lot of potential and could be used for things that the PIC controller wouldn't be able to.

I'd just be really dissapointed if FIRST stays with C instead of progressing to a newer technology only because of one of their sponsors wants them to... doesn't really seem like something FIRST stands for.

Java isnt built to run on small embedded devices. The main point of Java is to provide cross platform compatibility. When you compile a Java program, it does not compile to straight machine code, as a C program does. It compiles to whats called Java Byte Code, which then has to be run through an interpreter to be turned into machine code your processor can understand. Based on your system (Windows, Mac OS, Linux, UNIX, etc..) you will need a different interpreter. We are all using the same system in FIRST, so there is no need for that level of abstraction. Java is one of the slowest languages out there, and when developing for embedded devices you want to strive for speed and efficiency.

The reason AP CS is taught in Java is for its wide range of compatibility, and the fact it is an object oriented language which is built off the idea of classes. While your final product may be slow and limited, the programming methods you must use to create applications is very robust and practical. The AP CS class doesn't exist to teach you Java, but rather to teach good programming techniques in an object oriented language.

Java SE and EE may be slow (you should look at server vm benchmarks though), but I think the CLDC Micro Edition is faster than C on the PIC processor...

Tom Bottiglieri
29-12-2006, 14:36
There is actually a project people are working on to slave VEX controllers to a Java board here (https://jvex-robotics.dev.java.net/). If you check out Systronix's website (http://jcx.systronix.com/), you'll see that it has a lot of potential and could be used for things that the PIC controller wouldn't be able to.

What's one thing you want to do with your robot that can't be done in C with structures? Sure, its not a full blown class, but its close enough. Just because something is newer doesn't mean its better.

There is absolutely no reason for IFI to change their hardware. It works well and people are familiar with it.

Plus, C# blows the pants off of Java, IMHO.

ThomasP
29-12-2006, 14:45
I'm not really up for a argument about which programming language is better... the only reason I'd like to see Java in FIRST is because of the AP classes being taught in Java. Some people struggle in CS classes learning one language and telling them the robot is programmed in a different language from what they're learning in class destroys their potential interest fast.

chris31
29-12-2006, 14:51
There is actually a project people are working on to slave VEX controllers to a Java board here (https://jvex-robotics.dev.java.net/). If you check out Systronix's website (http://jcx.systronix.com/), you'll see that it has a lot of potential and could be used for things that the PIC controller wouldn't be able to.

Theres nothing Java can do that C cant do. The hardware will do the same thing no matter what software is running it.

Personally I like embedded devices and am glad that I get to use C for FIRST. Its a nice break from OOP and Java. I love C structs. I guess its just how I think.

Donut
29-12-2006, 17:21
I'm not really up for a argument about which programming language is better... the only reason I'd like to see Java in FIRST is because of the AP classes being taught in Java. Some people struggle in CS classes learning one language and telling them the robot is programmed in a different language from what they're learning in class destroys their potential interest fast.

At how many schools is AP Comp. Science an issue though? I know in our district only half of our schools even teach that class, and they didn't actually use Java until 2 years ago (prior to that it was still C). AP Comp. Science is a 3rd year programming class, meaning at least in our district you must take two other programming classes (both with different languages) before you can take it.

I could see it maybe good in a few particular cases, but overall I think most schools have their programming curriculum laid out in such a way that this wouldn't have much of an effect.

Not that Java can't be used for robot programming, that's why Parallax developed the Javelin chip.

chris31
29-12-2006, 17:59
At how many schools is AP Comp. Science an issue though? I know in our district only half of our schools even teach that class, and they didn't actually use Java until 2 years ago (prior to that it was still C). AP Comp. Science is a 3rd year programming class, meaning at least in our district you must take two other programming classes (both with different languages) before you can take it.

I could see it maybe good in a few particular cases, but overall I think most schools have their programming curriculum laid out in such a way that this wouldn't have much of an effect.

Not that Java can't be used for robot programming, that's why Parallax developed the Javelin chip.

Dang. I go to a private school so its a difrent situation. But I took Intro to Com. Sci. as a freshman. We have 10 people in the class which wasnt to bad for a high school with 110 people. I was going to take the AP as a sophmore then. Howver due to people leaving the school and some people not wanting to take the class we only had 3 people so they didnt teach it. They were supposed to teach the intro class that year so that the folowing year we would have two grades worth of people to take the AP. They didnt teach the intro so here I am, junior with no AP Com. Sci., so the 3 of us decided to take it as an independant study (basucally a free period with no teacher) and we learn it on our own and will take the AP at the end of the year.

woo this was a overyly long post.

Donut
30-12-2006, 00:11
Dang. I go to a private school so its a difrent situation. But I took Intro to Com. Sci. as a freshman. We have 10 people in the class which wasnt to bad for a high school with 110 people. I was going to take the AP as a sophmore then. Howver due to people leaving the school and some people not wanting to take the class we only had 3 people so they didnt teach it. They were supposed to teach the intro class that year so that the folowing year we would have two grades worth of people to take the AP. They didnt teach the intro so here I am, junior with no AP Com. Sci., so the 3 of us decided to take it as an independant study (basucally a free period with no teacher) and we learn it on our own and will take the AP at the end of the year.

woo this was a overyly long post.

This almost ended up being the case of what happened to me as well. I took Intro. to Comp. Science as a Freshman, and Windows Programming as a Sophomore. Our original AP Comp. Science teacher left after my Freshman year, and for our Sophomore year the class was taught by a teacher from another high school in our District. I was signed up for the class last year, and they decided it wouldn't be offered at my high school. Finally they've brought it back this year so I get it next semester.

JamesBrown
30-12-2006, 07:23
I'm not really up for a argument about which programming language is better... the only reason I'd like to see Java in FIRST is because of the AP classes being taught in Java. Some people struggle in CS classes learning one language and telling them the robot is programmed in a different language from what they're learning in class destroys their potential interest fast.

I am not sure how familiar you are with C or JAVA but it is very easy to move between them, if you have learned to program in JAVA you should have no problem moving to C. Also a good AP course should be focusing on the algorithm design and psuedo code portion of programming more than they focus on language syntax. If you can only program in one language then you really haven't learned computer science, you learned JAVA or C or Basic. I taught my self C, then basically taught my self JAVA (I was in a class but the teacher had never used anything other than Q basic) and that was more than enough for me to learn how to program. Since then I have picked up VB, and Python in about a week each, I am starting to do some work with C#. Once you learn to program (not to code) you can switch between languages no problem, you just may want to keep some reference materials around to remember syntax if you haven't used a language in a while.

ThomasP
30-12-2006, 13:28
I'm actually quite familiar with Java and C but I wasn't arguing for me, I personally have no problem with C, I was arguing for the people I've seen come to one meeting, hear that robot isn't programmed in a language they're familiar with, and not come back. And now I'm just going to start pretending like this thread doesn't exist, seeing a new person bashing me every time I open this thread is getting old lol.

fimmel
30-12-2006, 13:51
if people want to program the bot in java they can get a simple java board and interface it with the main controller through serial. just have someone who likes c make a code to pass the data on.

makes sense to me.

/forest

efoote868
30-12-2006, 14:20
while teaching new programmers C, who are familiar with java, the hardest things for them to learn are preprocessors. We spent a good hour describing #def. oh well.

I'm not exactly sure how one could benefit from java more than C. Although it is very easy to think of a robot as "Shooter", "Arm", "Drive", etc.; it really isn't necessary, and I can't see myself ever coding Shooter robotShooter = new Shooter();

Danny Diaz
01-01-2007, 18:36
This is actually a really interesting thread. Should a technologically-focused organization change every time the college board or some academic institution decides what's the hot new thing? Not to sound like Grandpa from the Simpsons, but when I tool AP CS in high school the language of choice was Pascal. Then C and Java started to move in, and even though the industry was moving towards C and C++ the academic institutions were moving towards Java. Why Java? I asked the head of the CS department at Georgia Tech at the time, and he said "enrollment". Of course that was the time of the dot-com boom when everybody and their grandmother was learning Java to develop the next big web application that never happened. *sigh*. But even more recently Java has been taking over because of its instant-gratification and graphical nature - students think they're learning more when they can spend 5 minutes programming and get a box to fly across the screen. However, for embedded programming, you don't generally get the instant gratification, you may toil for hours and find out it works or doesn't work.

I worked on a paper (http://portal.acm.org/citation.cfm?id=572137) with a professor at Georgia Tech my senior year on the development of computer science fundamentals at various Universities around the world - we got several colleges and universities from several countries to participate. We gave everyone the same programming challenge - parse a file for information and display that information in various ways depending on sort criteria provided by the user. The institutions were allowed to use either Java or C/C++ to solve the problem, the students were allowed to use almost any resource they had access to (moderators watched to make sure they didn't go to the web looking for a solution but they were certainly allowed to view manuals, API, or programming resources), and anyone who participated was required to provide everything they did (incomplete programs and all). The results were very astounding - the students/schools that used C++ solved the problem an average of 40% with a high percentage very close by looking at their code, whereas the students/schools that used Java solved the problem an average of 20% with a high percentage not even having a clue as to how to approach the problem (and I'm pulling these numbers off the top of my head, but I am pretty sure they're close). The results were pretty astounding, and we had to ask ourselves why this was. One of the biggest pieces of feeback we got from a school that used Java was, "Our students just aren't use to solving this kind of problem. They predominantly create classes and icons - you know, something OO or graphical - and they work from there. Even though Java has the capability of doing what you ask, our students just weren't comfortable with doing that kind of work. This just didn't fit in with their skill set." The Java programmers were comfortable with programming graphical widgets, and the C/C++ programmers were comfortable with data tasks. To me that was totally unexpected, but over time I came to understand that it's the nature of the language and the person.

Even at National Instruments you can see a big seperation between those who prefer to work on Application Software for its graphical nature and instant gratification, and those who prefer drivers and embedded programming. Sure, the languages are LabVIEW (application/graphics) and C++ (drivers) but it's the exact same concept.

So should FIRST move to Java because that's what students are learning in school or should it stay with the language that was developed for the task? Something more to think about.

-Danny

Sparks333
02-01-2007, 22:02
I wouldn't count on USB-anything at this point. USB is hot-swappable, and is a real pain in the neck to code a good firmware driver for (I know this from experience), and without a good operating system managing the devices, I seriously doubt that we're going to see anything except our lovely DB-15 and -9 ports. Besides, the DB-15 ports on the OI are excellent for custom-built controllers (you don't have to screw around with protocols), and I doubt they'd ditch that. I DO hope they fix the temperature-variant oscillatior problem (Popularly known as the '8.2v error')... it caused my toes many a pain over the build season.
DB-9 is very robust, and not bad to interface with. Most microcontrollers support it natively via USART, while USB in a microcontroller is more of a rarity - Microchip has five or so that support it - so, I'd buckle up and grab your USB-Serial converters for another year, and pray for a Linux system sometime in the future.
On the programming side, there is a whole other set of issues with moving away from C. Currently, there is only the C18 C compiler for the Microchip products, plus an assembler (if there is a team out there that actually uses the assembler, please, I'd like to shake your hand). Some chips support Java natively, but it would require a complete architechture shift (Atmel's Jazelle core), which I can't see happening after so many years of Microchip support. There are a few third-party compilers that support languages other than C for the PIC, but it would require a re-code of FIRST's operating system, which the field controller may not like. It's very risky when moving from such a proprietary system. In the end, the number of work-arounds and time committed to making the system work with another language is offset by the acessibility of a more complex language.

Sparks

Sparks

team540pr2007
03-01-2007, 15:43
although it would be nice for the programming to become usb it would create other technical problems. such as the wiring issue, with usb you have to have more resistors than with serial, so you electronics board is more complicated and harder to repair when damaged.