MakerLab
ArduinoArduino Tian

Arduino Tian: Bridging the Gap with Dual-Core Power

The Arduino Tian is a versatile board featuring a dual-core processor, combining a powerful MIPS MCU with a familiar AVR microcontroller for flexible IoT and embedded projects.

Arduino Tian

Released by Arduino in 2015, the Arduino Tian was designed to offer a more powerful and flexible platform for makers, bridging the gap between simpler Arduino boards and more complex single-board computers. It aimed to provide the ease of use associated with the Arduino ecosystem while incorporating advanced features for more demanding applications.

At its heart, the Tian is powered by a MIPS-based Atheros AR9342 SoC, which includes a 600MHz MIPS24Kc processor. This is complemented by a separate ATmega32U4 microcontroller, the same chip found on popular boards like the Arduino Leonardo and Micro. This dual-processor architecture allows for a division of labor: the MIPS core handles complex tasks, networking, and running an embedded Linux distribution (Linino OS), while the ATmega32U4 manages real-time I/O operations and the Arduino API.

The Tian sits in a unique position within the Arduino family, offering a significant step up in processing power and connectivity compared to boards like the Uno or Mega, yet retaining the familiar Arduino programming environment. It was particularly suited for projects requiring network connectivity, data processing, and real-time control, such as IoT gateways, home automation hubs, or more sophisticated robotics.

Its history is tied to Arduino's efforts to integrate more powerful Linux-capable processors into their product line, enabling users to leverage both the simplicity of Arduino sketches and the power of a full operating system. This made it an attractive option for users looking to move beyond basic microcontroller projects and explore more advanced embedded Linux applications without completely leaving the Arduino ecosystem.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCAtheros AR9342 (MIPS24Kc) @ 600MHz + ATmega32U4
ArchitectureMIPS24Kc (64-bit capable) + AVR (8-bit)
Clock speed600 MHz (MIPS) + 16 MHz (ATmega32U4)
Flash / Storage256 MB DDR2 RAM (AR9342), 32 MB Flash (AR9342), 32 KB Flash (ATmega32U4)
RAM / SRAM256 MB DDR2 (AR9342), 2.5 KB SRAM (ATmega32U4)
Operating voltage3.3V
Digital I/O pins20 (ATmega32U4 - 7 can be PWM)
Analog / ADC7 (ATmega32U4 - 10-bit)
PWM7 (ATmega32U4)
ConnectivityWi-Fi 802.11 b/g/n, Ethernet port
USB1x Micro-USB (for programming ATmega32U4 and power), 1x USB-A host port
Power input7-12V via DC barrel jack or 5V via Micro-USB

Pinout & pin functions

PinFunction
GNDGround
3.3V3.3V Power Output
IOREFVoltage Reference for I/O pins
D0 (RX)Digital Pin 0, UART Receive
D1 (TX)Digital Pin 1, UART Transmit
D2Digital Pin 2
D3Digital Pin 3, PWM
D4Digital Pin 4
D5Digital Pin 5, PWM
D6Digital Pin 6, PWM
D7Digital Pin 7
D8Digital Pin 8
D9Digital Pin 9, PWM
D10 (SS)Digital Pin 10, SPI Slave Select
D11 (MOSI)Digital Pin 11, SPI Master Out Slave In
D12 (MISO)Digital Pin 12, SPI Master In Slave Out
D13 (SCK)Digital Pin 13, SPI Clock
A0Analog Pin 0, ADC
A1Analog Pin 1, ADC
A2Analog Pin 2, ADC
A3Analog Pin 3, ADC
A4 (SDA)Analog Pin 4, I2C Data
A5 (SCL)Analog Pin 5, I2C Clock
RESETReset pin for ATmega32U4
5V5V Power Output (regulated)
VINInput voltage (7-12V)

Wiring & circuit basics

