Octoprint. Плюшки. Часть 1. Питание принтера.

Подписаться на 3Dtoday
vasyna
Идет загрузка
Загрузка
18.02.17
10308
49
печатает на TEVO Tarantula
Техничка
37
Я давно перешел на окту, рад. А еще раньше я пересел (точнее вынужденная мера) со сток блока питания на "православный" ATX блок питания. И вот дюже меня бесил момент включения/выключения. Ибо по первой у меня как и у всех был на коротко закорочен зеленый и черный провод. Т.е. принудительное включение. Со временем я осмелился на GPIO, но бесило лишнее тыканье в меню (спасибо плагину System Command Editor, я так пол года рулил блоком питания), а вот буквально на днях я вообще автоматизировал полностью процесс работы блока питания.
Начнем с комплектующих:
1. OrangePi * (любая версия с GPIO нам подойдет, но в основном у людей или One или PC) с установленным в данном случае Armbian + Octoprint
2. "Любой" PNP транзистор. В моем случае это какой-то 945 выпаянный с платы управления радиомашинкой самой дешевой (в свободное время переделываю машинки на 2.4ГГц управление со всеми плюшками, по сему такого добра валом). По пинам он в принципе похоже с этим http://paratran.com/2paratranKR.php?tr=120
3. Резистор 100Ом (опять же с той платы, мощность значения не имеет)
4. ATX блок питания
5. Паяльник, припой, канифоль какая-нибудь, немного проводков (я резал с того же БП)
6. Капельку интернета.

Поехали. Для начала любимое - софтварная часть.
Заходим по ssh на нашу апельсину (для малины WiringOP надо менять на WiringPI, ну и гит репозитарий другой).
В do_start добавляем строчку "gpio mode 24 OUTPUT"
т.е. на выходе получаем:

do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started

is_alive $PIDFILE
RETVAL="$?"

