Стационарная интеграция Klipperа с "железом" в принтер.

Подписаться на 3Dtoday
xolodny
Идет загрузка
Загрузка
12.06.19
1375
45
RepRap
6
Пост + вопрос. С целью пополнения копилки опыта и публикации последующего отчета.

Немного "погоняв" свою "дельту из запасов" с Klipper'ом и пару раз сорвав висящую на проводах "малинку" в процессе печати, было принято решение об интеграции этой железячки в конструкцию аппарата.

Задачи:

- размещение "малинки" на принтере стационарно, с доступом к USB и Ethernet портам;
- вывод от платы управления (MCU, у меня MKS 1.4) внешнего разъема USB наружу;
- установка независимого блока питания (БП) для "малинки" с целью дальнейшей аппаратной интеграции (реализовать включение-выключение принтера от "малинки", а также аппаратные кнопки предпрогрева и аварийного останова печати);
- подключение MCU к "малинке" по Rx/Tx.

Первые три вопроса были решены, и пока без крышки это выглядит следующим образом:
50e362e1cbe035eab6b06cb7c15490bd.jpg
А вот с четвертым пока не сильно хорошо выходит.

Ранее я задавал вопрос по согласованию интерфейсов ЗДЕСЬ

Плата согласования уровней была приобретена и распаяна.

Подключение реализовал вот так:
aff63eecfcefd676a25fe7ea2ae63172.jpg
Для ленивых:

- распиновка R Pi3
94b912416d655e324961baa0d06ee1b0.png
- распиновка MKS 1.4
f1ea6b12f8d07e6fb188e25fce199190.jpg
Распиновка согласователя - как на "рукописной" схеме.

При замене в файле конфигурации Printer.cfg в разделе MCU типа подключения с ttyUSB0 на ttyACM0, сохранении и перезапуске Klipper'а принтер "не взлетел". Подключение в интерфейсе Octoprint'а проходит, но температуры - "ноль", команды принтер не воспринимает.

Сборка на "малинке" - OctoPi от разработчика.

Где я недосмотрел-недоделал-перепутал?
Подписаться на 3Dtoday
6
Комментарии к статье

Комментарии

12.06.19 в 16:39
1
А UART то проинициализирован?
12.06.19 в 16:41
1
Имя, сестра! Имя!!! (С)

