Апельсиновый осьминог (младший) и пингвиньи штучки
В то время, как космические корабли бороздят, а локомотив любительского одноплатного коммьюнити выпускает третью модель Raspberry Pi, китайцы клепают разное. Когда в продаже объявилась Orange Pi One, я изрядно порадовался - это ведь именно 'оно'. Очень дешевая плата (10$ плюс доставка) с тем же мощным чипом Allwinner H3, что у предыдущего антифлагмана - Orange Pi PC. Разница в том, что One урезана по всем фронтам: один USB, нет всяких микрофонов, ИК приемников, свистелок и бурчалок. Хватило совести оставить проводной Ethernet, что не может не радовать. Памяти тоже по нынешним меркам мало, 512 Мб. Но для Linux без графического интерфейса, на котором только OctoPrint будет крутиться - более чем достаточно.
В общем, заказал я эту плату, дождался и стремительно освоил. Сделаю молниеносный вывод: да, использовать можно и нужно. А далее расскажу поподробнее. Обо всяких интересных вещах. Заодно продолжу беспроводную тему - в этот раз мне удалось завести китайский 'свисток' на популярном чипе MT7601 (Ralink 148f:7601). Бонусом - чтобы один раз подключить принтер к апельсинке, и больше не трогать, даже для прошивки - посмотрим, как компилировать и заливать Marlin без графического интерфейса Arduino IDE.
Первый заход
Вообще, я думал, что будет нормально работать карточка с системой, подготовленная для Orange Pi PC. Почти угадал - да, можно просто переткнуть из одной апельсинки в другую, и все будет более-менее. Но не все так хорошо - в выводе dmesg ошибки управления частотой процессора, еще какая-то ерунда... Начинаю копать и понимаю, что да, управление питанием упростили. Не буду на этом заострять, подробнее можно здесь прочитать. Расчехляем бубен, или ищем 'изкоробочное' решение. Я пошел по второму пути и не прогадал - он проще и удобнее, оказывается. В общем, с настоящего момента я использую Armbian, а не сборку Debian от loboris.
Установка Armbian
Скачиваем нужный дистрибутив (Server, без GUI который). Распаковываем, записываем на карту памяти (не менее 2 Гб) raw-образ с помощью imagewriter (есть в архиве) или Rufus (для Windows), линуксоиды что-нибудь придумают (у меня в Mint есть 'Запись дискового образа', а вообще - только dd, только хардкор). Вставляем карту в апельсинку, подключаем Ethernet и питание, ждем. Первая загрузка - несколько минут, так как производятся подготовительные действия, вроде расширения файловой системы на всю карту.
При первом подключении по SSH (пользователь root, пароль 1234) система предлагает сменить пароль и создать обычного пользователя. Не будем этим пренебрегать, я создал пользователя orangepi, как в сборке loboris.
Можно спокойно настраивать принт-сервер, как в моей первой инструкции, начиная с пункта OctoPrint. С некоторыми минимальными дополнениями - часть пакетов в Armbian уже есть, что-то нужно доустановить.
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install virtualenv
Вот после этого по пунктам выполняется инструкция по поднятию OctoPrint, никаких граблей не встречено.
Без проводов и бубна
Все для людей! В текущей версии Armbian 'из коробки' работают беспроводные адаптеры на популярном китайском чипе MT7601 (в выводе lsusb определяются как Ralink 148f:7601)! То есть, втыкаем 'свисток' и смотрим вывод sudo ifconfig -a. Там должно быть устройство ra0. Остается только заглянуть в /etc/network/interfaces (sudo nano /etc/network/interfaces), где уже заботливо приготовлен шаблон настройки. Причесываем конфигурационный файл (не забывая поменять в данном случае wlan0 на ra0), перезагружаемся (с отключенной проводной сетью) и подключаемся к апельсинке уже по Wi-Fi. Вообще без граблей, что нехарактерно, но очень приятно.
Замечания по железу
Один USB - это грустно, потому что в идеале нужно три - для принтера, Wi-Fi 'затычки' и вебкамеры. Тут возможны варианты. Например, подключать принтер через один из последовательных портов (UART), разведенных на GPIO. Можно использовать USB-хаб. Я пока что буду пользоваться единственным USB для подключения принтера и использовать проводную сеть. Камера - как-нибудь потом.
Или пойду путем паяльного джедая. Оказывается, китайцы предусмотрительно развели 'пятачками' недостающие USB, а также другую периферию, отличающую PC от One. Вот здесь с картинками рассказано, что куда паять. Мелко и неудобно, конечно, но реально.
Обещанный бонус
При работе с принт-сервером в виде малинки или апельсинки иногда возникает вопрос - а как обновить прошивку в принтере? Очевидный вариант - временно подключить принтер к компьютеру. Неудобно. Чуть более сложный, но без дергания проводов - скомпилировать прошивку на компьютере, закинуть ее на малинку-апельсинку, запрограммировать с помощью avrdude (волшебная команда будет дальше). Ну и третий, самый сложный (для неподготовленного пользователя) и самый удобный способ - это настройка, сборка и прошивка непосредственно на принт-сервере.
Проблема тут ровно одна - рабочая среда Arduino рассчитана на наличие графического пользовательского интерфейса. И без него нормально не запускается. Причем, до идиотизма - работа с командной строкой возможна, но без GUI все равно ничего не получится, если сильно не красноглазить (поставить 'иксы' и 'заглушить' их). Пойдем немного другим путем.
cd ~
sudo apt-get install arduino
git clone https://github.com/MarlinFirmware/Marlin
cd Marlin/Marlin/
nano configuration.h
nano Makefile
Устанавливаем Arduino IDE и скачиваем исходный код Marlin. Правим configuration.h согласно нашим нуждам, а затем открываем волшебный Makefile.
Там нужно всего лишь указать тип платы (33 для RAMPS в режиме экструдер-вентилятор-стол, смотрим boards.h). В Marlin 1.1.0 RC3 путь к установленной Arduino IDE (/usr/share/arduino) правильный, в предыдущих версиях может встречаться какая-то хрень (для Mac OS), ее надо поправить.
make
Все, прошивку собрали. Теперь можно либо настроить Makefile, чтобы загрузка работала через make upload, либо загрузить вручную. Делается это простой командой (сначала входим в каталог applet).
cd applet
sudo avrdude -p m2560 -c arduino -P /dev/ttyUSB0 -b 115200 -U flash:w:Marlin.hex
Здесь ключ p - тип чипа (ATMega 2560), c - программатор, P - порт программатора, b - скорость загрузки, а дальше - что и в какую память загружать (файл Marlin.hex записать во флеш-память).
Наконец, если не хотите править configuration.h в консоли с помощью nano, можно разобраться с передачей файлов по ssh. У линуксоидов все для этого есть (scp), пользователям Windows предложу pscp от автора putty.
Резюме
На этом на сегодня все. Резюмирую: Orange Pi One компактная, дешевая, и отлично работает. Потенциальная проблема - единственный USB порт, если с ее решением возиться не охота, то берите сразу Orange Pi PC. На сегодняшний момент, получается, лучше ставить Armbian, чем сборку от loboris - как минимум из-за работы MT7601.
UPD1. 2018-01-08, для тех, кто хочет MT7601 с актуальной версией Armbian - смотрите этот комментарий и что за ним.
Еще больше интересных статей
Долгострой с долгими перерывами на кофе
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
 ...
Изменения в следующей версии 3D-принтер PonyBot
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
•Порт...
Собери свой Re-D-Bot
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
В представленной вашему вниманию статье, изложена по...
Комментарии и вопросы
А теперь посмотрите по схеме т...
Вот и я про то. При необходимо...
Купил себе как-то дрыгостол, п...
Добрый вечер, может у кого ест...
Сегодня получил заказанный на...
Добрый день, подскажите, пожал...
Что делать если я первый раз к...