if [ $RETVAL != 0 ]; then
start-stop-daemon --start --background --quiet --pidfile $PIDFILE --make-pidfile \
--exec $DAEMON --chuid $OCTOPRINT_USER --user $OCTOPRINT_USER --umask $UMASK --nicelevel=$NICELEVEL \
-- $DAEMON_ARGS
gpio mode 24 OUTPUT
RETVAL="$?"
fi
}
Этим мы принудительно переведем ножку в режим выхода.
fee69c929ad2dd234a8a5ba1f821e78b.png
Закрываем, сохраняем.
Объясню почему 24. Это нога нам 100% не пригодится ни сегодня, ни завтра. По этому мы ее и используем. До этого юзал 11 ногу, она тоже не сильно нужна, но в дальнейшем мы будем прикручивать экран (тизер) и нам уже не стоит будет возвращаться сюда.
  • Закрываем терминал. И идем в WebGUI.
  • Settings - Plugin Manager (я надеюсь он у вас уже стоит, если нет, то читаем как установить тут https://github.com/foosel/OctoPrint) - Get More - PSU
c6d3c0ac38484055c32261d5b1579297.png
  • Устанавливаем плагин "PSU Control". Соглашаемся на рестарт окты.
  • Settings - PSU Control
4655d60db2f9dd205d3a301dffa59647.png
  • Switching Method - System Command
  • On System Command - gpio write 24 1
  • Off System Command - gpio write 24 0
  • Если не стоят галочки на "Automatically turn PSU ON" и "Automatically turn PSU OFF when idle" ставим.
  • SAVE
Ну в общем софтварно мы готовы. Поехали железо. Начнем с азов. В идеале ATX блок питания может рапортовать о том что он готов к включению и нас не ждет "бум да гаса разбейха ли барбосса" (как-то так это звучало в Звездных войнах :) ). По идее нужно брать этот аспект во внимание, но... опустим его. Еще PSU control может "палить" включен ли блок питания, но опять же я ранее пробовал при печати принудительно включать пин (gpio write 24 1) и ни чего не происходило, ну в смысле печать не приостанавливалась, смещения слове не было. Следовательно мы и этот пункт опустим.
Дальше питание самой апельсины. Ей надо 5В2А по даташиту, но лабораторник даже с нагрузкой на проц почти на 100%, 3.5'' экраном с подсветкой и белым экраном, поднятой сетью и подключенной MKS Gen 1.2 (которая не запитана на данный момент от 12В) показал потребление в пике 1А. Так что... у блока питания есть дежурное питание 5В до 2А. Т.е. блок питания включен в сеть, тумблер включен, power_on подтянут к + питания (т.е. висит в воздухе) и мы можем не включая всю эту "дуру" получить 5В2А, что более чем. Это у нас фиолетовый провод. Вот с него то мы и берем питания для нашей апельсинки. Т.е. по факту она все время будет включена ( Что нам и на руку. Лично я сидя на работе и отрисовав очередной корпус не замедлительно отправляю его на печать). Даже если добавить туда вебку и вентилятор на 5В для охлаждения апельсины, то все равно запаса у нас ВАГОН!
И так, непосредственно подключение:
a02af8494954042306e504d847e95321.JPG
Распиновка GPIO OrangePI:
Где первый пин на гребенке на плате отмечен белой стрелочкой. Вообще указанный нами 24 пин на самом деле на плате далеко не 24. Он на самом деле 35. Именно на гребенке. Но для WiringPI именно пин 24. Т.е. подключаем "24 pin GPIO" к 35 пину на гребенке. "Black wire from ATX" - к любому черном проводу и "Green wire from ATX" к зеленому проводу блока питания. Т.е. взяв подобный моему транзистор скосой стороной к себе, слева направо подключаем так:
1. Черный провод блока питания
2. Зеленый провод блока питания
3. На 35 (физически) пин гребенки GPIO (со стороны белой стрелочки 3-й снизу)
Но не забываем, нам надо обязательно ограничить ток на базу транзистора. 100Ом при 3.3В более чем. Т.е. между 3 пином транзистора и ножкой апельсины чудном образом должен оказаться резистор ;). Все это в термоусадку и... и как-то решите вопрос подключения провода от резистора к апельсине. Тут каждый сам горазд, но я сделал съемным, ибо бывает надо.
На выходе получаем вот такую конструкцию:
PREVIEW
Описываю порядок действия:
1. Блок питания в сети и тумблер его включен, но сам блок питания находится в спящем режиме и +12В у нас "нет"
2. Апельсина загружена
3. Заходим в WebGUI и делаем скажем "set home". Блок питания автоматически включается, у нас появляется 12В, моторы поехали и мы счастливы.
4. После печати по остыванию хотэнда до указанной температуры в "Wait For Temperature" либо если температура упала раньше/была меньше чем указанное в "Idle Timeout" (все это в octoprint - settings - PSU control) время за которое не поступит любая gcode команда за исключением указанных в "Ignore Commands" питание принтера будет выключено. Точнее будет выполнена команда "gpio write 24 0", которая разомкнет наш электронный ключ и блок питания обесточит все линии кроме дежурки. Т.е. даже в термокамере мы будет убеждены что хотэнд остыл и скажем между печатью "по месту" принтер выключаться не будет.
PS. Все это справедливо для заранее целого и качественного блока питания. Всякие дешевые корпусные блоки питания могут и 500мА на дежурке не держать. И опять же пренебрежение тригера готовности блока питания...
PSS. Опять же старался разжевать чтобы не прикладывать велико ума... а просто взять и пользоваться. По сему ребята волокущие можете спокойно пройти мимо, вы и не на такое способны, мы в вас не сомневаемся.

PSSS. Можно настроить на определенные команды в GCODE и добавить их в слайсинг, но как по мне это не удобно.
PSSSS. Принудительно включить питание с помощью данного плагина можно только подвигав любой осью, либо включив нагрев и прочее. Либо же в System Command Editor добавить 2 пункта меню:

Name - Printer power ON
Action -printer-power-on
command - gpio write 24 1
и
Name - Printer power OFF
Action - printer-power-off
command - gpio write 24 0
Use Confirmation - Ставим галочку чтобы при выключении был запрос

Message - Power Supply is currently ON.

