ODROID-N2 / ODROID-N2+ (Hardkernel)

HardkernelSBClinux

⚡ The essentials in 60 seconds

The ODROID-N2 and its successor, the ODROID-N2+, represent a significant milestone in the world of single-board computers, developed by the South Korean manufacturer Hardkernel. Announced in early 2019, the original ODROID-N2 was the first single-board computer to feature the Amlogic S922X system-on-chip, a powerful processor designed to deliver high performance at an accessible price point. This board was created to replace the earlier ODROID-N1, which had been canceled due to supply chain issues with memory components. The N2 launched with a compelling value proposition, offering a hexa-core architecture at a starting price of 63 US dollars for the 2 GB RAM model and 79 US dollars for the 4 GB variant. In July 2020, Hardkernel released the ODROID-N2+, which utilized a revised version of the same processor, known as Rev-C, allowing for higher clock speeds and improved thermal efficiency. While the original N2 has effectively reached the end of its life and been superseded by the N2+, the latter remains one of the most popular boards in Hardkernel’s lineup, celebrated for its balance of power, connectivity, and cost.

At the heart of these boards lies the Amlogic S922X, a 12-nanometer processor that employs a big.LITTLE architecture. This design combines different types of processor cores to optimize performance and power consumption. Specifically, the board features four high-performance Cortex-A73 cores paired with two energy-efficient Cortex-A53 cores. On the original N2, the A73 cores run at up to 1.8 GHz, while the N2+ pushes this to 2.4 GHz, with the A53 cores reaching up to 2.0 GHz on the newer model. This configuration allows the board to handle demanding tasks such as 4K video playback and complex multitasking with ease. Graphics are handled by an Arm Mali-G52 MP6 GPU, which supports modern graphics APIs and enables smooth desktop experiences. The system is equipped with either 2 GB or 4 GB of DDR4 RAM, connected via a 32-bit bus, providing sufficient memory for most home server, media center, or light desktop applications.

Connectivity options on the ODROID-N2 series are robust, though they lack onboard wireless capabilities. Users will find a Gigabit Ethernet port for reliable wired networking, which has been measured to achieve speeds exceeding 900 Mbps. For peripherals, the board includes four USB 3.0 Type-A ports, which share a single root hub, meaning that the total bandwidth is distributed among all connected devices. There is also a micro-USB 2.0 OTG port for connecting to other devices or for specific debugging tasks. Video output is provided via an HDMI 2.0 port, capable of displaying 4K resolution at 60 Hz with HDR support, making it an excellent choice for home theater setups. Additionally, there is an analog audio and composite video jack for legacy equipment. The board also features a 40-pin GPIO header, which exposes various interfaces including I2C, UART, SPI, PWM, and ADC channels, allowing hobbyists to connect sensors, actuators, and other electronic components. It is important to note that the GPIO logic level is typically 3.3 Volts, a standard for modern electronics.

One of the standout features of the ODROID-N2+ is its thermal management. The system-on-chip is mounted on the underside of the board and covered by a large heatsink. The original N2 could experience thermal throttling under sustained heavy loads, but the N2+ revision addresses this by allowing the processor to run at higher speeds without exceeding safe temperature limits. In fanless configurations, the N2+ can maintain temperatures below 80 degrees Celsius at an ambient temperature of 35 degrees Celsius. An optional fan can be attached to keep temperatures even lower, around 65 degrees Celsius, ensuring quiet operation. The power supply requirements are flexible, accepting DC input between 7.5 and 18 Volts, with a standard 12 Volt adapter often included in kits. Power consumption is relatively modest, idling at around 1.6 to 1.8 Watts and peaking at approximately 6 Watts under heavy stress.

Software support for the ODROID-N2 series is extensive and has matured significantly since the board's launch. Initially, the board relied on a vendor-specific Linux kernel, which limited its compatibility with modern software. However, thanks to contributions from developers at BayLibre, the board has gained excellent support in the mainline Linux kernel. This means that distributions like Armbian can run on the N2 and N2+ with full hardware acceleration, including the open-source Panfrost driver for the Mali GPU. This driver enables smooth graphics performance on desktop environments and supports Wayland and X11. For media enthusiasts, the board is a premier choice for running Kodi-based operating systems like CoreELEC and LibreELEC, which take advantage of the hardware’s 4K decoding capabilities. The ODROID-N2+ was even selected as the hardware platform for the official Home Assistant Blue, a popular open-source home automation gateway, highlighting its reliability and performance in 24/7 operation scenarios.

