Is this possible?

Discussion specific to the intelligent brick, sensors, motors, and more.
jojoguy14
Posts: 155
Joined: 29 Sep 2010, 12:49
Contact:

Is this possible?

Post by jojoguy14 » 13 Dec 2010, 14:21

Hello there!

Does anyone know if it's possible to have more than 4 NXT's in a robot? I mean, you can have up to 4 connected through bluetooth, but is there some other way (bluetooth or other) to connect more than 4 NXT's? RS-485 maybe?

Jojoguy10
Creator of LEGO-X TechN'XT! (http://lego-x.com http://techn-xt.blogspot.com)
Known as jojoguy10

mightor
Site Admin
Posts: 1079
Joined: 25 Sep 2010, 15:02
Location: Rotterdam, Netherlands
Contact:

Re: Is this possible?

Post by mightor » 13 Dec 2010, 14:55

You could have quite a number with RS485, some tranceivers put a limit of 8 devices on a bus, not sure if the one in the NXT has this limit. There is currently no way to use RS485 from NXT-G, though.

- Xander
| My Blog: I'd Rather Be Building Robots (http://botbench.com)
| RobotC 3rd Party Driver Suite: (http://rdpartyrobotcdr.sourceforge.net)
| Some people, when confronted with a problem, think, "I know, I'll use threads,"
| and then two they hav erpoblesms. (@nedbat)

hassenplug
Posts: 346
Joined: 27 Sep 2010, 03:05
Contact:

Re: Is this possible?

Post by hassenplug » 13 Dec 2010, 15:08

That's a good question, and something I may be messing with in months to come.

Yes, the RS485 will allow you to easily connect two NXTs together by connecting a wire between port 4 on them. I made a robot that used RobotC and communicated over RS485 and also used the bluetooth to talk to another device.

From discussions I've had with others (who know more about it that I do), you should be able to connect together a bunch of wires (cut and tape them?) and connect a large number of NXTs. I haven't tried this, but you may want to look into pbLua for the NXT.

Steev
---> Link to lots of MINDSTORMS stuff under my picture --->

nxtreme
Posts: 246
Joined: 29 Sep 2010, 03:53
Location: 192.168.1.2

Re: Is this possible?

Post by nxtreme » 13 Dec 2010, 16:38

The limit on RS-485 devices was talked about a while back in this post. We figured out that the hardware limit was 64 devices on the same bus but I don't think we came to any conclusions about the software limits. The NXT will support at least 8 NXTs on the same bus, if you need to add more just try it, you won't break/burn or release the magic smoke from anything. As I said on the last post, "At least eight NXTs would be quite a few, any more and you'd have to get government funding." :).
One King to rule them all, One King to find them,
One King to bring them all and in the darkness bind them
On Earth where Shadows lie.

jojoguy14
Posts: 155
Joined: 29 Sep 2010, 12:49
Contact:

Re: Is this possible?

Post by jojoguy14 » 13 Dec 2010, 22:27

mightor wrote:You could have quite a number with RS485, some tranceivers put a limit of 8 devices on a bus, not sure if the one in the NXT has this limit. There is currently no way to use RS485 from NXT-G, though.

- Xander
Ya...Looks like some smart Labview dude is gonna need to make a NXT-G block for that :-)

For everyone else:
So, you're saying I can do something like this:
[] = NXT
-- = RS-485
__ = BT

[]-----[]_____[]------[]______[]--------[]_____[]-------[]

Is this what you guys are saying? There are 4 NXT's in a BT "community" and those BT slaves have their own slaves (RS-485 NXT's) and the BT master has a total of 5 slaves. Is this right?

jojgouy10
Creator of LEGO-X TechN'XT! (http://lego-x.com http://techn-xt.blogspot.com)
Known as jojoguy10

mattallen37
Posts: 1818
Joined: 02 Oct 2010, 02:19
Location: Michigan USA
Contact:

Re: Is this possible?

Post by mattallen37 » 13 Dec 2010, 23:16

In theory, you could essentially have a network of an unlimited number of NXT's, if you took advantage of both BT and 485.

