luc-github / ESP3D

FW for ESP8266/ESP8285/ESP32 used with 3D printer
GNU General Public License v3.0
1.73k stars 465 forks source link

Using with MKS TFT Wifi - Any Success? #249

Closed ZhuDaHai closed 5 years ago

ZhuDaHai commented 6 years ago

Issue #206 was closed back in March concerning using the MKS TFT Wifi board with this ESP3D firmware. I also have the MKS TFT28 display board and the MKS TFT Wifi board, and the default closed-source firmware from MKS is very limited. So I'd like to see if this could work. And so was wondering if you'd made any progress on this and/or if there was anything I could do to help. Thanks! P.S. As a side note, I updated the MKS TFT WIFI board with the ESP3D firmware, but now I cannot go back. I don't know why, but while I can load the original MksWifi.bin file and set the mks_config.txt file on the SD card to update, and it does appear to update, the MKS TFT WIFI board will not switch out of AP mode no matter what I try. Thoughts? Thanks!

luc-github commented 4 years ago

You need to set the module as MKS-HLKWIFI module in MKS config, as I explained above https://github.com/luc-github/ESP3D/issues/249

The protocol you use is the MKS WIFI TFT but I implemented the MKS-HLK-WIFI protocol

slm4996 commented 4 years ago

I do not see a way to do that in the MKS_Config.txt. Maybe I just do not know the definition to add...

Here is what I have: `

Wifi mode (0:sta;1:ap)

cfg_wifi_mode:0

Wifi name

cfg_wifi_ap_name:MySSID

Wifi password

cfg_wifi_key_code:password

Cloud service enable (0: disabled; 1: enabled)

cfg_cloud_enable:0

Cloud service address

cfg_wifi_cloud_host:www.baizhongyun.cn

Cloud service port

cfg_cloud_port:10086 `

slm4996 commented 4 years ago

Found it, here what you need ofr anyone else looking:

wifi model(MKS WIFI TFT:0; MKS HLK-WIFI:1)

>cfg_wifi_type:1

slm4996 commented 4 years ago

Setting the cfg_wifi_type to 1 made no difference, the printer still shows no info under the WiFi reporting and ESP3D commands are ignored.

Command triggered on the LCD (Home, Fan speed, Temp) are shown in the ESP3D console though...

luc-github commented 4 years ago

Using hk protocol means also you use hk wiring

luc-github commented 4 years ago

Tx and rx are not in same position depending protocol https://github.com/luc-github/ESP3D/issues/249#issuecomment-475857956

slm4996 commented 4 years ago

The wiring is not alterable, the ESP module plugs directly into headers on the main board and after digging into the firmware and trying to change the config with stock module firmware, this board only runs in HLKWIFI mode.

This is the schematic for the board / module interface: Capture

Since I am seeing printer commands in the ESP3D interface, I can assume that the RX pin was defined correctly (I was using -1 to let the board definitions override). I am now setting those manually and retrying.

Anyway I can have ESP3D display the full serial info it is receiving from the printer, or does the console do that by default?

slm4996 commented 4 years ago

Same results when defining the TX and RX pins for the board. I see the LCD issues commands in ESP3D, but the printer shows blanks for WiFi info and ignores all commands sent by ESP3D.

slm4996 commented 4 years ago

I have confirmed that the pin definitions / wiring are correct by flashing the printer with stock marlin firmware. ESP3D works great!

So it seems the printer ignoring the commands is due to it thinking WiFi is not connected.

luc-github commented 4 years ago

do you have picture of your tft wifi connector and the wifi module itselft ?

atomphil commented 4 years ago

connector

the module

pictures: top side bottom

it looks like a bare ESP

luc-github commented 4 years ago

So I suspect it ignore

#wifi model(MKS WIFI TFT:0; MKS HLK-WIFI:1)
>cfg_wifi_type:1

and only the MKS WIFI TFT protocol is enabled, I think you can confim it by checking the TX output from your board with MKS HLK-WIFI enabled it should be same as the one you show at the top of thread

but you mentioned

this board only runs in HLKWIFI mode.

which is confusing because :

��Mordor <SanitizedWifiPassword>www.baizhon12345678f' HJNLMuser�CS1.0.2_180327⸮⸮�� M27 M997 M115 ⸮⸮

is not HLKWIFI but the MKS WIFI TFT

slm4996 commented 4 years ago

That may be mistake in protocol vs module naming I guess. MKS calls the 16 pin esp12 based module MKS-HLKWIFI and the smaller 6? Pin package the mks-tftwifi.

slm4996 commented 4 years ago

Also, I'll add a little tidbit here, if you export the binary from Arduino IDE and rename it mkswifi.bin you can upload it to the stock firmware web interface or put it on your SD card and reboot the printer and it will flash it. Going back to stock is the same thing just give it the stock MKSWiFi.bin and it will revert back.

No need to take it out of the printer and wire it all up just to flash.

