Новость о том, что Qualcomm покупает Arduino сначала вызвала чувство тревоги. Примерно такое же, как когда Broadcom купил VMware. С чудесным миром микроконтроллеров я тесно познакомился именно благодаря Arduino. Оригинальная Uno базировалась на ATmega328P и стоила на момент выхода 30 $. Реальная себестоимость, по оценкам коммьюнити, была около 15 $, а все остальное пользователь платил за бренд и открытость дизайна.

Последнее, кстати, привело к тому, что спустя короткое время плата была скопирована китайцами. Они не просто нашли способ заменить дорогие компоненты более дешевыми аналогами, но и наладили крупносерийное производство. Это привело к тому, что купить ноунейм-клон аля Nduino Uno можно было на порядок дешевле.

Совсем недавно публике представили новую плату Arduino Uno Q, которая уже была создана с использованием разработок Qualcomm. Она мгновенно вызвала интерес, благодаря новому видению того, как должна выглядеть современная плата микроконтроллера. Мне уже удалось добраться до серийного образца Uno Q, так что спешу поделиться с вами впечатлениями!

Новый взгляд

Вид сверху
Вид сверху

Все, кто хотя бы раз сталкивался с Arduino Uno, знают — это микроконтроллер, который хорошо работает с аналоговыми и цифровыми сигналами. Но если вы придумали отличную идею, это вовсе не значит, что ее получится реализовать без дополнительных затрат. Классическая Uno (до R4) — лишь микроконтроллер (MCU), не имеющий беспроводного соединения или доступа в интернет. Это приводит к необходимости покупать или собирать собственный модуль расширения (shield). Исключение — можно гонять данные через RS232, но это не всегда удобно.

Предположим, вы хотите сделать индикатор погоды за окном, который с определенной периодичностью подключается к weather-сервису по API и отображает иконку на светодиодной матрице. В этом случае, помимо Arduino Uno, вам нужно докупить Ethernet Shield (W5100/W5500) и хотя бы самую простую LED матрицу MAX7219 (8x8).

Если покупать оригинальные платы, сборка обойдется в 63 $ (очень грубо, приблизительно и без доставки). Если же все собирать на китайских аналогах, будет в 10 раз дешевле. Качество, впрочем, хорошо соотносится с ценой: нужно проверять, правильно ли припаяны компоненты и не висит ли какая-нибудь оловянная «сопля» на ножках контроллера.

Вид снизу
Вид снизу

Есть другой вариант — взять Raspberry Pi Zero за 20 $, которая будет уметь подключаться к беспроводным сетям и работать с GPIO. Простой скрипт на Python и вот оно, чудо современной техники. Только это все равно, что стрелять из пушки по воробьям: потенциал платы не будет раскрыт даже на 10 процентов. Да и отдельного микроконтроллера на это не выделено — за работу GPIO отвечает CPU.

Инженеры Qualcomm разумно решили: а почему бы не взять лучшее из обоих миров и не совместить одноплатный компьютер с микроконтроллером, чтобы можно было их использовать в паре? CPU станет выполнять программы, написанные на разных языках, вроде Python. Ну а MCU — привычные для экосистемы Arduino библиотеки и скетчи. Вместе они образуют тандем, который будет значительно более универсальным, чем каждое устройство по-отдельности. 

Новинка Qualcomm использует тот же самый форм-фактор, что и обычная Arduino Uno R3. Даже все GPIO-порты на своих местах. Сделано это для обратной совместимости, чтобы ранее созданные модули подошли к новой плате, которая не только микроконтроллер, а гибрид, способный запускать внутри полноценный Linux.

CPU

Первое сердце девайса — чип Qualcomm Dragonwing QRB2210:

Это не просто один процессор, а сразу SoC-комбайн, создававшийся для применения в робототехнике:

  • 64-битный 4-ядерный Qualcomm Kryo, работающий на частоте до 2 ГГц.

  • GPU Adreno 702 (частота 845 МГц) с поддержкой OpenGL ES 3.1, Vulkan 1.1 и OpenCL 2.0.

  • 2-ядерный DSP, изначально предназначенный для обработки видеопотоков с двух камер (13 Мп + 13 Мп) или одной (25 Мп).

  • Hexagon DSP. «Темная лошадка», способная выполнять математически сложную обработку сигналов без помощи CPU и даже брать на себя роль NPU для ускорения работы с нейронными сетями.

