32 бита для 3D принтера
Re: 32 бита для 3D принтера
Выложил на гитхаб схему и плату для панели версии 3 - с поддержкой резистивного тачскрина. Прошивка также обновлена. Тачскрин уже работает корректно, можно пользоваться. Интерфейс остался классический текстовый, а для редактирования параметров появились "кнопки". Пока для нормальной работы тачскрина нужно собирать прошивку с параметром TEST_TOUCH и при подаче питания на панель нажать на экран - запустится процесс калибровки по вертикали. Полученные значения констант нужно прописать в прошивку и пересобрать, можно уже без TEST_TOUCH. Это временное решение, так как пока не сделал чтение/сохранение коррекции во флеш. Так же пока не сделал для тачскрина учёт ориентации экрана, подразумевается левосторонний шлейф. Плата в проекте разработана под корпус и экран от китайского мини Айфона.
- Реклама
Re: 32 бита для 3D принтера
Сделал для тачскрина учёт ориентации экрана и сохранение калибровки. Можно пользоваться.
Re: 32 бита для 3D принтера
Я из какого-то китайского телефона вытащил экран на типа таком же чипе (ID вычитал), но тоже так и не завёл его. Максимум, что могу сделать - выложить инициализацию, которую пробовал, а дальше по мануалу на чип смотрите.
Re: 32 бита для 3D принтера
[uquote="Serj_K",url="/forum/viewtopic.php?p=3956006#p3956006"]Максимум, что могу сделать - выложить инициализацию, которую пробовал, а дальше по мануалу на чип смотрите.[/uquote]
Выложите пожалуйста.
Ещё такой вопрос: подключил другой экран от телефона с тачскрином, запускают калибровку тачскрина сначала крестик вверху и внизу нажимаю, а потом прямоугольник белый по углам перескакивает от нажатия и все. Как должно быть?
После калибровки экран на нажатия не реагирует или в прошивке что-то нужно включить?
Подключил по i2c к Marlin 2.0.
Выложите пожалуйста.
Ещё такой вопрос: подключил другой экран от телефона с тачскрином, запускают калибровку тачскрина сначала крестик вверху и внизу нажимаю, а потом прямоугольник белый по углам перескакивает от нажатия и все. Как должно быть?
После калибровки экран на нажатия не реагирует или в прошивке что-то нужно включить?
Подключил по i2c к Marlin 2.0.
- Реклама
Re: 32 бита для 3D принтера
Так и должно быть в режиме калибровки - после калибровки просто проходит проверка как по строкам и сторонам реагирует. Режим калибровки включается только до запуска основной прошивки. При обычном использовании просто до загрузки Марлина не нужно давить на экран.
Какая основная плата используется?
Какая основная плата используется?
Re: 32 бита для 3D принтера
Mega2560. Я имею ввиду, что в режиме калибровки реагирует на тачскрин, а после загрузки Марлина не реагирует на касания. Может в прошивке что-то надо включить?
Re: 32 бита для 3D принтера
У меня сейчас нет платы на Меге для проверки, когда-то на I2C всё работало нормально, правда на тот момент с энкодером. Но тачскрин эмулирует энкодер и для Марлина разницы нет. Вопрос - после загрузки Марлина панель инициализируется нормально и отображает основное окно? Я посмотрю исходники панели в части I2C. Также будет маленькое изменение в части UBL в самом Марлине и в панели - небольшое упрощение в выводе.
Re: 32 бита для 3D принтера
Раз есть вывод на экран значит сам I2C работает. Кстати, если есть подтягивающие резисторы на стороне Меги, то их нужно убрать на всякий случай, так как они подтягивают к +5В. Резисторы должны быть только на стороне панели.
Кнопка В1 - это кнопка "назад", в основном окне она ничего не делает. В основном окне нажатие на тачскрин обрабатывается только как нажатие на энкодер для входа в меню. Если после калибровки тачскрина в тесте всё поле экрана обрабатывалось нормально, то и в основном режиме всё должно работать, так как для работы тачскрина используются одни и те же процедуры. Почему не работает - пока не знаю, нужно в отладке посмотреть. Если есть возможность, то проверить работу с подключением по SPI. Честно говоря, я не проверял работу панели V3 с подключением по I2C. Но проблем быть не должно, так как обработка тача никак не связана с используемым интерфейсом.
Кнопка В1 - это кнопка "назад", в основном окне она ничего не делает. В основном окне нажатие на тачскрин обрабатывается только как нажатие на энкодер для входа в меню. Если после калибровки тачскрина в тесте всё поле экрана обрабатывалось нормально, то и в основном режиме всё должно работать, так как для работы тачскрина используются одни и те же процедуры. Почему не работает - пока не знаю, нужно в отладке посмотреть. Если есть возможность, то проверить работу с подключением по SPI. Честно говоря, я не проверял работу панели V3 с подключением по I2C. Но проблем быть не должно, так как обработка тача никак не связана с используемым интерфейсом.
Re: 32 бита для 3D принтера
Если выбираю #define TFTGLCD_PANEL_SPI, компиляция останавливается на ошибке:
In file included from c:\1\marlin-bugfix-2.0.x\marlin\src\hal\avr\hal.h:22:0,
from Marlin\src\lcd\TFTGLCD\../../inc/../HAL/HAL.h:30,
from Marlin\src\lcd\TFTGLCD\../../inc/MarlinConfig.h:31,
from Marlin\src\lcd\TFTGLCD\marlinui_TFTGLCD.h:28,
from Marlin\src\lcd\TFTGLCD\marlinui_TFTGLCD.cpp:45:
Marlin\src\lcd\TFTGLCD\marlinui_TFTGLCD.cpp: In static member function 'static void MarlinUI::init_lcd()':
c:\1\marlin-bugfix-2.0.x\marlin\src\hal\avr\fastio.h:87:35: error: 'DIOTFTGLCD_CS_DDR' was not declared in this scope
#define _SET_OUTPUT(IO) SBI(DIO ## IO ## _DDR, DIO ## IO ## _PIN)
^
c:\1\marlin-bugfix-2.0.x\marlin\src\hal\shared\marduino.h:48:21: note: in definition of macro 'SBI'
#define SBI(A,B) (A |= (1 << (B)))
^
Marlin\src\lcd\TFTGLCD\marlinui_TFTGLCD.cpp:316:5: note: in expansion of macro '_SET_OUTPUT'
_SET_OUTPUT(TFTGLCD_CS);
^
c:\1\marlin-bugfix-2.0.x\marlin\src\hal\avr\fastio.h:87:54: error: 'DIOTFTGLCD_CS_PIN' was not declared in this scope
#define _SET_OUTPUT(IO) SBI(DIO ## IO ## _DDR, DIO ## IO ## _PIN)
^
c:\1\marlin-bugfix-2.0.x\marlin\src\hal\shared\marduino.h:48:33: note: in definition of macro 'SBI'
#define SBI(A,B) (A |= (1 << (B)))
^
Marlin\src\lcd\TFTGLCD\marlinui_TFTGLCD.cpp:316:5: note: in expansion of macro '_SET_OUTPUT'
_SET_OUTPUT(TFTGLCD_CS);
^
At global scope:
cc1plus.exe: warning: unrecognized command line option '-Wno-register'
*** [.pio\build\mega2560\src\src\lcd\TFTGLCD\marlinui_TFTGLCD.cpp.o] Error 1
А вот этот тест в калибровке как работает? Прямоугольник следует за нажатием или на него надо нажимать?
У меня он перемещается по углам когда на него нажимаешь, может проблема в моем тачскрине.
Спойлер
Compiling .pio\build\mega2560\src\src\lcd\TFTGLCD\marlinui_TFTGLCD.cpp.oIn file included from c:\1\marlin-bugfix-2.0.x\marlin\src\hal\avr\hal.h:22:0,
from Marlin\src\lcd\TFTGLCD\../../inc/../HAL/HAL.h:30,
from Marlin\src\lcd\TFTGLCD\../../inc/MarlinConfig.h:31,
from Marlin\src\lcd\TFTGLCD\marlinui_TFTGLCD.h:28,
from Marlin\src\lcd\TFTGLCD\marlinui_TFTGLCD.cpp:45:
Marlin\src\lcd\TFTGLCD\marlinui_TFTGLCD.cpp: In static member function 'static void MarlinUI::init_lcd()':
c:\1\marlin-bugfix-2.0.x\marlin\src\hal\avr\fastio.h:87:35: error: 'DIOTFTGLCD_CS_DDR' was not declared in this scope
#define _SET_OUTPUT(IO) SBI(DIO ## IO ## _DDR, DIO ## IO ## _PIN)
^
c:\1\marlin-bugfix-2.0.x\marlin\src\hal\shared\marduino.h:48:21: note: in definition of macro 'SBI'
#define SBI(A,B) (A |= (1 << (B)))
^
Marlin\src\lcd\TFTGLCD\marlinui_TFTGLCD.cpp:316:5: note: in expansion of macro '_SET_OUTPUT'
_SET_OUTPUT(TFTGLCD_CS);
^
c:\1\marlin-bugfix-2.0.x\marlin\src\hal\avr\fastio.h:87:54: error: 'DIOTFTGLCD_CS_PIN' was not declared in this scope
#define _SET_OUTPUT(IO) SBI(DIO ## IO ## _DDR, DIO ## IO ## _PIN)
^
c:\1\marlin-bugfix-2.0.x\marlin\src\hal\shared\marduino.h:48:33: note: in definition of macro 'SBI'
#define SBI(A,B) (A |= (1 << (B)))
^
Marlin\src\lcd\TFTGLCD\marlinui_TFTGLCD.cpp:316:5: note: in expansion of macro '_SET_OUTPUT'
_SET_OUTPUT(TFTGLCD_CS);
^
At global scope:
cc1plus.exe: warning: unrecognized command line option '-Wno-register'
*** [.pio\build\mega2560\src\src\lcd\TFTGLCD\marlinui_TFTGLCD.cpp.o] Error 1
У меня он перемещается по углам когда на него нажимаешь, может проблема в моем тачскрине.
Re: 32 бита для 3D принтера
В тесте тача прямоугольник засвечивается там, куда ткнуть. При удержании нажатия следует за точкой нажатия. Даже если тач подключен не правильно, то на нажатие вроде должен реагировать. Я неправильное подключение не проверял и в прошивке такая ситуация не обрабатывается. Для проверки правильности подключения можно раскомментировать строчку с #define CALIBR_DEBUG_INFO. При этом при нажатии на крестики будут отображаться значения АЦП. АЦП 12-разрядный -> максимум = 4095. Подразумевается, что меньшее значение АЦП сверху. Поэтому значение для верхней точки калибровки должно быть расчётно примерно 400, а для нижней - примерно 3600, плюс-минус несколько сотен в зависимости от качества тача на краях и точности тыкания в крест. Я тыкал карандашом - типа "стилусом". Если значения наоборот, то нужно переставить местами пины для TS_YU и TS_YD. Если и Х наоборот, то и для неё пины переставить.
По ошибке - явно используется НЕ плата с RAMPS, та как я добавил поддержку панели для Меги только для RAMPS. По добавлению панели в другие платы написано на Гитхабе. В принципе за образец можно взять тот же RAMPS - смотреть окрестности строки с TFTGLCD_CS в pins_RAMPS.h.
Если плата таки другая, то я попрошу в любом случае проверить панель с ней и по SPI, тогда я добавлю в Марлин и её поддержку.
Приложил видео с калибровкой тача для демонстрации.
По ошибке - явно используется НЕ плата с RAMPS, та как я добавил поддержку панели для Меги только для RAMPS. По добавлению панели в другие платы написано на Гитхабе. В принципе за образец можно взять тот же RAMPS - смотреть окрестности строки с TFTGLCD_CS в pins_RAMPS.h.
Если плата таки другая, то я попрошу в любом случае проверить панель с ней и по SPI, тогда я добавлю в Марлин и её поддержку.
Приложил видео с калибровкой тача для демонстрации.
- Вложения
-
- Touchscreen-test.part2.rar
- Видео калибровки тачскрина часть 2
- (812.4 КБ) 200 скачиваний
-
- Touchscreen-test.part1.rar
- Видео калибровки тачскрина
- (878.91 КБ) 182 скачивания
Re: 32 бита для 3D принтера
[uquote="Serj_K",url="/forum/viewtopic.php?p=3956373#p3956373"]Приложил видео с калибровкой тача для демонстрации.[/uquote]
Теперь понятно. У меня прямоугольник только по углам перемещается. В центр не смещается совсем.
Калибровку победил, теперь как на вашем видео. Подобрал методом тыка пины. Получилось PA0-YU, PA1-XL, PA2-YD, PA3-XR.
Но в меню так и не заходит и не реагирует на касания совсем.
[uquote="Serj_K",url="/forum/viewtopic.php?p=3956373#p3956373"]По ошибке - явно используется НЕ плата с RAMPS[/uquote]
Обычная Arduino mega и ramps v1.4.
Спасибо за видео.
Теперь понятно. У меня прямоугольник только по углам перемещается. В центр не смещается совсем.
Калибровку победил, теперь как на вашем видео. Подобрал методом тыка пины. Получилось PA0-YU, PA1-XL, PA2-YD, PA3-XR.
Но в меню так и не заходит и не реагирует на касания совсем.
[uquote="Serj_K",url="/forum/viewtopic.php?p=3956373#p3956373"]По ошибке - явно используется НЕ плата с RAMPS[/uquote]
Обычная Arduino mega и ramps v1.4.
Спасибо за видео.
Re: 32 бита для 3D принтера
Попробовал собрать Марлин под АВР - тоже получил эту ошибку. Решение проблемы - в marlinui_TFTGLCD.срр изменить _SET_OUTPUT(TFTGLCD_CS); на SET_OUTPUT(TFTGLCD_CS); - то есть убрать передний символ подчёркивания.
Почему не работает тач в обычном режиме не понимаю. Что, даже не пикает при нажатии?
Почему не работает тач в обычном режиме не понимаю. Что, даже не пикает при нажатии?
Re: 32 бита для 3D принтера
Попробую позже сделать и проверить по spi.
Не пикает, совсем реакции нет никакой. Может я в прошивке экрана или Марлин что-то не включил?
Подключал к компу через repetier host иконки на экране становятся цветными при включении в пороге.
Что делают 4 кнопки, у меня только при нажатии на одну пикает базер, но ничего не происходит. На остальные реакции - нет.
Не пикает, совсем реакции нет никакой. Может я в прошивке экрана или Марлин что-то не включил?
Подключал к компу через repetier host иконки на экране становятся цветными при включении в пороге.
Что делают 4 кнопки, у меня только при нажатии на одну пикает базер, но ничего не происходит. На остальные реакции - нет.
Re: 32 бита для 3D принтера
По кнопкам - в тачскриновом варианте реально может использоваться только одна - "назад" и, как я уже сказал, в основном окне она не работает, так как некуда возвращаться. Поэтому остальные кнопки для этого варианта я даже не обрабатываю. В принципе все кнопки кроме "назад" дублируются энкодером при его использовании и тоже фактически не нужны. Теоретически на них можно зацепить какой-нибудь свой функционал, но и в Марлин его тоже нужно будет добавлять, причём как-то глобально, ибо панель возвращает только состояние кнопок. Либо привязать в перспективе некий функционал исключительно для панели, например вызов какого-нибудь перспективного конфигуратора. Но это кому надо будет, мне пока такой функционал даже не видится.
Закинул пуллреквест с правками на Марлин - фикс ошибки сборки с АВР и правка для вывода строки редактирования в окне UBL. Также закинул изменения и для панели, но тут в основном оптимизация для UBL, по тачу ничего критичного.
Закинул пуллреквест с правками на Марлин - фикс ошибки сборки с АВР и правка для вывода строки редактирования в окне UBL. Также закинул изменения и для панели, но тут в основном оптимизация для UBL, по тачу ничего критичного.
Re: 32 бита для 3D принтера
Почему-то по SPI не хочет подключаться. Мне нужно подключить SCK, MISO, MOSI на AUX-3 LSD-CS не пойму куда?
LSD-CS на какой пин Ramps 31 или 33?
LSD-CS на какой пин Ramps 31 или 33?
Re: 32 бита для 3D принтера
LSD-CS на 33
Re: 32 бита для 3D принтера
g1obus, как обещал выкладываю старый файл, в которм была попытка завести экран на чипе RV. Из него брать только нужные фрагменты, вместо родного НЕ ИСПОЛЬЗОВАТЬ!!!! Если вдруг удастся завести экран - мне в ответку правленный файл для добавления поддержки такого чипа.
- Вложения
-
- LCD.rar
- (5.38 КБ) 167 скачиваний