luc-github commented 4 years ago

TFT screen - support 2 wifi modules 1 is ESP chip based - the MKS-TFT WIFI - communication protocole use binary and text 2 is another chip based - the MKS-HLK-WIFI - communication protocole use AT command

your board is not TFT screen so it may only support ESP chip based wifi module so that is the issue as I did not decoded/simulated the ESP based communication protocole.

So to sum up need to decode the ESP communication protocole which use txt and binary, so if you can do it I could implemented it.

@slm4996 feel free to create page on wiki for this update process - it is nice tip, for screenshots you just upload them to this thread and link them in wiki page ^_^ as wiki upload are not allowed unfortunally

slm4996 commented 4 years ago

@luc-github Do you happen to know of a good ESP firmware that just dumps the serial RX into a web view? That would be by far the easiest way for me to gather everything we need without having to tear open my printer and attempt to sniff off the pins,

Edit: At least it will let me see what the printer is sending first. Then I can decide how much deeper I want to pursue this :-)

luc-github commented 4 years ago

easy : disable the MKS_TFT_FEATURE by comment it and connect RX/TX like usual - it will act as any serial bridge but I do not think it will work as you printer FW block the serial port until communication is validated by printer FW, this will be same with any ESP FW bridge

atomphil commented 4 years ago

@slm4996 What is if you install Marlin on your Robin Board?

slm4996 commented 4 years ago

@atomphil Are you asking how to install Marlin? Easiest way if you are new to compiling is to grab the binary that matches your leveling setup from here: https://drive.google.com/drive/u/0/folders/1Q7Ek-_XjRfyZtT4h-S0gb42UhNj8OgRF

Courtesy of a user on the FLSun QQ-S Facebook user group.

@luc-github I will have to track down a better probe or rig an adapter to sniff the communication while the ESP is plugged into the control board. I may just solder a couple temporary wires to the ESP TX/RX pins for now.

trfr3ak commented 4 years ago

Is the wiring configuration of the mks tft already in the wiki? Because I cant seem to find it. =/

luc-github commented 4 years ago

it is is this thread https://github.com/luc-github/ESP3D/issues/249#issuecomment-502845396

trfr3ak commented 4 years ago

ah thanks, so the mks tft wifi module doesnt work with esp3d. I have nodemcus laying around, are these better suited to run esp3d?

luc-github commented 4 years ago

yes it works but you must change the wiring

bthome commented 4 years ago

@luc-github Trying to follow this thread...interested in the last part. Is there a combination of MKS board + MKS TFT (connected to Aux 1 on board) + NodeMCU + esp3d? If so where do you wire in the NodeMCU? Can you use the WiFi connector to the TFT back to the NodeMCU as a passthru?

luc-github commented 4 years ago

I do not know if your MKS board has several Serial on board you need to check the pinout and FW used so I do not know if you can connect tft and esp board on main board but mks <=>TFT<=>ESP should works, with all limitations explained in this thread of course same wiring as https://github.com/luc-github/ESP3D/issues/249#issuecomment-502845396

ithinkido commented 4 years ago

https://github.com/makerbase-mks/MKS-TFT/issues/342#issuecomment-570071885

luc-github commented 4 years ago

@ithinkido very nice - I have a TFT3.2 V2 and V4 I will give a try

dchauran commented 4 years ago

So if I'm following this correctly, the current state is that you can use this with marlin firmware, OR you can use it with an MKS firmware which supports the HLK wifi. Sound right? This may change if someone can sniff the AT commands for you?

If I use it with Marlin, do I need the MKS TFT feature, or will it just work as-is (so long as Marlin has the wifi port enabled)?

luc-github commented 4 years ago

no at all

HKL wifi use AT commands, this is the one ESP3D simulate to enable communication with mks tft

Marlin does not have wifi port, I think you misunderstood Marlin configuration which support Marlin installation on ESP32 based board.

dchauran commented 4 years ago

I guess I am very confused here? I installed esp3d on the wifi board no problem, it uploaded using the stock firmware uploader, but it cannot communicate with the printer.

This is the MKS Wifi module on an MKS Robin Mini, with an MKS TFT and the, and I can print to it using the cura MKS TFT plugin, so I figured that the MKS TFT functionality should be what it needed?

luc-github commented 4 years ago

ok with such info about your config it is more clear the mks wifi module you describe is not the mks wifi 1.0 but fw should be compatible I do not know the mks Robin , is Marlin the open source version? where this wifi module is plugged ? mks robin or tft?

dchauran commented 4 years ago

There is a closed source fw that comes with it, but there is also a marlin version which works with it. Neither seems to work with your fw.

The module itself is plugged into the board, which makes me think the stock fw must have something to emulate the tft functionality for printing. Unfortunately the schematic for the board leaves it unclear where the module is connected, but the marlin port author mentioned that it may be connected to another serial port on the board, in which case I may just need to figure out how to enable that.

luc-github commented 4 years ago

