Log in

View Full Version : [FTC]: What is the reason teams are not allowed to connect Arduino directly to NXT?


Hot Wired
31-05-2014, 18:40
Currently, it is not permitted to connect Arduino directly to the NXT in FTC. The alternative, the HiTechnic Prototype Board, does not support I2C functionality. With the Arduino connected to the HiTechnic Prototype Board instead of directly to the NXT, it cannot communicate using I2C with the NXT. This makes using the Arduino very inconvenient. What is the reason teams are not allowed to connect Arduino directly to NXT?

This link explains how people can connect Arduino directly to the NXT: http://www.dexterindustries.com/howto/connect-the-arduino-and-the-lego-mindstorms-together/

StillDefective
01-06-2014, 11:08
Currently, it is not permitted to connect Arduino directly to the NXT in FTC. The alternative, the HiTechnic Prototype Board, does not support I2C functionality. With the Arduino connected to the HiTechnic Prototype Board instead of directly to the NXT, it cannot communicate using I2C with the NXT. This makes using the Arduino very inconvenient. What is the reason teams are not allowed to connect Arduino directly to NXT?

This link explains how people can connect Arduino directly to the NXT: http://www.dexterindustries.com/howto/connect-the-arduino-and-the-lego-mindstorms-together/


Because the rules don't allow it, that's why! :p

I don't think there is any specific reason really. It might be because some teams don't have access to anything more then the base kit, and they don't want teams to gain a huge advantage. Also they don't want to have to support MORE hardware that has MORE problems that FTAs have to deal with. It would also be easier to cheat during autonomous with an Arduino.

Andrew Rudolph
01-06-2014, 12:27
I think they want the robot to use solely the processing of the NXT, also having external controllers that could drive motors would be easy to circumvent FCS. The electronics are already pretty finicky in FTC, and as StillDefective said, adding more variables into the mix would make it a huge headache for FTAs

PhilBot
02-06-2014, 11:18
[QUOTE=Hot Wired;1388080]What is the reason teams are not allowed to connect Arduino directly to NXT?

This is my opinion, and is worth what you paid for it :)

The three most common reasons for requiring/not-allowing something in the general rules would have to be:

1) Safety
2) Level playing field
3) Smooth running of matches.

As far as adding something directly to the NXT's I2C, I would suspect that it could be a real problem for #3.

As someone who has spent A LOT of time debugging the I2C communications between the NXT and the DC Motor controllers (4 years), I would predict that any additional load on the NXT's I2C bus would have a very negative effect on the reliability of the motor/servo system currently in place. Plus, that additional traffic would increase driver latency, and would be totally unknown to the FTA and thus very hard to predict it's impact.

This would inevitably lead to failed autonomous runs, robot lags, NXT lockups and several other events that will be attempted to be blamed on the FCS.

Each season, subtle changes have been made to the internals of the I2C interface in an attempt to mitigate these problems, but it's clear to me that the NXT is barely keeping up with the processing requirements.

The good news is that the EV3 seems to be much more capable of having errorless I2C communications, so I eagerly await the day we can use it's more powerful processor.

skatefriday
30-06-2014, 15:43
Last year our team used an Atmel ATMega328 with the Arduino
boot loaded burned onto it and powered it from the Hitechnic
protoboard.

Note that there's nothing in the rules that states you can't
use an Arduino, you just need to make sure you don't draw
too much current from the protoboard and of course off the
shelf Arduinos draw way too much current. Using a barebones
ATMega328 and running at a slow clock speed, we were able
to get power draw down to 4mA, from 25mA+ in a full Arduino.

Google low-power arduino for more information.

On the subject of I2C interfaces the NXT communicates
with the protoboard over I2C, but the protoboard has no
native support for assuming the master role and hence
can't act as the master to an Arduino slave out of
the box.

Theoretically, you should be able to bitbang from the
protoboard to the Arduino and I have that on my list of
things to work on if I ever get any free time for that sort
of thing. But until then, you are limited as to the
amount of communication you can do.

Andrew Rudolph
30-06-2014, 20:14
Last year our team used an Atmel ATMega328 with the Arduino
boot loaded burned onto it and powered it from the Hitechnic
protoboard.


What did you use it for?

skatefriday
01-07-2014, 18:55
What did you use it for?

Functional lights. Lots of teams had decorative LED light strips
this year. Our light strips gave visual feedback to the drivers
to indicate various robot states, game status, etc... e.g. Not
just pretty lights.

We had about a dozen different patterns we could display.
One of the most useful was an internal timer kept by the
NXT that tracked when the end game started and when
there was 10 seconds left in the game. So the drivers could
focus on the field and not on the clock.