If the head master NXT used 485 to communicate with 7 (or however many) masters, and those masters were BT masters to 3 NXT's each, and each of those slaves was a 485 submaster to 7 NXT's, you could have quite a headache getting them all to work :lol:. I think with that configuration (based on 8 NXT's per 485 bus), you would need something like 169 NXT's to fill the network.
Matt
http://mattallen37.wordpress.com/

I'm all for gun control... that's why I use both hands when shooting ;)

physics-matt
Posts: 76
Joined: 29 Sep 2010, 06:57

Re: Is this possible?

Post by physics-matt » 14 Dec 2010, 08:19

jojoguy14 wrote: So, you're saying I can do something like this:
[] = NXT
-- = RS-485
__ = BT

[]-----[]_____[]------[]______[]--------[]_____[]-------[]
The only problem with that approach is that each NXT can only talk to its neighbours. If you want one at one end to talk to one at the other end the message will have to be relayed, which will create a large latency.

IIRC, if you put all the NXTs onto a single RS485 bus, they will all be able to communicate to each other directly.

Matt

mightor
Site Admin
Posts: 1079
Joined: 25 Sep 2010, 15:02
Location: Rotterdam, Netherlands
Contact:

Re: Is this possible?

Post by mightor » 14 Dec 2010, 08:36

Keep in mind that RS485 is a simplex system, that means you have to deal with contention or implement a token ring system of some kind. Only one system can send information at any given time. The message will be garbled if two or more systems try to access the bus for writing.

- Xander
| My Blog: I'd Rather Be Building Robots (http://botbench.com)
| RobotC 3rd Party Driver Suite: (http://rdpartyrobotcdr.sourceforge.net)
| Some people, when confronted with a problem, think, "I know, I'll use threads,"
| and then two they hav erpoblesms. (@nedbat)

gloomyandy
Posts: 323
Joined: 29 Sep 2010, 05:03

Re: Is this possible?

Post by gloomyandy » 14 Dec 2010, 12:06

It's also worth noting that it is hard (possibly impossible), with the Lego hardware to detect if the packet you have just tried to send has collided with another packet. This means that you have to rely on detecting the packet loss some other way (typically a nack as the result of the destination getting a corrupt packet or the lack of an ack or a duplicate packet). It also means that you probably need a pretty robust error detection mechanism (like one of the CITT CRC schemes). The problem with this is that if there are a lot of collisions then you tend to get a slow network. Many of the RS485 protocols (including the BitBus protocol I chose to implement for leJOS), use a master/slave protocol with the master in charge of the bus and using polling of the slaves. Many uses of RS485 are for industrial control and this sort of setup works pretty well for that application (because they often have a central master control unit), but it may not work so well for a general purpose network...

All good fun though!

PS Oh and I think you should also be able to use the Mindsensors port splitter
http://www.mindsensors.com/index.php?mo ... PAGE_id=79
to connect up to four NXTs using RS485. I've not actually tried this as when I was working on RS485 I didn't have any of the splitters, but I have a couple now so when I get chance I may give it a go...

jojoguy14
Posts: 155
Joined: 29 Sep 2010, 12:49
Contact:

Re: Is this possible?

Post by jojoguy14 » 14 Dec 2010, 13:12

physics-matt wrote:
jojoguy14 wrote: So, you're saying I can do something like this:
[] = NXT
-- = RS-485
__ = BT

[]-----[]_____[]------[]______[]--------[]_____[]-------[]
The only problem with that approach is that each NXT can only talk to its neighbours. If you want one at one end to talk to one at the other end the message will have to be relayed, which will create a large latency.

IIRC, if you put all the NXTs onto a single RS485 bus, they will all be able to communicate to each other directly.

Matt
So...is RS-485 possible with some kind of multiplexer? Since there is only 1 "Port 4", I don't see how could connect more than 2 NXT's via RS-485

jojoguy10
Creator of LEGO-X TechN'XT! (http://lego-x.com http://techn-xt.blogspot.com)
Known as jojoguy10

Post Reply

Who is online

Users browsing this forum: No registered users and 8 guests