if on board then it use serial and Marlin configuration can be the problem, be sure baudrate is same for this port and on esp3d, also in theory no need the mks feature in ESP3D as no AT command is used by Marlin

dchauran commented 4 years ago

Okay, I found the pins in the schematic, it is not connected to the tft, but to the cpu as txd0 and rxd0, so now I just have to figure out how to tell marlin to us those pins as serial, and then I don't need the mks tft config. Sound correct?

luc-github commented 4 years ago

Yes - sound right

iz3man commented 4 years ago

Do my thinking this MKS Wifi board is USELESS. Total waste of money. I bought it overpriced - it's just the ESP12 with a PCB. You can get that for $2, but it sells for 5 times that much. I thought it would give real WIFI access to the printer, but all it does is enable 3d print from my MOBILE PHONE? Who thought that this could be a use case? Complete junk. I could install ESP3D on another esp but will have to live with the super slow upload of gcode. Any ideas how to change that? Any solution for this?

luc-github commented 4 years ago

Any ideas how to change that? Any solution for this?

what do you mean?

iz3man commented 4 years ago

No. Unfortunately not. It was just an emotional rant because i was pi**ed that i spent money for it. I would have loved to see ESP3D on it like with panucatt's daughter board i have. This is super reliable and has fast gcode transfer rates. I will miss it with this printer. 😉

ETE-Design commented 4 years ago

You can flash ESP3D to the MKS WiFi Module... Also now that MKS have open Sourced their MKS Screen's it may be possible to find a way to make it Work Better?

luc-github commented 4 years ago

@iz3man I am checking how to add BTT TFT onboard SD and Udisk support to ESP3D seems there is no API/ command available I need to see how to add it in BT(unlike MKS which has it), in same time I am checking if I can hook esp to tft SD connector to allow fast upload, but the esp01 does not have enough pins so I need to use a D1 mini so I can use sd card header, I do not know if it will work, I need to test lot of things to have a proof of concept and because I am busy with new ESP3D 3.0 UI , I just work on it one day a week, so no answer before a while. So far I had no contact with BTT so that was not my priority but as so many people complain about ESP3D with BTT I had to have a look...lot of requests on TODO list... but be patient never say never ^_^

I only work on BTT as FW is compatible with MKS (https://github.com/darkspr1te/MKSTFT_Marlin_Touch) MKS has also an SD header available so should work the same

iz3man commented 4 years ago

But afaik BTT und MKS have nothing in common, do they? May be great for ppl that have BTT installed, but I removing all MKS boards from my printers is not my preferred solution ;) EDIT: After reading the link you sent it looks like the MKS TFT can run BTT firmware. Will have look into that.

ModMike commented 4 years ago

I just got the MKS WiFi TFT 1.0 board and was planning to use it with my Fystec Cheetah 1.1b. I also want to try it with a resin printer I have. I bought a TFT32 which I am still waiting on. A few questions:

1) Has anyone got this to work with ESP3d? 2) How do I update the firmware? Is it any different from a regular stm32?

I have no issue scrapping the board in the name of discovery.

luc-github commented 4 years ago

MKS WiFi TFT 1.0 is like standard esp8266 pinout is above and to flash it you need to ground the IO0 to put the borad in flash mode

for MKS tft usage is limited due to MKS FW block almost all commands but if you flash with BTT FW gain should be better and code is open source

luc-github commented 4 years ago

Also be noted MKS TFT wifi need 5V and it is 4MB flash

ETE-Design commented 4 years ago

@luc-github MKS TFT Firmware is also open source now, so mabye it is possible to remove the part who Block the WiFi :-) https://github.com/makerbase-mks/MKS-TFT28-32-Firmware

luc-github commented 4 years ago

I know but because they ignored me when I contacted them to make ESP3D compatible I won't spend time on this when there is already a working Firmware, also there is a disclaimer about ESP3D on their github (https://github.com/makerbase-mks/MKS-WIFI) so I don't think they will take any PR to change things

If you look at the TFT github there are no instructions how to build the FW so they give the sources not the toolchain/process to build the FW

ETE-Design commented 4 years ago

I know, they have been hard to work with, asked them a couple of things about some boards, and like you they just ignored me... But in the last Month they have answered me about stuff I asked :-) And why not just use BBT firmware now that it is working ;-)

luc-github commented 4 years ago

there is a big work to make btt mks compatible with all mks tft so I guess they try to retain people moving to BTT FW as they will loose service income linked to their FW

ModMike commented 4 years ago

The only reason I wanted to use this module is only because I had it. I also have a TFT32 coming in and wanted to add ESP3D to it. Mind, you, if I add it to the Fystec Cheetah then this becomes redundant and I can completely forget about MKS Module. I just like it's form factor and it being basically ready to go without adding hardware. I think the key to get it adopted by regular users is to make it as easy to install as possible.

luc-github commented 4 years ago

I have one too I use it with tft mks 32 flashed with btt fw