Кремень КД Реклама
Кремень КМ Реклама

ESP3D, Wi-Fi для принтера. Прошивка.

McPaul
Идет загрузка
Загрузка
21.09.2020
17098
25
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

17

Функционал системы ESP3D вызывает весьма много споров.

Есть как недостатки, так и достоинства.

Недостатки - это скорее тема требований. Для некоторых они будут критическими, для других, несущественными.

Что позволяет эта система:

1. Полное управление 3D принтером

Подвигать осями, включать нагреватели, вентиляторы. 

2. Послать команду принтеру. Очень часто нужно инициализировать EEPROM, узнать настройки, кол-во шагов на мм, провести калибровки PID, экструдера. Ввести новые настройки в память.

   2.1 Послать команду модулю. Подать 1 или 0 на определённый IO, подождать заданное кол-во времени.

3. Вести печать прямо из компьютера через программу Repetier Host, например.

Вот это все у него очень хорошо получается. Впрочем п.3 имеет особенности, ввиду зависимости от Wi-Fi. 

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

ESP3D, 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. Работает без установки. Главное, чтобы в его пути не было русских букв. Лучше всего записать его в корень диска С.

С прошивкой, кстати тоже.

С этим всё. Теперь тонкости подключения.

Здесь нужно бы немножко потрудиться и спаять платку согласно схеме.

ESP3D, Wi-Fi для принтера. Прошивка.

Модулю нужно питание не более 3.3 вольт. Значит нужен стабилизатор.

Далее, выводы EN, Rst, IO4, IO0 должны быть притянуты к + питания через резисторы. При этом вывод IO0 используется для перевода модуль в режим прошивки притягиванием к минусу. Вывод IO15 притянут к земле.

ESP3D, Wi-Fi для принтера. Прошивка.

Подсоединяем USB-UART переходник +5в к VCC, GND - понятно, RX к RX, TX к TX.

Если брать названия RX TX на модуле, то крект накрест Rx к Tx, Tx к Rx.

Теперь хорошо бы убедиться, что связь вообще есть с модулем. Для этого подойдёт терминальная программа, например PUTTY.

ESP3D, Wi-Fi для принтера. Прошивка.КОМпорт вписываем свой, скорость 115200, впрочем возможно придётся подбирать. Жмём Open.

Откроется чёрное окно терминала с зелёным прямоугольником. Пишем заглавными буквами AT на английском. Если буквы появились - связь есть, можно закрывать программу. Если нет, меняем скорость соединения, повторяем.

Впринципе, можно пропустить это действие.

Вынимаем + из модуля, обесточиваем.

Запускаем Flash Download Tools

ESP3D, Wi-Fi для принтера. Прошивка.Ставим настройки как на картинке, выбираем файл с прошивкой firmware.bin, ставим птичку, смотрим на адрес справа.

Притягиваем IO0 модуля к GND перемычкой, подаём + на модуль и жмём START.

В случае успешного соединения, в полях отмеченных овалами появится информация о модуле, в том числе MAC адрес, а прошивка начнет заливаться, наполняя зелёной субстанцией горизонтальную линию ниже кнопок. После, будет FINISH.

Отключаем модуль, снимаем перемычку, включаем. Через 20-30 сек появится точка доступа ESP. Подключаемся к ней, узнаём адрес

ESP3D, Wi-Fi для принтера. Прошивка.

Открываем браузер, вводим адрес и попадаем на первоначальную настройку в которой нужно закачать в модуль файл с интерфейсом. 

Закачаваем, перезапускам модуль, и снова настройки, на этот раз уже финальные.

Прошивку принтера настраивать почти не нужно, лишь открыть 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 и вывести показания на веб интерфейс. Например температуру в термокамере.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

17
Комментарии к статье