Т.е. мы можем принудительно через System - Printer power ON включить питание или через Printer power OFF выключить.
PSSSSS. Если питание активировано плагином PSU, то сверху появится значок молнии. Если он зеленый, значит питание включено, если серый, то выключено. По нажатию на него можно так же включать и выключать питание:
470f2c78b4eb99ca4f7fdd1a89dadbab.JPG
c7167c8db88b562c157b8b33adb3fb09.JPG
За сим откланиваюсь.
Подписаться на 3Dtoday
37
Комментарии к статье

Комментарии

18 Фев 17:04
1
Отлично! К этому осталось добавить, что можно все это применить практически без изменений к традиционному кирпичу, путем включения его через твердотельное реле (DA). Да, питание малины-апельсины придется использовать внешнее.
18 Фев 17:29
1
Вполне. К простым бп более чем. Но размеры.
19 Фев 12:20
1
Это если кирпичи уже есть, установлены и работают. Я буду так делать, только заводить управление еще на ESP8266, чтобы можно было дергать розетку независимо от малины-апельсины.
19 Фев 14:43
1
Зачем? чем апельсина не устроила? я впн поднял у себя и открыл только 1 порт для него входящий и все ) В любой точке мира при наличии интернета рули и попробуй взломай )
19 Фев 14:59
0
Дополнительный контур отрубания. Если апельсина зависнет. Итоговая "гениальная розетка" должна управлять как от esp, так и от апельсины, первая приоритетнее.
19 Фев 15:03
1
Итоговая "гениальная розетка" должна управлять как от esp, так и от апельсины, первая приоритетнее.
Хммм... 2 симистора в ряд и все. Т.к. нагрузки там не такие и великие, то даже радик не сильно то и нужен будет.
19 Фев 15:05
0
Дык, это понятно. Традиционное MOC3063+BTA16.
19 Фев 21:50
0
А мне больше нравится просто умные розетки с LAN и Arduino. Напрямую с принтером никакой связи, но можно перезагрузить/выключить/включить принтер или что-то измерить... А лишний WiFi, да ещё и нифига не защищенный. ESP8266 не работает по HTTPS...
19 Фев 21:53
0
Согласен, с проводами спокойнее.
29 Апр 00:53
-1
Ну я так и представил, хаккер, вместо того чтобы зарабатывать приличные деньги программистом, будет неделями анализировать WiFi трафик соседей и в финале подаст питание на 3D принтер, удиви тем самым хозяев. Ну бред же. Можно же вредить всем проще, спички в замки совать, стекла бить и т.п. как было у всех в детстве до изобретения WiFi.
19 Фев 12:12
0
Да, питание малины-апельсины придется использовать внешнее.

На АТХ есть дежурные (неотключаемые) 5В. Или я чего путаю?

Add:
pin 9 => + 5VDC Standby
19 Фев 12:18
0
Это все одной фразой, относится к
к традиционному кирпичу
18 Фев 17:36
0
у меня похожим способом реализована, только два бп
5V
12V

Уппавляются тоже октопринтом правда через твердотельное реле, и GCODE
18 Фев 20:16
1
Главное новый корпус на старом корпусе не отпечатать :D
18 Фев 21:42
1
Я не совсем всё понял, но хочу и одобряю.
19 Фев 13:07
0
Я тоже мало что понял, но чувствую тема очень полезная.
Подскажите с чего начать изучение про Octoprint.
Самые основы.
Спасибо.
19 Фев 13:21
1
У меня нет собственно подробного описания процесса работы в OctoPrint, но есть про настройку и плюшки. Например:
http://3dtoday.ru/blogs/eta4ever/orange-octopus-a-step-by-step-guide/ (про начальную настройку, в плане используемого дистрибутива устарело)
http://3dtoday.ru/blogs/eta4ever/orange-octopus-junior-and-penguin-stuff/ (более актуально)
http://3dtoday.ru/tag/Octoprint/ (в целом можно пролистать)
19 Фев 13:32
0
Спасибо. Буду изучать.
19 Фев 14:28
0
Эхъ, если б мне не лень было... Ведь полезная вещь же, особенно когда наночь ставлю, и засыпаю по звуки принтера, то к середине ночи, если печать закончилась вой вентиляторов всё же напрягает, а так всё тихо было бы...
19 Фев 14:45
1
15 минут на все если. Ибо тернистый путь то уже пройден. Ctrl+c ctrl+v и все готово )
8 Май 00:58
0
Случайно не знаете можно ли в качестве команд включения/отключения использовать http запросы?
У меня беспроводная розетка включается таким кодом:

http://IP:3480/data_request?id=lu_action&DeviceNum=57&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1

Вот как запихнуть это в Octoprint?
8 Май 06:37
1
К сожаленю я не могу сейчас запустить окту (блок питания и 2 окта на работе, я все таки запустил сенсор, скоро будет мануальчик )))) ). Но вот я точно помню что или в самой окте или... Да вот же:
http://3dtoday.ru/blogs/vasyna/octoprint-buns/
Только надо не напрямую, а скорее всего
http://proft.me/2013/08/17/spravochnik-po-komandam-wget-i-curl/
curl --request POST "http://example.com/form/" --data "field1=value1&field2=value2"
Тебе по идее
curl --request POST "http://IP:3480/data_request?id=lu_action&DeviceNum=57&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1"
8 Май 09:11
0
Огромное спасибо! Заработало! :)

Сработало так:
curl 'http//IP:3480...'

Теперь принтер под полным контролем :)
8 Май 11:54
0
А авторизация тут где? Или так?
8 Май 12:09
0
Не понял вопроса? Ты имеешь ввиду лог/пасс? Так я так понимаю у автора нет ее. но и это не проблема. пост то у нас есть.
8 Май 12:11
0
Да-да, именно. Я уж испугался, что оно прямо так работать будет.
8 Май 12:23
0
Ну я хз что там за розетка, но вроде бы есть и с авторизацие, есть без, есть те которые можно включать/выключать. В любом случае логпасс по POST передются, следоватлеьно можно выдрать запрос из браузера и затулить его, потом 1 сек таймаута и запрос на выключение.
24 Май 09:13
0
Подскажите, если я хочу использовать более простую схему из штатного БП для принтера и отдельно постоянно включенной апельсинки, достаточно ли будет включить в разрыв сетевого (230в) провода принтера твердотельное реле SSR-25DA, а на управляющий контакт просто подать выход GPIO24 через резистор 100 Ом? Или надо какие то еще схемы наворачивать?
24 Май 09:25
1
Не совсем понял мысль по поводу резистора. Зачем он там? токоограничивающий резистор уже есть в реле. Так что просто подключаем и все. А так да. 220 один провод в разрыв через реле и 24 ногу на управялющий плюс, землю управляющую на землю окты/платы управления принтера, корпус блока питания (если он GND, т.е. звонится), выхода GND блока питания. И все. У меня сейчас примерно по такому принципу и сделано. С установкой силиконовой грелки я отказался от ATX в виду слишкой большой лишней мощности и сейчас так же стоит на входе ттр.
9 Июл 09:23
0
Не подскажите, как настроить функцию мониторинга состояния БП в данном плагине? (Orange Pi Zero)
9 Июл 13:34
0
Через делитель напряжения из 12В делаем 5. Цепляем на любую ногу и указываем этот пин в плагине
9 Июл 14:36
0
У меня АТХ, так что я там 3.3В на ногу вывожу, но дело не в этом... Я как ни указываю в плагине ногу, оно не работает. Если через SSH командами ногу считывать, то всё нормально, но плагин не видит...
9 Июл 18:40
0
У меня все работает. От простого юзверя ноги позволяет дергать?
10 Июл 01:41
0
Дёргать через gpio write без проблем. С управлением блоком всё в порядке. Проблема с считыванием его статуса. Я там просто на ногу прицепил 3.3В вывод блока. Через SSH считывание по gpio read нормально работает, а вот если в плагине ногу указать, то хрен вам... (сейчас возможности что-нибудь проверить нет, ибо Zero сгорела...)
14 Янв 12:15
0
Добрый день! Не получается состояние питания настроить. В веб морде постоянно зеленым горит значек питания. По ssh состояние gpio 23 приходит 0 или 1 в зависимости от питания. В чем может быть дело?
acd9001009673f05407a57cb1b5fd30f.jpg
c9b272197ca2037ed79f77c6b86b5b85.jpg
14 Янв 12:37
0
К сожалению давно не пользуюсь подобным и изначально не пользовался сенсором, ибо как по мне он лишний. Так что не подскажу.
16 Ноя 20:57
-1
что то не едут у меня лыжи. Имею orange pi zero. Ее питание от дежурки. arduino запитано отдельно от преобразователя 5v, питание 12v от рампса отключено. Сгородил схемку, выполнил установку wiringOP но т.к. на зеро всего 26 пиновая гребенка то в настройках выставил gpio 11 если я понял правильно это 26 нога гребенки. Но зайдя в веб морду т.к. arduino отключено то естественно связи с ней нет и не доступны все органы управления, соответственно послать команду по какой бы включилось питание через web морду не возможно. Круг замкнулся. Как этим теперь управлять и правильно ли я понял соответствие пинов?
[IMG]
17 Ноя 06:41
0
Прочтите статью и сделайте все букву в букву. И поедут ваши лыжи.
Закрываем терминал. И идем в WebGUI.
Settings - Plugin Manager (я надеюсь он у вас уже стоит, ес...
17 Ноя 08:57
0
Стоят нужные plugin. Как должен октопринт себя вести если нет коннекта с arduino если на ней нет питания? Что то должно быть активно по управлению? Сомневаюсь. И все же хотелось уточнить по соответствию gpin правильно ли я понял что gpin 11 в данном случае на гребенке контакт 26?
[IMG]
17 Ноя 09:02
0
Распиновку ищите в интренете, желание нет.
System command editor поставили? Добавили команды? Вверху меню, называется system. Там появится включить и выключить.
17 Ноя 09:16
0
Да найти то нашел но там довольно запутано. Поэтому есть сомнения. Сейчас к сожалению идет печать поэтому все управление активно если питания на arduino нет то управление не активно. к сожалению не помню активно ли меню под кнопкой "питание"
d74d80d058a451de628aa4ad5db09083.png
4cb13d0af41b8a7a0a5a7dab5c6f1f3b.png
[IMG]
17 Ноя 09:21
0
Принудительно включить питание с помощью данного плагина можно только подвигав любой осью, либо включив нагрев и прочее. Либо же в System Command Editor добавить 2 пункта меню:

Name - Printer power ON
Action -printer-power-on
command - gpio write 24 1
и
Name - Printer power OFF
Action - printer-power-off
command - gpio write 24 0
Use Confirmation - Ставим галочку чтобы при выключении был запрос

Message - Power Supply is currently ON.

Т.е. мы можем принудительно через System - Printer power ON включить питание или через Printer power OFF выключить.
17 Ноя 09:30
0
Спасибо. Попробую этот вариант.
[IMG]
19 Ноя 11:17
-1
Как всегда дело было на в бобине. Надо было ставить wiringOP-zero. Под зеро особая версия.
в сети есть соответствие распиновки зеро но оно не соответствует действительности. Указано что пин 26 это gpio10 в реальности это gpio 11.
В схемке управления ошибка, для умеющего держать паяльник не критична но все же. На коллектор n-p-n транзистора должен приходить минус на ATX блоках питания это черный провод. Следовательно зеленый на эмиттер.
[IMG]
19 Ноя 11:19
-1
До вот еще что

Name - Printer power OFF
Action - printer-power-off
command - gpio write 24 0
не работает
сообщение от окты
Command custom:printer-power-off not found
[IMG]
19 Ноя 11:22
-1
PS. Для тех у кого пинг отваливаться окончательно в простое - переформатируйте и накатите образ заново. Мне помогло.
[IMG]
19 Ноя 14:40
0
1/ Все там правильно. Нам надо зеленый сажать на землю. Так зеленый подтянут к плюсу. Не путайте.
2. Научитесь редактировать сообщения.
3. не работает у вас. У нас все работает.
19 Ноя 14:39
0
del
19 Ноя 18:44
0
Как раз сейчас у меня все работает.
[IMG]

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Электромагнитный тормоз

Еще одна aka инструментальная оценка экрана LCD-принтера

Попробовал. Работает.

Кремлёвский принтер: Экструдеры

"Ремонт" 3D принтера с помощью 3D ручки:)

Переезд Anet A6 на металлическую раму или исповедь ламера