Arduino Yún Mini: Bridging Microcontrollers and Linux
A compact Arduino board featuring a microcontroller and a Linux-powered processor for advanced IoT projects.
The Arduino Yún Mini is a specialized board designed to bridge the gap between traditional microcontrollers and full-fledged Linux systems. It integrates two distinct processing units: an Atheros AR9331 System-on-Chip (SoC) running a Linux distribution, and an Atmel ATmega32U4 microcontroller. This dual-processor architecture allows for powerful networked applications while retaining the ease of use and real-time control capabilities of the Arduino ecosystem. It was released as a more compact and cost-effective version of the original Arduino Yún.
At its heart, the Atheros AR9331 SoC is a MIPS-based processor commonly found in Wi-Fi routers. On the Yún Mini, it runs OpenWrt, a highly customizable Linux distribution. This Linux environment provides capabilities like Wi-Fi connectivity, Ethernet, a web server, and the ability to run standard Linux applications. This makes the Yún Mini ideal for projects requiring network access, data logging, or complex processing that would overwhelm a typical microcontroller.
The Atmel ATmega32U4, a familiar chip in the Arduino family (also found on the Leonardo and Micro), handles the real-time I/O tasks. It communicates with the Linux processor via a bridge, allowing sketches to interact with Linux processes and vice-versa. This hybrid approach is perfect for makers who need the direct hardware control of an Arduino for sensors and actuators, combined with the networking and processing power of a Linux computer for tasks like web interfaces, cloud connectivity, or running Python scripts.
Released around 2016, the Yún Mini was aimed at makers and developers looking to build sophisticated Internet of Things (IoT) devices, home automation systems, and connected projects without the need for a separate Raspberry Pi or computer. Its integrated Wi-Fi and Ethernet, along with its dual-processor nature, make it a versatile platform for both learning and advanced development.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Atmel ATmega32U4 (for microcontroller tasks) and Atheros AR9331 (for Linux/Wi-Fi) |
| Architecture | AVR (ATmega32U4) and MIPS (Atheros AR9331) |
| Clock speed | 16 MHz (ATmega32U4) and 400 MHz (Atheros AR9331) |
| Flash / Storage | 32 KB (ATmega32U4) with 4 KB bootloader; 16 MB SPI Flash (Atheros AR9331) for Linux OS |
| RAM / SRAM | 2.5 KB SRAM (ATmega32U4); 64 MB DDR2 RAM (Atheros AR9331) |
| Operating voltage | 3.3V |
| Digital I/O pins | 20 (ATmega32U4), of which 7 can be used as PWM outputs |
| Analog / ADC | 12 (ATmega32U4) |
| PWM | 7 (ATmega32U4) |
| Connectivity | Built-in Wi-Fi (802.11 b/g/n), Ethernet port |
| USB | 1x Micro-USB for power and programming (ATmega32U4), 1x USB-A host port (Atheros AR9331) |
| Power input | 5V via Micro-USB or DC barrel jack (7-12V recommended, regulated down to 5V) |
| Dimensions | 49.5mm x 20.3mm |
Pinout & pin functions
| Pin | Function |
|---|---|
| 5V | Power output (regulated) |
| 3.3V | Power output (regulated) |
| GND | Ground |
| GND | Ground |
| IOREF | Voltage Reference (3.3V) |
| RESET | System Reset pin |
| D0 (RX) | Digital I/O, UART receive (ATmega32U4) |
| D1 (TX) | Digital I/O, UART transmit (ATmega32U4) |
| D2 | Digital I/O (ATmega32U4) |
| D3 | Digital I/O, PWM (ATmega32U4) |
| D4 | Digital I/O (ATmega32U4) |
| D5 | Digital I/O, PWM (ATmega32U4) |
| D6 | Digital I/O, PWM (ATmega32U4) |
| D7 | Digital I/O (ATmega32U4) |
| D8 | Digital I/O (ATmega32U4) |
| D9 | Digital I/O, PWM (ATmega32U4) |
| D10 (SS) | Digital I/O, SPI Slave Select (ATmega32U4) |
| D11 (MOSI) | Digital I/O, SPI Master Out Slave In (ATmega32U4) |
| D12 (MISO) | Digital I/O, SPI Master In Slave Out (ATmega32U4) |
| D13 (SCK) | Digital I/O, SPI Clock (ATmega32U4) |
| A0 | Analog Input, Digital I/O (ATmega32U4) |
| A1 | Analog Input, Digital I/O (ATmega32U4) |
| A2 | Analog Input, Digital I/O (ATmega32U4) |
| A3 | Analog Input, Digital I/O (ATmega32U4) |
| A4 (SDA) | Analog Input, Digital I/O, I2C Data (ATmega32U4) |
| A5 (SCL) | Analog Input, Digital I/O, I2C Clock (ATmega32U4) |
| D14 | Digital I/O (ATmega32U4) |
| D15 | Digital I/O (ATmega32U4) |
| D16 | Digital I/O (ATmega32U4) |
| D17 | Digital I/O (ATmega32U4) |
| D18 | Digital I/O (ATmega32U4) |
| D19 | Digital I/O (ATmega32U4) |
| LED | Onboard LED connected to D13 |
| Wi-Fi Antenna | Onboard Wi-Fi antenna |
| Ethernet Port | RJ45 Ethernet connector |
| Micro-USB Port | For power and programming the ATmega32U4 |
| USB-A Host Port | For connecting USB devices to the Linux system |
Wiring & circuit basics
Powering the Arduino Yún Mini requires careful consideration due to its dual-processor nature. The board operates at a 3.3V logic level, which is important when connecting external components. For powering the board, you can use the Micro-USB port (which supplies 5V) or the DC barrel jack (which accepts 7-12V). The board contains onboard voltage regulators to step down the input power to the required 5V and 3.3V for the components. Avoid applying more than 12V to the barrel jack, as this can overheat the regulator. Ensure your power supply can provide at least 1A, especially when using Wi-Fi or the USB host port.
When connecting sensors or actuators, always respect the 3.3V logic level of the Yún Mini. Connecting 5V devices directly to its digital pins can damage the ATmega32U4 microcontroller. If you need to interface with 5V components, use a logic level shifter. For example, to connect a simple LED, use a digital I/O pin (like D2) and connect it in series with a current-limiting resistor (typically 220-330 ohms) to GND. The resistor prevents the LED from drawing too much current and damaging the pin.
For I2C communication, the Yún Mini uses pins A4 (SDA) and A5 (SCL). These pins are also digital I/O pins. When connecting an I2C sensor, ensure it is a 3.3V compatible device or use a logic level shifter. Connect the sensor's VCC to the 3.3V pin on the Yún Mini, its GND to a GND pin, its SDA to A4, and its SCL to A5. The ATmega32U4 microcontroller on the Yún Mini handles the I2C communication, but the Linux side can also interact with it through the bridge.
Programming & getting started
The Arduino Yún Mini can be programmed using the standard Arduino IDE, which is the most common method for interacting with the ATmega32U4 microcontroller. You will need to select the 'Arduino Leonardo' board from the IDE's board manager, as the Yún Mini shares the same microcontroller. To upload sketches, connect the board via its Micro-USB port and select the correct COM port. For more advanced networking and Linux-side programming, you can access the Linux environment via SSH and use tools like Python, Node.js, or shell scripting. The bridge allows sketches to execute Linux commands and vice-versa, enabling powerful hybrid applications.