How the two processors communicate?
This is one of the most recurring questions we received during this week. For this purpose we worked on this post where you will find all the answers to your questions about this topic.
Below there are the possible connections between the two processors, explained and illustrated in an easy and intelligible way.
At this link you can also find a more technical and exhaustive document, the UDOO's block diagram.
We hope to have solved this topic, but we are open to suggestions and more questions about.
Between the two processors there’s a direct UART serial connection which is always ON. Through this connection, you can, for example, upload your sketches to the SAM3X from the iMX6 running Linux within the Arduino IDE. In other words, through this serial connection, the two processor communicate directly between them. Like any other Arduino boards, serial data are also available at pin 0 and pin 1 (RX0/TX0).
This USB OTG connection is used, for example, for the ADK communication protocol between the iMX6 running Android and the SAM3X. In this way UDOO can act as an Android-powered device and its ADK accessory simultaneously. This connection can also be used to connect the iMX6 to the SAM3X while running Linux. The switch is controlled via software by the iMX6.
Serial connection to the iMX6 from an external computer through USB serial. With this connection you have access, for example, to the iMX6 U-BOOT. The switch is controlled via software by the iMX6 or by a physical jumper (J18).
Arduino compatible board embedded on UDOO can be also programmed from an external computer through the mini USB serial, like you are used to do with standard Arduino board. Like any other Arduino boards, serial data are also available at pin 0 and pin 1 (RX0/TX0). The switch is controlled via software by the iMX6 or by a physical jumper (J18).
The mini USB OTG, when switched to the iMX6 OTG BUS, can be used, for example, to communicate with UDOO as an Android device. This way you can use ADB protocol, install APKs, debugging purposes and all other uses of an OTG port on an Android device. While running Linux this is a standard USB OTG port. The switch is controlled via software by the iMX6.
Please, keep in mind that we're still in an early stage of development, these specification can be subject to change before final release.