Answers.Body: <p>The Mindstorms EV3 brick <a href="http://botbench.com/blog/2013/01/08/comparing-the-nxt-and-ev3-bricks/" rel="nofollow">uses Bluetooth 2.1EDR</a>. What protocol they use on top of that is still unknown, but will probably be released publicly by LEGO at some point. It's likely some compatibility with the NXT is possible (that is, an EV3 and a NXT bricks should be able to communicate together), but this is pure speculation and I doubt they just reuse the exact same protocol without at least expanding it.</p>
  
  <p>For USB, apparently the regular USB port is 2.0, but there's also a host USB port which, according to the previous link, is only 1.1 (which seems strange to me, and the <a href="http://cache.lego.com/r/education/-/media/LEGO%20Education/Home/Downloads/Marketing%20Tools/Global/MINDSTORMS%20EV3/45500%20Intelligent%20Brick%20product%20sheet.pdf" rel="nofollow">official PDF product sheet</a> for the EV3 brick specifically mentions "USB 2.0 host enabling brick daisy chaining, wifi communication, and USB memory sticks") and can be used to daisy-chain up to 4 devices. The very fact they state a limitation hints that their software itself has this limitation, as I don't see any hardware reason to do so. This means that with an alternate firmware, you can probably do more.</p>
  
  <p>WiFi is only possible using a WiFi dongle connected to the USB port, which seems to be allowed. If the host port is really 1.1, that may limit the speed to 12MBit/s. You can find  its <a href="http://cache.lego.com/r/education/-/media/LEGO%20Education/Home/Downloads/Marketing%20Tools/Global/MINDSTORMS%20EV3/45516%20WiFi%20Dongle%20product%20sheet.pdf" rel="nofollow">PDF product sheet here</a> which says:</p>
  
  <blockquote>The EV3 Wi-Fi Dongle fits with the LEGO® MINDSTORMS® EV3 platform and uses wireless communication. It plugs into the USB host port of the EV3 Intelligent Brick and provides wireless communication with a computer. A wireless access point is required between the LEGO EV3 Intelligent Brick and any Wi-Fi -enabled computer as well as your Apple or Android device. All you need to do is set up the connection inside the software and you’re ready to go!</blockquote>
  
  <p>Also, considering the OS is linux-based (on an ARM9 processor), and considering LEGO's history of letting people hack Mindstorms in any way they can think of... there'll probably a lot of other possibilities (USB Ethernet, for example).</p>
  
  <p>APIs and/or libraries aren't available yet, and probably won't be until the kit is released, but it seems there'll be at least an official iPhone &amp; Android app to control all robots you can make with the kit.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2013-01-09T09:13:33.693Z
Answers.Text: WiFi Dongle? Great!
Answers.UserDisplayName: Coyote
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2013-01-09T10:24:22.290Z
Answers.Text: Yes, I updated with a link to its product sheet
Answers.UserDisplayName: Joubarc
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2013-01-09T15:48:56.677Z
Answers.Text: As I understand it, the existing NXT can't be controlled from iOS Apps, as Apple doesn't allow pairing with untrusted devices. Given that Lego have said it'll be possible to control the EV3 from an iOS, we can presume they've solved this. However does this also mean that third-party (non-Lego) apps will be able to communicate with the EV3 too?
Answers.UserDisplayName: Frankie Roberto
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2013-01-09T17:58:42.837Z
Answers.Text: I didn't know about that restriction from Apple - what do they mean by "non-trusted devices" in this context? It it's a matter of approval process, maybe LEGO did the necessary paperwork this time - they do have some iOS apps, so I guess their relation with Apple isn't too bad
Answers.UserDisplayName: Joubarc
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2013-01-09T08:27:33.483Z
Answers.LastActivityDate: 2013-01-09T10:26:39.400Z
Answers.LastEditDate: 2013-01-09T10:26:39.400Z
Answers.UserDisplayName: Joubarc
Answers.Body: <p>The new EV3 Intelligent Brick has the <a href="http://aboutus.lego.com/en-us/news-room/2013/january/new-smarter-stronger-lego-mindstorms-ev3/" rel="nofollow">following announced features</a>:</p>
  
  <ul>
  <li>IR sensor</li>
  <li>Bluetooth connectivity*</li>
  <li>SD Card Slot</li>
  <li>USB Port</li>
  <li>Linux-based firmware</li>
  <li>Full iOS and Android compatibility out of the box</li>
  </ul>
  
  <p>In terms of libraries for connecting with it - if it's based on a standard core, then I would assume that a standard bluetooth stack should be able to communicate with it, but unless it's based around an arduino core we will need to wait until full specs are released before the libraries catch up.</p>
  
  <p>&#42; Assumed based on current NXT feature-set and connectivity for phones.  </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2013-01-08T13:18:33.123Z
