Onion Omega2 — это WiFi-плата на базе LEDE (форк OpenWrt) с процессором Mediatek MT7688 MIPS SoC, предназначенная для IoT-проектов, стоимостью от $5. Существует две версии: Omega2 с 64 МБ ОЗУ и 16 МБ флеш-памяти, а также Omega2+ с 128 МБ ОЗУ, 32 МБ флеш-памяти и слотом для micro SD. Для обзора была предоставлена версия Omega2+ вместе с расширительным доком, который позволяет питать плату через USB, добавляет USB-хост, RGB-светодиод, кнопки и доступ к GPIO через разъем типа «мама». В этом кратком руководстве сначала представлены фотографии распаковки, затем описаны шаги по настройке платы, управлению RGB-светодиодом и подключению светодиода к GPIO через макетную плату.
Распаковка Onion Omega2+
Обе платы поставляются в антистатических пакетах.

Сначала рассмотрим плату Onion Omega2+. На верхней стороне расположены чип-антенна и разъем u.FL для внешней антенны, а также основные компоненты, закрытые экраном с информацией, включая FCC ID и MAC-адрес (последние четыре символа выделены жирным, так как они используются для доступа к плате). На нижней стороне находятся два ряда разъемов и слот для micro SD. Также присутствует посадочное место для дополнительного разъема, но его назначение не указано.

Далее рассмотрим док. На нем установлен 2×15-контактный разъем типа «мама» с четкой маркировкой, включая линии питания, GPIO, I2C, UART и USB.

На верхней панели расположена кнопка питания, под углом 45° — кнопка сброса, а также micro USB для питания, USB-порт для подключения накопителей, RGB-светодиод и разъем для установки платы Onion Omega2.

Установка Omega2 в док проста — достаточно убедиться в правильной ориентации.
Onion Omega2+ — не первая плата на Mediatek MT7688, ранее также тестировалась LinkIt Smart 7688 . Omega2+ компактнее, но LinkIt Smart уже оснащена micro USB для питания.
Первоначальная настройка Onion Omega2 и расширительного дока
После поиска в интернете была найдена страница начала работы , но она относится к первой версии платы Onion Omega (2015 года). Позже был обнаружен актуальный Omega2 Wiki , что позволило завершить настройку.
Для доступа к плате использовался компьютер с Ubuntu 16.04, но также подойдут Windows (с Bonjour Service) и Mac OS X.
Zeroconf необходим для работы с платой, если не используется прямой доступ по IP. В Linux он обычно уже установлен. Плата подключается к источнику питания (например, USB-порту компьютера) через micro USB, после чего включается кнопкой питания.

