makerbase-mks / MKS-GEN_L

MKS GEN_L is a powerful 3D printer control board with ATMEGA2560 and compatible with RAMPS. V2.1 version the motherboard integrates SPI / UART interface and works with MKS TMC2130/TMC2208 V2.0/TMC2209. It can be used after plugged in. No soldering or flying lead is required ...
https://es.aliexpress.com/item/32802151924.html?spm=a219c.12010612.8148356.1.e4d93944s4tYDC
192 stars 50 forks source link

[BUG] (Secondary Serial Port Not Functional On MKS_GEN_L_V2 Board) #17436 #3

Closed borland1 closed 4 years ago

borland1 commented 4 years ago

I have reported an issue (#17436) on github MarlinFirmware concerning an issue that turned out to be hardware limited. To resolve this issue, I needed to modify the PCB board before I could enable a the secondary serial port in Marlin 2.0 firmware.

Because on MKS_GEN_L_V2, AUX-1 is wired to same processor pins as the USB port, a secondary port is not available from AUX-1. Alternatively, I chose to use Arduino Mega Serial1 (UART1) as secondary port. Processor's UART1 is wired to limit switch signal wires of Z-MIN and Z-MAX connectors. Unfortunately, this did not work at first until I discovered I needed to de-solder pull-up resistors and capacitors for both Z-MIN and Z-MAX.

I removed the surface mounted decoupling capacitors C2 and C3. They are very small size ( 0603 SMD ). After removing R3, R5, C2 and C3, I was able to enable secondary serial port SERIAL_PORT_2.

There are still two 1K ohm resistors ( R4 and R6 ) between the Signal pins ( Z-, Z+ ) and their associated processor pins. From my limited testing, this does not appear to affect serial communications at 250,000 baud rate. Ideally, these resistors could be replaced with 0 ohm surface mounted ( 0603 SMD ) resistors, but it is much easier to just leave them as-is.

This also required remapping limit switch Z-MIN function to otherwise unused Y-MAX, with an additional #define line, in the Configuration.h file. This remapping simply overrides the pins definition in the pins_RAMPS.h file without having to modify the pins file.

Since the ATmega2560 processor has software enabled pull-up resistors, can you explain why the board has additional pull-up resistors?