Начало работы с платой Onion Omega2+ LEDE WiFi IoT и расширительным доком

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+

Обе платы поставляются в антистатических пакетах.

Click to Enlarge
Нажмите для увеличения

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

Click to Enlarge
Нажмите для увеличения

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

Click to Enlarge
Нажмите для увеличения

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

Click to Enlarge
Нажмите для увеличения

Установка Omega2 в док проста — достаточно убедиться в правильной ориентации.

Onion-Omega2-vs-LinkIt-Smart-7688 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, после чего включается кнопкой питания.

Click to Enlarge
Нажмите для увеличения

При включении RGB-светодиод на дока и светодиод Omega2+ кратковременно загораются, затем RGB-светодиод гаснет, а светодиод платы мигает несколько секунд. Когда светодиод перестает мигать и горит постоянно, загрузка завершена.

Omega-Onion2-Access-Point

В списке WiFi-сетей появится точка доступа «Omega-XXXX», где XXXX — последние цифры MAC-адреса платы. Для подключения используется пароль: 12345678.

Веб-конфигурация Omega2

После подключения в браузере нужно перейти по адресу http://192.168.3.1 или http://omega-XXXX.local/ для запуска мастера настройки Omega2.

Omega-Onion2-Setup-Wizard

Нажмите Start и введите стандартные учетные данные (логин: root, пароль: onioneer). На следующей странице можно подключить плату к WiFi-роутеру. Omega-Onion2-WiFi-Configuration

Выберите ESSID, введите пароль и нажмите «Configure WiFi». Omega-Onion2-Cloud

Мастер предлагает зарегистрировать плату в облаке, но это необязательно. Можно пропустить шаг и перейти к обновлению прошивки. В рамках обзора была предпринята попытка регистрации. Onion-Cloud-Registration Для регистрации требуется указать имя, email и пароль. Onion-Omega2-Cloud-Name Затем нужно ввести имя устройства и описание для подтверждения. Onion-Cloud-Connection-failed К сожалению, процесс завершился ошибкой (окно с красным крестом не реагировало на нажатия). В облачном сервисе плата отображалась как офлайн. Проблема известна ( подробнее здесь ), разработчики Onion работают над ее решением.

Onion-Omega2+-Firmware-Update-Console Далее была предпринята попытка обновить прошивку и установить веб-консоль. Onion-Omega2-Firmware-Download-Stuck Процесс также завершился неудачно — индикатор прогресса не двигался в течение 20 минут. При этом плата получила IP-адрес от DHCP-сервера роутера, поэтому доступ в интернет должен был быть.

Конфигурация через командную строку Omega2

В качестве альтернативы использовался SSH (логин: root, пароль: onioneer):

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 позволяет сканировать сети и подключаться к роутеру:

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:

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 минут, затем загорелся постоянно, и вход в систему стал возможен:

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

Основные данные системы:

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. Попытка включить красный цвет (синий и зеленый отключены):

root@Omega-42D7:~# expled 0xF20000
Setting LEDs to: F20000
Duty: 6 100 100
Segmentation fault
Segmentation fault

Ошибка segfault. Попытка задать розовый цвет:

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):

root@Omega-42D7:~# gpioctl dirout 1
Using gpio pin 1

Затем светодиод включен (dirout-high):

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):

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.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments