ESP3D, Wi-Fi для принтера. Прошивка.
Функционал системы ESP3D вызывает весьма много споров.
Есть как недостатки, так и достоинства.
Недостатки - это скорее тема требований. Для некоторых они будут критическими, для других, несущественными.
Что позволяет эта система:
1. Полное управление 3D принтером
Подвигать осями, включать нагреватели, вентиляторы.
2. Послать команду принтеру. Очень часто нужно инициализировать EEPROM, узнать настройки, кол-во шагов на мм, провести калибровки PID, экструдера. Ввести новые настройки в память.
2.1 Послать команду модулю. Подать 1 или 0 на определённый IO, подождать заданное кол-во времени.
3. Вести печать прямо из компьютера через программу Repetier Host, например.
Вот это все у него очень хорошо получается. Впрочем п.3 имеет особенности, ввиду зависимости от Wi-Fi.
Если ктото в процессе печати задумает подключиться к этой сети, произойдёт затык. Временный, но в этом месте будет отметина от натёкшего плактика. Хорошо если это будет в заполнении, тогда никто не увидит.
Модулей много разных существует. Я предпочитаю ESP-12F, так как он имеет 6 дополнительный портов. А значит, больше возможностей, например MicroSD флешку подсоединить по SPI, и иметь удалённый, высокоскоростной Wi-Fi диск.
Но методика прошивки для всех одинакова.
На этом портале таких методик несколько штук. Я постараюсь добавить свой вариант без использования неприятной программы Ардуино IDE
Прошивку сначала компилирую в той же среде, где и марлин 2. Для меня это программа Atom.
Скачиваем исходники с официального гитхаба
На данный момент есть свежая версия 2.1.1, и даже появилась бета версия 3.0, но она мне не понравилась.
Настраивается там всего 1 единственный файл config.h. И то, если хотим подключить температурный сенсор, дисплей, или SD флешку. Если такое не нужно, то просто нажимаем кнопку компилировать.
Получаем файл с прошивкой firmware.bin
Чтобы зашить этот файл в модуль, есть программа Flash Download Tools. Работает без установки. Главное, чтобы в его пути не было русских букв. Лучше всего записать его в корень диска С.
С прошивкой, кстати тоже.
С этим всё. Теперь тонкости подключения.
Здесь нужно бы немножко потрудиться и спаять платку согласно схеме.
Модулю нужно питание не более 3.3 вольт. Значит нужен стабилизатор.
Далее, выводы EN, Rst, IO4, IO0 должны быть притянуты к + питания через резисторы. При этом вывод IO0 используется для перевода модуль в режим прошивки притягиванием к минусу. Вывод IO15 притянут к земле.
Подсоединяем USB-UART переходник +5в к VCC, GND - понятно, RX к RX, TX к TX.
Если брать названия RX TX на модуле, то крект накрест Rx к Tx, Tx к Rx.
Теперь хорошо бы убедиться, что связь вообще есть с модулем. Для этого подойдёт терминальная программа, например PUTTY.
КОМпорт вписываем свой, скорость 115200, впрочем возможно придётся подбирать. Жмём Open.
Откроется чёрное окно терминала с зелёным прямоугольником. Пишем заглавными буквами AT на английском. Если буквы появились - связь есть, можно закрывать программу. Если нет, меняем скорость соединения, повторяем.
Впринципе, можно пропустить это действие.
Вынимаем + из модуля, обесточиваем.
Запускаем Flash Download Tools
Ставим настройки как на картинке, выбираем файл с прошивкой firmware.bin, ставим птичку, смотрим на адрес справа.
Притягиваем IO0 модуля к GND перемычкой, подаём + на модуль и жмём START.
В случае успешного соединения, в полях отмеченных овалами появится информация о модуле, в том числе MAC адрес, а прошивка начнет заливаться, наполняя зелёной субстанцией горизонтальную линию ниже кнопок. После, будет FINISH.
Отключаем модуль, снимаем перемычку, включаем. Через 20-30 сек появится точка доступа ESP. Подключаемся к ней, узнаём адрес
Открываем браузер, вводим адрес и попадаем на первоначальную настройку в которой нужно закачать в модуль файл с интерфейсом.
Закачаваем, перезапускам модуль, и снова настройки, на этот раз уже финальные.
Прошивку принтера настраивать почти не нужно, лишь открыть UART 3 порт.
На примере SKR1.4 это делается несколько замороченно и неочевидно.
У меня например дисплей MKS TFT2.4 подключен по UART, а еще этому модулю нужен свой канал.
В этом случае придётся пожертвовать USB. Плата может только 2 UART обеспечить.
#define SERIAL_PORT 0 это порт для дисплея
#define SERIAL_PORT_2 3 это порт для вай фай (3)
Или
#define SERIAL_PORT 3 это порт для вай фай
#define SERIAL_PORT_2 -1 Это будет USB
Третий, потому что 2й висит на других выводах. А нам нужен специальный разьём Wi-Fi на плате.
Идём по адресу:
C:\Users\вашПК\.platformio\packages\framework-arduino-lpc176x\cores\arduino\HARDWARESERIAL.h
Назначаем там на этот третий порт номера выводов:
Строки 106 и дальше:
// Initialize UART pin connect
PinCfg.Funcnum = 3;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0;
PinCfg.Pinnum = 28;
PinCfg.Portnum = 4;
PINSEL_ConfigPin(&PinCfg);
PinCfg.Pinnum = 29;
PINSEL_ConfigPin(&PinCfg);
В этом файле содержится вся раскладка UART выводов.
Ну вот и всё, работает.
Но самая класссная штука:
Незадействованным IO портами можно легко управлять.
Посылаем команду [ESP201]P12 V1
[ESP201] - это даём понять, что команда предназначена вай фай модулю, а не плате принтера.
P12 это номер порта, может быть 2,4, 5, 12, 13, 14, 15, 16
V1 - вкл, V0 - Выкл.
Установить притяжку вывода к + или к -
PULLUP=YES
Например подключить рэле, или сервопривод, сбивающий отпечатанную модель со стола, вентилятор.
Или сделать 3D принтер с функцией умная розетка. Или просто напросто, включать БП принтера, но для этого модуль должен получать питание всегда.
В Веб интерфейсе можно добавить кнопку и назначить на неё нужное действие в виде макроса. Работает даже последовательность команд,
Включить вывод 4, подождать 5 секунд, включить пин 12, а вывод 4 выключить. ну и т.п.
А можно повесить на один из IO датчик температуры DHT11 и вывести показания на веб интерфейс. Например температуру в термокамере.
Еще больше интересных статей
Подключение мощного диодного лазера к 3D-принтеру
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Появилось у меня как-т...
Flying Bear 5. Плагин для Prusa в Shui и Input Shapers.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
G-CODE по-русски для 3D печати (Мини-справочник)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Здравствуйте, Сайт V. Besmens....
Чисто для истории: техподдержк...
ЗдавствуйтеЯ делал драйвер с п...
Надо настроить отправку файла...
Опыта в печати довольно мало,...
Спросил у сотрудника техподдер...
День добрый однако, возн...