The Arduino Tian operates at a logic level of 3.3V. This is crucial when interfacing with external components. Connecting 5V devices directly to 3.3V GPIO pins may not work reliably, and connecting 3.3V devices to 5V-tolerant pins requires careful consideration. If you need to interface with 5V logic devices, a level shifter is recommended to prevent damage to the Tian. Powering the board can be done via the DC barrel jack (7-12V recommended) or the Micro-USB port (5V). The barrel jack is preferred for higher current applications or when powering other devices from the board's 5V or 3.3V pins, as it bypasses the USB power limitations.

A common setup involves powering the board and then controlling an LED. Connect the longer leg (anode) of an LED to a digital pin, such as D9, and the shorter leg (cathode) to one end of a current-limiting resistor (typically 220-330 ohms). Connect the other end of the resistor to a GND pin on the Arduino Tian. When D9 is set to HIGH, current flows through the LED and resistor, illuminating the LED. The resistor protects the LED and the microcontroller pin from excessive current.

For I2C communication, which is used by many sensors like the MPU6050 or BMP280, connect the sensor's SDA pin to the Arduino Tian's A4 (SDA) pin and the sensor's SCL pin to the A5 (SCL) pin. Ensure the sensor is also powered with 3.3V and connected to a GND pin. Some I2C sensors may require pull-up resistors on the SDA and SCL lines, though many modern modules have these built-in.

Programming & getting started

The Arduino Tian can be programmed using the Arduino IDE, leveraging the ATmega32U4 microcontroller. When you connect the Tian via its Micro-USB port, it appears as a standard Arduino Leonardo. Select 'Arduino Tian' under the board menu in the IDE, and then choose the correct COM port. Uploading sketches is done through the IDE's upload button, which flashes the ATmega32U4. For more advanced use cases involving the MIPS core, you can install and run Linino OS, a Debian-based Linux distribution, allowing you to develop applications using Python, Node.js, or other Linux-compatible tools, often accessed via SSH.

To upload your first sketch, open the Arduino IDE, select 'Arduino Tian' from the Tools > Board menu, and the appropriate port. Write a simple sketch, like the Blink example, modifying the pin number if necessary. Click the Upload button. The ATmega32U4 will reset and enter bootloader mode, allowing the IDE to flash the new code. For Linux-based development, you would typically connect to the board via SSH after setting up networking and use standard Linux development tools.

Project ideas

IoT Data LoggerBuild a device that collects sensor data (e.g., temperature, humidity) using the ATmega32U4's ADC pins and sends it wirelessly via the MIPS core's Wi-Fi capabilities to a cloud service. This project teaches sensor interfacing, data handling, and wireless communication.
Home Automation HubUse the Tian as a central controller for smart home devices. The MIPS core can run a web server for control interfaces, while the ATmega32U4 manages real-time communication with sensors and actuators via GPIO and I2C/SPI.
Networked Robot ControllerDevelop a robot that can be controlled remotely over Wi-Fi. The MIPS core handles network commands, and the ATmega32U4 translates these into motor control signals using PWM outputs.
Embedded Linux GatewayConfigure the MIPS core to run custom Linux applications for tasks like network monitoring or data aggregation, while using the ATmega32U4 for low-level hardware interaction or as a fallback control interface.
Advanced Weather StationCombine multiple sensors (e.g., pressure, wind speed, rain gauge) and use the Tian's processing power to analyze trends and display data on a connected screen or transmit it over the internet. This project explores complex data analysis and multi-sensor integration.
Personal Cloud ServerSet up the MIPS core to host a small personal cloud for file storage or media streaming, leveraging its Ethernet or Wi-Fi connectivity, while the ATmega32U4 could manage local device interactions.

Buying tips & gotchas

When purchasing an Arduino Tian, be aware that it is an older board and may be harder to find new. Look for reputable sellers or consider the used market. Ensure any board you buy is the official Arduino version, as clones might have variations. Common pitfalls include misinterpreting the 3.3V logic level when connecting peripherals, which can lead to damage. Always use a current-limiting resistor with LEDs. For powering the board, a stable power supply within the specified voltage range is essential. Accessories like breadboards, jumper wires, and a selection of sensors (e.g., I2C temperature sensors, SPI displays) will be very useful for getting started.