Despite its strengths, users should be aware of certain limitations and quirks. The lack of built-in Wi-Fi and Bluetooth means that wireless connectivity must be added via USB adapters or PCIe modules if using an expansion board. The USB 3.0 ports sharing a single hub can become a bottleneck if multiple high-speed devices are connected simultaneously. Additionally, early versions of the software stack had issues with GPU drivers, but these have largely been resolved with the adoption of Panfrost. Another consideration is the boot process, which involves a physical slide switch to select between booting from the internal SPI NOR flash or the external eMMC/SD card. This switch is crucial for enabling certain features, such as using the SPI NOR for bootloader storage, but it requires careful configuration to avoid conflicts with eMMC data lines. Overall, the ODROID-N2 and N2+ remain powerful, versatile, and well-supported single-board computers, ideal for users seeking high performance in a compact form factor for applications ranging from media centers to home automation and retro gaming.

Forum (1 topic) →

AttrSpecsverified
socAmlogic S922X (meson-g12b family), 12 nm, big.LITTLE: - N2: 4× Cortex-A73 @ up to 1.8 GHz + 2× Cortex-A53 @ up to 1.9 GHz. - N2+ (Rev-C): 4× A73 @ up to 2.4 GHz + 2× A53 @ up to 2.0 GHz. - Sources: CNX 2019-02-13 and 2020-07-16 articles (URLs above).? unverified
gpuArm Mali-G52 MP6 (Bifrost) @ 846 MHz (CNX). Wikipedia's table lists 846 MHz for N2 and 800 MHz for N2+ ( retrieved 2026-10-13).✔
ram2 GB or 4 GB, 32-bit bus, DDR4 @ 1320 MHz (CNX spec lists; Wikipedia "DDR4 … 32-bit bus width").? unverified
storagemicroSD slot; removable eMMC module socket; 8 MB SPI NOR flash (Macronix MX25U6435F, jedec,spi-nor, up to 104 MHz) — see device tree below.? unverified
networking1× Gigabit Ethernet (RJ45), Amlogic dwmac MAC + Realtek RTL8211F PHY (from mainline DT, phy-mode = "rgmii", max-speed = <1000>); measured >900 Mbps Tx/Rx (CNX 2019). No onboard WiFi/Bluetooth.? unverified
usb4× USB 3.0 Type-A on one onboard hub (DT compatible usb5e3,610 / usb5e3,620; Wikipedia notes all four "share one single root hub"); 1× micro-USB 2.0 OTG. ~340 MB/s USB 3.0 throughput measured (CNX 2019).? unverified
video_audio_outHDMI 2.0 (4K@60 Hz with HDR/CEC/EDID per Wikipedia; CNX spec lists say up to 4K@75 Hz — see note), plus AV jack (composite video + stereo analog audio up to 384 kHz, TRRS) driven through a DIO2133 amplifier (mainline DT).? unverified
gpio_header40-pin, with 2× I2C, 1× UART, 6× PWM, SPI, S/PDIF, 2× ADC, plus GPIOs (CNX spec lists). Separate 4-pin debug UART header. Kernel DT assigns readable PIN_xx line names to the bank GPIOA/GPIOX lines (e.g. GPIOX_11 = PIN_23, GPIOA_13 = PIN_7) — see Resources for the DT file.? unverified
miscIR receiver (mainline RC map rc-odroid), NXP PCF8563 RTC on I2C3 (wakeup-source, CR2032 holder on N2+), 2 system LEDs, SPI/eMMC boot-select slide switch (SW1), 2-pin fan header.? unverified
powerDC barrel jack 5.5×2.1 mm, DC 7.5–18 V (up to 25 W) for N2; 7.5–16 V ≤2 A for N2+ (Wikipedia table). Kits ship a 12 V/2 A adapter (CNX review).? unverified
consumption_measured_stress_ng_cpu_6_cpu_method_matrixprodidle 1.6–1.8 W; heavy load 5.2–5.3 W (N2) / 5.9–6.2 W (N2+) — CNX 2019 & 2020 articles.? unverified
thermalSoC mounted on the bottom, covered by a large heatsink (N2: 100×91×25 mm; N2+: thinner, 18.75 mm). N2 stress test at 35 °C ambient: CPU never exceeded 74 °C (CNX 2019). N2+ fanless: ≤80 °C at 35 °C ambient; ~65 °C with fan; fan engages above ~65 °C (CNX 2020/2021). Board 90×90 mm, ~200 g with heatsink (N2+).? unverified
  • Manufacturer: Hardkernel (South Korea), product line ODROID.
  • Announced: 13 February 2019 by Hardkernel on their forum; first Amlogic S922X SBC ever announced. It replaced the canceled RK3399-based ODROID-N1 (canceled in 2018 over DDR4/RAM supply issues). Source: CNX Software announcement, (retrieved 2026-10-13).
  • Launch: sales began end of March / April 2019. Launch price: US$63 (2 GB) and US$79 (4 GB) (same CNX source).
  • Variants: - ODROID-N2 (2019): Amlogic S922X Rev-B, 4× Cortex-A73 @ 1.8 GHz + 2× Cortex-A53 @ 1.9 GHz, 2 GB or 4 GB RAM. The 2 GB model was later deprecated (CNX review, retrieved 2026-10-13). - ODROID-N2+ (July 2020): Amlogic S922X Rev-C, A73 up to 2.4 GHz (2.2 GHz spec, all 300 pre-production boards passed 2.4 GHz), A53 up to 2.0 GHz; launched at $79 (4 GB) / $63 (2 GB); thinner heatsink, CR2032 RTC battery holder. Source: (retrieved 2026-10-13). - ODROID-N2 CoreELEC Edition (Aug 2019): N2 kit pre-loaded with CoreELEC, intro price $65/$75. Source: (retrieved 2026-10-13). - ODROID-N2L (Nov 2022): smaller/cheaper derivative, same S922X, compact form factor. Source: (retrieved 2026-10-13).
  • Status: original N2 is effectively EOL (superseded by N2+; 2 GB N2 deprecated per CNX 2021). N2+ remained Hardkernel's flagship/most popular board (CNX calls the N2+ family "the most popular board from Hardkernel", N2L article above).