Answers.LastActivityDate: 2013-01-08T13:18:33.123Z
Answers.UserDisplayName: Zhaph - Ben Duguid
Answers.Body: <p>A bit late but well:</p>
  
  <p>For source code you can check out  <a href="https://github.com/mindboards/ev3sources" rel="nofollow">https://github.com/mindboards/ev3sources</a></p>
  
  <p>The EV3 comes with:</p>
  
  <ul>
  <li>Bluetooth, two protocols on top of it, one used by the iPhone App and the other is RFCOMM with application data the same as over USB and TCP.</li>
  <li><p>USB: over HID</p></li>
  <li><p>TCP: Device uses UDP broadcasts to announce itself and can then be contacted over TCP.</p></li>
  </ul>
  
  <p>You can plugin a WLAN Dongle into the USB Port or a USB-Ethernet adapter. It was the case that only a particular Netgear dongle was supported. Don't know if that has changed.</p>
  
  <p>Protocol spoken is specified by this <a href="https://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=0ahUKEwjR4t_wwZrNAhVM2hoKHQ4yBjUQFggeMAA&amp;url=https%3A%2F%2Fle-www-live-s.legocdn.com%2Fsc%2Fmedia%2Ffiles%2Fev3-developer-kit%2Flego%2520mindstorms%2520ev3%2520communication%2520developer%2520kit-f691e7ad1e0c28a4cfb0835993d76ae3.pdf%3Fla%3Den-us&amp;usg=AFQjCNF1_IHd50BL_nj9UYPgQENF7vKjmg&amp;sig2=zenX4g1fNL50eppi9ezn7A" rel="nofollow">manual</a>.</p>
  
  <p><a href="http://github.com/c4ev3/ev3duder" rel="nofollow">ev3duder</a>, which I wrote as part of <a href="http://c4ev3.github.io" rel="nofollow">c4ev3</a>, tries to detect an EV3 and can send system commands (e.g. Uploading/Downloading) or open a persistent tunnel which you can use to tunnel your own direct commands (check out <a href="https://github.com/c4ev3/ev3duder/blob/master/moveEv3.pl" rel="nofollow">moveEv3.pl</a> for an example).</p>
  
  <p>If you want to send stuff over USB, you got the <code>~/dev/lms_usb</code> device file. For WiFi, just open a socket and do your stuff. Bluetooth I can't recall, unfortunately. Check out <a href="http://c4ev3.github.io/ev3duder/doc/html/globals_func.html" rel="nofollow">ev3duder's source</a> for specifics if you don't want to use it directly.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-09T08:31:03.230Z
Answers.LastActivityDate: 2016-06-09T08:31:03.230Z
Answers.UserDisplayName: a3f
Body: <p>What is known of the new <a href="http://aboutus.lego.com/en-us/news-room/2013/january/new-smarter-stronger-lego-mindstorms-ev3/" rel="noreferrer">MINDSTORMS EV3</a> capabilities when it comes to netwoked functions. What type of interface can be plugged to interact with a PC or portable device (smartphone/tablet)?</p>
  
  <p>In term of interconnection (WiFi/bluetooth) and in term of protocols available what are the options?</p>
  
  <p>Are there any libs (C/C++) which are already available and compatible with the brick?</p>
  