Несмотря на то, что такой набор выглядит внушительным, есть и доля маркетингового лукавства. Вывод lscpu покажет следующее:

arduino@valhalla:~$ lscpu

Architecture:                aarch64

  CPU op-mode(s):            32-bit, 64-bit

  Byte Order:                Little Endian

CPU(s):                      4

  On-line CPU(s) list:       0-3

Vendor ID:                   Qualcomm

  Model name:                Kryo-V2

    Model:                   4

    Thread(s) per core:      1

    Core(s) per cluster:     4

    Socket(s):               -

    Cluster(s):              1

    Stepping:                0xa

    Frequency boost:         disabled

    CPU(s) scaling MHz:      69%

    CPU max MHz:             2016.0000

    CPU min MHz:             300.0000

    BogoMIPS:                38.40

    Flags:                   fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid

NUMA:

  NUMA node(s):              1

  NUMA node0 CPU(s):         0-3

Строка Kryo-V2 в lscpu вовсе не означает, что физически внутри ядра полу кастомной архитектуры Kryo, как в Snapdragon. Реально там ядра Cortex-A53, что подтверждается типичным набором флагов. Мягко говоря, не топовый, но вполне удачный и долгоживущий середнячок. Просто маркетологам Qualcomm хочется, чтобы все CPU у них имели единое название, вне зависимости от применяемых ядер.

RAM

На момент написания этого текста по предзаказу были доступны только модели Arduino Uno Q с 2 Гб оперативной памяти LPDDR4, производства Micron:

Маркировка на корпусе D8CSC — это FBGA-код Micron, по которому можно однозначно установить правильный p/n (part number) MT53E512M32D1ZW-046 WT:B. Если совсем кратко, то шина x32, частота 2133 МГц / 4266 МТ/с. Вполне себе обычный чип ОЗУ, способный работать в одноплатнике без обдува и выдерживать нагрев до +85 °C.

Graphics

SlimPort ANX7625, чип производства Analogix Semiconductor работает в роли мостика между MIPI-интерфейсом SoC и DisplayPort. Его главная задача — обеспечить вывод изображения на внешний дисплей DisplayPort/HDMI. Не стоит забывать, что все в этом гаджете завязано на работу через единственный Type-C порт, которому приходится и питание подавать, и разные устройства поддерживать, и графику выводить.

Power

Этот чип заведует всеми аспектами питания платы. Он отвечает за генерацию всех напряжений, контролирует последовательность включения/выключения, мониторит температуру и ток, а также управляет RTC (Real-Time Clock). Подключен к шине SPMI:

arduino@valhalla:~$  dmesg | grep -i rtc

[    4.098100] rtc-pm8xxx 1c40000.spmi:pmic@0:rtc@6000: registered as rtc0

[    4.112270] rtc-pm8xxx 1c40000.spmi:pmic@0:rtc@6000: setting system clock to 1970-01-01T00:00:12 UTC (12)

Поскольку сейчас плата не имеет модуля UPS, аппаратные часы сбрасываются каждый раз при снятии основного питания. Дальше система обращается к NTP-серверу при наличии интернет-соединения и синхронизирует текущее время. Переходим к следующему.

Storage

Самые популярные одноплатники в мире используют MicroSD-карты в качестве хранилища. Причина в том, что это простой и гибкий способ обеспечить пользователя нужным объемом постоянной памяти. MicroSD дает хороший выбор, можно самому выбрать размер и скорость — от медленных с масс-маркета до Extreme версий, используемых в профессиональной фототехнике и портативных игровых консолях.

Если карта вышла из строя, ее легко заменить. К тому же в Raspberry Pi их можно смело назвать расходником. C eMMC совсем другая ситуация. Такие чипы применяются там, где важна бесперебойная работа, а плата больше является «продуктом», чем тестовой игрушкой. eMMC выигрывает у карт памяти как по надежности, так и по скорости. Минус — сложность замены в случае необходимости.

У Arduino Uno Q есть две опции: 16 Гб и 32 Гб. Версия с 16 Гб уже доступна, а вот 32 Гб пока что нет. С завода внутрь залита Debian 13, а использование дискового пространства выглядит следующим образом:

arduino@valhalla:~$ df -h

Filesystem       Size  Used Avail Use% Mounted on

udev             845M     0  845M   0% /dev

tmpfs            175M  1.8M  173M   2% /run

/dev/mmcblk0p68  9.8G  6.4G  3.0G  69% /

tmpfs            871M   12K  871M   1% /dev/shm

efivarfs         128K  2.2K  126K   2% /sys/firmware/efi/efivars

tmpfs            5.0M  8.0K  5.0M   1% /run/lock

tmpfs            871M   72K  871M   1% /tmp

tmpfs            1.0M     0  1.0M   0% /run/credentials/systemd-journald.service

/dev/mmcblk0p69  3.6G  677M  2.8G  20% /home/arduino

/dev/mmcblk0p67  488M  113M  375M  24% /boot/efi

tmpfs            1.0M     0  1.0M   0% /run/credentials/getty@tty1.service

tmpfs            1.0M     0  1.0M   0% /run/credentials/serial-getty@ttyMSM0.service

tmpfs            175M   52K  175M   1% /run/user/1000

tmpfs            175M   48K  175M   1% /run/user/103

Опять же, нет никаких ограничений на то, чтобы подключить к устройству внешний дисковый накопитель через USB-хаб. Но все, что касается системы будет жить на eMMC.

Wireless

Чип WCBN3536A — это комбинированный RF-модуль, реализующий беспроводное соединение с Wi-Fi и Bluetooth. Стандарты тут такие:

  • Wi-Fi 5 (2.4 + 5 GHz)

  • Bluetooth 5.1

Больше особо даже говорить не о чем. Система позволит легко подключить практически любые беспроводные устройства, существующие на текущий момент. Антенна реализована непосредственно на самой плате, слева от модуля.

MCU

Вот мы добрались и до второго сердца — микроконтроллера, который отвечает за исполнение Arduino-скетчей. Позвольте представить, STMicroelectronics STM32U585:

Прогресс тут налицо. Вместо 8-битного AVR RISC MCU (ATmega328P в Uno R3) установлен 32-битный MCU ARM Cortex-M33 с частотой 160 МГц, в котором есть аппаратный механизм разделения доверенной и недоверенной среды (TrustZone). Выглядит как чистая магия: один и тот же чип может вести себя так, словно у него биполярочка два микроконтроллера внутри, разделенные высоким барьером. В терминологии ARM это называется доменами.

Первый домен является защищенным. У него есть доступ ко всему — от ключей безопасности до периферии. Тут живет системная часть, способная проверять подпись кода, выполнять шифрование и дешифрование данных и прочие критичные операции. Второй домен, напротив, служит своеобразной песочницей — это среда для выполнения пользовательского кода, тех же скетчей. В ней можно не опасаться случайно или намеренно повредить системную часть. Все это отчасти похоже на гипервизор и виртуальную машину, но значительно проще и быстрее.

У CPU есть небольшой блок оперативной памяти SRAM, размером 786 Кб. Отдельной EEPROM у STM32U585 нет, вместо этого он получает доступ к небольшому (2 МБ) зашифрованному в AES-256 куску eMMC. Именно туда пользователь может заливать скетчи. В качестве операционной системы используется RTOS Zephyr.

В сухом остатке: по аппаратной части Arduino Uno Q — гибридная плата с двумя ARM-процессорами и интерконнектом между ними, функционирующая на независимых друг от друга операционных системах. Теперь предлагаю взглянуть на то, как реализована работа программной части и, что самое главное, обратная совместимость со скетчами для классической Arduino.

Режимы работы

Десктоп

Всего Arduino Uno Q поддерживает два режима. Первый делает из него одноплатный компьютер, но тут нужно подключить питание, дисплей, клавиатуру и мышь, причем через единственный разъем USB Type-C. Так что без хорошего хаба, поддерживающего внешнее питание и Power Delivery (PD), не обойтись. У меня это вот такой универсальный хаб 11 в 1:

Кому интересно — модель Devia EC607
Кому интересно — модель Devia EC607

Внешнее питание к нему можно подавать с любого БП. Лично я использую 45-ваттный от своего хромбука. Дальше к хабу подключается вся остальная периферия, ну а сам он непосредственно к Arduino Uno Q. Так он питает и себя, и плату.

Плата в процессе запуска
Плата в процессе запуска

Сразу после подачи питания в MCU происходит загрузка RTOS и срабатывает скетч, который демонстрирует на светодиодной матрице анимацию логотипа Arduino. Параллельно с этим, начинается запуск Linux и спустя 3–4 секунды стартует вывод изображения на монитор.

В первый раз система попросит задать пароль для штатного пользователя с именем arduino. Последний получит возможность выполнять действия от имени суперпользователя (через sudo). После загрузки появляется рабочий стол и автоматически запускается приложение Arduino App Lab:

Внешний вид Arduino App Lab
Внешний вид Arduino App Lab

При первом старте система потребует обновления и нет варианта отказаться. Без него, приложение попросту не запустится, что мягко говоря странно. В будущих версиях возможно это пофиксят, а пока что надо просто дать 10–15 минут плате на обновление.

Arduino App Lab — это сервисное приложение, библиотека примеров, установщик системных библиотек и IDE в одном флаконе. Оно решает сразу множество задач, но главное — дать возможность без промедления начинать разработку, не заботясь об окружении. При создании нового проекта или копирования примера мы получаем его в разделе My Apps и по щелчку проваливаемся в IDE:

Открытый скетч в Arduino App Lab
Открытый скетч в Arduino App Lab

Тут хорошо видно, что каждый проект теперь может быть гибридным. Но самое интересное то, что происходит после нажатия на кнопку Run. Нет такого, что код просто заливается в EEPROM и начинает работать. Система автоматически создает Docker-контейнер для выполнения кода на CPU и скрипт, который отправит скетч на исполнение в MCU.

С одной стороны, это круто, поскольку все унифицировано и не навредит основной операционной системе. Но с другой — это реально медленно. После заливки скетча может пройти 30–35 секунд, прежде чем код будет запущен:

Процесс запуска скетча в Arduino App Lab
Процесс запуска скетча в Arduino App Lab

Увы, как-либо ускорить это при использовании Arduino App Lab вряд ли получится. Но у Arduino Uno Q есть еще один «туз в рукаве» — второй режим работы.

Обычная Arduino

Предположим, у вас нет необходимости использовать Debian, а вы хотите заниматься только разработкой. Такой вариант возможен, ведь если вы просто подключите плату к компьютеру, то сможете воспользоваться привычной Arduino IDE. Плата будет видна в системе, как обычный COM-порт и вы без труда сможете заливать в нее скетчи напрямую:

Разработка в Arduino IDE
Разработка в Arduino IDE

При этом есть возможность установки на ваш ПК все того же приложения Arduino App Lab, которое сможет удаленно подключиться к Uno Q и предоставить вам интерфейс для разработки и запуска приложений. Пожалуй, единственное, о чем сейчас стоит помнить, — плата только поступила в продажу и поэтому софт имеет ряд багов. Если попытаться подключиться к свежей Uno Q из Windows, вы получите неприятную ошибку:

Сюрприз
Сюрприз

Я не поленился отправить запрос в техподдержку и спустя несколько часов получил вполне официальный ответ:

Скрытый текст

At the moment, there's an issue when updating the Arduino Uno Q from Windows using App Lab. We're aware of this situation, and our team is already working on a solution as soon as possible.

For now, the recommended way to fix the problem is by updating the Linux image inside your Uno Q. To flash the latest available image, please follow the steps described in this tutorial:

https://docs.arduino.cc/tutorials/uno-q/update-image/

Попросту говоря, если у вас актуальная версия App Lab, а прошивка на плате еще не была обновлена, то подключиться к ней вы не сможете. Либо надо запуститься в Desktop-режиме (нужен хаб) и оттуда подождать, пока пройдет обновление, либо взять свежий образ ОС с сайта и перепрошить плату: требуется джампер для входа в режим прошивки. Я поступил первым способом и после обновления Uno Q стала спокойно управляться из Windows 11.

Вместо заключения

Arduino Uno Q — это действительно новый взгляд на то, как может выглядеть и работать подобная плата. Лично мне кажется, что персонаж Q из фильмов про Джеймса Бонда вполне мог бы создать нечто подобное. Чипы Qualcomm позволили инженерам Arduino сделать продукт более универсальным и мощным, начав конкурировать с одноплатными компьютерами и предоставив пользователям производительный микроконтроллер для самых разных проектов.

Гибридный подход с двумя чипами позволил снять множество ограничений и использовать фичи, которые на обычном ATmega328P были попросту не реализуемы. Uno Q выглядит весьма хорошим приобретением. Но стоит учитывать, что для полноценного опыта нужно как минимум обзавестись USB-хабом, цена которого в полтора раза дороже самой платы.

Лично я буду с нетерпением ждать выхода прокачанной версии с 4 Гб ОЗУ и 32 Гб eMMC, чтобы Debian работал плавнее, а также была возможность параллельного запуска большего количества контейнеров. Ну а пока займусь написанием первого проекта с использованием AI-ускорения. Будет интересно посмотреть, как плата справится с распознаванием объектов в видеопотоке.

Как вам Arduino Uno Q? Купили бы себе такую? Делитесь своим мнением в комментариях.

Комментарии (4)


  1. Fox_exe
    27.10.2025 08:10

    Никак не пойму - зачем смешивать на одной плате два совершенно разных чипа, предназначенных для выполнения совершенно разных задач?
    Если нужны дополнительные GPIO порты - так есть CPU с сотнями GPIO и других интерфейсов. Просто выбери нужный.
    Нужна производительность при минимальном энергопотреблении - так среди микроконтроллеров всё это есть (Вплоть до многоядерных моделей с гигагерцовыми частотами)

    Нужен линукс и производительность - берём Raspberrypi/Orangepi/Banaapi/ещё-какой-микрокомп
    Нужно крайне низкое потребление - микроконтроллер.

    Хотя в современных CPU есть всё тоже, что есть в микроконтроллерах, включая режимы сверхнизкого потребления и режим сна/гибернации. И портов даже больше, чем в микроконтроллерах.

    Ну и внешним устройствам (вроде упомянутой LED матрицы) всёже лучше оставаться внешними. ИМХО.


    1. BSOZ
      27.10.2025 08:10

      Кажется идею с LED PIN 13 вообще потеряли где-то по-дороге: он нужен был для какого-то бинарного сигнала для отладки, никакого прикладного смысла в него не закладывалось. Городить какой-то огород из SMD LED — это в целом сомнительное решение, как минимум в настоящих LED матрицах углы отдельных пикселей рассчитываются так, чтобы не убивать контрастность засветкой всего вокруг без рассеивателя одной очень яркой точкой, окружённой пустотой. Я даже на скриншотах из статей про новую Uno Q едва ли могу разобрать какие-то символы, выводимые этим безобразием. И в сравнении с безобидным LED 13 этот огород всё время занимает огромный кусок пространства даже когда не нужен, эта чудовищная избыточность отталкивает от покупки. Гораздо рациональней было бы разместить просто порт для подключения какой-то комплектной матрицы (естественно по цене x50-x100 от себестоимости). При подключении вообще любого шилда эта матрица теряет возможность выводить что-либо.


  1. Fox_exe
    27.10.2025 08:10

     Система автоматически создает Docker-контейнер для выполнения кода на CPU и скрипт, который отправит скетч на исполнение в MCU.

    Вот тут не понял. Это он на каждый чих будет генерить контейнер, чтоль? А зачем так сложно?

    Или, всёж, речь про контейнер с компилятором, который создаётся только один раз? (Внутри него происходит сборка проекта и выгрузка на MCU)


  1. kenomimi
    27.10.2025 08:10

    Классический ардуино ценен как раз тем, что контроллер стоит примитивный, в котором может разобраться даже школьник. В нем мало памяти, потому надо шевелить мозгами, чтобы впихнуть свой код. Такой контроллер можно легко и просто освоить даже без ардуино среды.

    Здесь стоит линуксовая часть (зачем, чтобы что?) с мелкой гребенкой, и жирнющий МК, в котором даже бородатый синьор без матов не разберется, даже с кубом его сконфигурить - боль. Всё накрыто горой абстракций. До кучи не хватает только fpga, вот честно... Какой у этого всего юзкейс, непонятно.