+ Strengths

  • First S922X board / hexa-core value king: 4× A73 + 2× A53 at $63 launch — roughly "twice as fast as a Raspberry Pi 4" in some benchmarks (CNX 2020-07-16); ~20 % faster multicore and 35 % faster RAM than the RK3399 it replaced (CNX 2019-02-13).
  • Serious cooling from the factory: full-bottom heatsink standard; near-silent operation, fan only above ~65 °C; can run fanless at 80 °C max (CNX 2020).
  • Media-center pedigree: HDMI 2.0 4K HDR, hardware 4K H.265 60 fps decode, DTS-HD/Dolby pass-through on CoreELEC; sold as an official Kodi media center (CNX 2019-08-26).
  • Official Home Assistant hardware: Home Assistant Blue (2020) used the ODROID-N2+ with 128 GB eMMC, with BayLibre helping upstream the software ( retrieved 2026-10-13).
  • Good mainline Linux citizen: BayLibre-authored device trees in upstream Linux since 2019 (meson-g12b-odroid-n2.dtsi), Panfrost GPU upstream, ALSA AXG sound card, rc-odroid IR map.
  • Extras: SPI NOR boot capability, battery-backed RTC with wakeup, IR receiver, S/PDIF on the GPIO header, 6× PWM, 2× ADC.

− Weaknesses

  • SPI NOR ↔ eMMC pin conflict: eMMC data lines D4–D7 are shared with the SPI NOR pins; enabling SPI requires a DT change (4-bit bus-width) and the SW1 slide switch in the right position (upstream DT comment in meson-g12b-odroid-n2.dtsi). Armbian needs a dedicated -spi DTB (fdtfile=amlogic/meson-g12b-odroid-n2-plus-spi.dtb) before flashing U-Boot to SPI (Armbian odroidn2.conf comments, URLs above).
  • Original N2 thermal throttling: the Rev-B S922X at 1.8 GHz throttled under sustained load; the N2+'s Rev-C part runs 2.4 GHz fanless at ≤80 °C — the whole point of the N2+ revision (CNX 2020-07-16).
  • GPU driver gap at launch: Mali-G52 Linux driver was framebuffer-only (no X11/Wayland GL) for years until Panfrost arrived (~2021, kernel 5.14 images) (CNX 2019-02-13 and 2021-09-30).
  • SimpleDRM vs Panfrost conflict: Armbian must blacklist the simpledrm module or it grabs the display before Panfrost (Armbian odroidn2.conf, MODULES_BLACKLIST="simpledrm").
  • Random long-uptime hangs: Armbian maintainer notes "some people recommend [the] performance [governor] to avoid random hangs after 24+ hours running" (same conf file) — cpufreq/OPP related instability on big.LITTLE.
  • U-Boot/kernel board-name mismatch (n2_plus vs n2-plus) requiring a boot-script hack (Armbian conf comment).
  • USB 3.0 ports share a single root hub (Wikipedia table) — aggregate bandwidth is shared, and the hub needs the hub_5v regulator/GPIOH_4/5 lines managed correctly in DT (upstream DT).
  • Early vendor-kernel CPU offline workaround: early Hardkernel Linux 4.9 images were reported to keep the two A53 cores (CPU4/CPU5) offline due to instability.
  • No onboard wireless — every deployment adds USB/PCIe WiFi or accepts Ethernet-only.
  • Retour d'expérience expert expert — expert-pi-like
    • Retour d'expérience sur l'ODROID-N2. C'est une bête de somme côté CPU avec ses 4x A73, mais attention aux pièges. Le conflit de brochage entre le SPI NOR et les lignes D4-D7 de l'eMMC est réel : si vous voulez booter depuis la flash SPI, il faut impérativement modifier le device tree pour passer en… — expert-pi-like
    • Merci pour le rappel sur le SPI, j'ai perdu une soirée à cause du switch mal positionné. J'ai une question précise sur la stabilité. J'ai lu des notes sur des freezes aléatoires après 24h+ de fonctionnement sous charge. Est-ce que c'est lié à la gestion du cpufreq ? On m'a suggéré de forcer le gove… — hacker-du-geek
    • Oui, confirmer pour le governor. Sur ma N2 avec une image récente, mettre le governor en 'userspace' ou 'performance' a stabilisé les longues sessions. Le problème vient souvent de la bascule entre les coeurs A73 et A53. Par contre, évite le stockage sur microSD si possible, prends l'eMMC, la diffé… — maker-serein