При включении RGB-светодиод на дока и светодиод Omega2+ кратковременно загораются, затем RGB-светодиод гаснет, а светодиод платы мигает несколько секунд. Когда светодиод перестает мигать и горит постоянно, загрузка завершена.
В списке WiFi-сетей появится точка доступа «Omega-XXXX», где XXXX — последние цифры MAC-адреса платы. Для подключения используется пароль: 12345678.
Веб-конфигурация Omega2
После подключения в браузере нужно перейти по адресу http://192.168.3.1 или http://omega-XXXX.local/ для запуска мастера настройки Omega2.
Нажмите Start и введите стандартные учетные данные (логин: root, пароль: onioneer). На следующей странице можно подключить плату к WiFi-роутеру.
Выберите ESSID, введите пароль и нажмите «Configure WiFi».
Мастер предлагает зарегистрировать плату в облаке, но это необязательно. Можно пропустить шаг и перейти к обновлению прошивки. В рамках обзора была предпринята попытка регистрации. Для регистрации требуется указать имя, email и пароль.
Затем нужно ввести имя устройства и описание для подтверждения.
К сожалению, процесс завершился ошибкой (окно с красным крестом не реагировало на нажатия). В облачном сервисе плата отображалась как офлайн. Проблема известна ( подробнее здесь ), разработчики Onion работают над ее решением.
Далее была предпринята попытка обновить прошивку и установить веб-консоль.
Процесс также завершился неудачно — индикатор прогресса не двигался в течение 20 минут. При этом плата получила IP-адрес от DHCP-сервера роутера, поэтому доступ в интернет должен был быть.
Конфигурация через командную строку Omega2
В качестве альтернативы использовался SSH (логин: root, пароль: onioneer):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
ssh root@omega-42d7.local The authenticity of host 'omega-42d7.local (192.168.0.113)' can't be established. RSA key fingerprint is SHA256:xxxx Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'omega-42d7.local' (RSA) to the list of known hosts. root@omega-42d7.local's password: BusyBox v1.25.1 () built-in shell (ash) ____ _ ____ / __ \___ (_)__ ___ / __ \__ _ ___ ___ ____ _ / /_/ / _ \/ / _ \/ _ \ / /_/ / ' \/ -_) _ `/ _ `/ \____/_//_/_/\___/_//_/ \____/_/_/_/\__/\_, /\_,_/ W H A T W I L L Y O U I N V E N T ? /___/ ----------------------------------------------------- Ω-ware: 0.1.5 b130 ----------------------------------------------------- |
Версия прошивки Ω-ware: 0.1.5 b130.
Команда wifisetup позволяет сканировать сети и подключаться к роутеру:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
root@Omega-42D7:~# wifisetup Onion Omega Wifi Setup Select from the following: 1) Scan for Wifi networks 2) Type network info q) Exit Selection: 1 Scanning for wifi networks... Select Wifi network: 1) CNX-TRANSLATION 2) CNX-SOFTWARE Selection: 1 Network: CNX-TRANSLATION Authentication type: WPA2PSK Enter password: xxxxxxxxx > Restarting wifimanager for changes to take effect |
Обновление прошивки через веб-интерфейс не удалось, но можно повторить через командную строку с помощью oupgrade:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
root@Omega-42D7:~# oupgrade > Device Firmware Version: 0.1.5 b130 > Checking latest version online... > Repo Firmware Version: 0.1.7 b139 > Comparing version numbers > New firmware version available, need to upgrade device firmware > Downloading new firmware ... /usr/bin/oupgrade: local: line 377: not in a function --2017-01-14 10:16:17-- http://repo.onion.io/omega2/images/omega2p-v0.1.7-b139.bin Resolving repo.onion.io... 52.89.44.24, 54.149.140.66 Connecting to repo.onion.io|52.89.44.24|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 7078055 (6.8M) [application/octet-stream] Saving to: '/tmp/omega2p-v0.1.7-b139.bin' /tmp/omega2p-v0.1.7 100%[===================>] 6.75M 1.02MB/s in 9.6s 2017-01-14 10:16:27 (722 KB/s) - '/tmp/omega2p-v0.1.7-b139.bin' saved [7078055/7078055] > Starting firmware upgrade.... Saving config files... killall: watchdog: no process killed Sending TERM to remaining processes ... uhttpd device-client onion-helper udhcpc avahi-daemon mountd ntpd udhcpc |
Прошивка загрузилась, система перезагрузилась, и SSH-сессия прервалась. Светодиод платы горел дольше указанных в документации 15 секунд, после чего погас. В таком случае рекомендуется перезапустить плату кнопкой питания на дока.
Светодиод мигал около 2 минут, затем загорелся постоянно, и вход в систему стал возможен:
1 2 3 4 5 6 7 8 9 10 11 |
BusyBox v1.25.1 () built-in shell (ash) ____ _ ____ / __ \___ (_)__ ___ / __ \__ _ ___ ___ ____ _ / /_/ / _ \/ / _ \/ _ \ / /_/ / ' \/ -_) _ `/ _ `/ \____/_//_/_/\___/_//_/ \____/_/_/_/\__/\_, /\_,_/ W H A T W I L L Y O U I N V E N T ? /___/ ----------------------------------------------------- Ω-ware: 0.1.7 b139 ----------------------------------------------------- root@Omega-42D7:~# |
Прошивка обновилась до версии 0.1.7 b139. Несмотря на проблемы, настройка завершена. В случае критических ошибок можно выполнить сброс к заводским настройкам, удерживая кнопку сброса 10 секунд.
Информация о системе Omega2 LEDE
Основные данные системы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
root@Omega-42D7:~# uname -a Linux Omega-42D7 4.4.39 #0 Thu Dec 29 17:07:01 2016 mips GNU/Linux root@Omega-42D7:~# df -h Filesystem Size Used Available Use% Mounted on /dev/root 5.3M 5.3M 0 100% /rom tmpfs 61.3M 92.0K 61.3M 0% /tmp /dev/mtdblock6 25.1M 760.0K 24.4M 3% /overlay overlayfs:/overlay 25.1M 760.0K 24.4M 3% / tmpfs 512.0K 0 512.0K 0% /dev root@Omega-42D7:~# free -h total used free shared buffers cached Mem: 125644 28728 96916 92 3272 9656 -/+ buffers/cache: 15800 109844 Swap: 0 0 0 root@Omega-42D7:~# cat /proc/cpuinfo system type : MediaTek MT7688 ver:1 eco:2 machine : Onion Omega2+ processor : 0 cpu model : MIPS 24KEc V5.5 BogoMIPS : 385.84 wait instruction : yes microsecond timers : yes tlb_entries : 32 extra interrupt vector : yes hardware watchpoint : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb] isa : mips1 mips2 mips32r1 mips32r2 ASEs implemented : mips16 dsp shadow register sets : 1 kscratch registers : 0 package : 0 core : 0 VCED exceptions : not available VCEI exceptions : not available |
Установлено ядро Linux 4.4, доступно 24.4 МБ пользовательского пространства, общий объем памяти — 125664 КБ, процессор — MIPS 24KEc.
Управление RGB-светодиодом на дока (через PWM)
RGB-светодиод подключен к пинам 15, 16 и 17. В документации приведен пример использования скрипта expled для задания цветов в HEX. Попытка включить красный цвет (синий и зеленый отключены):
1 2 3 4 5 |
root@Omega-42D7:~# expled 0xF20000 Setting LEDs to: F20000 Duty: 6 100 100 Segmentation fault Segmentation fault |
Ошибка segfault. Попытка задать розовый цвет:
1 2 3 4 |
root@Omega-42D7:~# expled 0xF21133 Setting LEDs to: F21133 Duty: 6 94 80 root@Omega-42D7:~# |
Скрипт выполнился, но светодиод не загорелся. Проблема не аппаратная, так как светодиод работает при загрузке. Скрипт expled (расположен в /usr/bin/expled) использует программу « fast-gpio » для прямого доступа к GPIO. Возможно, это еще одна ошибка прошивки.
Управление GPIO Omega2 — пример со светодиодом
Для теста к пину 1 на разъеме был подключен 5В светодиод через резисторы и транзистор (для преобразования 3.3В в 5В).

