Geduino was designed and built around the UDOO Quad board and the reason is obvious: it was the first board combining the power of a Linux-based PC with the flexibility of Arduino, all in one board. When UDOO team announced the release of a UDOO based on X86 processor I was really excited; when I saw the technical specification of UDOO X86 Ultra it was like all my wishes had been fulfilled!

The pinout of UDOO X86 looks like the one used in UDOO Neo: its based on the classical Arduino pinout surrounded by the pins connected to the Braswell. Unfortunately the Braswell is based on 1.8V logical so we cannot directly connect it to 3.3 or 5V device (this limit refer only to the Braswell pins: the Arduino pins are fully tollerant to 5V). Anyway this is not a big issue: we can easily use such devices without a big effort! On this post I will explain how you can use a 5V devices like an Arduino UNO connected via UART to the Braswell side of UDOO X86. Of course the same can be applied for 3.3V devices.

First we have to locate CN13 and CN15 connector on UDOO X86 board:

 

UDOO_X86

UDOO X86 - CN13

CurieBraswell
SCL19201.8V
SDA1718GND
AREF1516BUF_PLTRST
GND1314LPC_SERIRQ
D131112LPC_CLK
D12910LPC_FRAME
D1178LPC_AD3
D1056LPC_AD2
D934LPC_AD1
D812LPC_AD0
The UDOO X86 CN13 connector. Left side refer to PINs connected to Arduino, right side refer to PINs connected to PC

 

UDOOX86 - CN15

CurieBraswell
D71516UART2_RXD
D61314UART2_TXD
D51112UART2_CTS
D4910UART2_RTS
D378UART1_RXD
D256UART1_TXD
TX - D134UART1_CTS
RX - D012UART1_RTS
The UDOO X86 CN15 connector. Left side refer to PINs connected to Arduino, right side refer to PINs connected to PC.

 

 

 

The UARTs on Braswell side of CN15 use 1.8V logic: in order to connect them to a device with different voltage we have to use a bi-directional logic level converter like BOB-12009 provided by Sparkfun.

12009-07

This component can convert 5V (or other) logic to 1.8V logic: means that when high voltage side became HIGH (i.e. 5V) the low voltage side became HIGH (i.e. 3V) too. Furthernore it is bidirectional so the translation works also from low voltage side to higher.

The connections are really simple: HV must be connected to the high voltage reference (i.e. 5V), LV to the 1.8V reference of Braswell and, of course GND must be connected to ground. The BOB-12009 has four independent channels named HVx-LVx.

On this tutorial we will connect:

  • UART2_RX on CN15 to LV3
  • UART2_TX on CN15 to LV4
  • TX on Arduino to HV3
  • RX on Arduino to HV4

Screenshot from 2017-03-08 23:00:07Test connections

Now our UDOO X86 is connected to Arduino via UART and we only need to test communication. We will use a simple HelloWorld Arduino sketch like this in order to send data to UDOO X86:

void setup() {
   Serial.begin(115200);
}

void loop() {
   Serial.println("Hello World!");
   delay(1000);
}

In order to see the received message on UDOO X86 (I assume you are using Ubuntu on your UDOO 😉 ) you have to open a terminal and type following command (UART1 is represented as /dev/ttyS4 and UART2 as /dev/ttyS5):

minicom -D /dev/ttyS5 -b 115200

Minicom will start showing the data received by UART2:

Welcome to minicom 2.7
OPTIONS: I18n 
Compiled on Jan 1 2014, 17:13:19.
Port /dev/ttyS5, 19:35:24
Press CTRL-A Z for help on special keys
Hello World!
Hello World!
Hello World!

Using this kind of low-cost and easy to use component you will not have problem interfacing your device with UDOO X86!


Note

The four channels provided by BOB-12009 are independent but all them share the same voltage references: that mean that all channels convert from the LV to the same HV! If you need to connect a 3.3V device to UART1 and 5V to UART2 you cannot use a unique BOB-12009!

On Sparkun site the schematic of BOB-12009 is available for download: consider the possibility to use the schema to create your own logic converter on your PCB!


Note

If minicom is not present on your Ubuntu you can install it typing:

sudo apt-get install minicom
How to use 1.8V serial on UDOO X86 with 3.3V-5V devices

Leave a Reply