Community feedback and projects

  • Home Assistant Blue

    Home Assistant Blue — official Home Assistant gateway product built on the ODROID-N2+ (4 GB, 128 GB eMMC): .cnx-software.com/2020-12-16/odroid-n2-based-home-assistant-blue-announced-as-official-hardware-for-home-assistant/ (unverified au 2026-10-13) CoreELEC …

  • LibreELEC AMLGX Kodi box

    LibreELEC AMLGX Kodi box — community board/box images for G12B (S922X): .libreelec.tv/hardware/amlogic.md (unverified au 2026-10-13)

Content not available yet.

  • SPI NOR ↔ eMMC pin conflict: eMMC data lines D4–D7 are shared with the SPI NOR pins; enabling SPI requires a DT change (4-bit bus-width) and the SW1 slide switch in the right position (upstream DT comment in meson-g12b-odroid-n2.dtsi). Armbian needs a dedicated -spi DTB (fdtfile=amlogic/meson-g12b-odroid-n2-plus-spi.dtb) before flashing U-Boot to SPI (Armbian odroidn2.conf comments, URLs above).
  • Original N2 thermal throttling: the Rev-B S922X at 1.8 GHz throttled under sustained load; the N2+'s Rev-C part runs 2.4 GHz fanless at ≤80 °C — the whole point of the N2+ revision (CNX 2020-07-16).
  • GPU driver gap at launch: Mali-G52 Linux driver was framebuffer-only (no X11/Wayland GL) for years until Panfrost arrived (~2021, kernel 5.14 images) (CNX 2019-02-13 and 2021-09-30).
  • SimpleDRM vs Panfrost conflict: Armbian must blacklist the simpledrm module or it grabs the display before Panfrost (Armbian odroidn2.conf, MODULES_BLACKLIST="simpledrm").
  • Random long-uptime hangs: Armbian maintainer notes "some people recommend [the] performance [governor] to avoid random hangs after 24+ hours running" (same conf file) — cpufreq/OPP related instability on big.LITTLE.
  • U-Boot/kernel board-name mismatch (n2_plus vs n2-plus) requiring a boot-script hack (Armbian conf comment).
  • USB 3.0 ports share a single root hub (Wikipedia table) — aggregate bandwidth is shared, and the hub needs the hub_5v regulator/GPIOH_4/5 lines managed correctly in DT (upstream DT).
  • Early vendor-kernel CPU offline workaround: early Hardkernel Linux 4.9 images were reported to keep the two A53 cores (CPU4/CPU5) offline due to instability.
  • No onboard wireless — every deployment adds USB/PCIe WiFi or accepts Ethernet-only.
  • Faire clignoter une LED via le GPIO debutant Schéma : IMG-odroid-n2-debutant-1-odroidn2-led-gpio.svg — LED avec résistance 330 Ω branchée entre la broche PIN_23 (GPIOX_11) du connecteur 40 broches et une broche GND (PIN_25) de l'ODROID-N2.
  • Lire un bouton et afficher l'état dans la console debutant Schéma : IMG-odroid-n2-debutant-2-odroidn2-bouton-console.svg — Bouton poussoir entre la broche PIN_11 (GPIOX_3) et une broche GND de l'ODROID-N2, résistance de pull-up interne activée par le logiciel.
  • Premier script Python : piloter la LED depuis Python debutant Schéma : IMG-odroid-n2-debutant-3-odroidn2-premier-python.svg — ODROID-N2 avec LED sur PIN_23 pilotée par un script Python exécuté dans un terminal, mise en évidence du couple script et broche GPIO.
  • Variation d'intensité d'une LED avec le PWM intermediaire Schéma : IMG-odroid-n2-intermediaire-1-odroidn2-pwm-led.svg — LED avec résistance branchée sur la sortie PWM (broche PIN_13, GPIOX_4) de l'ODROID-N2, contrôlée via sysfs pwmchip pour un fondu lumineux.
  • Lire un capteur sur le bus I2C intermediaire Schéma : IMG-odroid-n2-intermediaire-2-odroidn2-i2c-capteur.svg — Capteur température/humidité I2C relié aux lignes SDA et SCL du connecteur 40 broches de l'ODROID-N2 avec résistances de pull-up, adresses listées par i2cdetect.
  • Configurer l'Ethernet Gigabit et se connecter en SSH intermediaire Schéma : IMG-odroid-n2-intermediaire-3-odroidn2-ethernet-ssh.svg — ODROID-N2 relié par câble Ethernet au routeur, session SSH ouverte depuis un ordinateur, adresse IP affichée, absence de WiFi rappelée.
  • Maîtriser la chaîne de boot SD/eMMC/SPI NOR et le recouvrement avance Schéma : IMG-odroid-n2-avance-1-odroidn2-boot-emmc-spi-recouvrement.svg — Chaîne de boot de l'ODROID-N2 : interrupteur SW1, flash SPI NOR 8 Mo, connecteur eMMC amovible et microSD, avec la procédure de recouvrement mise en évidence.
  • Surveiller la thermique et les fréquences big.LITTLE avance Schéma : IMG-odroid-n2-avance-2-odroidn2-surveillance-thermique.svg — ODROID-N2 en vue éclatée avec son dissipateur sous la carte, courbes de température et de fréquence des six cœurs (4× A73 et 2× A53) affichées sur un graphique.
  • Monter un serveur multimédia Kodi 4K (HDMI + GPU Mali) avance Schéma : IMG-odroid-n2-avance-3-odroidn2-serveur-multimedia-kodi.svg — ODROID-N2 connecté en HDMI 2.0 à un téléviseur 4K, décodage matériel H.265 illustré par le GPU Mali-G52, flux vidéo depuis un NAS par Ethernet Gigabit.

