«Интернет вещей» все плотнее входит в нашу жизнь. Конечно, разработчики не могут обойти своим вниманием столь бурно развивающуюся сферу. Но для того, чтобы создавать соотвествующие разработки, необходимы надежные инструменты. Одним из них может стать одноплатник Omega2. Его создатели позиционируют свой микрокомпьютер под управлением Linux как самый маленький в мире. На «борту» микрокомпьютера есть модуль Wi-Fi, а стоимость всей системы — всего $5.

На Kickstarter этот проект уже давно собрал нужную сумму. Она многократно превышена — вместо $15000 собрано уже $307471. И хотя до конца сборов еще 11 дней, вероятность того, что девайс вскоре попадет к заказчикам и в магазины, очень велика.

Характеристики устройства обычные для IoT-чипов. Это процессор с частотой работы ядра 580 Гц, ОС Linux, 64 МБ оперативной памяти и 16 МБ внутренней памяти. Интерфейсы USB 2.0 и беспроводный модуль W-Fi 802.11b/g/n. В оснащение микрокомпьютера входят также 15 линий GPIO, два ШИМ-генератора, два приемопередатчика UART, интерфейсы I2C, SPI и I2S.



Разработчики предлагают и улучшенную версию устройства с удвоенным объемом памяти и слотом для карт формата microSD. Но такой одноплатник обойдется уже в $9.



Система совместима как с Arduino, так и с собственными картами расширения. По словам авторов устройства, с их помощью в систему можно добавлять ряд датчиков, дисплей, реле, ЦАП, АЦП и прочие типы функциональных модулей.

Что еще?




Это модульное устройство, которое поддерживает большое количество плат расширений.



Omega2 может запускать и приложения — он в состоянии функционировать в качестве десктопного ПК. Есть уже и каталог приложений, откуда можно загрузить дополнительные программы для Omega2.

Как и говорилось в заголовке, это полноценный инструмент работы с Linux средой. Про Omega2 можно думать, как про миниатюрный Linux-сервер, который способен «тянуть» Apache.



Аппаратная платформа поддерживает большое количество различных языков. Разработчики предоставляют все соответствующие библиотеки.

И еще интересный момент — этот сервер интегрирован с Onion Cloud. Это позволяет использовать удаленное управление для работы с Omega2, используя соответствующие инструменты, также предоставленные разработчиками — Web UI и RESTful APIs.



Использовать Omega2 можно для создания систем умного дома, обучения детей, серверных модулей, для робототехники и много чего еще. Отгрузка одноплатника начнется в ноябре этого года, так что ждать совсем недолго.

Приглашение к тестированию даджетов


Даджет приглашает авторов, заинтересованных протестировать наши устройства (Omega2 у нас нет, на тестирование предлагаются наши собственные устройства) и написать объективный обзор, к сотрудничеству. Устройство после публикации обзора остается у вас. Подробнее о предложении — здесь.
Поделиться с друзьями
-->

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


  1. SopaXT
    12.08.2016 21:03
    +12

    "Это процессор с частотой работы ядра 580 Гц, ..."
    Он что, Линукс за 20 лет грузит?


    1. dbanet
      12.08.2016 22:12
      +11

      Не, аффтар просто так вот взял и на шесть порядков ошибся, поэтому убедительно приглашается глотать йаду.


    1. immago
      12.08.2016 23:01
      +3

      Видимо опечатка. На kikstarter значится 580 MHz.


    1. RealBeria
      12.08.2016 23:01

      <a href="">Ссылка на страницу устройства на кикстартере.

      … и естественно 580 MHz


  1. lopatoid
    12.08.2016 21:07
    +10

    Самые маленькие в мире микрокомпьютеры с Linux и Wi-Fi это всё-таки Wi-Fi SD
    http://elinux.org/Wifi_SD
    Хотя, конечно, устройство в статье намного универсальнее


    1. zhigalin
      13.08.2016 15:12

      Ктобы статью про них здесь бы написал…


      1. SovGVD
        14.08.2016 17:59
        +1

        https://habrahabr.ru/post/191742/


    1. Dioxin
      15.08.2016 08:45

      Нужно было так видимо:
      Самые маленькие в мире _модульные_ микрокомпьютеры с Linux и Wi-Fi


  1. Sun-ami
    12.08.2016 21:19

    Несколько странные характеристики — что делать с 64 МБ RAM, если программы могут грузиться только из внутренней ROM, которой всего 16МБ? Тут могла бы помочь USB-флешка, но не понятно может ли встроенный USB быть хостом? Но цена радует, можно использовать даже просто как WiFi адаптер. А вот цены на модули расширения совсем не радуют — чего стоит бузер за $13, остальное тоже несоразмерно по цене с самим одноплатником.


    1. olartamonov
      12.08.2016 21:39
      +4

      Несколько странные характеристики — что делать с 64 МБ RAM, если программы могут грузиться только из внутренней ROM, которой всего 16МБ?


      Между первым и вторым как бы нет особой связи.

      чего стоит бузер за $13, остальное тоже несоразмерно по цене с самим одноплатником


      А они одноплатник ниже себестоимости продают, у него один только SoC стоит $2,5 в партии 1000 штук. Плюс память, флэшка, PCB, антенна, мелочёвка, собственно сборка — и получаем минимум $7-8 на выходе с фабрики.


      1. Sun-ami
        12.08.2016 21:43
        +1

        > А они одноплатник ниже себестоимости продают, у него один только SoC стоит $2,5 в партии 1000 штук
        Жаль, это значит что он будет также малодоступен как сейчас Raspberry Pi Zero


        1. olartamonov
          12.08.2016 21:54
          +3

          Нет. Он будет скорее похож на современный лазерный принтер ;)

          RPi — маркетинговый проект Broadcom и Farnell, им в некоторых случаях произвести мощный всплеск в прессе важнее, чем реально что-то продавать.

          Onion (разработчик Omega2) — обычная коммерческая контора. Первая Omega у них продаётся за $20 и отличается только SoC — в ней QCA AR9331, который немного дороже и медленнее, чем MT7688AN из Omega2. Там с маржинальностью всё хорошо — себестоимость первой Омеги на выходе с фабрики при партиях в десятки тысяч штук будет в районе $8-9.

          Вторую Омегу они продавать будут, но в расчёте на то, что как минимум Omega Dock (а в комплекте с ним получается уже $20) будет брать абсолютное большинство покупателей. Если это окажется не так — будут постоянно держать в продаже бандл Omega2 + Dock, а на одиночную Omega2 вешать статус «Sold out».

          Соответственно, жёстко фитиль прикрутят только тем, кто вдруг захочет оптовую партию Omega2 без плат расширения.


          1. mrigi
            12.08.2016 22:28

            Думаю вся надежда сугубо на китайцев и их умение копировать и удешевлять.


            1. olartamonov
              12.08.2016 22:29
              +4

              Кого удешевить? Медиатековский чип? У меня для вас плохая новость: Медиатек — это уже китайцы.


              1. mrigi
                12.08.2016 22:47
                +1

                Обвязка чипа похоже минимальна, так что даже если чип стоит $2.5, то китайцы вполне могли бы втиснуться в $5-6 для продажи поштучно. Либо найти аналог чипа немного дешевле и выполнить на нём. Плюс клепать дешевые модули.


                1. olartamonov
                  12.08.2016 22:53
                  +3

                  Обвязка чипа — это DDR2, SPI flash и горка мелочёвка. Мелочёвка стоит меньше $1, а вот память — увы. Чип-антенна, разъём UFL, 4-слойная PCB с дорожками не толще 0,1/0,1 — тоже не совсем копейки. Аналогов чипа нет (ну т.е. у того же Медиатека есть совсем убогий RT5350, он чуть дешевле, но с него сейчас все уходят, уж больно он уныл).

                  Самое дешёвое, что вы найдёте такого класса — это LinkIt Smart 7688 за $12, и это — собственный модуль Mediatek, т.е. маркетинговый проект, в рамках которого продукт продаётся по себестоимости.

                  P.S. Мы разработкой и производством подобных модулей занимаемся.


                  1. AllexIn
                    13.08.2016 08:03
                    +3

                    У вас пока нет планов по розничной продаже Unwired One?


                    1. olartamonov
                      13.08.2016 18:03

                      Пока нет.


          1. beeruser
            13.08.2016 19:20

            >> RPi — маркетинговый проект Broadcom и Farnell

            Всё же это проект Дэвида Бребена.
            http://venturebeat.com/2016/07/07/how-computing-legend-david-braben-schemed-to-create-elite-dangerous-and-raspberry-pi/
            Один из основателей проекта работал в Broadcom разработчиком чипов. Посему с выбором поставщика процессоров проблем не было.


            1. olartamonov
              13.08.2016 19:35

              Если бы туда не было занесено довольно много денег из бюджета Broadcom — Дэвид Бребен до сих пор бы в своём гараже на стопку опытных экземпляров медитировал бы вместо рассказов о том, что «мы хотели показать, как можно такой крутой компьютер сделать так дёшево» (в скобках отмечу, что так и не показали: ничего больше на рынке с таким соотношением цена/качество нет).

              Те же процессоры RPi Foundation изначально получала по минимальной возможной цене, которую посторонним заказчикам давали только при очень больших объёмах.

              И отсюда же растут естественные ограничения продаж RPi — официально больше 10 штук в руки не отпускается.


              1. beeruser
                13.08.2016 20:26

                >> Если бы туда не было занесено довольно много денег из бюджета Broadcom.
                Считайте это благотворительностью. Это же касается и цен. «Свои люди», как-никак.
                Они поддержали проект, но не являлись его основателями.
                Broadcom никакой прямой маркетинговой пользы с этого нет. Они чипы не людям продают.


                1. olartamonov
                  13.08.2016 20:52
                  +3

                  Считайте это благотворительностью. Это же касается и цен. «Свои люди», как-никак


                  У вас прекрасные представления о работе крупных корпораций. «Чуваки! Это же Дэвид, из инженерного отдела! Он клёвый парень, давайте дадим ему миллион баксов! Да наплевать на KPI и маржинальность, это же Дэвид! Мария, сделайте презентацию про Дэвида, на еженедьном совещании покажем директору департамента!».

                  Я вас сильно расстрою, если скажу, что даже благотворительностью обычно занимается Corporate Marketing Team?

                  Broadcom никакой прямой маркетинговой пользы с этого нет. Они чипы не людям продают


                  Вы, вероятно, имели в виду «они эти чипы не продают в b2c», потому что не людям — это значит марсианам или роботам. А я вас уверяю, что в b2b решения о покупке чипов Broadcom принимают вполне себе люди.

                  Но вообще, вы мне много нового о корпоративном маркетинге рассказали.


            1. BelBES
              16.08.2016 17:42

              Тут, кстати, показателен пример Odroid-W — дноплатного ПК, который был по ТТХ полным аналогом RPi, но за счет того, что интерфейсы были не распаяны, имел совсем крошечные размеры в связи с чем в DIY был серьезным конкурентом для малины(стоил 30$ и до кучи имел всякие полезности, тапа выведенного разъема под аккумулятор)… как итог, Broadcom добились закрытия этого проекта. Вот и как после такого не говорить, что они всеми силами проталкивают свою "карманную" малинку.


    1. geisha
      12.08.2016 23:47
      +3

      Я вам так скажу, я пытался смастерить проект на ESP8266 и это была сплошная боль. Так и не закончил из-за сломанного API (и из-за того, что это микроконтроллер а не компьютер). Очень сложно писать программы выходящие за рамки примеров считал температуру — залил на сервер. Вот серво работает, WiFi тоже, а вместе — нет.

      Эта штука выглядит очень интересно. При хорошей поддержке она будет как минимум так же популярна как ESP.


      1. Alex_ME
        13.08.2016 13:22

        Но ESP-микроконтроллер, с реалтаймом, ШИМом и возможностью быстро "дрыгать ногами".


        1. geisha
          13.08.2016 15:58

          Проблема скорее даже в том, что ESP это «WiFi датчик». Как микроконтроллер ESP проигрывает Arduino во многом.


          1. Alex_ME
            13.08.2016 16:14

            Я могу назвать такие минусы: кривое SDK и процессор черт знает какой архитектуры (Expressif или как там его), что затрудняет под него разработку.
            А по техническим характеристикам ESP8266


            Процессор по умолчанию работает на частоте 80 МГц, которая может доходить до 160МГц, чип имеет около 80 Кб ОЗУ DRAM, и ~35Кб высокоскоростной IRAM.

            дает фору даже многим STM32 (правда, существенно уступает им по GPIO и переферии).


            В чем еще проигрывает?


            1. geisha
              14.08.2016 02:13

              Процессор там чтобы шифрование тянуть. Любая другая ресурсоемкая задача там уткнется в регулярные callbackи и нехватку памяти. Т.е., грубо говоря, DOS на нем не запустишь, в дум не поиграешь. Многопоточности, соответственно, тоже нет. Ноги дергаются тоже с меньшей частотой, так что я не знаю где реально эти 80Mhz можно использовать. Может быть простенькая графика?

              Но главная проблема — в разработке, конечно: высокий порого вхождения. Не смотря на то, что и ардуино-подобная среда есть и Lua и C(++), железо просто не позволяет определенные вещи. Ты думаешь, что покупаешь ESP-01 с, как минимум, парой GPIO а де-факто все GPIO нужно куда-то подтянуть просто чтобы инициализировать проект. 3.3V тоже радости ардуинщику не добавят. Короче на каждом этапе от Blink до проектирования платы устройства ты попадаешь в грабли которые и в интернетах толком-то не описаны. В результате используешь ESP8266 как датчик, подключенный к ардуине (что тоже, вообще-то говоря, нетривиально).

              Без GPIO и переферии микроконтроллера не получится в любом случае. Все остальное — вторично.


      1. ncix
        13.08.2016 20:23

        А что вы такое делали на ESP что не получилось, если не секрет? У меня в целом положительный опыт, хотя API конечно кривое, тут согласен.


        1. geisha
          14.08.2016 14:29

          Хе. Отдаю задаром.

          Хотел сделать настенные часы которые появляются в фильмах о Гарри Поттере: они показывают, кто и где находится. Частичная реализация включала бы мониторинг WiFi на предмет определенных MAC адресов: если телефон дома то и человек, по идее, дома. В какой-то мере получилось это сделать с Breakout board где разведены все пины ESP (серво подключал где-то в районе GPIO6). Но хотелось, конечно, с ESP-01. Забросил на том, что серво дергался, но крутиться не собирался. Возможно, level shifter 3.3->5 решил бы эту проблему, но его у меня не было. Пришлось бы подключать ардуину а это уже не так интересно.


    1. stDistarik
      13.08.2016 02:13
      +1

      Роутер мр3020 — 4М, 32М.


      1. Vasia529
        15.08.2016 11:46

        Но SoC там как в первой Омеге, древний атерос 9331. И можно расширить память например до 16М, 64М. А wr703n (wr702n) еще меньше, при том же самом железе.


    1. Alexeyslav
      14.08.2016 09:21

      Одна маленькая программа размером в сотню-другую байт может запросто задействовать гигабайты RAM… Поэтому как-то очень странно сравнивать оперативную память и память программ. Это в классических ПК размыли грань между этими видами памяти и то лишь ради быстродействия и гибкости.


      1. Sun-ami
        14.08.2016 11:59

        Но какие IoT-задачи генерируют 32Мб данных и имеют потребность в их кратковременном хранении? По-моему такая модель использования памяти не типична для IoT, и этот микрокомпьютер стал бы существенно полезнее, если бы у него было бы хотя бы 32Мб Flash-памяти.


        1. olartamonov
          14.08.2016 12:07
          +1

          Так у них есть версия Omega2 Plus с RAM 128 МБ и флэшем 32 МБ за $9.


        1. Alexeyslav
          14.08.2016 12:29

          Это издержки. Память нужна не на IOT-задачи а на работу операционной системы. Кроме того, для элементарной организации потокового вещания(онлайн-радиостанция домашнего масштаба) тоже внезапно нужна память.
          Для распознавания образов тоже нужно много памяти…


  1. mrigi
    12.08.2016 22:05
    +1

    Ну когда этот микрокомпьютер будет массово доступен за $5 с доставкой, тогда можно о чём-то говорить. А пока и ESP8266 очень неплох за треть этой цены.


    1. boblenin
      12.08.2016 22:11

      Мне C.H.I.P отписался, что отправили железку свою https://getchip.com/pages/chip


      1. mrigi
        12.08.2016 22:21
        +3

        А доставка сколько обошлась в добавок к $9? Так как за ~$13 с доставкой можно уже сто лет как купить orange pi one и ничего не ждать.


        1. boblenin
          14.08.2016 15:41

          Бесплатная доставка была.


        1. Pardok
          15.08.2016 11:48

          Мне пришёл, доставка по-моему 7$ (может и 6, уже не помню), но если брать оптом, то дешевле. Кто-то не из РФ на форуме писал, что взял 5 штук с доставкой в 7$, что в общем-то недорого.


        1. rstepanov
          16.08.2016 00:07
          +1

          У меня их две (Orange Pi One), разочарован, линукс на этом поделии работает криво и косо, половина периферии недоступна, энергопотребление как у чайника, греется будь здоров…

          RPi A+ по сравнению с этими поделками — просто гибрид швейцарского армейского ножа и автомата калашникова.


          1. mrigi
            16.08.2016 14:46

            Вот кстати да, сравнил бы кто энергопотребление подобных микрокомпьютеров.


            1. rstepanov
              16.08.2016 15:02
              +1

              Требования к блоку питания посмотрите. Для всевозможных Alwinner как правило минимум 2А, PINE64 даже при таком токе работает только пока графический акселератор не используется, желательно иметь БП 3А.

              Малинка (А+) работала от телефонной зарядки 700 mA вместе с USB хабом, WiFi-свистком и прицепленной к ней ардуиной мега.


          1. DarkByte
            18.08.2016 10:20
            +1

            Так вы оверклокинг уберите, и не будет он греться как утюг. По крайней мере способ работает с Orange Pi PC. Кроме того, оранж нормально стартует от блок питания на 1А, если не планируется подключать прожорливую периферию. Ну а если 4 usb порта занять устройствами с потреблением по 500мА каждый, то конечно же нужно взять БП не меньше, чем на 3А, это вроде логично.

            В моём случае к оранжевому pi pc подключен 4 rtl-sdr донгла, каждый потребляет в районе 250мА и нагружает одно ядро на 80%, всё питается от 5В 2А блока питания и работает 24/7. Активного охлаждения нет, к cpu приклеен небольшой радиатор, всё находится в пластиковом полугерметичном боксе на улице, сильнее всего греются донглы, температура проца примерно на 10 градусов выше температуры окружающей среды.


            1. rstepanov
              18.08.2016 10:37

              Я температуру мерял при загрузке 4 ядер на 100% при времени более 1 минуты, получалось около 110 градусов с радиатором. Idle — 60 градусов без радиатора, 45 — с радиатором. Возможно, оно и будет так работать сутками, не проверял.


              1. DarkByte
                18.08.2016 10:46
                +1

                Хм, я же написал, каждый донгл грузит по ядру на 80%, 4/4 ядер загружено постоянно на 70-90%. Если ваш оранж под рукой, покажите вывод lscpu. В моём случае он выглядит так:

                Architecture: armv7l
                Byte Order: Little Endian
                CPU(s): 4
                On-line CPU(s) list: 0-3
                Thread(s) per core: 1
                Core(s) per socket: 4
                Socket(s): 1
                CPU max MHz: 1296.0000
                CPU min MHz: 480.0000


                1. rstepanov
                  18.08.2016 10:51

                  $ lscpu
                  Architecture: armv7l
                  Byte Order: Little Endian
                  CPU(s): 4
                  On-line CPU(s) list: 0-3
                  Thread(s) per core: 1
                  Core(s) per socket: 4
                  Socket(s): 1
                  CPU max MHz: 1200.0000
                  CPU min MHz: 480.0000


                  1. DarkByte
                    18.08.2016 11:24
                    +1

                    Однако, ожидал увидеть 1600мГц при таком нагреве, ибо примерно так у меня и было при первом включении с официальным образом системы. После возврата частоты на 1200мГц проблем с аномальным нагревом больше не наблюдал. Максимально фиксировал температуру проца 60 градусов в очень жаркий день на несколько минут, и это при почти полной загрузке.

                    image

                    Но то, что малина греется значительно меньше — это точно. Но и стоит она подороже.


                    1. rstepanov
                      18.08.2016 11:41

                      Там сейчас вообще никакой нагрузки нет, приклеен довольно большой радиатор и температура 47 градусов. Вторая «апельсина» не подключена, но на ней было то же самое. Возможно, это особенность именно One или даже этой партии. На тематическом форуме что то писали про неправильные регуляторы напряжения, которые устанавливали на One (возможно, не на все экземпляры). Мне было не настолько интересно разбираться, у меня много разных отладочных плат и конкретно на этой свет клином не сошелся, могу выбросить в любой момент.

                      Куда хуже, что у меня на ней постоянно отваливается Wi-Fi (один-два раза в неделю) и так и не заработал модуль ядра fbttf (с дисплеем на базе ILI9325). На малине этих проблем нет. Разбираться мне не хочется, так как Allwinner H3 уже не производится и перспектив какого либо серьезного применения у этой платы нет. А время жалко.


  1. boblenin
    12.08.2016 22:10

    дубль


  1. kuzmuk
    12.08.2016 22:51

    Интересно посмотреть что там с мощностью WiFi и поддержкой этого WiFi в OpenWRT.
    Linkit 7688 оказался гораздо хуже AR9331 в этом плане. Тут, в принципе, тот же чип. Но может что-то лучше с антенной сделают?


  1. ZliLO
    12.08.2016 23:00

    Зачем дразнить интересным устройством, но не предоставлять его (за 5 баксов то) для обзоров реализаций?
    Но спасибо за интересное устройство, в наше время информация ценнее железок.


  1. KonstantinSoloviov
    12.08.2016 23:52

    Электронное устройство, которое не должно формировать и сохранять электрическое или магнитное поле, можно сделать сколь угодно малым. Тут другая проблема — припаятьсяподключиться.


  1. simki
    13.08.2016 00:29

    Система совместима как с Arduino, так и с собственными картами расширения. По словам авторов устройства, с их помощью в систему можно добавлять ряд датчиков, дисплей, реле, ЦАП, АЦП и прочие типы функциональных модулей.


    Примерно то же самое, что Arduino Yun, с Линуксом на борту, на Гиктаймсе и статья была 3 года назад: Arduino Yun — Wi-Fi и Ethernet при нём

    Цена около 20$.


  1. DoMoVoY
    13.08.2016 07:20
    +1

    низкая стоимость исключительно за счет дорогой обвязки. Все карты расширения $15 или больше стоят.


  1. madf
    13.08.2016 18:44

    Штука актуальна только по 9$, брать их модули расширения по 15$ — это смешно. Не удержался, «взял» штучку (пусть валяется), если ещё выяснится, что доставка +20$ — нафиг это всё.


    1. CAJAX
      13.08.2016 22:22

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


  1. Gryphon88
    13.08.2016 19:46

    Объясните мне, пожалуйста, зачем для IoT 580MHz и полноценная ОС на борту? Я прекрасно понимаю, что так писать гораздо удобнее среднему разработчику, чем на RTOS или голых прерываниях, но IoT вроде придерживается идеологии «одна железка — 1-2 простые функции», откуда сложные и тяжёлые задачи?


    1. ncix
      13.08.2016 20:29

      >>так писать гораздо удобнее среднему разработчику, чем на RTOS или голых прерываниях
      «среднему разработчику» стоит потратить пару недель и писать на С/С++ и голом железе, чем тащить линукс ради мигания лампочками или пары датчиков. Инерция мышления, нежелание изучить еще один ЯП, страх сложностей, так мне кажется.
      Разумеется, в IoT есть задачи где линукс — хорошее подспорье, но куда чаще нужно делать что-то очень простое.


      1. AllexIn
        13.08.2016 22:31
        +2

        Зачем в IoT голое железо?
        Писать под Линукс проще и быстрее, чем под голое железо прошивку.
        Я понимаю, когда в промышленности так делают. Так каждые сэкономленные 10 центов превращаются в миллионы долларов при производстве большого тиража устройств.
        Но дома?? Сэкономленные 500 рублей на полноценной железке дают на выходе десятки часов сэкономленного времени. И в DIY эти десятки часов никогда не окупятся…

        Делал климат контроль на Black Swift/Unwired One.
        Через 15 строчек скрипта у меня уже что-то работало.
        Через 100 строчек — у меня был веб интерфейс и контроль температуры входящего воздуха и автоматическое слежение за чистотой воздуха в помещении.
        На голой железке я за это время только wifi с веб сервером бы завел в стабильном режиме.

        Не говоря уж о том, что обновление ПО я делаю по WiFi за минуту, без перезагрузки контроллера климат-контроля и без ризка окирпичивания. По сути со стороны обновление проявляется в остановке вентилятора на 5 секунд.
        С голой железкой каждое обновление требовало бы подключение программатора, либо нетривиальной системы обновлений.

        Ну и зачем это?


        1. ncix
          13.08.2016 22:45

          >> Зачем в IoT голое железо?
          оно как минимум дешевле в разы

          >>Писать под Линукс проще и быстрее, чем под голое железо прошивку.
          Да ну? Что может быть проще чем скетч на Ардуино?

          >>На голой железке я за это время только wifi с веб сервером бы завел в стабильном режиме.
          К голым железкам тоже есть масса готовых библиотек.

          >>С голой железкой каждое обновление требовало бы подключение программатора, либо нетривиальной системы обновлений.
          Тут в целом соглашусь, хоть для той же ESP8266 уже есть готовые библиотеки для обновления по воздуху. Нужно дописать буквально 2-3 строчки кода, с какого сервера что грузить.

          >>Ну и зачем это?
          Цена, пожалуй, основной фактор. Можно хоть в каждую розетку и лампочку ESP8266 воткнуть.


        1. ncix
          13.08.2016 22:57

          И еще, пожалуй, надежность. Ядро Линукс — это тоже звено системы с неабсолютной надежностью. На голом железе его нет.


          1. AllexIn
            13.08.2016 23:04
            +1

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

            ТОт же самый Black Swift/Unwired One у меня уже год работает в режиме 24/7. Были сбои в работе и всегда они по моей вине. Железо и ОС еще ни разу не подвели.


            1. ncix
              13.08.2016 23:10

              А при чем тут код хоббиста? Он у хоббиста и на линуксе условно такой же надежный как у хоббиста без линукса.
              Конечно ядро линукса несравнимо надежнее, но и оно не идеально. А на голом железе его просто нет:
              Линукс-библиотеки-код_хоббиста vs библиотеки-код_хоббиста.

              Или вы намекаете что хоббист на линуксе лучше код пишет чем хоббист без линукса?


              1. AllexIn
                14.08.2016 08:01

                Требования к качеству кода на уровне пользователя гораздо ниже, чем на уровне ядра.
                ПРограммист пишущий на уровне пользователя при том же уровне квалификации сделает более надежное решение, чем написав тоже самое на уровне ядра.


                1. ncix
                  14.08.2016 13:04
                  +1

                  Откуда такая уверенность? Хороший слой абстракции вроде Ардуино позволяет прикладному программисту не беспокоиться о всяких низкоуровневых штуках, тем не менее имея к ним полный доступ, при необходимости.

                  Знаете я много лет занимался прикладным энтерпрайзным софтом. С++, Java, Delphi, 1C, PHP, SQL и т.п. и тоже считал программирование контроллеров тяжелой низкоуровневой задачей. Но стоит попробовать и понимаешь, что все то же самое. И отсутствие ОС вообще никак не мешает решать множество прикладных задач.

                  И более всего восхищает, что штуковина за пару баксов (или даже за пару десятков центов) со смешным объемом памяти позволят решать довольно сложные прикладные задачи. И тут же возникает вопрос — а зачем все эти мегагерцы, мегабайты и миллионы строк кода ядра, если нужно всего-то переключить логические уровни или отсчитать N тактов процессора. Или даже показать веб-страничку.


                  1. Alexeyslav
                    14.08.2016 18:54
                    +1

                    А потом, когда соберёшься собрать воедино сотню несложных устройств оказывается что у них разный протокол по разным причинам, но в основном «так было проще писать программу».
                    У простых разработок на микроконтроллерах есть ряд проблем: масштабируемость, совместимость и сложность кода.


                    1. ncix
                      15.08.2016 15:38

                      А разве Линукс автоматически позволит обойти все эти грабли? Это уже от разработчика зависит.


                      1. Alexeyslav
                        15.08.2016 18:51

                        Когда есть опора, обходить грабли гораздо легче. По крайней мере они будут не на всех уровнях.


                  1. simki
                    14.08.2016 20:27

                    И более всего восхищает, что штуковина за пару баксов (или даже за пару десятков центов) со смешным объемом памяти позволят решать довольно сложные прикладные задачи. И тут же возникает вопрос — а зачем все эти мегагерцы, мегабайты и миллионы строк кода ядра, если нужно всего-то переключить логические уровни или отсчитать N тактов процессора.


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


                    1. cyberly
                      14.08.2016 21:55

                      А если у вас на каком-нибудь прерывании по таймеру работает маленький планировщик задач (одна задача опрашивает клавиатуру, другая — датчики, третья — шлет данные куда-нибудь из буфера) и еще есть какая-нибудь библиотека для облегчения работы с переферией (даже самая простая, скажем, запись нескольких регистров вы обернули в функцию с красивым понятным названием), можно ли считать это ОС? Мне кажется, что да, и тогда получается, что для более-менее сложной задачи операционная система у вас появится сама собой, как только вы решите отделить «системную» логику от «прикладной».


  1. dollar
    14.08.2016 11:06

    Хотелось бы устройство не самое маленькое, а самое оптимальное. Пусть оно будет размером не с вишенку, а с яблоко, но с внушительной частотой и размером памяти. То есть, чтобы это был оптимальный вариант в соотношении размер / мощность. А цена, кстати, особой роли не играет, если она оправдана (с учетом себестоимости).

    Слишком маленький размер вынуждает подозревать, что урезали всё, что только можно, и даже то, чего бы я не хотел урезать. Та же мощность сигнала WiFi, может напряжение USB, или устройство очень болезненно переносит даже мельчайшие скачки напряжения, да что угодно.

    Качество и полезность важнее размеров, когда речь идет уже о миллиметрах.


    1. ncix
      14.08.2016 13:09

      Под ваши требования попадают десятки давно уже выпускаемых SoC, на любой вкус и кошелек.


    1. Alexeyslav
      14.08.2016 16:13
      +2

      Не поверишь, полноценный трансивер WiFi занимает меньше квадратного сантиметра на плате, а СВЧ-коммутатор и усилитель на +20дбм — деталька размером с SOT-23. Тут больше вопросов как тепло отводить, где-то полватта будет выделяться при максимальной активности… А если ограничить активность на передачу, может и нагрева даже не будет при сохранении хорошей «пробивной» способности.


    1. simki
      14.08.2016 20:20
      +1

      То есть, чтобы это был оптимальный вариант в соотношении размер / мощность. А цена, кстати, особой роли не играет, если она оправдана (с учетом себестоимости).

      Вы наверное не сталкивались с программными глюками, сырой ОС криво прикрученной к SoC. Железо кажется мощным, параметры рвут конкурентов, но на практике ничего не работает. Победили несколько глюков и плата вообще исчезает из продажи, все разработки под эту плату пропадают впустую. Пока самым надежным решением является Raspberry Pi, стабильное ПО, поддерживаются старые платы, обновляется ПО, всё изначально сделано качественным. А вот клоны часто RPi гонят сырыми, чтобы успеть захватить рынок.

      На Гиктаймсе подробно разбирали вопрос


  1. Nick0las
    15.08.2016 01:17

    А мне нравится идея заложенная в onion omega. С одной стороны это маленький plug in модуль который можно ставить на плату собственной разработки с необходимой переферией. С другой стороны для начала разработки достаточно подключить модуль и dock к usb, и дальше по мере надобности подключать переферию. Это уменьшит порог вхождения и увеличит популярность платы среди тех кто не очень дружит с паяльником. И с интерфейсами у второй омеги намного лучше чем у первой, можно подключить микроконтроллер на второй uart и консноль при этом останется, и SPI быстрый аппаратный есть.


    1. olartamonov
      15.08.2016 09:14

      На SPI там висит флэшка (как и во всех подобных чипсетах), так что сильно на него не надейтесь.


      1. Frantony
        15.08.2016 10:30

        На SPI там висит флэшка (как и во всех подобных чипсетах), так что сильно на него не надейтесь.

        Флэшка занимает CS0, а CS1 свободен:



        1. olartamonov
          15.08.2016 10:46

          Это вам не сильно поможет. Во-первых, освободить SPI с CS1 в OpenWRT для какого-то стороннего устройства — задача сама по себе нетривиальная, во-вторых, нормальная скорость у вас будет только в специфических условиях, а в общем случае будет либо ОС стоять и ждать, когда её к флэшке пустят, либо внешнее устройство — когда ОС SPI отпустит.


          1. Frantony
            15.08.2016 15:49

            Во-первых, освободить SPI с CS1 в OpenWRT для какого-то стороннего устройства — задача сама по себе нетривиальная,
            во-вторых, нормальная скорость у вас будет только в специфических условиях, а в общем случае будет либо ОС стоять и ждать, когда её к флэшке пустят, либо внешнее устройство — когда ОС SPI отпустит.

            Говорите: <<ОС стоять и ждать, когда её к флэшке пустят>>?
            Давайте посчитаем, имеет ли это смысл.
            К примеру, в старом Onion Omega использовалась загрузочная флешка MX25L1605D, наверняка в Omega2 используется либо такая-же флешка, либо флешка со схожими характеристиками.
            MX25L1605D была подключена через единственную линию MISO (см. https://github.com/OnionIoT/Onion-Hardware/raw/master/Schematics/Omega.pdf), по даташиту максимальная частота SCLK в таком режиме — 86 МГц.
            То есть чтение можно осуществлять с производительностью не более ~ 8 МБ/с.
            В реальной жизни, 86 МГц выставлять наверняка никто не будет и это цифру придётся разделить на 2, а то и на 4.


            А вот я взял плату WRTnode2R-Mini (SoC MT7688AN, ближайшая родственница SoC MT7688K, что применяется в Omega2),
            и прямо под родным OpenWRT


            root@OpenWrt:~# uname -a
            Linux OpenWrt 3.18.23 #35 Wed Nov 18 17:57:57 CST 2015 mips GNU/Linux
            
            root@OpenWrt:~# dmesg | grep "SoC Type:\|CPU Clock"
            [    0.000000] SoC Type: MediaTek MT7688 ver:1 eco:2
            [    0.000000] CPU Clock: 575MHz

            запустил тест производительности чтения из ОЗУ из пакета lmbench:


            root@OpenWrt:~# bw_mem 16M rd
            16.00 236.84

            Тест чтения ОЗУ из блока 16 МБ выдаёт 236 МБ/с.


            Имея на борту 64 МБ быстрого ОЗУ, едва не имеет смысла часто читать из медленного SPI flash 16 МБ.


            А теперь, что касается записи.


            В даташите на MX25L1605D говорится о Typical 100,000 erase/program cycles.
            Если в MX25L1605D непрерывно писать хотя бы 100 КБ/с, сколько она продержится?
            (впрочем, даже 100 КБ/с — это совсем немного при частоте SCLK в десятки МГц).


            Так что, в грамотно построенной системе на MT76x8 загрузочная SPI flash устройству на CS1
            особых хлопот не доставит.


            Что же касается того, что "нормальная скорость у вас будет только в специфических условиях",
            то понятие нормальная скорость полностью определяется решаемой задачей.
            Кому-то и 1 Мбит/с может хватить.


            Кроме того, надо обратить внимание на используемый контроллер SPI.
            Вот, к примеру, в AR9331 контроллер таков, что работа с SPI, в общем случае, реализуется при помощи bit-bang — там никакой производительности не светит.
            А в MT76x8 контроллер чуть получше, но тоже слабенький — при передаче/приёме байтики/слова надо
            копировать процессором, DMA нет, см. функцию mt7621_spi_transfer_full_duplex() в linux'ом драйвере.


            P.S. Я не понял, что имеется в виду под "освободить SPI с CS1 в OpenWRT для какого-то стороннего устройства — задача сама по себе нетривиальная".
            Зачем нужно это самое освобождение, разве "SPI с CS1 в OpenWRT" кто-то захватил?


            1. olartamonov
              15.08.2016 15:52

              Вот, к примеру, в AR9331 контроллер таков, что работа с SPI, в общем случае, реализуется при помощи bit-bang — там никакой производительности не светит.


              В AR9331 контроллер SPI точно такой же.

              Зачем нужно это самое освобождение, разве «SPI с CS1 в OpenWRT» кто-то захватил?


              CS1, конечно, свободен как ветер, это обычный GPIO. А вот по SPI очень хочет общаться ядро системы.


              1. Frantony
                15.08.2016 16:50
                +1

                В AR9331 контроллер SPI точно такой же.

                Только производительность при работе с не-SPI-flash-с-3-байтовой-адресацией будет отличаться.


                AFAIR, приблизительно на порядок.


                Вот в mt7621_spi_transfer_full_duplex, чтобы отправить 32 бита на SPI надо сделать одну запись в регистр, а затем запустить передачу, дёрнув бит SPI_CTL_START:


                static int mt7621_spi_transfer_full_duplex(struct spi_master *master,
                                       struct spi_message *m)
                {
                ...
                    for (i = 0; i < len; i += 4)
                        mt7621_spi_write(rs, MT7621_SPI_DATA0 + i, data[i / 4]);
                ...
                    val = mt7621_spi_read(rs, MT7621_SPI_TRANS);
                    val |= SPI_CTL_START;
                    mt7621_spi_write(rs, MT7621_SPI_TRANS, val);
                ...

                А в ath79_spi_txrx_mode0 придётся для отправки 32 битов каждый битик вручную выставить, да ещё вручную-же на SCLK фронт организовать:


                static u32 ath79_spi_txrx_mode0(struct spi_device *spi, unsigned nsecs,
                                   u32 word, u8 bits)
                {
                
                ...
                
                    /* clock starts at inactive polarity */
                    for (word <<= (32 - bits); likely(bits); bits--) {
                        u32 out;
                
                        if (word & (1 << 31))
                            out = ioc | AR71XX_SPI_IOC_DO;
                        else
                            out = ioc & ~AR71XX_SPI_IOC_DO;
                
                        /* setup MSB (to slave) on trailing edge */
                        ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, out);
                        ath79_spi_delay(sp, nsecs);
                        ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, out | AR71XX_SPI_IOC_CLK);
                        ath79_spi_delay(sp, nsecs);
                        if (bits == 1)
                            ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, out);
                
                        word <<= 1;
                    }
                ...

                А вот по SPI очень хочет общаться ядро системы.

                И на сколько МБ/с обычно ядро системы хочет общаться по SPI?


                1. olartamonov
                  15.08.2016 17:01

                  Вот в mt7621_spi_transfer_full_duplex, чтобы отправить 32 бита на SPI надо сделать одну запись в регистр, а затем запустить передачу, дёрнув бит SPI_CTL_START:


                  Это всё к тезису о том, что в OpenWRT из коробки тупо не предусмотрена работа SPI с чем-то, кроме флэшки, какое отношение имеет?

                  У вас на AR9331 есть контроллер SPI и у него есть ножка CS1. И? Что дальше-то? В вашей изначальной версии наличие CS1 играло какую-то определяющую роль в устройстве вселенной.


                  1. Frantony
                    16.08.2016 12:43

                    Это всё к тезису о том, что в OpenWRT из коробки тупо не предусмотрена работа SPI с чем-то, кроме флэшки, какое отношение имеет?

                    Это всё к тезису <<В AR9331 контроллер SPI точно такой же>>.


                    Ваш исходный тезис выглядит так


                    На SPI там висит флэшка (как и во всех подобных чипсетах), так что сильно на него не надейтесь.

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


                    Ваше замечание о том, что в OpenWrt


                    по SPI очень хочет общаться ядро системы

                    также вопросы вызывает:


                    • ядро системы, это надо понимать linux; только вот заставить ядро linux по своей инициативе много общаться по SPI это ещё умудриться надо. Как правило общение по SPI — результат запросов к ядро из userspace, а не личная инициатива ядра (напимер, busybox запустил dropbear, и надо этот dropbear загрузить в ОЗУ). Да и старнно было бы, если бы кто-то ещё кроме ядра организовывал обращения по SPI. Источник этих постояных обращений не ясен — кто же именно все эти постоянные обращения организует?
                    • то, что OpenWrt очень желает общаться (кстати, не указано с кем он желает общаться, но наверное, с SPI flash) — это факт, только без конкретных цифр, какая пропускная способность SPI потребна для OpenWrt от SPI, принять решение о подключении ещё одного устройства к SPI затруднительно. Так на сколько МБ/с обычно по SPI очень хочет общаться ядро системы?


  1. kurgan-kotlovan
    15.08.2016 11:58
    +1

    Странно, что никто не вспомнил про Domino Core. Выпускается и продаётся уже год как.

    image