Вместо fast-gpio использовалась утилита gpioctl , работающая через sysfs.
Сначала пин настроен как выход (dirout):
1 2 |
root@Omega-42D7:~# gpioctl dirout 1 Using gpio pin 1 |
Затем светодиод включен (dirout-high):
1 2 3 4 5 |
root@Omega-42D7:~# gpioctl dirout-high 1 Using gpio pin 1. root@Omega-42D7:~# gpioctl get 1 Using gpio pin 1. Pin 1 is HIGH |
Команда get проверяет состояние пина. Светодиод загорелся. Выключение (dirout-low):
1 2 |
root@Omega-42D7:~# gpioctl dirout-low 1 Using gpio pin 1. |
Успешно.
Для работы с мультиплексированными пинами (I2C, SPI, UART, PWM, I2S…) можно использовать программу omega2-ctrl . В этом руководстве она не тестировалась.
Onion Omega2 и макетные платы
Многие IoT-платы совместимы с макетными платами, но разъемы Onion Omega2 имеют шаг 2 мм (вместо стандартных 2.5 мм). Для подключения можно использовать провода или приобрести BreadBoard Dock , как показано ниже.
Если дока нет, плату можно запитать от 3.3В, например, через стабилизатор LD1117 или YwRobot MB102 breadboard power supply .
Платы Omega2 пока недоступны в магазине Onion (док стоит $14.99). На Kickstarter Omega2 предлагалась за $5, Omega2+ — за $9. [Обновление: кампания завершена, но платы можно приобрести на Indiegogo по той же цене, включая доставку].
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.