MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.23k stars 19.22k forks source link

Feature Request - MKS-TFT32/TFT28 support #6789

Closed viperfan7 closed 5 years ago

viperfan7 commented 7 years ago

Any chance we could see support for the MKS TFT32/TFT28 in the future?

Maglin commented 7 years ago

Everyone wants this. They are cheap but also kind of closed source so modifying the FW is a daunting task. To my knowledge.

fiveangle commented 7 years ago

Someone did start an alternative FW, very much in dev stage:

https://github.com/robotsrulz/MKS-TFT

RalphSch commented 7 years ago

Finally got one to play with :) The MKS TFTs are the same display types like the PanelDue or Octoprint on an RaspberryPi, they are completely independent controllers with displays which are just talking gcode through a serial connection to the printer controller. A very cool alternative are the Nextion touch screens, there is already a project-file for an Marlin GUI. The main question for all these kind of smart-serial-controllers is: Does Marlin support multiple serial connections at once (also interesting for stepper drivers like the TMC2208) to support such displays without losing direct USB connectivity?

AnHardt commented 7 years ago

@RalphSch Even if a bit lengthy the current state is well described in #8004 .

tcm0116 commented 7 years ago

@viperfan7 What control board are you using? #8004 adds UART support for LPC1768-based controllers, which indirectly allows the MKS TFT32/28 to work if you configure Marlin to use the serial port the the MKS TFT is connected to. However, Marlin currently doesn't support having multiple host interfaces in Marlin, so you won't be able to have the MKS TFT connected to one UART and send commands from a PC via another UART or USB. That's something that's definitely on the TODO list.

My particular control board (a BIQU BQ111-A4) is LPC1768-bsed, but doesn't provide access to the native USB port on the LPC1768. Instead, it uses a UART to USB bridge and then runs the UART0 connection to the MKS TFT and to the UART to USB bridge in parallel. I can select the Disconnect option in the MKS TFT to allow me to send commands from the PC via the UART to USB bridge. It's a work-around, but actually works pretty well, except for I lose some of the added features provided by the native USB interface, such as being able to copy files to the system SD card directly from the PC.

Nutz95 commented 6 years ago

Hello, i'm also using a MKS-TFT display and i struggle to make it communicate to marlin. I've tried the Aux port as it's usually working (it's supported by smoothieware). And i've also tried the side UART (Re-Arm) port linked to the display. They don't seem to speak to each other.

If it's a limitation for now to be able to use only 1 UART, On my side i'm not using the USB UART. So is there a way to reroute the UART to the ReArm Side port? -I've made some test using Voltage convertor , to convert 3.3V from Re-Arm to 5V from Display. But so far no luck. Any advice on this?

marcio-ao commented 6 years ago

I suppose this is off-topic, since it does not pertain on this particular screen in the FR, but we are working on a touchscreen implementation for Marlin. We are looking to manufacture the display boards as open source hardware. The screen controller is an FTDI FT81x which offloads most of the work from the microcontroller to a graphics engine. The SPI traffic is a lot less than using the RepRapDiscount boards.

UPDATE: Looks like someone else already manufactures these

thinkyhead commented 6 years ago

Thanks to a helpful contributor we now have support for the controller used in the Malyan M200.

9470 / #9485

flankerzo commented 6 years ago

Hi, i have problem, when i enable Malyan M200 LCD support (for MKS TFT2.8), compiling shows error :

sketch\malyanlcd.cpp: In function 'void write_to_lcd_P(const char*)':
malyanlcd.cpp:62: error: 'Serial1' was not declared in this scope
 #define LCD_SERIAL Serial1
                    ^
sketch\malyanlcd.cpp:80:3: note: in expansion of macro 'LCD_SERIAL'
   LCD_SERIAL.Print::write(encoded_message, message_length);
   ^
sketch\malyanlcd.cpp: In function 'void write_to_lcd(const char*)':
malyanlcd.cpp:62: error: 'Serial1' was not declared in this scope
 #define LCD_SERIAL Serial1
                    ^
sketch\malyanlcd.cpp:90:3: note: in expansion of macro 'LCD_SERIAL'
   LCD_SERIAL.Print::write(encoded_message, message_length);
   ^
sketch\malyanlcd.cpp: In function 'void update_usb_status(bool)':
malyanlcd.cpp:381: error: 'Serial' was not declared in this scope
   if (last_usb_connected_status != Serial || forceUpdate) {
                                    ^
In file included from sketch\fastio.h:60:0,
                 from sketch\MarlinConfig.h:26,
                 from sketch\malyanlcd.cpp:44:
sketch\malyanlcd.cpp: At global scope:
macros.h:47: error: attributes are not allowed on a function-definition
 #define _O2          __attribute__((optimize("O2")))
                      ^
sketch\malyanlcd.cpp:393:19: note: in expansion of macro '_O2'
 void lcd_update() _O2 {
                   ^
sketch\malyanlcd.cpp: In function 'void lcd_update()':
malyanlcd.cpp:62: error: 'Serial1' was not declared in this scope
 #define LCD_SERIAL Serial1
                    ^
sketch\malyanlcd.cpp:400:10: note: in expansion of macro 'LCD_SERIAL'
   while (LCD_SERIAL.available()) {
          ^
sketch\malyanlcd.cpp: In function 'void lcd_init()':
malyanlcd.cpp:62: error: 'Serial1' was not declared in this scope
 #define LCD_SERIAL Serial1
                    ^
sketch\malyanlcd.cpp:430:3: note: in expansion of macro 'LCD_SERIAL'
   LCD_SERIAL.begin(250000);
   ^
exit status 1
'Serial1' was not declared in this scope

using latest 1.x.x bugfix marlin 010109 also i want to add filament runout sensor, where to connect it ? to servo pin (configuring marlin) or TFT LCD ? Thanks for response

thinkyhead commented 6 years ago

@flankerzo — Thanks for the note. Malyan LCD is already working in bugfix-2.0.x, and I've just patched it to work in bugfix-1.1.x also. Download the latest code to continue.

You can choose where you want to connect the filament runout sensor. The most preferred connector to use is one of your unused endstop pins.

flankerzo commented 6 years ago

Sorry for late update, it works, unfortunately my induction sensor fried Z min pin on mks gen L. i will fix it, Thank you :)

Psyc0Flyer commented 6 years ago

I have the MKS TFT32_L V2.0 and the Nextion 5" touch screens and I would like to use one on my PRUSA i3 MK3 with OctoPrint running on a Pi 3 B. Any advice?

thinkyhead commented 6 years ago

Any advice?

Try MarlinKimbra.

boelle commented 5 years ago

@viperfan7 is this one still relavant?

InsanityAutomation commented 5 years ago

I would say given that these are external streamers and have no bearing in the firmware space, no. This should be closed.

boelle commented 5 years ago

@thinkyhead i think we can close this one given what @InsanityAutomation said

github-actions[bot] commented 4 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.