Tags: <ev3>
Title: What is known of the capacities of the MINDSTORMS EV3 when it comes to interconnection with a network (WiFi, bluetooth)
UserDisplayName: Coyote
ThreadText: # What is known of the capacities of the MINDSTORMS EV3 when it comes to interconnection with a network (WiFi, bluetooth)
  
  (Asked by: username_0 on 2013-01-08)
  
  What is known of the new [MINDSTORMS EV3](http://aboutus.lego.com/en-us/news-room/2013/january/new-smarter-stronger-lego-mindstorms-ev3/) capabilities when it comes to netwoked functions. What type of interface can be plugged to interact with a PC or portable device (smartphone/tablet)?
  
  In term of interconnection (WiFi/bluetooth) and in term of protocols available what are the options?
  
  Are there any libs (C/C++) which are already available and compatible with the brick?
  
  **Tags:** ev3
  
  ---
  
  ## 3 answers
  
  ### Answer by username_1 on 2013-01-09. Score: 6
  
  The Mindstorms EV3 brick [uses Bluetooth 2.1EDR](http://botbench.com/blog/2013/01/08/comparing-the-nxt-and-ev3-bricks/). What protocol they use on top of that is still unknown, but will probably be released publicly by LEGO at some point. It's likely some compatibility with the NXT is possible (that is, an EV3 and a NXT bricks should be able to communicate together), but this is pure speculation and I doubt they just reuse the exact same protocol without at least expanding it.
  
  For USB, apparently the regular USB port is 2.0, but there's also a host USB port which, according to the previous link, is only 1.1 (which seems strange to me, and the [official PDF product sheet](http://cache.lego.com/r/education/-/media/LEGO%20Education/Home/Downloads/Marketing%20Tools/Global/MINDSTORMS%20EV3/45500%20Intelligent%20Brick%20product%20sheet.pdf) for the EV3 brick specifically mentions "USB 2.0 host enabling brick daisy chaining, wifi communication, and USB memory sticks") and can be used to daisy-chain up to 4 devices. The very fact they state a limitation hints that their software itself has this limitation, as I don't see any hardware reason to do so. This means that with an alternate firmware, you can probably do more.
  
  WiFi is only possible using a WiFi dongle connected to the USB port, which seems to be allowed. If the host port is really 1.1, that may limit the speed to 12MBit/s. You can find its [PDF product sheet here](http://cache.lego.com/r/education/-/media/LEGO%20Education/Home/Downloads/Marketing%20Tools/Global/MINDSTORMS%20EV3/45516%20WiFi%20Dongle%20product%20sheet.pdf) which says:
  
  > The EV3 Wi-Fi Dongle fits with the LEGO® MINDSTORMS® EV3 platform and uses wireless communication. It plugs into the USB host port of the EV3 Intelligent Brick and provides wireless communication with a computer. A wireless access point is required between the LEGO EV3 Intelligent Brick and any Wi-Fi -enabled computer as well as your Apple or Android device. All you need to do is set up the connection inside the software and you’re ready to go!
  
  Also, considering the OS is linux-based (on an ARM9 processor), and considering LEGO's history of letting people hack Mindstorms in any way they can think of... there'll probably a lot of other possibilities (USB Ethernet, for example).
  
  APIs and/or libraries aren't available yet, and probably won't be until the kit is released, but it seems there'll be at least an official iPhone & Android app to control all robots you can make with the kit.
  
  > **Comments:**
  > **username_0**: WiFi Dongle? Great!  
  > **username_1**: Yes, I updated with a link to its product sheet  
  > **username_2**: As I understand it, the existing NXT can't be controlled from iOS Apps, as Apple doesn't allow pairing with untrusted devices. Given that Lego have said it'll be possible to control the EV3 from an iOS, we can presume they've solved this. However does this also mean that third-party (non-Lego) apps will be able to communicate with the EV3 too?  
  > **username_1**: I didn't know about that restriction from Apple - what do they mean by "non-trusted devices" in this context? It it's a matter of approval process, maybe LEGO did the necessary paperwork this time - they do have some iOS apps, so I guess their relation with Apple isn't too bad  
  
  ---
  
  ### Answer by username_3 on 2013-01-08. Score: 3
  
  The new EV3 Intelligent Brick has the [following announced features](http://aboutus.lego.com/en-us/news-room/2013/january/new-smarter-stronger-lego-mindstorms-ev3/):
  
  * IR sensor
  * Bluetooth connectivity\*
  * SD Card Slot
  * USB Port
  * Linux-based firmware
  * Full iOS and Android compatibility out of the box
  
  In terms of libraries for connecting with it - if it's based on a standard core, then I would assume that a standard bluetooth stack should be able to communicate with it, but unless it's based around an arduino core we will need to wait until full specs are released before the libraries catch up.
  
  \* Assumed based on current NXT feature-set and connectivity for phones.
  
  
  ---
  
  ### Answer by username_4 on 2016-06-09. Score: 1
  
  A bit late but well:
  
  For source code you can check out <https://github.com/mindboards/ev3sources>
  
  The EV3 comes with:
  
  * Bluetooth, two protocols on top of it, one used by the iPhone App and the other is RFCOMM with application data the same as over USB and TCP.
  * USB: over HID
  * TCP: Device uses UDP broadcasts to announce itself and can then be contacted over TCP.
  
  You can plugin a WLAN Dongle into the USB Port or a USB-Ethernet adapter. It was the case that only a particular Netgear dongle was supported. Don't know if that has changed.
  
  Protocol spoken is specified by this [manual](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjR4t_wwZrNAhVM2hoKHQ4yBjUQFggeMAA&url=https%3A%2F%2Fle-www-live-s.legocdn.com%2Fsc%2Fmedia%2Ffiles%2Fev3-developer-kit%2Flego%2520mindstorms%2520ev3%2520communication%2520developer%2520kit-f691e7ad1e0c28a4cfb0835993d76ae3.pdf%3Fla%3Den-us&usg=AFQjCNF1_IHd50BL_nj9UYPgQENF7vKjmg&sig2=zenX4g1fNL50eppi9ezn7A).
  
  [ev3duder](http://github.com/c4ev3/ev3duder), which I wrote as part of [c4ev3](http://c4ev3.github.io), tries to detect an EV3 and can send system commands (e.g. Uploading/Downloading) or open a persistent tunnel which you can use to tunnel your own direct commands (check out [moveEv3.pl](https://github.com/c4ev3/ev3duder/blob/master/moveEv3.pl) for an example).
  
  If you want to send stuff over USB, you got the `~/dev/lms_usb` device file. For WiFi, just open a socket and do your stuff. Bluetooth I can't recall, unfortunately. Check out [ev3duder's source](http://c4ev3.github.io/ev3duder/doc/html/globals_func.html) for specifics if you don't want to use it directly.
  
  
  ---
  
  