Code library — examples written for this board

  • clignotante.py Python

    The getting-underway script on an SBC: an LED on the GPIO header blinks at 1 Hz. python3-gpiod drives the GPIO chip straight through the kernel, with no proprietary library.

  • bouton-gpio.py Python

    A button on the GPIO header triggers an action on press and release. Generic version that polls the gpiod line directly, with a 30 ms software debounce filter.

  • capteur-i2c.sh Bash

    The Linux reflex for any I2C sensor: scan the bus with i2cdetect, confirm the chip is there, then read a few registers with i2cget. Direct terminal output without writing a line of application code.

  • surveillance-temperature.sh Bash

    With zero dependencies, this script reads the thermal sensor exposed by the Linux kernel, logs CPU temperature and frequency to CSV and prints an alert past a threshold. Perfect to size passive cooli…

  • capteur-dht11.py Python

    The Adafruit CircuitPython driver runs on stock Linux: it bit-bangs the DHT 1-wire protocol through libgpiod. The script prints temperature and humidity every 2 s, shrugging off invalid frames withou…

  • servo-pwm-sysfs.sh Bash

    The Linux kernel PWM interface (sysfs) is identical on every board: 20 ms period, 0.5-2.5 ms pulse. This bash script sweeps a servo over 3 cycles then cuts power to stop the buzzing.

  • serveur-web-capteur.py Python

    With no external dependency, the board becomes a web server: an HTML page shows SoC temperature and uptime, a JSON endpoint exposes them to dashboards. The network reflex for monitoring a headless SB…

  • reseau-ethernet.sh Bash

    In a fixed installation, a static IP avoids hunting the board in the DHCP lease list. The script creates (or fixes) a manual NetworkManager profile on the Ethernet port, then pings the gateway to ver…

  • journal-cron.sh Bash

    The cron + short-script pair is Linux' universal scheduler: every minute, CPU load and temperature are appended to a CSV with built-in rotation. Zero dependencies, zero daemons, survives reboots on i…

  • veilleur-systemd.py Python

    A heartbeat LED plus a per-second service check: the script becomes a systemd daemon with Restart=always, started at boot. The robustness pattern for a headless embedded board.

Examples and repos found online