Як это сделать?
12.06.19 в 16:45
1
12.06.19 в 17:22
0
в CONFIG.TXT параметр enable_uart=1
при вводе sudo raspi-config
в 5 разделе и выборе P6 Serial сообщает, что serial interfaces enabled
в sudo nano /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,`115200 console=tty1
как раз Octoprint показывал соединение при убирании USB-шнурка на 115200, а не 250000 (как в конфигурации для USB), но не считывал датчики (хотэнд - 0 С, хотбед - прочерк) и не исполнял команды.

Попробовать переключить на другие пины? Проверить исправность преобразователя? Колеса попинать? Капот открыть-закрыть? В бубен постучать?
12.06.19 в 17:27
0
Ну замкнуть и эхо посмотреть для начала. И вообще, что за преобразователь? rx-tx правильно подключены? d1-d2 на мкс - это которые пины контроллера? как они в прошивке инициализируются?
12.06.19 в 17:42
0
как они в прошивке инициализируются?
платка была прошита через ЮСБ при установке клиппера.

rx-tx правильно подключены?
пин 8 "малинки", который Тх - к пину D2 MKS1.4, пин 10 "малинки" (который вроде как Rx) - к пину D1 платы.

Эти пины в конфиге клиппера надо как-то специально инициализировать тоже?
12.06.19 в 17:31
0
Ну замкнуть и эхо посмотреть для начала
кхм, чукча не сисьадмин. Чукча последний раз люнух ковырял в 99-ом.

И вообще, что за преобразователь?
вот ЭТОТ, что мне в ответе на мой вопрос предлагали

Подключено как на "бумажной" картинке в посте. Вроде правильно.


D1 и D2 - это пины на разъеме AUX1 платы MKS1.4 (а она вроде как по распиновке совпадает с RAMPS1.4)
12.06.19 в 17:40
1
Странно, неужели проблема 3.3V / 5VDC такая сложная?

5d4023a562c5c580cc6dd5a22ae3bec7.jpg
9ce2ebcfbfa6093ce11b83831664503c.JPG
eda4e9dcebc96e299f980f89106a143b.GIF


Вроде даже в том же Чип-и-Дипе это давно уже есть...
12.06.19 в 17:43
1
вот этот преобразователь использован https://3dtoday.ru/questions/podklyuchenie-mks-1-4-k-orangepi-cherez-uart/#507080
12.06.19 в 17:48
1
К сожалению, мне Ваша ссылка - недоступна.

Вот - типовой китайский, стоимостью около 30 рублей:

3d8e01a0a636e0d7a23655abfe79ee6c.jpg


Называется обычно:
Конвертер логических уровней 3.3 - 5 В двунаправленный (IIC, I2C)



+Update: да, увидел ссылку через ссылку, имел в виду то же самое.
12.06.19 в 17:49
1
Он самый и установлен. Схема подключения нарисована на "бумажке" в теле основного поста
12.06.19 в 17:52
1
Ok, тогда, учитывая то, что Апельсинка медленнее Малинки, попробуйте установить связь по UART - ПОМЕДЛЕННЕЕ, на одну две "ступени".

"Эхо"-терминал (для просмотра терминальной консолью) делается замыканием выхода на вход одного и того же устройства - это стандартный тест любого последовательного соединения ещё с эпохи RS-232C.

Вы должны увидеть на входе то же самое, что Вы посылаете "ТУДА".

Я имею в виду скорости медленнее чем 115200, и вероятно 8N1.

+Update#1:
Надеюсь вот эту статью Вы видели:

http://www.orangepi.org/Docs/LogintotheOrangePi.html

Раздел:
"Using TTL serial port"

Там описано как коннектиться К Апельсинке.
Но разумеется именно его и надо переконфигурить, чтобы коннектиться ОТ Апельсинки, как Вы хотите.

Обратите внимание на комментарий про НЕзапитывание ноги 5VDC.


+Update#2:
На нашем сайте вот такая заметка была:
https://3dtoday.ru/questions/mks-gen-aux1-usb/

+Update#3:
Вот эта статья тоже может быть полезна:
https://micro-pi.ru/ssh-uart-подключение-к-raspberry-pi-bpi/

В общем, получается, что (USB.OR.UART).AND.LAN ,
учитывая ньюансы уровней сигналов.
12.06.19 в 18:31
1
Апельсинка медленнее Малинки
уже малинка, апельсинка отправлена в закрома.

"Эхо"-терминал (для просмотра терминальной консолью) делается замыканием выхода на вход одного и того же устройства - это стандартный тест любого последовательного соединения ещё с эпохи RS-232C.

Вы должны увидеть на входе то же самое, что Вы посылаете "ТУДА".

Я имею в виду скорости медленнее чем 115200, и вероятно 8N1.
для меня это - абракадабра. Ну не хочется заниматься изучением топологии сетей, протоколов связи и т.п.

Где можно поискать живой гайд / мануал по настройке и подключению MEGA2560+RAMPS 1.4 к Raspberry PI3 через Rx/Tx?
12.06.19 в 18:32
1
Как насчёт вот этого?

https://3dtoday.ru/blogs/eta4ever/orange-octopus-razor-usbstick-directly/

Ну а так - классика:

Re: How to connect ramps1.4+arduino mega with Raspberry piSeptember 18, 2015 08:02AM
You connect raspberry to arduino using an USB cable. Nothing Else.
You need a 5v power input for raspberry through it's mini USB port.

https://reprap.org/forum/read.php?219,559861
12.06.19 в 18:39
1
Как насчёт вот этого?

https://3dtoday.ru/blogs/eta4ever/orange-octopus-razor-usbstick-directly/


О, спасибо! Попробую

Ну а так - классика:
Вот по классике через USB и подключено, но не хочется внешних проводов.
12.06.19 в 18:37
1
+Update#2:
На нашем сайте вот такая заметка была:
https://3dtoday.ru/questions/mks-gen-aux1-usb/
вот я как раз те 2-4-6-8, также являющиеся +5В, GND, D2, D1 и подключил в соответствии со схемой. Подозреваю, что проблема где-то программная. Возможно - из-за усеченности "паршивки" OctoPi

+Update#3:
Вот эта статья тоже может быть полезна:
https://micro-pi.ru/ssh-uart-подключение-к-raspberry-pi-bpi/
Вот как отсюда почти и подключил, только вместо VCC я пин от преобразователя уровней LV подключил к пину 3.3В на RasPi. Правильно ли поступил?
12.06.19 в 18:41
1
однако рекомендуется использовать отдельный блок питания

Я бы пробовал взять +5VCC от внешнего зарядника мобильника (обычно стабилизированные +5VDC@500mA).

Не уверен, что на Вашем преобразователе уровней LV есть достаточная мощность питальника 3.3V.

Конвертер уровней 5>3.3 не есть блок питания 3.3V.
12.06.19 в 18:43
1
Я бы пробовал взять +5VCC от внешнего зарядника мобильника.
так и сделано. Он на схеме показан отдельным блоком и запитывает контакты 4 и 6. Использовал "потроха" зарядки от древнего планшета.
12.06.19 в 18:51
1
так и сделано
Теперь уже я запутался в Ваших Апельсинках, Малинках и в преобразователях уровней ;-( .

Лучше выбрать что-то одно из Ваших возможностей, а потом уже решать вопрос минимизации количества проводов.


В любом случае, если есть возможность перепроверить каждый стык на экране консольного терминала,
убедившись в том, что данные испускаются и принимаются,

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

Хоть от батарейки Крона(Ардуино), хоть от PowerBank/USB.


У меня простой удлинитель на 10 розеток, где я вместо лабораторного блока питания подсоединил весь ряд напряжений на отдельных стабилизированных и промаркированных бп/адаптерах.

Чтобы не делать ошибок.
12.06.19 в 19:35
1
Лучше выбрать что-то одно из Ваших возможностей,
Посмотрите на рисунок ниже - так сейчас расключены плата управления, согласователь, "малинка" и ее блок питания.
Из уточнений - по факту Rx платы подключен через преобразователь к Tx "малинки" и наоборот (на картинке немного неправильно).
12.06.19 в 19:23
2
Данный преобразователь не будет работать с UART. Для UART нужен цифровой преобразователь уровней, у вас же стоит аналоговый. Хотя я вам так скажу - можно подключать землю и RX и TX без всяких преобразователей, и все будет ок
12.06.19 в 19:58
1
можно подключать землю и RX и TX без всяких преобразователей
у Вас есть такой опыт? "малинка" - не самая дешевая вещь, рисковать не хочется.

Есть подозрения, что проблема скорее программная, т.к. на ttyS0 "висит" диагностическая консоль, но проделать, как у камрада eta4ever

Как насчёт вот этого?

https://3dtoday.ru/blogs/eta4ever/orange-octopus-razor-usbstick-directly/


у меня не получается.

команды
bin2fex /boot/script.bin script.fex
nano script.fex

не работают

на

ls /dev/ttyS*

терминал говорит, что такой папки не знает.

Возможно - это из-за установленной OctoPi.
12.06.19 в 19:59
1
терминал говорит, что такой папки не знает
Напишите вопрос eta4ever в ЛК.
12.06.19 в 20:05
2
С этим бин и фекс — это специфические настройки для апельсины, если память не изменяет. К малине их не надо применять.
12.06.19 в 20:27
0
бин и фекс
Может - bin2hex ?

Про bin2fex - вот тут

https://pcminipro.ru/stati/redaktirovanie-script-bin-fajla-v-linux-i-v-windows/

А вот тут - что-то по Raspberry pi, вроде похожее

https://www.raspberrypi.org/forums/viewtopic.php?t=80009
12.06.19 в 19:58
1
цифровой преобразователь уровней
Это более дорогое решение.

Вот - описание типового, и даташит:

ca3b71576b45e50a25bd3aae187d6d67.jpg


https://1wire.com.ua/txs0108e-konverter-logicheskih-urovnej-dvunapravlennij.html
12.06.19 в 20:04
2
Все нормально работает через такой преобразователь, не надо сочинять.
12.06.19 в 20:08
3
Оу, как много наотвечали :) Таки да, такие фокусы с транзисторами работают только тогда, когда с обеих сторон открытый коллектор. Это I2C, 1-Wire, но не UART. Тут можно попробовать в одну сторону понизить диодом или резисторами, в другую - отдать так. Если будет работать нестабильно - ставить что-то типа TXB0104, SN74LV1T04.
12.06.19 в 20:10
1
бррррр.... коллеги, а, может, все-таки ткнете падавана в гайд, где можно спокойно подключить RAMPS1.4 / MKS1.4 через Rx/Tx интерфейсы к "малинке" и с клиппером? Я уже нихрена не понимаю....
12.06.19 в 20:18
2
Я сильно подозреваю, что такого пока не написано. Придётся разбираться поэтапно, начиная с эха на закороченных пинах малины... Забудьте пока про клиппер и рампс. Задача - запустить и согласовать UART. Что с чем по нему будет общаться - дело десятое. Посему, гуглить надо - "raspberry pi 5v uart". А на эту тему инфы просто море.
12.06.19 в 20:41
1
Я уже нихрена не понимаю....
Аналогично.

https://youtu.be/_83eOw8DVQ8
12.06.19 в 21:12
0
Хватит писать бред. С конвертрером на транзисторах работать не должно или через жопу. Если подключить на прямую, ничего не будет так как с обоих сторон сигнал толерантен 3.3В! Если хотите сипользовать переходник уровней,то только такой
12.06.19 в 21:20
1
Пруф на толерантность малины к 5В, пожалуйста.
12.06.19 в 21:22
0
Я почему-то не заметил,что бы я писал толерантность к 5-ти вольтам. Трижды перечитал свой пост и не увидел. Ткните носом
12.06.19 в 21:27
1
Вы написали, что ничего не будет при прямом подключении малины и меги. Это = толерантность к 5В.
12.06.19 в 21:28
-1
Со стороны меги сигнал 3.3В со стороны малины сигнал 3.3В. Вывод? Зачем там нужен конвертер - ума не приложу
12.06.19 в 21:29
1
Мега пятивольтовая.
12.06.19 в 21:52
1
Согласен. Перепутал с DUE. НО! Конвертер ваш не рабочий! Нужно использовать тот что я указал.
12.06.19 в 22:23
1
Вы заставляете меня сомневаться. Я практически уверен, что соединял ардуину с малиной транзисторами.
13.06.19 в 10:50
1
Тот конвертер что вы указали это uart-rs232. Со стороны 232 там будет +-12в. Этот переходник используется для подключения к последовательность порту компании по rs232. Между малиной и мегой его применимость для меня сомнительна.
13.06.19 в 10:55
0
Вы путаете MAX3232 и MAX232.
Нет, вы правы.
13.06.19 в 10:58
1
Со стороны 232 там будет +-12в
Не совсем.
В эпоху IBM-PC совместимых при 9-пиновой распиновке разъёма - разброс напряжений был от 6 до 15 вольт (типовые - 9VDC).

До этого - 25-пиновая распиновка и конкртено стандарт RS-232C подразумевал верхний порог напряжений в 25вольт постоянки.

Так что пожечь компорт простым передёргиванием его - было и есть ой как просто.


Справочно (в плане расширения понимания термина "толерантность", предложенного Ув.eta4ever-ом):
Даже для компортов существовали согласователи уровней с грозозащитой, при длинных коммуникациях (25 метров).
12.06.19 в 21:31
1

Со стороны меги сигнал 3.3В
Неправда Ваша.

Цитирую:
Входы и Выходы Каждый из 54 цифровых выводов Mega, используя функции pinMode(), digitalWrite(), иdigitalRead(), может настраиваться как вход или выход. Выводы работают при напряжении 5 В
Учите матчасть.
http://arduino.ru/Hardware/ArduinoBoardMega2560
12.06.19 в 21:30
1
толерантность малины к 5В
Апельсины или Малины?
Я видимо пребываю в заблуждении, что и Малинка и Апельсинка - 3.3VDC решение.

Вот подробности согласования по Малинке:

https://www.rlocman.ru/shem/schematics.html?di=336041
13.06.19 в 17:51
0
console=serial0,115200 в cmdline.txt "убил"

в файле конфигурации Klipper'а тип подключения MCU сделал ttyS0

теперь при попытке подключения к ttyS0 в консоли Octoprint'а вижу такое:

Changing monitoring state from "Opening serial port" to "Connecting"Send: N0 M110 N0*125Recv: \x0e\x19E\x05����\x00�=}K~\x0e\x19E\x11����\x00�'�@~\x0e\x19E\x05����\x00�= �~\x0e\x19E\x11����\x00�(��~\x0e\x19E\x05����\x00�=_�~\x0e\x19E\x11����\x00�(j�~ \x19=U��%��c��~\x0e\x19E\x05����\x00�>��~\x0e\x19E\x11����\x00�(\x0c�~\x0e\x19E\x05����\x00�=� ~\x0e\x19E\x11����\x00�)�r~\x0e\x19E\x05����\x00�@C�~\x0e\x19E\x11����\x00�)/�~\x0e\x19E\x05����\x00�<�Recv: ~\x0e\x19E\x11����\x00�'��~\x0e\x19E\x05����\x00�>\x7f�~\x0e\x19E\x11����\x00�'��~\x0e\x19E\x05����\x00�A-\x13~\x0e\x19E\x11����\x00�)�U~\x0e\x19E\x05����\x00�>�z~\x0e\x19E\x11����\x00�)*�~\x0e\x19E\x05����\x00�>&/~\x0e\x19E\x11����\x00�)��~\x0e\x19E\x05����\x00�=��~\x0e\x19E\x11����\x00�)�\x0f~\x0e\x19E\x05����\x00�;N�~\x0e\x19E\x11����\x00�&X�~\x0e\x19E\x05����\x00�>#:~\x0e\x19E\x11����\x00�*5�~\x0e\x19E\x05����\x00�=j�~\x0e\x19E\x11����\x00�)X�~\x0e\x19E\x05����\x00�;�M~\x0e\x19E\x11����\x00�)d�~\x0e\x19E\x05����\x00�<��~\x0e\x19E\x11����\x00�)l�~\x0e\x19E\x05����\x00�=��~\x0e\x19E\x11����\x00�)P�~\x0e\x19E\x05����\x00�<�W~\x0e\x19E\x11����\x00�&X�~\x0e\x19E\x05����\x00�?�`~\x0e\x19E\x11����\x00�(�N~ \x19=U��t��}�l~\x0e\x19E\x05����\x00�>nZ~\x0e\x19E\x11����\x00�(Recv: �~\x0e\x19E\x05����\x00�=��~\x0e\x19E\x11����\x00�)\x1f�~\x0e\x19E\x05����\x00�?\x1fY~\x0e\x19E\x11����\x00�(�>~\x0e\x19E\x05����\x00�@y�~\x0e\x19E\x11����\x00�)JF~\x0e\x19E\x05����\x00�=i�~\x0e\x19E\x11����\x00�),�~\x0e\x19E\x05����\x00�?\x0c�~\x0e\x19E\x11����\x00�)��~\x0e\x19E\x05����\x00�<|�~\x0e\x19E\x11����\x00�(x~~\x0e\x19E\x05����\x00�;~�~\x0e\x19E\x11����\x00�(0J~\x0e\x19E\x05����\x00�? =~\x0e\x19E\x11����\x00�(\x1b�~\x0e\x19E\x05����\x00�?1B~\x0e\x19E\x11����\x00�(kg~\x0e\x19E\x05����\x00�A,�~\x0e\x19E\x11����\x00�(cN~\x0e\x19E\x05����\x00�@\x01m~\x0e\x19E\x11����\x00�)�@~\x0e\x19E\x05����\x00�>\x03�~\x0e\x19E\x11����\x00�)��~\x0e\x19E\x05����\x00�>��~\x0e\x19E\x11����\x00�'{�~\x0e\x19E\x05����\x00�@��~\x0e\x19E\x11����\x00�(\x158~\x0e\x19E\x05����\x00�=\x7f�~\x0e\x19E\x11����\x00�)�;~\x0e\x19E\x05����\x00�?��~\x0e\x19E\x11����\x00�)�=~ \x19=U��|��\x16�\x10~\x0e\x19E\x05����\x00�@�\x0f~\x0e\x19E\x11����\x00�(��~\x0e\x19E\x05����\x00�>_�~\x0e\x19E\x11����\x00�)9�~\x0e\x19E\x05����\x00�=`�~\x0e\x19E\x11����\x00�*�t~\x0e\x19E\x05����\x00�>+6~\x0e\x19E\x11����\x00�+g`~\x0e\x19E\x05����\x00�>��~\x0e\x19E\x11����\x00�*\\x1e~\x0e\x19E\x05����\x00�>Q#~\x0e\x19E\x11����\x00�&&�~\x0e\x19E\x05����\x00�=\x05�~\x0e\x19E\x11����\x00�+\x14�~\x0e\x19E\x05����\x00�?��~\x0e\x19E\x11����\x00�(��~\x0e\x19E\x05����\x00�>sJ~\x0e\x19E\x11����\x00�)��~\x0e\x19E\x05����\x00�A�`~\x0e\x19E\x11����\x00�+��~\x0e\x19E\x05����\x00�>�M~\x0e\x19E\x11����\x00�(��~\x0e\x19E\x05����\x00�@oG~\x0e\x19E\x11����\x00�(/�~\x0e\x19E\x05����\x00�>-�~\x0e\x19E\x11����\x00�'K�~\x0e\x19E\x05����\x00�=��~\x0e\x19E\x11����\x00�'|\x15~\x0e\x19E\x05����\x00�;�y~\x0e\x19E\x11����\x00�&��~\x0e\x19E\x05����\x00�AGThere was a timeout while trying to connect to the printerChanging monitoring state from "Connecting" to "Offline"Connection closed, closing down monitor


Т.е. какие то изменения есть, но я как та мартышка, которую посадили печатать "войну и мир" - "ничо не понимаю"

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

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

Ремонт соковыжималки Tefal ELEA

Представляем ортопедические 3D-сканеры ScanPod3D

Обзор на ULTI by Tiger после 4 месяцев эксплуатации. . Эпизод II: IVILOL наносит ответный удар.

Мой собственный Spot Mini

SKR1.3 + TMC2130 и парковка без концевиков!

Студенческий разведбот