aboutsummaryrefslogtreecommitdiff
path: root/Marlin/src/pins
diff options
context:
space:
mode:
Diffstat (limited to 'Marlin/src/pins')
-rw-r--r--Marlin/src/pins/esp32/pins_E4D.h107
-rw-r--r--Marlin/src/pins/esp32/pins_ESP32.h86
-rw-r--r--Marlin/src/pins/esp32/pins_FYSETC_E4.h126
-rw-r--r--Marlin/src/pins/esp32/pins_MRR_ESPA.h108
-rw-r--r--Marlin/src/pins/esp32/pins_MRR_ESPE.h163
-rw-r--r--Marlin/src/pins/linux/pins_RAMPS_LINUX.h635
-rw-r--r--Marlin/src/pins/lpc1768/pins_AZSMZ_MINI.h160
-rw-r--r--Marlin/src/pins/lpc1768/pins_BIQU_B300_V1.0.h182
-rw-r--r--Marlin/src/pins/lpc1768/pins_BIQU_BQ111_A4.h155
-rw-r--r--Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h236
-rw-r--r--Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h390
-rw-r--r--Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h524
-rw-r--r--Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h188
-rw-r--r--Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h168
-rw-r--r--Marlin/src/pins/lpc1768/pins_MKS_SBASE.h388
-rw-r--r--Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h395
-rw-r--r--Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h518
-rw-r--r--Marlin/src/pins/lpc1768/pins_SELENA_COMPACT.h118
-rw-r--r--Marlin/src/pins/lpc1769/pins_AZTEEG_X5_GT.h126
-rw-r--r--Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h219
-rw-r--r--Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI_WIFI.h44
-rw-r--r--Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h266
-rw-r--r--Marlin/src/pins/lpc1769/pins_BTT_SKR_V1_4_TURBO.h30
-rw-r--r--Marlin/src/pins/lpc1769/pins_COHESION3D_MINI.h177
-rw-r--r--Marlin/src/pins/lpc1769/pins_COHESION3D_REMIX.h289
-rw-r--r--Marlin/src/pins/lpc1769/pins_FLY_CDY.h181
-rw-r--r--Marlin/src/pins/lpc1769/pins_MKS_SGEN.h59
-rw-r--r--Marlin/src/pins/lpc1769/pins_MKS_SGEN_L_V2.h414
-rw-r--r--Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h181
-rw-r--r--Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h182
-rw-r--r--Marlin/src/pins/mega/pins_CHEAPTRONIC.h80
-rw-r--r--Marlin/src/pins/mega/pins_CHEAPTRONICv2.h140
-rw-r--r--Marlin/src/pins/mega/pins_CNCONTROLS_11.h160
-rw-r--r--Marlin/src/pins/mega/pins_CNCONTROLS_12.h167
-rw-r--r--Marlin/src/pins/mega/pins_CNCONTROLS_15.h127
-rw-r--r--Marlin/src/pins/mega/pins_EINSTART-S.h113
-rw-r--r--Marlin/src/pins/mega/pins_ELEFU_3.h152
-rw-r--r--Marlin/src/pins/mega/pins_GT2560_REV_A.h169
-rw-r--r--Marlin/src/pins/mega/pins_GT2560_REV_A_PLUS.h34
-rw-r--r--Marlin/src/pins/mega/pins_GT2560_V3.h185
-rw-r--r--Marlin/src/pins/mega/pins_GT2560_V3_A20.h41
-rw-r--r--Marlin/src/pins/mega/pins_GT2560_V3_MC2.h35
-rw-r--r--Marlin/src/pins/mega/pins_HJC2560C_REV2.h173
-rw-r--r--Marlin/src/pins/mega/pins_INTAMSYS40.h151
-rw-r--r--Marlin/src/pins/mega/pins_LEAPFROG.h92
-rw-r--r--Marlin/src/pins/mega/pins_LEAPFROG_XEED2015.h115
-rw-r--r--Marlin/src/pins/mega/pins_MEGACONTROLLER.h167
-rw-r--r--Marlin/src/pins/mega/pins_MEGATRONICS.h134
-rw-r--r--Marlin/src/pins/mega/pins_MEGATRONICS_2.h155
-rw-r--r--Marlin/src/pins/mega/pins_MEGATRONICS_3.h198
-rw-r--r--Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h304
-rw-r--r--Marlin/src/pins/mega/pins_MINITRONICS.h142
-rw-r--r--Marlin/src/pins/mega/pins_OVERLORD.h144
-rw-r--r--Marlin/src/pins/mega/pins_PICA.h153
-rw-r--r--Marlin/src/pins/mega/pins_PICAOLD.h28
-rw-r--r--Marlin/src/pins/mega/pins_SILVER_GATE.h99
-rw-r--r--Marlin/src/pins/mega/pins_WANHAO_ONEPLUS.h111
-rw-r--r--Marlin/src/pins/pins.h768
-rw-r--r--Marlin/src/pins/pinsDebug.h363
-rw-r--r--Marlin/src/pins/pinsDebug_list.h1448
-rw-r--r--Marlin/src/pins/pins_postprocess.h880
-rw-r--r--Marlin/src/pins/rambo/pins_EINSY_RAMBO.h196
-rw-r--r--Marlin/src/pins/rambo/pins_EINSY_RETRO.h203
-rw-r--r--Marlin/src/pins/rambo/pins_MINIRAMBO.h196
-rw-r--r--Marlin/src/pins/rambo/pins_RAMBO.h256
-rw-r--r--Marlin/src/pins/rambo/pins_SCOOVO_X9H.h159
-rw-r--r--Marlin/src/pins/ramps/pins_3DRAG.h164
-rw-r--r--Marlin/src/pins/ramps/pins_AZTEEG_X3.h96
-rw-r--r--Marlin/src/pins/ramps/pins_AZTEEG_X3_PRO.h177
-rw-r--r--Marlin/src/pins/ramps/pins_BAM_DICE_DUE.h49
-rw-r--r--Marlin/src/pins/ramps/pins_BIQU_KFB_2.h40
-rw-r--r--Marlin/src/pins/ramps/pins_BQ_ZUM_MEGA_3D.h126
-rw-r--r--Marlin/src/pins/ramps/pins_COPYMASTER_3D.h34
-rw-r--r--Marlin/src/pins/ramps/pins_DAGOMA_F5.h68
-rw-r--r--Marlin/src/pins/ramps/pins_DUPLICATOR_I3_PLUS.h184
-rw-r--r--Marlin/src/pins/ramps/pins_FELIX2.h63
-rw-r--r--Marlin/src/pins/ramps/pins_FORMBOT_RAPTOR.h197
-rw-r--r--Marlin/src/pins/ramps/pins_FORMBOT_RAPTOR2.h68
-rw-r--r--Marlin/src/pins/ramps/pins_FORMBOT_TREX2PLUS.h210
-rw-r--r--Marlin/src/pins/ramps/pins_FORMBOT_TREX3.h175
-rw-r--r--Marlin/src/pins/ramps/pins_FYSETC_F6_13.h301
-rw-r--r--Marlin/src/pins/ramps/pins_FYSETC_F6_14.h50
-rw-r--r--Marlin/src/pins/ramps/pins_K8200.h33
-rw-r--r--Marlin/src/pins/ramps/pins_K8400.h73
-rw-r--r--Marlin/src/pins/ramps/pins_K8600.h127
-rw-r--r--Marlin/src/pins/ramps/pins_K8800.h122
-rw-r--r--Marlin/src/pins/ramps/pins_LONGER3D_LKx_PRO.h118
-rw-r--r--Marlin/src/pins/ramps/pins_MAKEBOARD_MINI.h33
-rw-r--r--Marlin/src/pins/ramps/pins_MKS_BASE_10.h37
-rw-r--r--Marlin/src/pins/ramps/pins_MKS_BASE_14.h170
-rw-r--r--Marlin/src/pins/ramps/pins_MKS_BASE_15.h35
-rw-r--r--Marlin/src/pins/ramps/pins_MKS_BASE_16.h59
-rw-r--r--Marlin/src/pins/ramps/pins_MKS_BASE_HEROIC.h36
-rw-r--r--Marlin/src/pins/ramps/pins_MKS_BASE_common.h75
-rw-r--r--Marlin/src/pins/ramps/pins_MKS_GEN_13.h147
-rw-r--r--Marlin/src/pins/ramps/pins_MKS_GEN_L.h53
-rw-r--r--Marlin/src/pins/ramps/pins_MKS_GEN_L_V2.h89
-rw-r--r--Marlin/src/pins/ramps/pins_MKS_GEN_L_V21.h85
-rw-r--r--Marlin/src/pins/ramps/pins_ORTUR_4.h116
-rw-r--r--Marlin/src/pins/ramps/pins_RAMPS.h781
-rw-r--r--Marlin/src/pins/ramps/pins_RAMPS_13.h42
-rw-r--r--Marlin/src/pins/ramps/pins_RAMPS_CREALITY.h68
-rw-r--r--Marlin/src/pins/ramps/pins_RAMPS_ENDER_4.h41
-rw-r--r--Marlin/src/pins/ramps/pins_RAMPS_OLD.h119
-rw-r--r--Marlin/src/pins/ramps/pins_RAMPS_PLUS.h85
-rw-r--r--Marlin/src/pins/ramps/pins_RAMPS_S_12.h280
-rw-r--r--Marlin/src/pins/ramps/pins_RIGIDBOARD.h135
-rw-r--r--Marlin/src/pins/ramps/pins_RIGIDBOARD_V2.h52
-rw-r--r--Marlin/src/pins/ramps/pins_RL200.h52
-rw-r--r--Marlin/src/pins/ramps/pins_RUMBA.h234
-rw-r--r--Marlin/src/pins/ramps/pins_RUMBA_RAISE3D.h31
-rw-r--r--Marlin/src/pins/ramps/pins_SAINSMART_2IN1.h42
-rw-r--r--Marlin/src/pins/ramps/pins_TANGO.h53
-rw-r--r--Marlin/src/pins/ramps/pins_TENLOG_D3_HERO.h185
-rw-r--r--Marlin/src/pins/ramps/pins_TRIGORILLA_13.h43
-rw-r--r--Marlin/src/pins/ramps/pins_TRIGORILLA_14.h157
-rw-r--r--Marlin/src/pins/ramps/pins_TRONXY_V3_1_0.h279
-rw-r--r--Marlin/src/pins/ramps/pins_TT_OSCAR.h519
-rw-r--r--Marlin/src/pins/ramps/pins_ULTIMAIN_2.h142
-rw-r--r--Marlin/src/pins/ramps/pins_ULTIMAKER.h168
-rw-r--r--Marlin/src/pins/ramps/pins_ULTIMAKER_OLD.h274
-rw-r--r--Marlin/src/pins/ramps/pins_VORON.h55
-rw-r--r--Marlin/src/pins/ramps/pins_ZRIB_V20.h87
-rw-r--r--Marlin/src/pins/ramps/pins_ZRIB_V52.h159
-rw-r--r--Marlin/src/pins/ramps/pins_Z_BOLT_X_SERIES.h306
-rw-r--r--Marlin/src/pins/sam/pins_ADSK.h207
-rw-r--r--Marlin/src/pins/sam/pins_ALLIGATOR_R2.h159
-rw-r--r--Marlin/src/pins/sam/pins_ARCHIM1.h206
-rw-r--r--Marlin/src/pins/sam/pins_ARCHIM2.h257
-rw-r--r--Marlin/src/pins/sam/pins_CNCONTROLS_15D.h138
-rw-r--r--Marlin/src/pins/sam/pins_DUE3DOM.h176
-rw-r--r--Marlin/src/pins/sam/pins_DUE3DOM_MINI.h179
-rw-r--r--Marlin/src/pins/sam/pins_PRINTRBOARD_G2.h173
-rw-r--r--Marlin/src/pins/sam/pins_RADDS.h298
-rw-r--r--Marlin/src/pins/sam/pins_RAMPS4DUE.h57
-rw-r--r--Marlin/src/pins/sam/pins_RAMPS_DUO.h136
-rw-r--r--Marlin/src/pins/sam/pins_RAMPS_FD_V1.h239
-rw-r--r--Marlin/src/pins/sam/pins_RAMPS_FD_V2.h52
-rw-r--r--Marlin/src/pins/sam/pins_RAMPS_SMART.h110
-rw-r--r--Marlin/src/pins/sam/pins_RURAMPS4D_11.h278
-rw-r--r--Marlin/src/pins/sam/pins_RURAMPS4D_13.h260
-rw-r--r--Marlin/src/pins/sam/pins_ULTRATRONICS_PRO.h179
-rw-r--r--Marlin/src/pins/samd/pins_RAMPS_144.h615
-rw-r--r--Marlin/src/pins/sanguino/pins_ANET_10.h289
-rw-r--r--Marlin/src/pins/sanguino/pins_AZTEEG_X1.h30
-rw-r--r--Marlin/src/pins/sanguino/pins_GEN3_MONOLITHIC.h99
-rw-r--r--Marlin/src/pins/sanguino/pins_GEN3_PLUS.h99
-rw-r--r--Marlin/src/pins/sanguino/pins_GEN6.h121
-rw-r--r--Marlin/src/pins/sanguino/pins_GEN6_DELUXE.h54
-rw-r--r--Marlin/src/pins/sanguino/pins_GEN7_12.h147
-rw-r--r--Marlin/src/pins/sanguino/pins_GEN7_13.h54
-rw-r--r--Marlin/src/pins/sanguino/pins_GEN7_14.h120
-rw-r--r--Marlin/src/pins/sanguino/pins_GEN7_CUSTOM.h140
-rw-r--r--Marlin/src/pins/sanguino/pins_MELZI.h32
-rw-r--r--Marlin/src/pins/sanguino/pins_MELZI_CREALITY.h143
-rw-r--r--Marlin/src/pins/sanguino/pins_MELZI_MAKR3D.h29
-rw-r--r--Marlin/src/pins/sanguino/pins_MELZI_MALYAN.h58
-rw-r--r--Marlin/src/pins/sanguino/pins_MELZI_TRONXY.h65
-rw-r--r--Marlin/src/pins/sanguino/pins_MELZI_V2.h39
-rw-r--r--Marlin/src/pins/sanguino/pins_OMCA.h149
-rw-r--r--Marlin/src/pins/sanguino/pins_OMCA_A.h135
-rw-r--r--Marlin/src/pins/sanguino/pins_SANGUINOLOLU_11.h344
-rw-r--r--Marlin/src/pins/sanguino/pins_SANGUINOLOLU_12.h42
-rw-r--r--Marlin/src/pins/sanguino/pins_SETHI.h124
-rw-r--r--Marlin/src/pins/sanguino/pins_STB_11.h30
-rw-r--r--Marlin/src/pins/sanguino/pins_ZMIB_V2.h234
-rw-r--r--Marlin/src/pins/sensitive_pins.h689
-rw-r--r--Marlin/src/pins/stm32f0/pins_MALYAN_M200_V2.h31
-rw-r--r--Marlin/src/pins/stm32f0/pins_MALYAN_M300.h91
-rw-r--r--Marlin/src/pins/stm32f1/pins_BEAST.h159
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_CR6.h183
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h289
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_0.h51
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h53
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V2_0.h79
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h283
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_MZ_V1_0.h26
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h232
-rw-r--r--Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h178
-rw-r--r--Marlin/src/pins/stm32f1/pins_CHITU3D.h290
-rw-r--r--Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h189
-rw-r--r--Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h204
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V4.h200
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V4210.h208
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V427.h44
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V431.h39
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V452.h38
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V453.h38
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V45x.h113
-rw-r--r--Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h318
-rw-r--r--Marlin/src/pins/stm32f1/pins_FLY_MINI.h176
-rw-r--r--Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h211
-rw-r--r--Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h194
-rw-r--r--Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h64
-rw-r--r--Marlin/src/pins/stm32f1/pins_GTM32_MINI.h243
-rw-r--r--Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h237
-rw-r--r--Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h243
-rw-r--r--Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h240
-rw-r--r--Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h132
-rw-r--r--Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h164
-rw-r--r--Marlin/src/pins/stm32f1/pins_MALYAN_M200.h95
-rw-r--r--Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h176
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h283
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3.h36
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D.h67
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D_V1_1.h67
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h346
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1.h36
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1_common.h39
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h196
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE.h148
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE3.h159
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h201
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h345
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h406
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h280
-rw-r--r--Marlin/src/pins/stm32f1/pins_MORPHEUS.h93
-rw-r--r--Marlin/src/pins/stm32f1/pins_STM32F1R.h140
-rw-r--r--Marlin/src/pins/stm32f1/pins_STM3R_MINI.h161
-rw-r--r--Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h183
-rw-r--r--Marlin/src/pins/stm32f1/workspace.code-workspace8
-rw-r--r--Marlin/src/pins/stm32f4/pins_ANET_ET4.h222
-rw-r--r--Marlin/src/pins/stm32f4/pins_ANET_ET4P.h34
-rw-r--r--Marlin/src/pins/stm32f4/pins_ARMED.h229
-rw-r--r--Marlin/src/pins/stm32f4/pins_BLACK_STM32F407VE.h163
-rw-r--r--Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h273
-rw-r--r--Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h474
-rw-r--r--Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_V1_1.h30
-rw-r--r--Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_V1_2.h30
-rw-r--r--Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h474
-rw-r--r--Marlin/src/pins/stm32f4/pins_FLYF407ZG.h296
-rw-r--r--Marlin/src/pins/stm32f4/pins_FYSETC_CHEETAH_V20.h271
-rw-r--r--Marlin/src/pins/stm32f4/pins_FYSETC_S6.h306
-rw-r--r--Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h66
-rw-r--r--Marlin/src/pins/stm32f4/pins_LERDGE_K.h184
-rw-r--r--Marlin/src/pins/stm32f4/pins_LERDGE_S.h212
-rw-r--r--Marlin/src/pins/stm32f4/pins_LERDGE_X.h155
-rw-r--r--Marlin/src/pins/stm32f4/pins_MKS_ROBIN2.h101
-rw-r--r--Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h374
-rw-r--r--Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h371
-rw-r--r--Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h78
-rw-r--r--Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h90
-rw-r--r--Marlin/src/pins/stm32f4/pins_RUMBA32_common.h187
-rw-r--r--Marlin/src/pins/stm32f4/pins_STEVAL_3DP001V1.h359
-rw-r--r--Marlin/src/pins/stm32f4/pins_VAKE403D.h195
-rw-r--r--Marlin/src/pins/stm32f7/pins_NUCLEO_F767ZI.h197
-rw-r--r--Marlin/src/pins/stm32f7/pins_REMRAM_V1.h137
-rw-r--r--Marlin/src/pins/teensy2/pins_5DPRINT.h148
-rw-r--r--Marlin/src/pins/teensy2/pins_BRAINWAVE.h126
-rw-r--r--Marlin/src/pins/teensy2/pins_BRAINWAVE_PRO.h138
-rw-r--r--Marlin/src/pins/teensy2/pins_PRINTRBOARD.h169
-rw-r--r--Marlin/src/pins/teensy2/pins_PRINTRBOARD_REVF.h281
-rw-r--r--Marlin/src/pins/teensy2/pins_SAV_MKI.h185
-rw-r--r--Marlin/src/pins/teensy2/pins_TEENSY2.h188
-rw-r--r--Marlin/src/pins/teensy2/pins_TEENSYLU.h164
-rw-r--r--Marlin/src/pins/teensy3/pins_TEENSY31_32.h112
-rw-r--r--Marlin/src/pins/teensy3/pins_TEENSY35_36.h152
-rw-r--r--Marlin/src/pins/teensy4/pins_T41U5XBB.h126
-rw-r--r--Marlin/src/pins/teensy4/pins_TEENSY41.h131
259 files changed, 45770 insertions, 0 deletions
diff --git a/Marlin/src/pins/esp32/pins_E4D.h b/Marlin/src/pins/esp32/pins_E4D.h
new file mode 100644
index 0000000..4a5a2bf
--- /dev/null
+++ b/Marlin/src/pins/esp32/pins_E4D.h
@@ -0,0 +1,107 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * E4d@Box pin assignments
+ * E4d@Box is a small factor 3D printer control board based on the ESP32 microcontroller for Laser, CNC and 3d printers
+ * for more info check https://atbox.tech/ and join to Facebook page E4d@box.
+ */
+
+#if NOT_TARGET(ARDUINO_ARCH_ESP32)
+ #error "Oops! Select an ESP32 board in 'Tools > Board.'"
+#elif EXTRUDERS > 1 || E_STEPPERS > 1
+ #error "E4d@box only supports one E Stepper. Comment out this line to continue."
+#elif HOTENDS > 1
+ #error "E4d@box only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "E4D@BOX"
+#define BOARD_WEBSITE_URL "github.com/Exilaus/E4d@box"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+//
+// Disable I2S stepper stream
+//
+#undef I2S_STEPPER_STREAM
+
+//
+// Redefine I2S for ESP32
+//
+#undef I2S_WS
+#define I2S_WS 23
+#undef I2S_BCK
+#define I2S_BCK 22
+#undef I2S_DATA
+#define I2S_DATA 21
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 34
+#define Y_STOP_PIN 35
+#define Z_STOP_PIN 16
+
+//
+// Steppers
+//
+#define X_STEP_PIN 12
+#define X_DIR_PIN 13
+#define X_ENABLE_PIN 17
+//#define X_CS_PIN 0
+
+#define Y_STEP_PIN 32
+#define Y_DIR_PIN 33
+#define Y_ENABLE_PIN X_ENABLE_PIN
+//#define Y_CS_PIN 13
+
+#define Z_STEP_PIN 25
+#define Z_DIR_PIN 26
+#define Z_ENABLE_PIN X_ENABLE_PIN
+//#define Z_CS_PIN 5 // SS_PIN
+
+#define E0_STEP_PIN 27
+#define E0_DIR_PIN 14
+#define E0_ENABLE_PIN X_ENABLE_PIN
+//#define E0_CS_PIN 21
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 36 // Analog Input
+#define TEMP_BED_PIN 39 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+#define FAN_PIN 0
+#define HEATER_BED_PIN 15
+
+//
+// MicroSD card on SPI
+//
+#define SD_MOSI_PIN 23
+#define SD_MISO_PIN 19
+#define SD_SCK_PIN 18
+#define SDSS 5
+#define USES_SHARED_SPI // SPI is shared by SD card with TMC SPI drivers
diff --git a/Marlin/src/pins/esp32/pins_ESP32.h b/Marlin/src/pins/esp32/pins_ESP32.h
new file mode 100644
index 0000000..d54a92b
--- /dev/null
+++ b/Marlin/src/pins/esp32/pins_ESP32.h
@@ -0,0 +1,86 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Espressif ESP32 (Tensilica Xtensa LX6) pin assignments
+ */
+
+#if NOT_TARGET(ARDUINO_ARCH_ESP32)
+ "Oops! Select an ESP32 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Espressif ESP32"
+
+//
+// I2S (steppers & other output-only pins)
+//
+#define I2S_STEPPER_STREAM
+#define I2S_WS 25
+#define I2S_BCK 26
+#define I2S_DATA 27
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 34
+#define Y_MIN_PIN 35
+#define Z_MIN_PIN 15
+
+//
+// Steppers
+//
+#define X_STEP_PIN 128
+#define X_DIR_PIN 129
+#define X_ENABLE_PIN 130
+//#define X_CS_PIN 0
+
+#define Y_STEP_PIN 131
+#define Y_DIR_PIN 132
+#define Y_ENABLE_PIN 133
+//#define Y_CS_PIN 13
+
+#define Z_STEP_PIN 134
+#define Z_DIR_PIN 135
+#define Z_ENABLE_PIN 136
+//#define Z_CS_PIN 5 // SS_PIN
+
+#define E0_STEP_PIN 137
+#define E0_DIR_PIN 138
+#define E0_ENABLE_PIN 139
+//#define E0_CS_PIN 21
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 36 // Analog Input
+#define TEMP_BED_PIN 39 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+#define FAN_PIN 13
+#define HEATER_BED_PIN 4
+
+// SPI
+#define SDSS 5
diff --git a/Marlin/src/pins/esp32/pins_FYSETC_E4.h b/Marlin/src/pins/esp32/pins_FYSETC_E4.h
new file mode 100644
index 0000000..50a8587
--- /dev/null
+++ b/Marlin/src/pins/esp32/pins_FYSETC_E4.h
@@ -0,0 +1,126 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * FYSETC E4 pin assignments
+ * FYSETC E4 is a 3D printer control board based on the ESP32 microcontroller.
+ * Supports 4 stepper drivers, heated bed, single hotend.
+ */
+
+#ifndef ARDUINO_ARCH_ESP32
+ #error "Oops! Select an ESP32 board in 'Tools > Board.'"
+#elif EXTRUDERS > 1 || E_STEPPERS > 1
+ #error "FYSETC E4 only supports one E Stepper. Comment out this line to continue."
+#elif HOTENDS > 1
+ #error "FYSETC E4 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "FYSETC_E4"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+//
+// Disable I2S stepper stream
+//
+#undef I2S_STEPPER_STREAM
+#define I2S_WS -1
+#define I2S_BCK -1
+#define I2S_DATA -1
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 34
+#define Y_STOP_PIN 35
+#define Z_STOP_PIN 15
+
+//
+// Steppers
+//
+#define X_STEP_PIN 27
+#define X_DIR_PIN 26
+#define X_ENABLE_PIN 25
+
+#define Y_STEP_PIN 33
+#define Y_DIR_PIN 32
+#define Y_ENABLE_PIN X_ENABLE_PIN
+
+#define Z_STEP_PIN 14
+#define Z_DIR_PIN 12
+#define Z_ENABLE_PIN X_ENABLE_PIN
+
+#define E0_STEP_PIN 16
+#define E0_DIR_PIN 17
+#define E0_ENABLE_PIN X_ENABLE_PIN
+
+#if HAS_TMC_UART
+ //
+ // TMC2209 stepper drivers
+ //
+
+ //
+ // Hardware serial 1
+ //
+ #define X_HARDWARE_SERIAL Serial1
+ #define Y_HARDWARE_SERIAL Serial1
+ #define Z_HARDWARE_SERIAL Serial1
+ #define E0_HARDWARE_SERIAL Serial1
+
+ #define TMC_BAUD_RATE 115200
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 36 // Analog Input
+#define TEMP_BED_PIN 39 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+#define FAN_PIN 13
+#define HEATER_BED_PIN 4
+
+//
+// MicroSD card
+//
+#define SD_MOSI_PIN 23
+#define SD_MISO_PIN 19
+#define SD_SCK_PIN 18
+#define SDSS 5
+#define USES_SHARED_SPI // SPI is shared by SD card with TMC SPI drivers
+
+/**
+ * Hardware serial pins
+ *
+ * Override these pins in Configuration.h or Configuration_adv.h if needed.
+ *
+ * Note: Serial2 can be defined using HARDWARE_SERIAL2_RX and HARDWARE_SERIAL2_TX
+ * but MRR ESPA does not have enough spare pins for such reassignment.
+ */
+#ifndef HARDWARE_SERIAL1_RX
+ #define HARDWARE_SERIAL1_RX 21
+#endif
+#ifndef HARDWARE_SERIAL1_TX
+ #define HARDWARE_SERIAL1_TX 22
+#endif
diff --git a/Marlin/src/pins/esp32/pins_MRR_ESPA.h b/Marlin/src/pins/esp32/pins_MRR_ESPA.h
new file mode 100644
index 0000000..fe67f75
--- /dev/null
+++ b/Marlin/src/pins/esp32/pins_MRR_ESPA.h
@@ -0,0 +1,108 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MRR ESPA pin assignments
+ * MRR ESPA is a 3D printer control board based on the ESP32 microcontroller.
+ * Supports 4 stepper drivers, heated bed, single hotend.
+ */
+
+#if NOT_TARGET(ARDUINO_ARCH_ESP32)
+ #error "Oops! Select an ESP32 board in 'Tools > Board.'"
+#elif EXTRUDERS > 1 || E_STEPPERS > 1
+ #error "MRR ESPA only supports one E Stepper. Comment out this line to continue."
+#elif HOTENDS > 1
+ #error "MRR ESPA only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MRR ESPA"
+#define BOARD_WEBSITE_URL "github.com/maplerainresearch/MRR_ESPA"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+//
+// Disable I2S stepper stream
+//
+#undef I2S_STEPPER_STREAM
+#undef I2S_WS
+#undef I2S_BCK
+#undef I2S_DATA
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 34
+#define Y_STOP_PIN 35
+#define Z_STOP_PIN 15
+
+//
+// Steppers
+//
+#define X_STEP_PIN 27
+#define X_DIR_PIN 26
+#define X_ENABLE_PIN 25
+//#define X_CS_PIN 21
+
+#define Y_STEP_PIN 33
+#define Y_DIR_PIN 32
+#define Y_ENABLE_PIN X_ENABLE_PIN
+//#define Y_CS_PIN 22
+
+#define Z_STEP_PIN 14
+#define Z_DIR_PIN 12
+#define Z_ENABLE_PIN X_ENABLE_PIN
+//#define Z_CS_PIN 5 // SS_PIN
+
+#define E0_STEP_PIN 16
+#define E0_DIR_PIN 17
+#define E0_ENABLE_PIN X_ENABLE_PIN
+//#define E0_CS_PIN 21
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 36 // Analog Input
+#define TEMP_BED_PIN 39 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+#define FAN_PIN 13
+#define HEATER_BED_PIN 4
+
+//
+// MicroSD card
+//
+#define SD_MOSI_PIN 23
+#define SD_MISO_PIN 19
+#define SD_SCK_PIN 18
+#define SDSS 5
+#define USES_SHARED_SPI // SPI is shared by SD card with TMC SPI drivers
+
+// Hardware serial pins
+// Add the following to Configuration.h or Configuration_adv.h to assign
+// specific pins to hardware Serial1.
+// Note: Serial2 can be defined using HARDWARE_SERIAL2_RX and HARDWARE_SERIAL2_TX but
+// MRR ESPA does not have enough spare pins for such reassignment.
+//#define HARDWARE_SERIAL1_RX 21
+//#define HARDWARE_SERIAL1_TX 22
diff --git a/Marlin/src/pins/esp32/pins_MRR_ESPE.h b/Marlin/src/pins/esp32/pins_MRR_ESPE.h
new file mode 100644
index 0000000..3f9a6a0
--- /dev/null
+++ b/Marlin/src/pins/esp32/pins_MRR_ESPE.h
@@ -0,0 +1,163 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MRR ESPE pin assignments
+ * MRR ESPE is a 3D printer control board based on the ESP32 microcontroller.
+ * Supports 5 stepper drivers (using I2S stepper stream), heated bed,
+ * single hotend, and LCD controller.
+ */
+
+#if NOT_TARGET(ARDUINO_ARCH_ESP32)
+ #error "Oops! Select an ESP32 board in 'Tools > Board.'"
+#elif EXTRUDERS > 2 || E_STEPPERS > 2
+ #error "MRR ESPE only supports two E Steppers. Comment out this line to continue."
+#elif HOTENDS > 1
+ #error "MRR ESPE only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MRR ESPE"
+#define BOARD_WEBSITE_URL "github.com/maplerainresearch/MRR_ESPE"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 35
+#define Y_STOP_PIN 32
+#define Z_STOP_PIN 33
+
+//
+// Enable I2S stepper stream
+//
+#undef I2S_STEPPER_STREAM
+#define I2S_STEPPER_STREAM
+#define I2S_WS 26
+#define I2S_BCK 25
+#define I2S_DATA 27
+#undef LIN_ADVANCE // Currently, I2S stream does not work with linear advance
+
+//
+// Steppers
+//
+#define X_STEP_PIN 129
+#define X_DIR_PIN 130
+#define X_ENABLE_PIN 128
+//#define X_CS_PIN 21
+
+#define Y_STEP_PIN 132
+#define Y_DIR_PIN 133
+#define Y_ENABLE_PIN 131
+//#define Y_CS_PIN 22
+
+#define Z_STEP_PIN 135
+#define Z_DIR_PIN 136
+#define Z_ENABLE_PIN 134
+//#define Z_CS_PIN 5 // SS_PIN
+
+#define E0_STEP_PIN 138
+#define E0_DIR_PIN 139
+#define E0_ENABLE_PIN 137
+//#define E0_CS_PIN 21
+
+#define E1_STEP_PIN 141
+#define E1_DIR_PIN 142
+#define E1_ENABLE_PIN 140
+//#define E1_CS_PIN 22
+
+#define Z2_STEP_PIN 141
+#define Z2_DIR_PIN 142
+#define Z2_ENABLE_PIN 140
+//#define Z2_CS_PIN 5
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 36 // Analog Input
+#define TEMP_1_PIN 34 // Analog Input
+#define TEMP_BED_PIN 39 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 145 // 2
+#define FAN_PIN 146 // 15
+#define HEATER_BED_PIN 144 // 4
+
+#define CONTROLLER_FAN_PIN 147
+//#define E0_AUTO_FAN_PIN 148 // need to update Configuration_adv.h @section extruder
+//#define E1_AUTO_FAN_PIN 149 // need to update Configuration_adv.h @section extruder
+#define FAN1_PIN 149
+
+//
+// MicroSD card
+//
+#define SD_MOSI_PIN 23
+#define SD_MISO_PIN 19
+#define SD_SCK_PIN 18
+#define SDSS 5
+#define USES_SHARED_SPI // SPI is shared by SD card with TMC SPI drivers
+
+//////////////////////////
+// LCDs and Controllers //
+//////////////////////////
+
+#if HAS_MARLINUI_U8GLIB
+
+ #define LCD_PINS_RS 13
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 16
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define BEEPER_PIN 151
+
+ #elif IS_RRD_FG_SC
+
+ #define BEEPER_PIN 151
+
+ //#define LCD_PINS_D5 150
+ //#define LCD_PINS_D6 152
+ //#define LCD_PINS_D7 153
+
+ #else
+
+ #error "Only CR10_STOCKDISPLAY and REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER are currently supported. Comment out this line to continue."
+
+ #endif
+
+ #define BTN_EN1 0
+ #define BTN_EN2 12
+ #define BTN_ENC 14
+
+#endif // HAS_MARLINUI_U8GLIB
+
+// Hardware serial pins
+// Add the following to Configuration.h or Configuration_adv.h to assign
+// specific pins to hardware Serial1 and Serial2.
+// Note: Serial2 can be defined using HARDWARE_SERIAL2_RX and HARDWARE_SERIAL2_TX but
+// MRR ESPA does not have enough spare pins for such reassignment.
+//#define HARDWARE_SERIAL1_RX 21
+//#define HARDWARE_SERIAL1_TX 22
+//#define HARDWARE_SERIAL2_RX 2
+//#define HARDWARE_SERIAL2_TX 4
diff --git a/Marlin/src/pins/linux/pins_RAMPS_LINUX.h b/Marlin/src/pins/linux/pins_RAMPS_LINUX.h
new file mode 100644
index 0000000..ab1446f
--- /dev/null
+++ b/Marlin/src/pins/linux/pins_RAMPS_LINUX.h
@@ -0,0 +1,635 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega with RAMPS v1.4 (or v1.3) pin assignments
+ *
+ * Applies to the following boards:
+ *
+ * RAMPS_14_EFB (Hotend, Fan, Bed)
+ * RAMPS_14_EEB (Hotend0, Hotend1, Bed)
+ * RAMPS_14_EFF (Hotend, Fan0, Fan1)
+ * RAMPS_14_EEF (Hotend0, Hotend1, Fan)
+ * RAMPS_14_SF (Spindle, Controller Fan)
+ *
+ * RAMPS_13_EFB (Hotend, Fan, Bed)
+ * RAMPS_13_EEB (Hotend0, Hotend1, Bed)
+ * RAMPS_13_EFF (Hotend, Fan0, Fan1)
+ * RAMPS_13_EEF (Hotend0, Hotend1, Fan)
+ * RAMPS_13_SF (Spindle, Controller Fan)
+ *
+ * Other pins_MYBOARD.h files may override these defaults
+ *
+ * Differences between
+ * RAMPS_13 | RAMPS_14
+ * 7 | 11
+ */
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "RAMPS 1.4"
+#endif
+
+#ifndef MARLIN_EEPROM_SIZE
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+#define IS_RAMPS_EFB
+
+//
+// Servos
+//
+#ifdef IS_RAMPS_13
+ #define SERVO0_PIN 7 // RAMPS_13 // Will conflict with BTN_EN2 on LCD_I2C_VIKI
+#else
+ #define SERVO0_PIN 11
+#endif
+#define SERVO1_PIN 6
+#define SERVO2_PIN 5
+#ifndef SERVO3_PIN
+ #define SERVO3_PIN 4
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 3
+#ifndef X_MAX_PIN
+ #define X_MAX_PIN 2
+#endif
+#define Y_MIN_PIN 14
+#define Y_MAX_PIN 15
+#define Z_MIN_PIN 18
+#define Z_MAX_PIN 19
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 32
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 54
+#define X_DIR_PIN 55
+#define X_ENABLE_PIN 38
+#ifndef X_CS_PIN
+ #define X_CS_PIN 53
+#endif
+
+#define Y_STEP_PIN 60
+#define Y_DIR_PIN 61
+#define Y_ENABLE_PIN 56
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 49
+#endif
+
+#define Z_STEP_PIN 46
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 62
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 40
+#endif
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 42
+#endif
+
+#define E1_STEP_PIN 36
+#define E1_DIR_PIN 34
+#define E1_ENABLE_PIN 30
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 44
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_1_PIN 1 // Analog Input
+#define TEMP_BED_PIN 2 // Analog Input
+
+// SPI for Max6675 or Max31855 Thermocouple
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 66 // Don't use 53 if using Display/SD card
+#else
+ #define MAX6675_SS_PIN 66 // Don't use 49 (SD_DETECT_PIN)
+#endif
+
+//
+// Augmentation for auto-assigning RAMPS plugs
+//
+#if NONE(IS_RAMPS_EEB, IS_RAMPS_EEF, IS_RAMPS_EFB, IS_RAMPS_EFF, IS_RAMPS_SF) && !PIN_EXISTS(MOSFET_D)
+ #if HAS_MULTI_HOTEND
+ #if TEMP_SENSOR_BED
+ #define IS_RAMPS_EEB
+ #else
+ #define IS_RAMPS_EEF
+ #endif
+ #elif TEMP_SENSOR_BED
+ #define IS_RAMPS_EFB
+ #else
+ #define IS_RAMPS_EFF
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#ifndef MOSFET_D_PIN
+ #define MOSFET_D_PIN -1
+#endif
+#ifndef RAMPS_D8_PIN
+ #define RAMPS_D8_PIN 8
+#endif
+#ifndef RAMPS_D9_PIN
+ #define RAMPS_D9_PIN 9
+#endif
+#ifndef RAMPS_D10_PIN
+ #define RAMPS_D10_PIN 10
+#endif
+
+#define HEATER_0_PIN RAMPS_D10_PIN
+
+#if ENABLED(IS_RAMPS_EFB) // Hotend, Fan, Bed
+ #define FAN_PIN RAMPS_D9_PIN
+ #define HEATER_BED_PIN RAMPS_D8_PIN
+#elif ENABLED(IS_RAMPS_EEF) // Hotend, Hotend, Fan
+ #define HEATER_1_PIN RAMPS_D9_PIN
+ #define FAN_PIN RAMPS_D8_PIN
+#elif ENABLED(IS_RAMPS_EEB) // Hotend, Hotend, Bed
+ #define HEATER_1_PIN RAMPS_D9_PIN
+ #define HEATER_BED_PIN RAMPS_D8_PIN
+#elif ENABLED(IS_RAMPS_EFF) // Hotend, Fan, Fan
+ #define FAN_PIN RAMPS_D9_PIN
+ #define FAN1_PIN RAMPS_D8_PIN
+#elif ENABLED(IS_RAMPS_SF) // Spindle, Fan
+ #define FAN_PIN RAMPS_D8_PIN
+#else // Non-specific are "EFB" (i.e., "EFBF" or "EFBE")
+ #define FAN_PIN RAMPS_D9_PIN
+ #define HEATER_BED_PIN RAMPS_D8_PIN
+ #if HOTENDS == 1
+ #define FAN1_PIN MOSFET_D_PIN
+ #else
+ #define HEATER_1_PIN MOSFET_D_PIN
+ #endif
+#endif
+
+#ifndef FAN_PIN
+ #define FAN_PIN 4 // IO pin. Buffer needed
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 5 // Analog Input on AUX2
+#endif
+
+// define digital pin 4 for the filament runout sensor. Use the RAMPS 1.4 digital input 4 on the servos connector
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 4
+#endif
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN 12
+#endif
+
+#if ENABLED(CASE_LIGHT_ENABLE) && !defined(CASE_LIGHT_PIN) && !defined(SPINDLE_LASER_ENA_PIN)
+ #if NUM_SERVOS <= 1 // Prefer the servo connector
+ #define CASE_LIGHT_PIN 6 // Hardware PWM
+ #elif HAS_FREE_AUX2_PINS // try to use AUX 2
+ #define CASE_LIGHT_PIN 44 // Hardware PWM
+ #endif
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER && !PIN_EXISTS(SPINDLE_LASER_ENA)
+ #if !defined(NUM_SERVOS) || NUM_SERVOS == 0 // Prefer the servo connector
+ #define SPINDLE_LASER_ENA_PIN 4 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 6 // Hardware PWM
+ #define SPINDLE_DIR_PIN 5
+ #elif HAS_FREE_AUX2_PINS // try to use AUX 2
+ #define SPINDLE_LASER_ENA_PIN 40 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
+ #define SPINDLE_DIR_PIN 65
+ #endif
+#endif
+
+//
+// Průša i3 MK2 Multiplexer Support
+//
+#ifndef E_MUX0_PIN
+ #define E_MUX0_PIN 40 // Z_CS_PIN
+#endif
+#ifndef E_MUX1_PIN
+ #define E_MUX1_PIN 42 // E0_CS_PIN
+#endif
+#ifndef E_MUX2_PIN
+ #define E_MUX2_PIN 44 // E1_CS_PIN
+#endif
+
+/**
+ * Default pins for TMC software SPI
+ */
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI 66
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO 44
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK 64
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ /**
+ * Software serial
+ */
+
+ #ifndef X_SERIAL_TX_PIN
+ #define X_SERIAL_TX_PIN 40
+ #endif
+ #ifndef X_SERIAL_RX_PIN
+ #define X_SERIAL_RX_PIN 63
+ #endif
+ #ifndef X2_SERIAL_TX_PIN
+ #define X2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef X2_SERIAL_RX_PIN
+ #define X2_SERIAL_RX_PIN -1
+ #endif
+
+ #ifndef Y_SERIAL_TX_PIN
+ #define Y_SERIAL_TX_PIN 59
+ #endif
+ #ifndef Y_SERIAL_RX_PIN
+ #define Y_SERIAL_RX_PIN 64
+ #endif
+ #ifndef Y2_SERIAL_TX_PIN
+ #define Y2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef Y2_SERIAL_RX_PIN
+ #define Y2_SERIAL_RX_PIN -1
+ #endif
+
+ #ifndef Z_SERIAL_TX_PIN
+ #define Z_SERIAL_TX_PIN 42
+ #endif
+ #ifndef Z_SERIAL_RX_PIN
+ #define Z_SERIAL_RX_PIN 65
+ #endif
+ #ifndef Z2_SERIAL_TX_PIN
+ #define Z2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef Z2_SERIAL_RX_PIN
+ #define Z2_SERIAL_RX_PIN -1
+ #endif
+
+ #ifndef E0_SERIAL_TX_PIN
+ #define E0_SERIAL_TX_PIN 44
+ #endif
+ #ifndef E0_SERIAL_RX_PIN
+ #define E0_SERIAL_RX_PIN 66
+ #endif
+ #ifndef E1_SERIAL_TX_PIN
+ #define E1_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E1_SERIAL_RX_PIN
+ #define E1_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E2_SERIAL_TX_PIN
+ #define E2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E2_SERIAL_RX_PIN
+ #define E2_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E3_SERIAL_TX_PIN
+ #define E3_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E3_SERIAL_RX_PIN
+ #define E3_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E4_SERIAL_TX_PIN
+ #define E4_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E4_SERIAL_RX_PIN
+ #define E4_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E5_SERIAL_TX_PIN
+ #define E5_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E5_SERIAL_RX_PIN
+ #define E5_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E6_SERIAL_TX_PIN
+ #define E6_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E6_SERIAL_RX_PIN
+ #define E6_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E7_SERIAL_TX_PIN
+ #define E7_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E7_SERIAL_RX_PIN
+ #define E7_SERIAL_RX_PIN -1
+ #endif
+#endif
+
+//////////////////////////
+// LCDs and Controllers //
+//////////////////////////
+
+#if HAS_WIRED_LCD
+
+ //
+ // LCD Display output pins
+ //
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #define LCD_PINS_RS 49 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE 51 // SID (MOSI)
+ #define LCD_PINS_D4 52 // SCK (CLK) clock
+
+ #elif BOTH(IS_NEWPANEL, PANEL_ONE)
+
+ #define LCD_PINS_RS 40
+ #define LCD_PINS_ENABLE 42
+ #define LCD_PINS_D4 65
+ #define LCD_PINS_D5 66
+ #define LCD_PINS_D6 44
+ #define LCD_PINS_D7 64
+
+ #else
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define LCD_PINS_RS 27
+ #define LCD_PINS_ENABLE 29
+ #define LCD_PINS_D4 25
+
+ #if !IS_NEWPANEL
+ #define BEEPER_PIN 37
+ #endif
+
+ #elif ENABLED(ZONESTAR_LCD)
+
+ #define LCD_PINS_RS 64
+ #define LCD_PINS_ENABLE 44
+ #define LCD_PINS_D4 63
+ #define LCD_PINS_D5 40
+ #define LCD_PINS_D6 42
+ #define LCD_PINS_D7 65
+
+ #else
+
+ #if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
+ #define LCD_PINS_DC 25 // Set as output on init
+ #define LCD_PINS_RS 27 // Pull low for 1s to init
+ // DOGM SPI LCD Support
+ #define DOGLCD_CS 16
+ #define DOGLCD_MOSI 17
+ #define DOGLCD_SCK 23
+ #define DOGLCD_A0 LCD_PINS_DC
+ #else
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 23
+ #define LCD_PINS_D5 25
+ #define LCD_PINS_D6 27
+ #endif
+
+ #define LCD_PINS_D7 29
+
+ #if !IS_NEWPANEL
+ #define BEEPER_PIN 33
+ #endif
+
+ #endif
+
+ #if !IS_NEWPANEL
+ // Buttons attached to a shift register
+ // Not wired yet
+ //#define SHIFT_CLK_PIN 38
+ //#define SHIFT_LD_PIN 42
+ //#define SHIFT_OUT_PIN 40
+ //#define SHIFT_EN_PIN 17
+ #endif
+
+ #endif
+
+ //
+ // LCD Display input pins
+ //
+ #if IS_NEWPANEL
+
+ #if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
+
+ #define BEEPER_PIN 37
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ #define BTN_EN1 17
+ #define BTN_EN2 23
+ #else
+ #define BTN_EN1 31
+ #define BTN_EN2 33
+ #endif
+
+ #define BTN_ENC 35
+ #define SD_DETECT_PIN 49
+ #define KILL_PIN 41
+
+ #if ENABLED(BQ_LCD_SMART_CONTROLLER)
+ #define LCD_BACKLIGHT_PIN 39
+ #endif
+
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #define BTN_EN1 64
+ #define BTN_EN2 59
+ #define BTN_ENC 63
+ #define SD_DETECT_PIN 42
+
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+
+ #define BTN_EN1 47
+ #define BTN_EN2 43
+ #define BTN_ENC 32
+ #define LCD_SDSS SDSS
+ #define KILL_PIN 41
+
+ #elif ENABLED(LCD_I2C_VIKI)
+
+ #define BTN_EN1 22 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42.
+ #define BTN_EN2 7 // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13.
+ #define BTN_ENC -1
+
+ #define LCD_SDSS SDSS
+ #define SD_DETECT_PIN 49
+
+ #elif ANY(VIKI2, miniVIKI)
+
+ #define DOGLCD_CS 45
+ #define DOGLCD_A0 44
+ #define LCD_SCREEN_ROT_180
+
+ #define BEEPER_PIN 33
+ #define STAT_LED_RED_PIN 32
+ #define STAT_LED_BLUE_PIN 35
+
+ #define BTN_EN1 22
+ #define BTN_EN2 7
+ #define BTN_ENC 39
+
+ #define SD_DETECT_PIN -1 // Pin 49 for display sd interface, 72 for easy adapter board
+ #define KILL_PIN 31
+
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+
+ #define DOGLCD_CS 29
+ #define DOGLCD_A0 27
+
+ #define BEEPER_PIN 23
+ #define LCD_BACKLIGHT_PIN 33
+
+ #define BTN_EN1 35
+ #define BTN_EN2 37
+ #define BTN_ENC 31
+
+ #define LCD_SDSS SDSS
+ #define SD_DETECT_PIN 49
+ #define KILL_PIN 41
+
+ #elif ENABLED(MKS_MINI_12864)
+
+ #define DOGLCD_A0 27
+ #define DOGLCD_CS 25
+
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ #define BEEPER_PIN 37
+ // not connected to a pin
+ #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
+
+ #define BTN_EN1 31
+ #define BTN_EN2 33
+ #define BTN_ENC 35
+
+ #define SD_DETECT_PIN 49
+ #define KILL_PIN 64
+
+ #elif ENABLED(MINIPANEL)
+
+ #define BEEPER_PIN 42
+ // not connected to a pin
+ #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
+
+ #define DOGLCD_A0 44
+ #define DOGLCD_CS 66
+
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ #define BTN_EN1 40
+ #define BTN_EN2 63
+ #define BTN_ENC 59
+
+ #define SD_DETECT_PIN 49
+ #define KILL_PIN 64
+
+ #elif ENABLED(ZONESTAR_LCD)
+
+ #define ADC_KEYPAD_PIN 12
+
+ #elif ENABLED(AZSMZ_12864)
+
+ // Pins only defined for RAMPS_SMART currently
+
+ #else
+
+ // Beeper on AUX-4
+ #define BEEPER_PIN 33
+
+ // Buttons are directly attached to AUX-2
+ #if IS_RRW_KEYPAD
+ #define SHIFT_OUT_PIN 40
+ #define SHIFT_CLK_PIN 44
+ #define SHIFT_LD_PIN 42
+ #define BTN_EN1 64
+ #define BTN_EN2 59
+ #define BTN_ENC 63
+ #elif ENABLED(PANEL_ONE)
+ #define BTN_EN1 59 // AUX2 PIN 3
+ #define BTN_EN2 63 // AUX2 PIN 4
+ #define BTN_ENC 49 // AUX3 PIN 7
+ #else
+ #define BTN_EN1 37
+ #define BTN_EN2 35
+ #define BTN_ENC 31
+ #endif
+
+ #if ENABLED(G3D_PANEL)
+ #define SD_DETECT_PIN 49
+ #define KILL_PIN 41
+ #endif
+
+ #endif
+ #endif // IS_NEWPANEL
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/lpc1768/pins_AZSMZ_MINI.h b/Marlin/src/pins/lpc1768/pins_AZSMZ_MINI.h
new file mode 100644
index 0000000..70682ad
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_AZSMZ_MINI.h
@@ -0,0 +1,160 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * AZSMZ MINI pin assignments
+ */
+
+#if NOT_TARGET(MCU_LPC1768)
+ #error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "AZSMZ MINI"
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_23
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN P1_24
+#define Y_MIN_PIN P1_26
+#define Z_MIN_PIN P1_28
+#define Z_MAX_PIN P1_29
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_00
+#define X_DIR_PIN P0_05
+#define X_ENABLE_PIN P0_04
+
+#define Y_STEP_PIN P2_01
+#define Y_DIR_PIN P0_11
+#define Y_ENABLE_PIN P0_10
+
+#define Z_STEP_PIN P2_02
+#define Z_DIR_PIN P0_20
+#define Z_ENABLE_PIN P0_19
+
+#define E0_STEP_PIN P2_03
+#define E0_DIR_PIN P0_22
+#define E0_ENABLE_PIN P0_21
+
+#define E1_STEP_PIN P2_08
+#define E1_DIR_PIN P2_13
+#define E1_ENABLE_PIN P4_29
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_0_PIN P0_23_A0 // A0 (TH1)
+#define TEMP_BED_PIN P0_24_A1 // A1 (TH2)
+#define TEMP_1_PIN P0_25_A2 // A2 (TH3)
+
+//
+// Heaters / Fans
+//
+// EFB
+#define HEATER_0_PIN P2_04
+#define HEATER_BED_PIN P2_05
+#ifndef FAN_PIN
+ #define FAN_PIN P2_07
+#endif
+#define FAN1_PIN P0_26
+
+#define LCD_SDSS P0_16 // LCD SD chip select
+#define ONBOARD_SD_CS_PIN P0_06 // Chip select for "System" SD card
+
+#if ENABLED(AZSMZ_12864)
+ #define BEEPER_PIN P1_30
+ #define DOGLCD_A0 P2_06
+ #define DOGLCD_CS P1_22
+ #define BTN_EN1 P4_28
+ #define BTN_EN2 P1_27
+ #define BTN_ENC P3_26
+ #ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION LCD
+ #endif
+#endif
+
+#if SD_CONNECTION_IS(LCD)
+ #define SD_SCK_PIN P0_15
+ #define SD_MISO_PIN P0_17
+ #define SD_MOSI_PIN P0_18
+ #define SD_SS_PIN LCD_SDSS
+ #define SD_DETECT_PIN P3_25
+#elif SD_CONNECTION_IS(ONBOARD)
+ #define SD_SCK_PIN P0_07
+ #define SD_MISO_PIN P0_08
+ #define SD_MOSI_PIN P0_09
+ #define SD_SS_PIN ONBOARD_SD_CS_PIN
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "No custom SD drive cable defined for this board."
+#endif
+
+//
+// Ethernet pins
+//
+#define ENET_MDIO P1_17
+#define ENET_RX_ER P1_14
+#define ENET_RXD1 P1_10
+#define ENET_MOC P1_16
+#define REF_CLK P1_15
+#define ENET_RXD0 P1_09
+#define ENET_CRS P1_08
+#define ENET_TX_EN P1_04
+#define ENET_TXD0 P1_00
+#define ENET_TXD1 P1_01
+
+/**
+ * PWMs
+ *
+ * There are 6 PWMs. Each PWM can be assigned to one of two pins.
+ *
+ * SERVO2 does NOT have a PWM assigned to it.
+ *
+ * PWM1.1 DIO4 SERVO3_PIN FIL_RUNOUT_PIN 5V output, PWM
+ * PWM1.1 DIO26 E0_STEP_PIN
+ * PWM1.2 DIO11 SERVO0_PIN
+ * PWM1.2 DIO54 X_STEP_PIN
+ * PWM1.3 DIO6 SERVO1_PIN J5-1
+ * PWM1.3 DIO60 Y_STEP_PIN
+ * PWM1.4 DIO53 SDSS(SSEL0) J3-5 AUX-3
+ * PWM1.4 DIO46 Z_STEP_PIN
+ * PWM1.5 DIO3 X_MIN_PIN 10K PULLUP TO 3.3v, 1K SERIES
+ * PWM1.5 DIO9 RAMPS_D9_PIN
+ * PWM1.6 DIO14 Y_MIN_PIN 10K PULLUP TO 3.3v, 1K SERIES
+ * PWM1.6 DIO10 RAMPS_D10_PIN
+ */
+
+ /**
+ * Special pins
+ * D37 - not 5V tolerant
+ * D49 - not 5V tolerant
+ * D57 - open collector
+ * D58 - open collector
+ */
diff --git a/Marlin/src/pins/lpc1768/pins_BIQU_B300_V1.0.h b/Marlin/src/pins/lpc1768/pins_BIQU_B300_V1.0.h
new file mode 100644
index 0000000..5ac119f
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_BIQU_B300_V1.0.h
@@ -0,0 +1,182 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * BIQU BQ111-A4
+ *
+ * Applies to the following boards:
+ *
+ * BOARD_BIQU_BQ111_A4 (Hotend, Fan, Bed)
+ */
+
+#if NOT_TARGET(MCU_LPC1768)
+ #error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "BIQU Thunder B300 V1.0"
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN P1_24 // 10k pullup to 3.3V, 1K series
+#define X_MAX_PIN P1_25 // 10k pullup to 3.3V, 1K series
+#define Y_MIN_PIN P1_26 // 10k pullup to 3.3V, 1K series
+#define Y_MAX_PIN P1_27 // 10k pullup to 3.3V, 1K series
+#define Z_MIN_PIN P1_28 // 10k pullup to 3.3V, 1K series
+#define Z_MAX_PIN P1_29 // 10k pullup to 3.3V, 1K series
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_00
+#define X_DIR_PIN P0_05
+#define X_ENABLE_PIN P0_04
+#ifndef X_CS_PIN
+ #define X_CS_PIN P1_15 // ETH
+#endif
+
+#define Y_STEP_PIN P2_01
+#define Y_DIR_PIN P0_11
+#define Y_ENABLE_PIN P0_10
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN P1_14 // ETH
+#endif
+
+#define Z_STEP_PIN P2_02
+#define Z_DIR_PIN P0_20
+#define Z_ENABLE_PIN P0_19
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN P1_16 // ETH
+#endif
+
+#define E0_STEP_PIN P2_03
+#define E0_DIR_PIN P0_22
+#define E0_ENABLE_PIN P0_21
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN P1_17 // ETH
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI P0_18 // ETH
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO P0_17 // ETH
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK P0_15 // ETH
+ #endif
+#endif
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_0_PIN P0_24_A1 // A0 (T0)
+#define TEMP_BED_PIN P0_23_A0 // A1 (T1)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN P2_07
+#define HEATER_BED_PIN P2_05
+#ifndef FAN_PIN
+ #define FAN_PIN P2_04
+#endif
+
+//
+// Unused
+//
+//#define PIN_P2_10 P2_10 // IBOOT-1
+//#define PIN_P0_27 P0_27 // Onboard SD Detect
+
+/**
+ * LCD / Controller
+ *
+ * REPRAP_DISCOUNT_SMART_CONTROLLER is not supported due to the lack of LCD_PINS_D5,
+ * LCD_PINS_D6 or LCD_PINS_D7 in the EXP1 connector.
+ *
+ * A remote SD card is not supported as the pins routed to EXP2 are the same as used
+ * for the onboard SD card, and a chip select signal is not provided for the remote
+ * SD card.
+ */
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN P1_31 // EXP1-1
+
+ #define BTN_EN1 P3_26 // EXP2-3
+ #define BTN_EN2 P3_25 // EXP2-5
+ #define BTN_ENC P1_30 // EXP1-2
+
+ #define SD_DETECT_PIN P0_27 // EXP2-7
+ #define LCD_PINS_RS P0_16 // EXP1-4
+ #define LCD_PINS_ENABLE P0_18 // (MOSI) EXP1-3
+ #define LCD_PINS_D4 P0_15 // (SCK) EXP1-5
+
+ #if BOTH(HAS_MARLINUI_HD44780, IS_RRD_SC)
+ #error "REPRAP_DISCOUNT_SMART_CONTROLLER displays aren't supported by the BIQU B300 v1.0"
+ #endif
+
+ #if ENABLED(SDSUPPORT)
+ #error "SDSUPPORT is not supported by the BIQU B300 v1.0 when an LCD controller is used"
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+/**
+ * SD Card Reader
+ *
+ * Software SPI is used to interface with a stand-alone SD card reader connected to EXP1.
+ * Hardware SPI can't be used because P0_17 (MISO) is not brought out on this board.
+ */
+#if ENABLED(SDSUPPORT)
+ #define SD_SCK_PIN P0_15 // EXP1-5
+ #define SD_MISO_PIN P0_16 // EXP1-4
+ #define SD_MOSI_PIN P0_18 // EXP1-3
+ #define SD_SS_PIN P1_30 // EXP1-2
+ #define SDSS SD_SS_PIN
+#endif
+
+/**
+ * PWMS
+ *
+ * There are 6 PWMS. Each PWM can be assigned to one of two pins.
+ *
+ * PWM1.1 P0_18 LCD_PINS_ENABLE
+ * PWM1.1 P2_0 X_STEP_PIN
+ * PWM1.2 P1_20 <none>
+ * PWM1.2 P2_1 Y_STEP_PIN
+ * PWM1.3 P1_21 <none>
+ * PWM1.3 P2_2 Z_STEP_PIN
+ * PWM1.4 P1_23 <none>
+ * PWM1.4 P2_3 E0_STEP_PIN
+ * PWM1.5 P1_24 X_MIN_PIN
+ * PWM1.5 P2_4 FAN_PIN
+ * PWM1.6 P1_26 Y_MIN_PIN
+ * PWM1.6 P2_5 HEATER_BED_PIN
+ */
diff --git a/Marlin/src/pins/lpc1768/pins_BIQU_BQ111_A4.h b/Marlin/src/pins/lpc1768/pins_BIQU_BQ111_A4.h
new file mode 100644
index 0000000..3b2137b
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_BIQU_BQ111_A4.h
@@ -0,0 +1,155 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * BIQU BQ111-A4
+ *
+ * Applies to the following boards:
+ *
+ * BOARD_BIQU_BQ111_A4 (Hotend, Fan, Bed)
+ */
+
+#if NOT_TARGET(MCU_LPC1768)
+ #error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "BIQU BQ111-A4"
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN P1_24 // 10k pullup to 3.3V, 1K series
+#define X_MAX_PIN P1_25 // 10k pullup to 3.3V, 1K series
+#define Y_MIN_PIN P1_26 // 10k pullup to 3.3V, 1K series
+#define Y_MAX_PIN P1_27 // 10k pullup to 3.3V, 1K series
+#define Z_MIN_PIN P1_28 // 10k pullup to 3.3V, 1K series
+#define Z_MAX_PIN P1_29 // 10k pullup to 3.3V, 1K series
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_00
+#define X_DIR_PIN P0_05
+#define X_ENABLE_PIN P0_04
+
+#define Y_STEP_PIN P2_01
+#define Y_DIR_PIN P0_11
+#define Y_ENABLE_PIN P0_10
+
+#define Z_STEP_PIN P2_02
+#define Z_DIR_PIN P0_20
+#define Z_ENABLE_PIN P0_19
+
+#define E0_STEP_PIN P2_03
+#define E0_DIR_PIN P0_22
+#define E0_ENABLE_PIN P0_21
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_0_PIN P0_23_A0 // A0 (T0)
+#define TEMP_BED_PIN P0_24_A1 // A1 (T1)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN P2_07
+#define HEATER_BED_PIN P2_05
+#ifndef FAN_PIN
+ #define FAN_PIN P2_04
+#endif
+
+//
+// Unused
+//
+//#define PIN_P2_10 P2_10 // IBOOT-1
+//#define PIN_P0_27 P0_27 // Onboard SD Detect
+
+/**
+ * LCD / Controller
+ *
+ * REPRAP_DISCOUNT_SMART_CONTROLLER is not supported due to the lack of LCD_PINS_D5,
+ * LCD_PINS_D6 or LCD_PINS_D7 in the EXP1 connector.
+ *
+ * A remote SD card is not supported as the pins routed to EXP2 are the same as used
+ * for the onboard SD card, and a chip select signal is not provided for the remote
+ * SD card.
+ */
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN P1_31 // EXP1-1
+
+ #define BTN_EN1 P3_26 // EXP2-3
+ #define BTN_EN2 P3_25 // EXP2-5
+ #define BTN_ENC P1_30 // EXP1-2
+
+ #define SD_DETECT_PIN P0_27 // EXP2-7
+ #define LCD_PINS_RS P0_16 // EXP1-4
+ #define LCD_PINS_ENABLE P0_18 // (MOSI) EXP1-3
+ #define LCD_PINS_D4 P0_15 // (SCK) EXP1-5
+
+ #if BOTH(HAS_MARLINUI_HD44780, IS_RRD_SC)
+ #error "REPRAP_DISCOUNT_SMART_CONTROLLER displays aren't supported by the BIQU BQ111-A4"
+ #endif
+
+ #if ENABLED(SDSUPPORT)
+ #error "SDSUPPORT is not supported by the BIQU BQ111-A4 when an LCD controller is used"
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+/**
+ * SD Card Reader
+ *
+ * Software SPI is used to interface with a stand-alone SD card reader connected to EXP1.
+ * Hardware SPI can't be used because P0_17 (MISO) is not brought out on this board.
+ */
+#if ENABLED(SDSUPPORT)
+
+ #define SD_SCK_PIN P0_15 // EXP1-5
+ #define SD_MISO_PIN P0_16 // EXP1-4
+ #define SD_MOSI_PIN P0_18 // EXP1-3
+ #define SD_SS_PIN P1_30 // EXP1-2
+ #define SDSS SD_SS_PIN
+
+#endif // SDSUPPORT
+
+/**
+ * PWMS
+ *
+ * There are 6 PWMS. Each PWM can be assigned to one of two pins.
+ *
+ * PWM1.1 P0_18 LCD_PINS_ENABLE
+ * PWM1.1 P2_0 X_STEP_PIN
+ * PWM1.2 P1_20 <none>
+ * PWM1.2 P2_1 Y_STEP_PIN
+ * PWM1.3 P1_21 <none>
+ * PWM1.3 P2_2 Z_STEP_PIN
+ * PWM1.4 P1_23 <none>
+ * PWM1.4 P2_3 E0_STEP_PIN
+ * PWM1.5 P1_24 X_MIN_PIN
+ * PWM1.5 P2_4 FAN_PIN
+ * PWM1.6 P1_26 Y_MIN_PIN
+ * PWM1.6 P2_5 HEATER_BED_PIN
+ */
diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h
new file mode 100644
index 0000000..8c1396d
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h
@@ -0,0 +1,236 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#define BOARD_INFO_NAME "BTT SKR V1.1"
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN P1_29
+#define X_MAX_PIN P1_28
+#define Y_MIN_PIN P1_27
+#define Y_MAX_PIN P1_26
+#define Z_MIN_PIN P1_25
+#define Z_MAX_PIN P1_24
+
+//
+// Steppers
+//
+#define X_STEP_PIN P0_04
+#define X_DIR_PIN P0_05
+#define X_ENABLE_PIN P4_28
+
+#define Y_STEP_PIN P2_01
+#define Y_DIR_PIN P2_02
+#define Y_ENABLE_PIN P2_00
+
+#define Z_STEP_PIN P0_20
+#define Z_DIR_PIN P0_21
+#define Z_ENABLE_PIN P0_19
+
+#define E0_STEP_PIN P0_11
+#define E0_DIR_PIN P2_13
+#define E0_ENABLE_PIN P2_12
+
+/**
+ * LCD / Controller
+ *
+ * As of 20 JAN 2019 only the REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER display has
+ * been tested with these settings. It can be connected to the SKR using standard cables
+ * via the EXP1 and EXP2 ports. Other displays may need a custom cable and/or changes to
+ * the pins defined below.
+ *
+ * The SD card on the LCD controller uses the same SPI signals as the LCD, resulting in
+ * garbage/lines on the LCD display during SD card access. The LCD code mitigates this
+ * by redrawing the screen after SD card accesses.
+ */
+
+#if IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS P3_26
+ #endif
+
+ #define SD_DETECT_PIN P1_31
+
+#elif HAS_WIRED_LCD
+
+ #define BTN_EN1 P3_26
+ #define BTN_EN2 P3_25
+ #define BTN_ENC P2_11
+
+ #define SD_DETECT_PIN P1_31
+ #define LCD_SDSS P1_23
+ #define LCD_PINS_RS P0_16
+ #define LCD_PINS_ENABLE P0_18
+ #define LCD_PINS_D4 P0_15
+
+ #if ENABLED(MKS_MINI_12864)
+ #define DOGLCD_CS P2_06
+ #define DOGLCD_A0 P0_16
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Support
+//
+// MKS_MINI_12864 strongly prefers the SD card on the display and
+// requires jumpers on the SKR V1.1 board as documented here:
+// https://www.facebook.com/groups/505736576548648/permalink/630639874058317/
+#ifndef SDCARD_CONNECTION
+ #if ANY(MKS_MINI_12864, ENDER2_STOCKDISPLAY, IS_TFTGLCD_PANEL)
+ #define SDCARD_CONNECTION LCD
+ #else
+ #define SDCARD_CONNECTION ONBOARD
+ #endif
+#endif
+
+#if SD_CONNECTION_IS(LCD)
+ #define SD_SS_PIN P1_23
+#endif
+
+// Trinamic driver support
+
+#if HAS_TRINAMIC_CONFIG
+ // Using TMC devices in intelligent mode requires extra connections to each device. Unfortunately
+ // the SKR does not have many free pins (especially if a display is in use). The SPI-based devices
+ // will require 3 connections (clock, mosi, miso), plus a chip select line (CS) for each driver.
+ // The UART-based devices require 2 pis per deriver (one of which must be interrupt capable).
+ // The same SPI pins can be shared with the display/SD card reader, meaning SPI-based devices are
+ // probably a good choice for this board.
+ //
+ // SOFTWARE_DRIVER_ENABLE is a good option. It uses SPI to control the driver enable and allows the
+ // hardware ENABLE pins for each driver to be repurposed as SPI chip select. To use this mode the
+ // driver modules will probably need to be modified, removing the pin used for the enable line from
+ // the module and wiring this connection directly to GND (as is the case for TMC2130).
+ // Using this option and sharing all of the SPI pins allows 5 TMC2130 drivers to be used along with
+ // a REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER without requiring the use of any extra pins.
+ //
+ // Other options will probably require the use of any free pins and the TFT serial port or a
+ // different type of display (like the TFT), using the pins normally used for the display and encoder.
+ // Unfortunately, tests show it's not possible to use endstop and thermistor pins for chip-select.
+ // Sample settings are provided below, but only some have been tested.
+ //
+ // Another option is to share the enable and chip-select pins when using SPI. Several users have
+ // reported that this works. However, it's unlikely that this configuration will allow SPI communi-
+ // cation with the device when the drivers are active, meaning that some of the more advanced TMC
+ // options may not be available.
+
+ // When using any TMC SPI-based drivers, software SPI is used
+ // because pins may be shared with the display or SD card.
+ #define TMC_USE_SW_SPI
+ #define TMC_SW_MOSI P0_18
+ #define TMC_SW_MISO P0_17
+ // To minimize pin usage use the same clock pin as the display/SD card reader. (May generate LCD noise.)
+ #define TMC_SW_SCK P0_15
+ // If pin 2_06 is unused, it can be used for the clock to avoid the LCD noise.
+ //#define TMC_SW_SCK P2_06
+
+ #if ENABLED(SOFTWARE_DRIVER_ENABLE)
+
+ // Software enable allows the enable pins to be repurposed as chip-select pins.
+ // Note: Requires the driver modules to be modified to always be enabled with the enable pin removed.
+ #if AXIS_DRIVER_TYPE_X(TMC2130)
+ #define X_CS_PIN P4_28
+ #undef X_ENABLE_PIN
+ #endif
+
+ #if AXIS_DRIVER_TYPE_Y(TMC2130)
+ #define Y_CS_PIN P2_00
+ #undef Y_ENABLE_PIN
+ #endif
+
+ #if AXIS_DRIVER_TYPE_Z(TMC2130)
+ #define Z_CS_PIN P0_19
+ #undef Z_ENABLE_PIN
+ #endif
+
+ #if AXIS_DRIVER_TYPE_E0(TMC2130)
+ #define E0_CS_PIN P2_12
+ #undef E0_ENABLE_PIN
+ #endif
+
+ #if AXIS_DRIVER_TYPE_E1(TMC2130)
+ #define E1_CS_PIN P0_10
+ #undef E1_ENABLE_PIN
+ #endif
+
+ #else // !SOFTWARE_DRIVER_ENABLE
+
+ // A chip-select pin is needed for each driver.
+
+ // EXAMPLES
+
+ // Example 1: No LCD attached or a TFT style display using the AUX header RX/TX pins.
+ // SDCARD_CONNECTION must not be 'LCD'. Nothing should be connected to EXP1/EXP2.
+ //#define SKR_USE_LCD_PINS_FOR_CS
+ #if ENABLED(SKR_USE_LCD_PINS_FOR_CS)
+ #if SD_CONNECTION_IS(LCD)
+ #error "SDCARD_CONNECTION must not be 'LCD' with SKR_USE_LCD_PINS_FOR_CS."
+ #endif
+ #define X_CS_PIN P1_23
+ #define Y_CS_PIN P3_26
+ #define Z_CS_PIN P2_11
+ #define E0_CS_PIN P3_25
+ #define E1_CS_PIN P1_31
+ #endif
+
+ // Example 2: A REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
+ // The SD card reader attached to the LCD (if present) can't be used because
+ // the pins will be in use. So SDCARD_CONNECTION must not be 'LCD'.
+ //#define SKR_USE_LCD_SD_CARD_PINS_FOR_CS
+ #if ENABLED(SKR_USE_LCD_SD_CARD_PINS_FOR_CS)
+ #if SD_CONNECTION_IS(LCD)
+ #error "SDCARD_CONNECTION must not be 'LCD' with SKR_USE_LCD_SD_CARD_PINS_FOR_CS."
+ #endif
+ #define X_CS_PIN P0_02
+ #define Y_CS_PIN P0_03
+ #define Z_CS_PIN P2_06
+ // We use SD_DETECT_PIN for E0
+ #undef SD_DETECT_PIN
+ #define E0_CS_PIN P1_31
+ // We use LCD_SDSS pin for E1
+ #undef LCD_SDSS
+ #define LCD_SDSS -1
+ #define E1_CS_PIN P1_23
+ #endif
+
+ // Example 3: Use the driver enable pins for chip-select.
+ // Commands must not be sent to the drivers when enabled. So certain
+ // advanced features (like driver monitoring) will not be available.
+ //#define SKR_USE_ENABLE_CS
+ #if ENABLED(SKR_USE_ENABLE_FOR_CS)
+ #define X_CS_PIN X_ENABLE_PIN
+ #define Y_CS_PIN Y_ENABLE_PIN
+ #define Z_CS_PIN Z_ENABLE_PIN
+ #define E0_CS_PIN E0_ENABLE_PIN
+ #define E1_CS_PIN E1_ENABLE_PIN
+ #endif
+
+ #endif // SOFTWARE_DRIVER_ENABLE
+
+#endif
+
+// Include common SKR pins
+#include "pins_BTT_SKR_common.h"
diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h
new file mode 100644
index 0000000..e5b7802
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h
@@ -0,0 +1,390 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#define BOARD_INFO_NAME "BTT SKR V1.3"
+
+//
+// Trinamic Stallguard pins
+//
+#define X_DIAG_PIN P1_29 // X-
+#define Y_DIAG_PIN P1_27 // Y-
+#define Z_DIAG_PIN P1_25 // Z-
+#define E0_DIAG_PIN P1_28 // X+
+#define E1_DIAG_PIN P1_26 // Y+
+
+//
+// Limit Switches
+//
+#ifdef X_STALL_SENSITIVITY
+ #define X_STOP_PIN X_DIAG_PIN
+ #if X_HOME_DIR < 0
+ #define X_MAX_PIN P1_28 // X+
+ #else
+ #define X_MIN_PIN P1_28 // X+
+ #endif
+#else
+ #define X_MIN_PIN P1_29 // X-
+ #define X_MAX_PIN P1_28 // X+
+#endif
+
+#ifdef Y_STALL_SENSITIVITY
+ #define Y_STOP_PIN Y_DIAG_PIN
+ #if Y_HOME_DIR < 0
+ #define Y_MAX_PIN P1_26 // Y+
+ #else
+ #define Y_MIN_PIN P1_26 // Y+
+ #endif
+#else
+ #define Y_MIN_PIN P1_27 // Y-
+ #define Y_MAX_PIN P1_26 // Y+
+#endif
+
+#ifdef Z_STALL_SENSITIVITY
+ #define Z_STOP_PIN Z_DIAG_PIN
+ #if Z_HOME_DIR < 0
+ #define Z_MAX_PIN P1_24 // Z+
+ #else
+ #define Z_MIN_PIN P1_24 // Z+
+ #endif
+#else
+ #define Z_MIN_PIN P1_25 // Z-
+ #define Z_MAX_PIN P1_24 // Z+
+#endif
+
+#define ONBOARD_ENDSTOPPULLUPS // Board has built-in pullups
+
+//
+// Servos
+//
+#ifndef SERVO0_PIN
+ #define SERVO0_PIN P2_00
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN P1_24
+#endif
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN P1_28
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_02
+#define X_DIR_PIN P2_06
+#define X_ENABLE_PIN P2_01
+#ifndef X_CS_PIN
+ #define X_CS_PIN P1_17
+#endif
+
+#define Y_STEP_PIN P0_19
+#define Y_DIR_PIN P0_20
+#define Y_ENABLE_PIN P2_08
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN P1_15
+#endif
+
+#define Z_STEP_PIN P0_22
+#define Z_DIR_PIN P2_11
+#define Z_ENABLE_PIN P0_21
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN P1_10
+#endif
+
+#define E0_STEP_PIN P2_13
+#define E0_DIR_PIN P0_11
+#define E0_ENABLE_PIN P2_12
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN P1_08
+#endif
+
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN P1_01
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI P4_28
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO P0_05
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK P0_04
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN P4_29
+ #define X_SERIAL_RX_PIN P1_17
+
+ #define Y_SERIAL_TX_PIN P1_16
+ #define Y_SERIAL_RX_PIN P1_15
+
+ #define Z_SERIAL_TX_PIN P1_14
+ #define Z_SERIAL_RX_PIN P1_10
+
+ #define E0_SERIAL_TX_PIN P1_09
+ #define E0_SERIAL_RX_PIN P1_08
+
+ #define E1_SERIAL_TX_PIN P1_04
+ #define E1_SERIAL_RX_PIN P1_01
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+/**
+ * _____ _____
+ * NC | 1 2 | GND 5V | 1 2 | GND
+ * RESET | 3 4 | 1.31 (SD_DETECT) (LCD_D7) 1.23 | 3 4 | 1.22 (LCD_D6)
+ * (MOSI) 0.18 | 5 6 3.25 (BTN_EN2) (LCD_D5) 1.21 | 5 6 1.20 (LCD_D4)
+ * (SD_SS) 0.16 | 7 8 | 3.26 (BTN_EN1) (LCD_RS) 1.19 | 7 8 | 1.18 (LCD_EN)
+ * (SCK) 0.15 | 9 10| 0.17 (MISO) (BTN_ENC) 0.28 | 9 10| 1.30 (BEEPER)
+ * ----- -----
+ * EXP2 EXP1
+ */
+
+#define EXPA1_03_PIN P1_23
+#define EXPA1_04_PIN P1_22
+#define EXPA1_05_PIN P1_21
+#define EXPA1_06_PIN P1_20
+#define EXPA1_07_PIN P1_19
+#define EXPA1_08_PIN P1_18
+#define EXPA1_09_PIN P0_28
+#define EXPA1_10_PIN P1_30
+
+#define EXPA2_03_PIN -1
+#define EXPA2_04_PIN P1_31
+#define EXPA2_05_PIN P0_18
+#define EXPA2_06_PIN P3_25
+#define EXPA2_07_PIN P0_16
+#define EXPA2_08_PIN P3_26
+#define EXPA2_09_PIN P0_15
+#define EXPA2_10_PIN P0_17
+
+#if HAS_WIRED_LCD
+ #if ENABLED(ANET_FULL_GRAPHICS_LCD_ALT_WIRING)
+ #error "ANET_FULL_GRAPHICS_LCD_ALT_WIRING only applies to the ANET 1.0 board."
+
+ #elif ENABLED(ANET_FULL_GRAPHICS_LCD)
+ #error "CAUTION! ANET_FULL_GRAPHICS_LCD requires wiring modifications. See 'pins_BTT_SKR_V1_3.h' for details. Comment out this line to continue."
+
+ /**
+ * 1. Cut the tab off the LCD connector so it can be plugged into the "EXP1" connector the other way.
+ * 2. Swap the LCD's +5V (Pin2) and GND (Pin1) wires. (This is the critical part!)
+ * 3. Rewire the CLK Signal (LCD Pin9) to LCD Pin7. (LCD Pin9 remains open because this pin is open drain.)
+ * 4. A wire is needed to connect the Reset switch at J3 (LCD Pin7) to EXP2 (Pin3) on the board.
+ *
+ * !!! If you are unsure, ask for help! Your motherboard may be damaged in some circumstances !!!
+ *
+ * The ANET_FULL_GRAPHICS_LCD connector plug:
+ *
+ * BEFORE AFTER
+ * _____ _____
+ * GND 1 | 1 2 | 2 5V 5V 1 | 1 2 | 2 GND
+ * CS 3 | 3 4 | 4 BTN_EN2 CS 3 | 3 4 | 4 BTN_EN2
+ * SID 5 | 5 6 6 BTN_EN1 SID 5 | 5 6 6 BTN_EN1
+ * open 7 | 7 8 | 8 BTN_ENC CLK 7 | 7 8 | 8 BTN_ENC
+ * CLK 9 | 9 10| 10 Beeper open 9 | 9 10| 10 Beeper
+ * ----- -----
+ * LCD LCD
+ */
+
+ #define LCD_PINS_RS EXPA1_03_PIN
+
+ #define BTN_EN1 EXPA1_06_PIN
+ #define BTN_EN2 EXPA1_04_PIN
+ #define BTN_ENC EXPA1_08_PIN
+
+ #define LCD_PINS_ENABLE EXPA1_05_PIN
+ #define LCD_PINS_D4 EXPA1_07_PIN
+
+ #elif ENABLED(CR10_STOCKDISPLAY)
+
+ #define LCD_PINS_RS EXPA1_04_PIN
+
+ #define BTN_EN1 EXPA1_08_PIN
+ #define BTN_EN2 EXPA1_06_PIN
+ #define BTN_ENC EXPA1_09_PIN // (58) open-drain
+
+ #define LCD_PINS_ENABLE EXPA1_03_PIN
+ #define LCD_PINS_D4 EXPA1_05_PIN
+
+ #elif HAS_ADC_BUTTONS
+
+ #error "ADC BUTTONS do not work unmodifed on SKR 1.3, The ADC ports cannot take more than 3.3v."
+
+ #elif IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS EXPA2_08_PIN
+ #endif
+
+ #define SD_DETECT_PIN EXPA2_04_PIN
+
+ #else // !CR10_STOCKDISPLAY
+
+ #define LCD_PINS_RS EXPA1_07_PIN
+
+ #define BTN_EN1 EXPA2_08_PIN // (31) J3-2 & AUX-4
+ #define BTN_EN2 EXPA2_06_PIN // (33) J3-4 & AUX-4
+ #define BTN_ENC EXPA1_09_PIN // (58) open-drain
+
+ #define LCD_PINS_ENABLE EXPA1_08_PIN
+ #define LCD_PINS_D4 EXPA1_06_PIN
+
+ #define LCD_SDSS EXPA2_07_PIN // (16) J3-7 & AUX-4
+ #define SD_DETECT_PIN EXPA2_04_PIN // (49) (NOT 5V tolerant)
+
+ #if ENABLED(FYSETC_MINI_12864)
+ #define DOGLCD_CS EXPA1_08_PIN
+ #define DOGLCD_A0 EXPA1_07_PIN
+ #define DOGLCD_SCK EXPA2_09_PIN
+ #define DOGLCD_MOSI EXPA2_05_PIN
+
+ #define LCD_BACKLIGHT_PIN -1
+
+ #define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ #define LCD_RESET_PIN EXPA1_06_PIN // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN EXPA1_05_PIN
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN EXPA1_04_PIN
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN EXPA1_03_PIN
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN EXPA1_05_PIN
+ #endif
+
+ #else // !FYSETC_MINI_12864
+
+ #if ENABLED(MKS_MINI_12864)
+
+ #define DOGLCD_CS EXPA1_05_PIN
+ #define DOGLCD_A0 EXPA1_04_PIN
+ #define DOGLCD_SCK EXPA2_09_PIN
+ #define DOGLCD_MOSI EXPA2_05_PIN
+
+ #elif ENABLED(ENDER2_STOCKDISPLAY)
+
+ /**
+ * Creality Ender-2 display pinout
+ * _____
+ * 5V | 1 2 | GND
+ * (MOSI) P1_23 | 3 4 | P1_22 (LCD_CS)
+ * (LCD_A0) P1_21 | 5 6 P1_20 (BTN_EN2)
+ * RESET P1_19 | 7 8 | P1_18 (BTN_EN1)
+ * (BTN_ENC) P0_28 | 9 10| P1_30 (SCK)
+ * -----
+ * EXP1
+ */
+
+ #define BTN_EN1 EXPA1_08_PIN
+ #define BTN_EN2 EXPA1_06_PIN
+ #define BTN_ENC EXPA1_09_PIN
+ #define DOGLCD_CS EXPA1_04_PIN
+ #define DOGLCD_A0 EXPA1_05_PIN
+ #define DOGLCD_SCK EXPA1_10_PIN
+ #define DOGLCD_MOSI EXPA1_03_PIN
+ #define FORCE_SOFT_SPI
+ #define LCD_BACKLIGHT_PIN -1
+ #endif
+
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 EXPA1_05_PIN
+ #define LCD_PINS_D6 EXPA1_04_PIN
+ #define LCD_PINS_D7 EXPA1_03_PIN
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !FYSETC_MINI_12864
+
+ #endif // !CR10_STOCKDISPLAY
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Support
+//
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION LCD
+#endif
+
+#if SD_CONNECTION_IS(LCD)
+ #define SD_SS_PIN EXPA2_07_PIN
+#endif
+
+/**
+ * Special pins
+ * P1_30 (37) (NOT 5V tolerant)
+ * P1_31 (49) (NOT 5V tolerant)
+ * P0_27 (57) (Open collector)
+ * P0_28 (58) (Open collector)
+ */
+
+// Include common SKR pins
+#include "pins_BTT_SKR_common.h"
diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h
new file mode 100644
index 0000000..dfe86b1
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h
@@ -0,0 +1,524 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "BTT SKR V1.4"
+#endif
+
+#ifndef BOARD_CUSTOM_BUILD_FLAGS
+ #define BOARD_CUSTOM_BUILD_FLAGS -DLPC_PINCFG_UART3_P4_28
+#endif
+
+//
+// SD Connection
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION LCD
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN P2_00
+
+//
+// TMC StallGuard DIAG pins
+//
+#define X_DIAG_PIN P1_29 // X-STOP
+#define Y_DIAG_PIN P1_28 // Y-STOP
+#define Z_DIAG_PIN P1_27 // Z-STOP
+#define E0_DIAG_PIN P1_26 // E0DET
+#define E1_DIAG_PIN P1_25 // E1DET
+
+//
+// Limit Switches
+//
+#ifdef X_STALL_SENSITIVITY
+ #define X_STOP_PIN X_DIAG_PIN
+ #if X_HOME_DIR < 0
+ #define X_MAX_PIN P1_26 // E0DET
+ #else
+ #define X_MIN_PIN P1_26 // E0DET
+ #endif
+#elif ENABLED(X_DUAL_ENDSTOPS)
+ #ifndef X_MIN_PIN
+ #define X_MIN_PIN P1_29 // X-STOP
+ #endif
+ #ifndef X_MAX_PIN
+ #define X_MAX_PIN P1_26 // E0DET
+ #endif
+#else
+ #define X_STOP_PIN P1_29 // X-STOP
+#endif
+
+#ifdef Y_STALL_SENSITIVITY
+ #define Y_STOP_PIN Y_DIAG_PIN
+ #if Y_HOME_DIR < 0
+ #define Y_MAX_PIN P1_25 // E1DET
+ #else
+ #define Y_MIN_PIN P1_25 // E1DET
+ #endif
+#elif ENABLED(Y_DUAL_ENDSTOPS)
+ #ifndef Y_MIN_PIN
+ #define Y_MIN_PIN P1_28 // Y-STOP
+ #endif
+ #ifndef Y_MAX_PIN
+ #define Y_MAX_PIN P1_25 // E1DET
+ #endif
+#else
+ #define Y_STOP_PIN P1_28 // Y-STOP
+#endif
+
+#ifdef Z_STALL_SENSITIVITY
+ #define Z_STOP_PIN Z_DIAG_PIN
+ #if Z_HOME_DIR < 0
+ #define Z_MAX_PIN P1_00 // PWRDET
+ #else
+ #define Z_MIN_PIN P1_00 // PWRDET
+ #endif
+#elif ENABLED(Z_MULTI_ENDSTOPS)
+ #ifndef Z_MIN_PIN
+ #define Z_MIN_PIN P1_27 // Z-STOP
+ #endif
+ #ifndef Z_MAX_PIN
+ #define Z_MAX_PIN P1_00 // PWRDET
+ #endif
+#else
+ #ifndef Z_STOP_PIN
+ #define Z_STOP_PIN P1_27 // Z-STOP
+ #endif
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN P0_10
+#endif
+
+//
+// Filament Runout Sensor
+//
+#define FIL_RUNOUT_PIN P1_26 // E0DET
+#define FIL_RUNOUT2_PIN P1_25 // E1DET
+
+//
+// Power Supply Control
+//
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN P1_00 // PWRDET
+#endif
+
+//
+// Power Loss Detection
+//
+#ifndef POWER_LOSS_PIN
+ #define POWER_LOSS_PIN P1_00 // PWRDET
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_02
+#define X_DIR_PIN P2_06
+#define X_ENABLE_PIN P2_01
+#ifndef X_CS_PIN
+ #define X_CS_PIN P1_10
+#endif
+
+#define Y_STEP_PIN P0_19
+#define Y_DIR_PIN P0_20
+#define Y_ENABLE_PIN P2_08
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN P1_09
+#endif
+
+#define Z_STEP_PIN P0_22
+#define Z_DIR_PIN P2_11
+#define Z_ENABLE_PIN P0_21
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN P1_08
+#endif
+
+#define E0_STEP_PIN P2_13
+#define E0_DIR_PIN P0_11
+#define E0_ENABLE_PIN P2_12
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN P1_04
+#endif
+
+#define E1_STEP_PIN P1_15
+#define E1_DIR_PIN P1_14
+#define E1_ENABLE_PIN P1_16
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN P1_01
+#endif
+
+#define TEMP_1_PIN P0_23_A0 // A0 (T0) - (67) - TEMP_1_PIN
+#define TEMP_BED_PIN P0_25_A2 // A2 (T2) - (69) - TEMP_BED_PIN
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI P1_17
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO P0_05
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK P0_04
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN P1_10
+ #define X_SERIAL_RX_PIN P1_10
+
+ #define Y_SERIAL_TX_PIN P1_09
+ #define Y_SERIAL_RX_PIN P1_09
+
+ #define Z_SERIAL_TX_PIN P1_08
+ #define Z_SERIAL_RX_PIN P1_08
+
+ #define E0_SERIAL_TX_PIN P1_04
+ #define E0_SERIAL_RX_PIN P1_04
+
+ #define E1_SERIAL_TX_PIN P1_01
+ #define E1_SERIAL_RX_PIN P1_01
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+/* _____ _____
+ * NC | 1 2 | GND 5V | 1 2 | GND
+ * RESET | 3 4 | 1.31 1.23 | 3 4 | 1.22
+ * 0.18 | 5 6 3.25 1.21 | 5 6 1.20
+ * 0.16 | 7 8 | 3.26 1.19 | 7 8 | 1.18
+ * 0.15 | 9 10| 0.17 0.28 | 9 10| 1.30
+ * ----- -----
+ * EXP2 EXP1
+ */
+
+#define EXPA1_03_PIN P1_23
+#define EXPA1_04_PIN P1_22
+#define EXPA1_05_PIN P1_21
+#define EXPA1_06_PIN P1_20
+#define EXPA1_07_PIN P1_19
+#define EXPA1_08_PIN P1_18
+#define EXPA1_09_PIN P0_28
+#define EXPA1_10_PIN P1_30
+
+#define EXPA2_03_PIN -1
+#define EXPA2_04_PIN P1_31
+#define EXPA2_05_PIN P0_18
+#define EXPA2_06_PIN P3_25
+#define EXPA2_07_PIN P0_16
+#define EXPA2_08_PIN P3_26
+#define EXPA2_09_PIN P0_15
+#define EXPA2_10_PIN P0_17
+
+//
+// SD Connection
+//
+#if SD_CONNECTION_IS(LCD)
+ #define SD_SS_PIN EXPA2_07_PIN
+#endif
+
+/**
+ * _____ _____
+ * NC | · · | GND 5V | · · | GND
+ * RESET | · · | 1.31 (SD_DETECT) (LCD_D7) 1.23 | · · | 1.22 (LCD_D6)
+ * (MOSI) 0.18 | · · 3.25 (BTN_EN2) (LCD_D5) 1.21 | · · 1.20 (LCD_D4)
+ * (SD_SS) 0.16 | · · | 3.26 (BTN_EN1) (LCD_RS) 1.19 | · · | 1.18 (LCD_EN)
+ * (SCK) 0.15 | · · | 0.17 (MISO) (BTN_ENC) 0.28 | · · | 1.30 (BEEPER)
+ * ----- -----
+ * EXP2 EXP1
+ */
+
+#if ENABLED(DWIN_CREALITY_LCD)
+
+ // RET6 DWIN ENCODER LCD
+ #define BTN_ENC P1_20
+ #define BTN_EN1 P1_23
+ #define BTN_EN2 P1_22
+
+ #ifndef BEEPER_PIN
+ #define BEEPER_PIN P1_21
+ #undef SPEAKER
+ #endif
+
+#elif HAS_WIRED_LCD && !HAS_BTT_EXP_MOT
+
+ #if ENABLED(ANET_FULL_GRAPHICS_LCD_ALT_WIRING)
+ #error "CAUTION! ANET_FULL_GRAPHICS_LCD_ALT_WIRING requires wiring modifications. See 'pins_BTT_SKR_V1_4.h' for details. Comment out this line to continue."
+
+ /**
+ * 1. Cut the tab off the LCD connector so it can be plugged into the "EXP1" connector the other way.
+ * 2. Swap the LCD's +5V (Pin2) and GND (Pin1) wires. (This is the critical part!)
+ *
+ * !!! If you are unsure, ask for help! Your motherboard may be damaged in some circumstances !!!
+ *
+ * The ANET_FULL_GRAPHICS_LCD_ALT_WIRING connector plug:
+ *
+ * BEFORE AFTER
+ * _____ _____
+ * GND | 1 2 | 5V 5V | 1 2 | GND
+ * CS | 3 4 | BTN_EN2 CS | 3 4 | BTN_EN2
+ * SID | 5 6 BTN_EN1 SID | 5 6 BTN_EN1
+ * open | 7 8 | BTN_ENC open | 7 8 | BTN_ENC
+ * CLK | 9 10| Beeper CLK | 9 10| Beeper
+ * ----- -----
+ * LCD LCD
+ */
+
+ #define LCD_PINS_RS EXPA1_07_PIN
+
+ #define BTN_EN1 EXPA1_05_PIN
+ #define BTN_EN2 EXPA1_04_PIN
+ #define BTN_ENC EXPA1_10_PIN
+
+ #define LCD_PINS_ENABLE EXPA1_08_PIN
+ #define LCD_PINS_D4 EXPA1_06_PIN
+ #define BEEPER_PIN EXPA1_03_PIN
+
+ #elif ENABLED(ANET_FULL_GRAPHICS_LCD)
+ #error "CAUTION! ANET_FULL_GRAPHICS_LCD requires wiring modifications. See 'pins_BTT_SKR_V1_4.h' for details. Comment out this line to continue."
+
+ /**
+ * 1. Cut the tab off the LCD connector so it can be plugged into the "EXP1" connector the other way.
+ * 2. Swap the LCD's +5V (Pin2) and GND (Pin1) wires. (This is the critical part!)
+ * 3. Rewire the CLK Signal (LCD Pin9) to LCD Pin7. (LCD Pin9 remains open because this pin is open drain.)
+ * 4. A wire is needed to connect the Reset switch at J3 (LCD Pin7) to EXP2 (Pin3) on the board.
+ *
+ * !!! If you are unsure, ask for help! Your motherboard may be damaged in some circumstances !!!
+ *
+ * The ANET_FULL_GRAPHICS_LCD connector plug:
+ *
+ * BEFORE AFTER
+ * _____ _____
+ * GND | 1 2 | 5V 5V | 1 2 | GND
+ * CS | 3 4 | BTN_EN2 CS | 3 4 | BTN_EN2
+ * SID | 5 6 BTN_EN1 SID | 5 6 BTN_EN1
+ * open | 7 8 | BTN_ENC CLK | 7 8 | BTN_ENC
+ * CLK | 9 10| Beeper open | 9 10| Beeper
+ * ----- -----
+ * LCD LCD
+ */
+
+ #define LCD_PINS_RS EXPA1_03_PIN
+
+ #define BTN_EN1 EXPA1_06_PIN
+ #define BTN_EN2 EXPA1_04_PIN
+ #define BTN_ENC EXPA1_08_PIN
+
+ #define LCD_PINS_ENABLE EXPA1_05_PIN
+ #define LCD_PINS_D4 EXPA1_07_PIN
+
+ #define BEEPER_PIN EXPA1_10_PIN
+
+ #elif ENABLED(CR10_STOCKDISPLAY)
+ #define BTN_ENC EXPA1_09_PIN // (58) open-drain
+ #define LCD_PINS_RS EXPA1_04_PIN
+
+ #define BTN_EN1 EXPA1_08_PIN
+ #define BTN_EN2 EXPA1_06_PIN
+
+ #define LCD_PINS_ENABLE EXPA1_03_PIN
+ #define LCD_PINS_D4 EXPA1_05_PIN
+
+ #elif ENABLED(ENDER2_STOCKDISPLAY)
+
+ /** Creality Ender-2 display pinout
+ * _____
+ * 5V | 1 2 | GND
+ * (MOSI) 1.23 | 3 4 | 1.22 (LCD_RS)
+ * (LCD_A0) 1.21 | 5 6 1.20 (BTN_EN2)
+ * RESET 1.19 | 7 8 | 1.18 (BTN_EN1)
+ * (BTN_ENC) 0.28 | 9 10| 1.30 (SCK)
+ * -----
+ * EXP1
+ */
+
+ #define BTN_EN1 EXPA1_08_PIN
+ #define BTN_EN2 EXPA1_06_PIN
+ #define BTN_ENC EXPA1_09_PIN
+
+ #define DOGLCD_CS EXPA1_04_PIN
+ #define DOGLCD_A0 EXPA1_05_PIN
+ #define DOGLCD_SCK EXPA1_10_PIN
+ #define DOGLCD_MOSI EXPA1_03_PIN
+ #define FORCE_SOFT_SPI
+ #define LCD_BACKLIGHT_PIN -1
+
+ #elif HAS_SPI_TFT // Config for Classic UI (emulated DOGM) and Color UI
+ #define TFT_CS_PIN EXPA1_04_PIN
+ #define TFT_A0_PIN EXPA1_03_PIN
+ #define TFT_DC_PIN EXPA1_03_PIN
+ #define TFT_MISO_PIN EXPA2_10_PIN
+ #define TFT_BACKLIGHT_PIN EXPA1_08_PIN
+ #define TFT_RESET_PIN EXPA1_07_PIN
+
+ #define LCD_USE_DMA_SPI
+
+ #define TOUCH_INT_PIN EXPA1_05_PIN
+ #define TOUCH_CS_PIN EXPA1_06_PIN
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 1
+
+ // SPI 1
+ #define SD_SCK_PIN EXPA2_09_PIN
+ #define SD_MISO_PIN EXPA2_10_PIN
+ #define SD_MOSI_PIN EXPA2_05_PIN
+
+ // Disable any LCD related PINs config
+ #define LCD_PINS_ENABLE -1
+ #define LCD_PINS_RS -1
+
+ #define TFT_BUFFER_SIZE 2400
+
+ #elif IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS EXPA2_08_PIN
+ #endif
+
+ #define SD_DETECT_PIN EXPA2_04_PIN
+
+ #else
+
+ #define BTN_ENC EXPA1_09_PIN // (58) open-drain
+ #define LCD_PINS_RS EXPA1_07_PIN
+
+ #define BTN_EN1 EXPA2_08_PIN // (31) J3-2 & AUX-4
+ #define BTN_EN2 EXPA2_06_PIN // (33) J3-4 & AUX-4
+
+ #define LCD_PINS_ENABLE EXPA1_08_PIN
+ #define LCD_PINS_D4 EXPA1_06_PIN
+
+ #define LCD_SDSS EXPA2_07_PIN // (16) J3-7 & AUX-4
+
+ #if SD_CONNECTION_IS(LCD)
+ #define SD_DETECT_PIN EXPA2_04_PIN // (49) (NOT 5V tolerant)
+ #endif
+
+ #if ENABLED(FYSETC_MINI_12864)
+ #define DOGLCD_CS EXPA1_08_PIN
+ #define DOGLCD_A0 EXPA1_07_PIN
+ #define DOGLCD_SCK EXPA2_09_PIN
+ #define DOGLCD_MOSI EXPA2_05_PIN
+
+ #define LCD_BACKLIGHT_PIN -1
+
+ #define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ #define LCD_RESET_PIN EXPA1_06_PIN // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN EXPA1_05_PIN
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN EXPA1_04_PIN
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN EXPA1_03_PIN
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN EXPA1_05_PIN
+ #endif
+
+ #else // !FYSETC_MINI_12864
+
+ #if ENABLED(MKS_MINI_12864)
+ #define DOGLCD_CS EXPA1_05_PIN
+ #define DOGLCD_A0 EXPA1_04_PIN
+ #define DOGLCD_SCK EXPA2_09_PIN
+ #define DOGLCD_MOSI EXPA2_05_PIN
+ #define FORCE_SOFT_SPI
+ #endif
+
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 EXPA1_05_PIN
+ #define LCD_PINS_D6 EXPA1_04_PIN
+ #define LCD_PINS_D7 EXPA1_03_PIN
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN EXPA1_03_PIN // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !FYSETC_MINI_12864
+
+ #endif // HAS_MARLINUI_U8GLIB
+
+#endif // HAS_WIRED_LCD
+
+#if HAS_ADC_BUTTONS
+ #error "ADC BUTTONS do not work unmodifed on SKR 1.4, The ADC ports cannot take more than 3.3v."
+#endif
+
+//
+// NeoPixel LED
+//
+#ifndef NEOPIXEL_PIN
+ #define NEOPIXEL_PIN P1_24
+#endif
+
+/**
+ * Special pins
+ * P1_30 (37) (NOT 5V tolerant)
+ * P1_31 (49) (NOT 5V tolerant)
+ * P0_27 (57) (Open collector)
+ * P0_28 (58) (Open collector)
+ */
+
+//
+// Include common SKR pins
+//
+#include "pins_BTT_SKR_common.h"
diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h
new file mode 100644
index 0000000..a43940f
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h
@@ -0,0 +1,188 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if ENABLED(SKR_HAS_LPC1769)
+ #if NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+ #endif
+#elif NOT_TARGET(MCU_LPC1768)
+ #error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
+#endif
+
+// If you have the Big tree tech driver expantion module, enable HAS_BTT_EXP_MOT
+// https://github.com/bigtreetech/BTT-Expansion-module/tree/master/BTT%20EXP-MOT
+//#define HAS_BTT_EXP_MOT 1
+
+#if BOTH(HAS_WIRED_LCD, HAS_BTT_EXP_MOT)
+ #if EITHER(CR10_STOCKDISPLAY, ENDER2_STOCKDISPLAY)
+ #define EXP_MOT_USE_EXP2_ONLY 1
+ #else
+ #error "You can't use both an LCD and a Motor Expansion Module on EXP1/EXP2 at the same time."
+ #endif
+#endif
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Steppers
+//
+#ifndef E1_STEP_PIN
+ #define E1_STEP_PIN P0_01
+#endif
+#ifndef E1_DIR_PIN
+ #define E1_DIR_PIN P0_00
+#endif
+#ifndef E1_ENABLE_PIN
+ #define E1_ENABLE_PIN P0_10
+#endif
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#ifndef TEMP_0_PIN
+ #define TEMP_0_PIN P0_24_A1 // A1 (T1) - (68) - TEMP_0_PIN
+#endif
+#ifndef TEMP_1_PIN
+ #define TEMP_1_PIN P0_25_A2 // A2 (T2) - (69) - TEMP_1_PIN
+#endif
+#ifndef TEMP_BED_PIN
+ #define TEMP_BED_PIN P0_23_A0 // A0 (T0) - (67) - TEMP_BED_PIN
+#endif
+
+#if HOTENDS == 1
+ #if TEMP_SENSOR_PROBE
+ #define TEMP_PROBE_PIN TEMP_1_PIN
+ #elif TEMP_SENSOR_CHAMBER
+ #define TEMP_CHAMBER_PIN TEMP_1_PIN
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#ifndef HEATER_0_PIN
+ #define HEATER_0_PIN P2_07
+#endif
+#if HOTENDS == 1
+ #ifndef FAN1_PIN
+ #define FAN1_PIN P2_04
+ #endif
+#else
+ #ifndef HEATER_1_PIN
+ #define HEATER_1_PIN P2_04
+ #endif
+#endif
+#ifndef FAN_PIN
+ #define FAN_PIN P2_03
+#endif
+#ifndef HEATER_BED_PIN
+ #define HEATER_BED_PIN P2_05
+#endif
+
+//
+// LCD / Controller
+//
+#if !defined(BEEPER_PIN) && HAS_WIRED_LCD && DISABLED(LCD_USE_I2C_BUZZER)
+ #define BEEPER_PIN P1_30 // (37) not 5V tolerant
+#endif
+
+//
+// SD Support
+//
+#define ONBOARD_SD_CS_PIN P0_06 // Chip select for "System" SD card
+
+#if SD_CONNECTION_IS(LCD)
+ #define SD_SCK_PIN P0_15
+ #define SD_MISO_PIN P0_17
+ #define SD_MOSI_PIN P0_18
+#elif SD_CONNECTION_IS(ONBOARD)
+ #undef SD_DETECT_PIN
+ #define SD_DETECT_PIN P0_27
+ #define SD_SCK_PIN P0_07
+ #define SD_MISO_PIN P0_08
+ #define SD_MOSI_PIN P0_09
+ #define SD_SS_PIN ONBOARD_SD_CS_PIN
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "No custom SD drive cable defined for this board."
+#endif
+
+#if HAS_BTT_EXP_MOT
+
+ /** _____ _____
+ * NC | · · | GND NC | · · | GND
+ * NC | · · | 1.31 (M1EN) (M2EN) 1.23 | · · | 1.22 (M3EN)
+ * (M1STP) 0.18 | · · 3.25 (M1DIR) (M1RX) 1.21 | · · 1.20 (M1DIAG)
+ * (M2DIR) 0.16 | · · | 3.26 (M2STP) (M2RX) 1.19 | · · | 1.18 (M2DIAG)
+ * (M3DIR) 0.15 | · · | 0.17 (M3STP) (M3RX) 0.28 | · · | 1.30 (M3DIAG)
+ * ----- -----
+ * EXP2 EXP1
+ *
+ * NB In EXP_MOT_USE_EXP2_ONLY mode EXP1 is not used and M2EN and M3EN need to be jumpered to M1EN
+ */
+
+ // M1 on Driver Expansion Module
+ #define E2_STEP_PIN EXPA2_05_PIN
+ #define E2_DIR_PIN EXPA2_06_PIN
+ #define E2_ENABLE_PIN EXPA2_04_PIN
+ #if !EXP_MOT_USE_EXP2_ONLY
+ #define E2_DIAG_PIN EXPA1_06_PIN
+ #define E2_CS_PIN EXPA1_05_PIN
+ #if HAS_TMC_UART
+ #define E2_SERIAL_TX_PIN EXPA1_05_PIN
+ #define E2_SERIAL_RX_PIN EXPA1_05_PIN
+ #endif
+ #endif
+
+ // M2 on Driver Expansion Module
+ #define E3_STEP_PIN EXPA2_08_PIN
+ #define E3_DIR_PIN EXPA2_07_PIN
+ #if !EXP_MOT_USE_EXP2_ONLY
+ #define E3_ENABLE_PIN EXPA1_03_PIN
+ #define E3_DIAG_PIN EXPA1_08_PIN
+ #define E3_CS_PIN EXPA1_07_PIN
+ #if HAS_TMC_UART
+ #define E3_SERIAL_TX_PIN EXPA1_07_PIN
+ #define E3_SERIAL_RX_PIN EXPA1_07_PIN
+ #endif
+ #else
+ #define E3_ENABLE_PIN EXPA2_04_PIN
+ #endif
+
+ // M3 on Driver Expansion Module
+ #define E4_STEP_PIN EXPA2_10_PIN
+ #define E4_DIR_PIN EXPA2_09_PIN
+ #if !EXP_MOT_USE_EXP2_ONLY
+ #define E4_ENABLE_PIN EXPA1_04_PIN
+ #define E4_DIAG_PIN EXPA1_10_PIN
+ #define E4_CS_PIN EXPA1_09_PIN
+ #if HAS_TMC_UART
+ #define E4_SERIAL_TX_PIN EXPA1_09_PIN
+ #define E4_SERIAL_RX_PIN EXPA1_09_PIN
+ #endif
+ #else
+ #define E4_ENABLE_PIN EXPA2_04_PIN
+ #endif
+
+#endif // HAS_BTT_EXP_MOT
diff --git a/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h b/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h
new file mode 100644
index 0000000..1970c0c
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h
@@ -0,0 +1,168 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(MCU_LPC1768)
+ #error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "GMARSH X6 REV1"
+
+// Ignore temp readings during develpment.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Enable 12MHz clock output on P1.27 pin to sync TMC2208 chip clocks
+//
+#define LPC1768_ENABLE_CLKOUT_12M
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_26 // PWM1[6]
+#define SERVO1_PIN P1_18 // PWM1[1]
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN P0_00
+#define X_MAX_PIN P0_01
+#define Y_MIN_PIN P0_10
+#define Y_MAX_PIN P0_21
+#define Z_MIN_PIN P2_13
+#define Z_MAX_PIN P2_22
+
+//
+// Steppers
+//
+
+#define X_STEP_PIN P1_01
+#define X_DIR_PIN P1_04
+#define X_ENABLE_PIN P0_26
+
+#define Y_STEP_PIN P1_10
+#define Y_DIR_PIN P1_14
+#define Y_ENABLE_PIN P1_08
+
+#define Z_STEP_PIN P1_17
+#define Z_DIR_PIN P4_29
+#define Z_ENABLE_PIN P1_15
+
+#define E0_STEP_PIN P0_05
+#define E0_DIR_PIN P2_00
+#define E0_ENABLE_PIN P4_28
+
+#define E1_STEP_PIN P2_03
+#define E1_DIR_PIN P2_04
+#define E1_ENABLE_PIN P2_01
+
+#define E2_STEP_PIN P2_07
+#define E2_DIR_PIN P2_08
+#define E2_ENABLE_PIN P2_05
+
+//
+// TMC2208 UART pins
+//
+#if HAS_TMC_UART
+ #define X_SERIAL_TX_PIN P1_00
+ #define X_SERIAL_RX_PIN P1_00
+ #define Y_SERIAL_TX_PIN P1_09
+ #define Y_SERIAL_RX_PIN P1_09
+ #define Z_SERIAL_TX_PIN P1_16
+ #define Z_SERIAL_RX_PIN P1_16
+ #define E0_SERIAL_TX_PIN P0_04
+ #define E0_SERIAL_RX_PIN P0_04
+ #define E1_SERIAL_TX_PIN P2_02
+ #define E1_SERIAL_RX_PIN P2_02
+ #define E2_SERIAL_TX_PIN P2_06
+ #define E2_SERIAL_RX_PIN P2_06
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#else
+ #error "TMC2208 UART configuration is required for GMarsh X6."
+#endif
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_0_PIN P0_24_A1 // AD0[0] on P0_23
+#define TEMP_BED_PIN P0_23_A0 // AD0[1] on P0_24
+
+//
+// Heaters / Fans
+//
+#define HEATER_BED_PIN P1_19 // Not a PWM pin, software PWM required
+#define HEATER_0_PIN P3_26 // PWM1[3]
+#define FAN_PIN P3_25 // Part cooling fan - connected to PWM1[2]
+#define E0_AUTO_FAN_PIN P0_27 // Extruder cooling fan
+
+//
+// Misc. Functions
+//
+#define LED_PIN P1_31
+
+//
+// LCD
+//
+#if IS_RRD_SC
+ #define BEEPER_PIN P0_19
+ #define BTN_EN1 P1_23
+ #define BTN_EN2 P1_24
+ #define BTN_ENC P1_25
+ #define LCD_PINS_RS P0_20
+ #define LCD_PINS_ENABLE P0_21
+ #define LCD_PINS_D4 P2_11
+ #define LCD_PINS_D5 P0_22
+ #define LCD_PINS_D6 P1_29
+ #define LCD_PINS_D7 P1_28
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif
+
+//
+// SD Support
+//
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION LCD
+#endif
+
+#define ONBOARD_SD_CS_PIN P0_06 // Chip select for "System" SD card
+
+#if SD_CONNECTION_IS(LCD)
+ #define SD_SCK_PIN P0_15
+ #define SD_MISO_PIN P0_17
+ #define SD_MOSI_PIN P0_18
+ #define SD_SS_PIN P0_16
+#elif SD_CONNECTION_IS(ONBOARD)
+ #undef SD_DETECT_PIN
+ #define SD_DETECT_PIN P0_27
+ #define SD_SCK_PIN P0_07
+ #define SD_MISO_PIN P0_08
+ #define SD_MOSI_PIN P0_09
+ #define SD_SS_PIN ONBOARD_SD_CS_PIN
+#endif
diff --git a/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h b/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h
new file mode 100644
index 0000000..fbddc66
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h
@@ -0,0 +1,388 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS SBASE pin assignments
+ */
+
+#if defined(MKS_HAS_LPC1769) && NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+#elif !defined(MKS_HAS_LPC1769) && NOT_TARGET(MCU_LPC1768)
+ #error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS SBASE"
+#endif
+#ifndef BOARD_WEBSITE_URL
+ #define BOARD_WEBSITE_URL "github.com/makerbase-mks/MKS-SBASE"
+#endif
+
+#define LED_PIN P1_18 // Used as a status indicator
+#define LED2_PIN P1_19
+#define LED3_PIN P1_20
+#define LED4_PIN P1_21
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_23 // J8-3 (low jitter)
+#define SERVO1_PIN P2_12 // J8-4
+#define SERVO2_PIN P2_11 // J8-5
+#define SERVO3_PIN P4_28 // J8-6
+
+//
+// Limit Switches - Not Interrupt Capable
+//
+#define X_MIN_PIN P1_24 // 10k pullup to 3.3V, 1K series
+#define X_MAX_PIN P1_25 // 10k pullup to 3.3V, 1K series
+#define Y_MIN_PIN P1_26 // 10k pullup to 3.3V, 1K series
+#define Y_MAX_PIN P1_27 // 10k pullup to 3.3V, 1K series
+#define Z_MIN_PIN P1_28 // The original Mks Sbase DIO19 has a 10k pullup to 3.3V or 5V, 1K series, so when using a Zprobe we must use DIO41 (J8 P1.22)
+#define Z_MAX_PIN P1_29 // 10k pullup to 3.3V, 1K series
+
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN P4_28 // Connector J8
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_00
+#define X_DIR_PIN P0_05
+#define X_ENABLE_PIN P0_04
+
+#define Y_STEP_PIN P2_01
+#define Y_DIR_PIN P0_11
+#define Y_ENABLE_PIN P0_10
+
+#define Z_STEP_PIN P2_02
+#define Z_DIR_PIN P0_20
+#define Z_ENABLE_PIN P0_19
+
+#define E0_STEP_PIN P2_03
+#define E0_DIR_PIN P0_22
+#define E0_ENABLE_PIN P0_21
+
+#define E1_STEP_PIN P2_08
+#define E1_DIR_PIN P2_13
+#define E1_ENABLE_PIN P4_29
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_BED_PIN P0_23_A0 // A0 (TH1)
+#define TEMP_0_PIN P0_24_A1 // A1 (TH2)
+#define TEMP_1_PIN P0_25_A2 // A2 (TH3)
+#define TEMP_2_PIN P0_26_A3 // A3 (TH4)
+
+//
+// Heaters / Fans
+//
+#define HEATER_BED_PIN P2_05
+#define HEATER_0_PIN P2_07
+#define HEATER_1_PIN P2_06
+#ifndef FAN_PIN
+ #define FAN_PIN P2_04
+#endif
+
+//
+// Connector J7
+// Note: These pins are all digitally shared with the EXP1/EXP2 Connector.
+// Using them with an LCD connected or configured will lead to hangs & crashes.
+//
+
+// 5V
+// NC
+// GND
+#define PIN_P0_17 P0_17
+#define PIN_P0_16 P0_16
+#define PIN_P0_15 P0_15
+
+//
+// Connector J8
+//
+
+// GND
+#define PIN_P1_22 P1_22
+#define PIN_P1_23 P1_23 // PWM Capable
+#define PIN_P2_12 P2_12 // Interrupt Capable
+#define PIN_P2_11 P2_11 // Interrupt Capable
+
+//
+// Průša i3 MMU1 (Multi Material Multiplexer) Support
+//
+#if HAS_PRUSA_MMU1
+ #define E_MUX0_PIN P1_23 // J8-3
+ #define E_MUX1_PIN P2_12 // J8-4
+ #define E_MUX2_PIN P2_11 // J8-5
+#endif
+
+//
+// Misc. Functions
+//
+#define PS_ON_PIN P0_25 // TH3 Connector
+
+//
+// Ethernet pins
+//
+#if !IS_ULTIPANEL
+ #define ENET_MDIO P1_17 // J12-4
+ #define ENET_RX_ER P1_14 // J12-6
+ #define ENET_RXD1 P1_10 // J12-8
+#endif
+
+#define ENET_MOC P1_16 // J12-3
+#define REF_CLK P1_15 // J12-5
+#define ENET_RXD0 P1_09 // J12-7
+#define ENET_CRS P1_08 // J12-9
+#define ENET_TX_EN P1_04 // J12-10
+#define ENET_TXD0 P1_00 // J12-11
+#define ENET_TXD1 P1_01 // J12-12
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define ONBOARD_SD_CS_PIN P0_06 // Chip select for "System" SD card
+
+#if SD_CONNECTION_IS(CUSTOM_CABLE)
+
+ /**
+ * A custom cable is needed. See the README file in the
+ * Marlin\src\config\examples\Mks\Sbase directory
+ * P0.27 is on EXP2 and the on-board SD card's socket. That means it can't be
+ * used as the SD_DETECT for the LCD's SD card.
+ *
+ * The best solution is to use the custom cable to connect the LCD's SD_DETECT
+ * to a pin NOT on EXP2.
+ *
+ * If you can't find a pin to use for the LCD's SD_DETECT then comment out
+ * SD_DETECT_PIN entirely and remove that wire from the the custom cable.
+ */
+ #define SD_DETECT_PIN P2_11 // J8-5 (moved from EXP2 P0.27)
+ #define SD_SCK_PIN P1_22 // J8-2 (moved from EXP2 P0.7)
+ #define SD_MISO_PIN P1_23 // J8-3 (moved from EXP2 P0.8)
+ #define SD_MOSI_PIN P2_12 // J8-4 (moved from EXP2 P0.9)
+ #define SD_SS_PIN P0_28
+ #define LPC_SOFTWARE_SPI // With a custom cable we need software SPI because the
+ // selected pins are not on a hardware SPI controller
+#elif SD_CONNECTION_IS(LCD) || SD_CONNECTION_IS(ONBOARD)
+ #define SD_SCK_PIN P0_07
+ #define SD_MISO_PIN P0_08
+ #define SD_MOSI_PIN P0_09
+ #if SD_CONNECTION_IS(LCD)
+ // Use standard cable and header, SPI and SD detect are shared with onboard SD card.
+ // Hardware SPI is used for both SD cards. The detect pin is shared between the
+ // LCD and onboard SD readers so we disable it.
+ #define SD_SS_PIN P0_28
+ #else
+ #define SD_DETECT_PIN P0_27
+ #define SD_SS_PIN ONBOARD_SD_CS_PIN
+ #endif
+#endif
+
+/**
+ * Smart LCD adapter
+ *
+ * The Smart LCD adapter can be used for the two 10 pin LCD controllers such as
+ * REPRAP_DISCOUNT_SMART_CONTROLLER. It can't be used for controllers that use
+ * DOGLCD_A0, DOGLCD_CS, LCD_PINS_D5, LCD_PINS_D6 or LCD_PINS_D7. A custom cable
+ * is needed to pick up 5V for the EXP1 connection.
+ *
+ * SD card on the LCD uses the same SPI signals as the LCD. This results in garbage/lines
+ * on the LCD display during accesses of the SD card. The menus/code has been arranged so
+ * that the garbage/lines are erased immediately after the SD card accesses are completed.
+ */
+
+#if IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS P3_25 // EXP2.3
+ #endif
+
+ #if SD_CONNECTION_IS(LCD)
+ #define SD_DETECT_PIN P0_28 // EXP2.4
+ #endif
+
+#elif HAS_WIRED_LCD
+
+ #define BEEPER_PIN P1_31 // EXP1.1
+ #define BTN_ENC P1_30 // EXP1.2
+ #define BTN_EN1 P3_26 // EXP2.5
+ #define BTN_EN2 P3_25 // EXP2.3
+ #define LCD_PINS_RS P0_16 // EXP1.4
+ #define LCD_SDSS P0_28 // EXP2.4
+ #define LCD_PINS_ENABLE P0_18 // EXP1.3
+ #define LCD_PINS_D4 P0_15 // EXP1.5
+ #if ANY(VIKI2, miniVIKI)
+ #define DOGLCD_SCK SD_SCK_PIN
+ #define DOGLCD_MOSI SD_MOSI_PIN
+ #endif
+
+ #if ENABLED(FYSETC_MINI_12864)
+ /**
+ * The FYSETC display can NOT use the SCK and MOSI pins on EXP2, so a
+ * special cable is needed to go between EXP2 on the FYSETC and the
+ * controller board's EXP2 and J8. It also means that a software SPI
+ * is needed to drive those pins.
+ *
+ * The FYSETC requires mode 3 SPI interface.
+ *
+ * Pins 6, 7 & 8 on EXP2 are no connects. That means a second special
+ * cable will be needed if the RGB LEDs are to be active.
+ */
+ #define DOGLCD_CS LCD_PINS_ENABLE // EXP1.3 (LCD_EN on FYSETC schematic)
+ #define DOGLCD_A0 LCD_PINS_RS // EXP1.4 (LCD_A0 on FYSETC schematic)
+ #define DOGLCD_SCK P2_11 // J8-5 (SCK on FYSETC schematic)
+ #define DOGLCD_MOSI P4_28 // J8-6 (MOSI on FYSETC schematic)
+
+ //#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN P2_12 // J8-4 (LCD_D6 on FYSETC schematic)
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN P1_23 // J8-3 (LCD_D5 on FYSETC schematic)
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN P1_22 // J8-2 (LCD_D7 on FYSETC schematic)
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN P2_12
+ #endif
+
+ #elif ENABLED(MINIPANEL)
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+/**
+ * Example for trinamic drivers using the J8 connector on MKs Sbase.
+ * 2130s need 1 pin for each driver. 2208/2209s need 2 pins for serial control.
+ * This board does not have enough pins to use hardware serial.
+ */
+
+#if HAS_DRIVER(TMC2130)
+ // J8
+ #define X_CS_PIN P1_22
+ #define Y_CS_PIN P1_23
+ #define Z_CS_PIN P2_12
+ #define E0_CS_PIN P2_11
+ #define E1_CS_PIN P4_28
+
+ // Hardware SPI is on EXP2. See if you can make it work:
+ // https://github.com/makerbase-mks/MKS-SBASE/issues/25
+ #define TMC_USE_SW_SPI
+ #if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI P0_03 // AUX1
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO P0_02 // AUX1
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK P0_26 // TH4
+ #endif
+ #endif
+
+#endif
+
+#if MB(MKS_SBASE) && HAS_TMC_UART
+
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * The shortage of pins becomes apparent.
+ * Worst case you may have to give up the LCD
+ * RX pins need to be interrupt capable
+ */
+ #define X_SERIAL_TX_PIN P1_22 // J8-2
+ #define X_SERIAL_RX_PIN P2_12 // J8-4 Interrupt Capable
+ #define Y_SERIAL_TX_PIN P1_23 // J8-3
+ #define Y_SERIAL_RX_PIN P2_11 // J8-5 Interrupt Capable
+ #define Z_SERIAL_TX_PIN P2_12 // J8-4
+ #define Z_SERIAL_RX_PIN P0_25 // TH3
+ #define E0_SERIAL_TX_PIN P4_28 // J8-6
+ #define E0_SERIAL_RX_PIN P0_26 // TH4
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+// UNUSED
+#define PIN_P0_27 P0_27 // EXP2/Onboard SD
+#define PIN_P0_28 P0_28 // EXP2
+#define PIN_P0_02 P0_02 // AUX1 (Interrupt Capable/ADC/Serial Port 0)
+#define PIN_P0_03 P0_03 // AUX1 (Interrupt Capable/ADC/Serial Port 0)
+
+/**
+ * PWMs
+ *
+ * There are 6 PWMs. Each PWM can be assigned to one of two pins.
+ *
+ * SERVO2 does NOT have a PWM assigned to it.
+ *
+ * PWM1.1 P1_18 SERVO3_PIN FIL_RUNOUT_PIN 5V output, PWM
+ * PWM1.1 P2_00 E0_STEP_PIN
+ * PWM1.2 P1_20 SERVO0_PIN
+ * PWM1.2 P2_01 X_STEP_PIN
+ * PWM1.3 P1_21 SERVO1_PIN J5-1
+ * PWM1.3 P2_02 Y_STEP_PIN
+ * PWM1.4 P1_23 SDSS(SSEL0) J3-5 AUX-3
+ * PWM1.4 P2_03 Z_STEP_PIN
+ * PWM1.5 P1_24 X_MIN_PIN 10K PULLUP TO 3.3v, 1K SERIES
+ * PWM1.5 P2_04 RAMPS_D9_PIN
+ * PWM1.6 P1_26 Y_MIN_PIN 10K PULLUP TO 3.3v, 1K SERIES
+ * PWM1.6 P2_05 RAMPS_D10_PIN
+ */
+
+/**
+ * Special pins
+ * P1_30 - not 5V tolerant - EXP1
+ * P1_31 - not 5V tolerant - EXP1
+ * P0_27 - open collector - EXP2
+ * P0_28 - open collector - EXP2
+ */
+
+/**
+ * Serial Ports
+ * P0_00 - Port 3
+ * P0_01 - SD Card (Onboard)
+ * P0_10 - Port 2
+ * P0_11 - Y_EN/Y_DIR
+ * P0_15 - Port 1
+ * P0_16 - EXP1
+ * P0_02 - Port 0
+ * P0_03 - AUX1
+ * P0_29 - Port -1
+ * P0_30 - USB
+ */
diff --git a/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h b/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h
new file mode 100644
index 0000000..b919eca
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h
@@ -0,0 +1,395 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS SGEN-L pin assignments
+ */
+
+#if NOT_TARGET(MCU_LPC1768)
+ #error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "MKS SGen-L"
+#define BOARD_WEBSITE_URL "github.com/makerbase-mks/MKS-SGEN_L"
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_23 // SERVO P1.23
+#define SERVO1_PIN P2_00 // SERVO P2.0
+
+//
+// Trinamic Stallguard pins
+//
+#define X_DIAG_PIN P1_29 // X-
+#define Y_DIAG_PIN P1_27 // Y-
+#define Z_DIAG_PIN P1_25 // Z-
+#define E0_DIAG_PIN P1_28 // X+
+#define E1_DIAG_PIN P1_26 // Y+
+
+//
+// Limit Switches
+//
+#ifdef X_STALL_SENSITIVITY
+ #define X_STOP_PIN X_DIAG_PIN
+ #if X_HOME_DIR < 0
+ #define X_MAX_PIN P1_28 // X+
+ #else
+ #define X_MIN_PIN P1_28 // X+
+ #endif
+#else
+ #define X_MIN_PIN P1_29 // X-
+ #define X_MAX_PIN P1_28 // X+
+#endif
+
+#ifdef Y_STALL_SENSITIVITY
+ #define Y_STOP_PIN Y_DIAG_PIN
+ #if Y_HOME_DIR < 0
+ #define Y_MAX_PIN P1_26 // Y+
+ #else
+ #define Y_MIN_PIN P1_26 // Y+
+ #endif
+#else
+ #define Y_MIN_PIN P1_27 // Y-
+ #define Y_MAX_PIN P1_26 // Y+
+#endif
+
+#ifdef Z_STALL_SENSITIVITY
+ #define Z_STOP_PIN Z_DIAG_PIN
+ #if Z_HOME_DIR < 0
+ #define Z_MAX_PIN P1_24 // Z+
+ #else
+ #define Z_MIN_PIN P1_24 // Z+
+ #endif
+#else
+ #define Z_MIN_PIN P1_25 // Z-
+ #define Z_MAX_PIN P1_24 // Z+
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN P1_24
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_02
+#define X_DIR_PIN P2_03
+#define X_ENABLE_PIN P2_01
+#ifndef X_CS_PIN
+ #define X_CS_PIN P1_01
+#endif
+
+#define Y_STEP_PIN P0_19
+#define Y_DIR_PIN P0_20
+#define Y_ENABLE_PIN P2_08
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN P1_08
+#endif
+
+#define Z_STEP_PIN P0_22
+#define Z_DIR_PIN P2_11
+#define Z_ENABLE_PIN P0_21
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN P1_10
+#endif
+
+#define E0_STEP_PIN P2_13
+#define E0_DIR_PIN P0_11
+#define E0_ENABLE_PIN P2_12
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN P1_15
+#endif
+
+#define E1_STEP_PIN P0_01
+#define E1_DIR_PIN P0_00
+#define E1_ENABLE_PIN P0_10
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN P1_17
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI P4_28
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO P0_05
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK P0_04
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+
+ #define X_SERIAL_TX_PIN P1_04
+ #define X_SERIAL_RX_PIN P1_01
+
+ #define Y_SERIAL_TX_PIN P1_09
+ #define Y_SERIAL_RX_PIN P1_08
+
+ #define Z_SERIAL_TX_PIN P1_14
+ #define Z_SERIAL_RX_PIN P1_10
+
+ #define E0_SERIAL_TX_PIN P1_16
+ #define E0_SERIAL_RX_PIN P1_15
+
+ #define E1_SERIAL_TX_PIN P4_29
+ #define E1_SERIAL_RX_PIN P1_17
+
+ #define Z2_SERIAL_TX_PIN P4_29
+ #define Z2_SERIAL_RX_PIN P1_17
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif // HAS_TMC_UART
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_0_PIN P0_23_A0 // Analog Input A0 (TH1)
+#define TEMP_BED_PIN P0_24_A1 // Analog Input A1 (TB)
+#define TEMP_1_PIN P0_25_A2 // Analog Input A2 (TH2)
+
+//
+// Heaters / Fans
+//
+#define HEATER_BED_PIN P2_05
+#define HEATER_0_PIN P2_07
+#if HOTENDS == 1
+ #ifndef FAN1_PIN
+ #define FAN1_PIN P2_06
+ #endif
+#else
+ #ifndef HEATER_1_PIN
+ #define HEATER_1_PIN P2_06
+ #endif
+#endif
+#ifndef FAN_PIN
+ #define FAN_PIN P2_04
+#endif
+
+//
+// Misc. Functions
+//
+#define LED_PIN P1_18 // Used as a status indicator
+#define LED2_PIN P1_19
+#define LED3_PIN P1_20
+#define LED4_PIN P1_21
+
+/**
+ * _____ _____
+ * (BEEPER) 1.31 | · · | 1.30 (BTN_ENC) (MISO) 0.8 | · · | 0.7 (SD_SCK)
+ * (LCD_EN) 0.18 | · · | 0.16 (LCD_RS) (BTN_EN1) 3.25 | · · | 0.28 (SD_CS2)
+ * (LCD_D4) 0.15 | · · 0.17 (LCD_D5) (BTN_EN2) 3.26 | · · 0.9 (SD_MOSI)
+ * (LCD_D6) 1.0 | · · | 1.22 (LCD_D7) (SD_DETECT) 0.27 | · · | RST
+ * GND | · · | 5V GND | · · | NC
+ * ----- -----
+ * EXP1 EXP2
+ */
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN P1_31
+ #define BTN_ENC P1_30
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ #define LCD_PINS_RS P1_00
+
+ #define BTN_EN1 P0_18
+ #define BTN_EN2 P0_15
+
+ #define LCD_PINS_ENABLE P1_22
+ #define LCD_PINS_D4 P0_17
+
+ #elif HAS_SPI_TFT // Config for Classic UI (emulated DOGM) and Color UI
+ #define TFT_CS_PIN P1_00
+ #define TFT_A0_PIN P1_22
+ #define TFT_DC_PIN P1_22
+ #define TFT_MISO_PIN P0_08
+ #define TFT_BACKLIGHT_PIN P0_18
+ #define TFT_RESET_PIN P0_16
+
+ #define LCD_USE_DMA_SPI
+
+ #define TOUCH_INT_PIN P0_17
+ #define TOUCH_CS_PIN P0_15
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 2
+
+ // Disable any LCD related PINs config
+ #define LCD_PINS_ENABLE -1
+ #define LCD_PINS_RS -1
+
+ #ifndef TFT_BUFFER_SIZE
+ #define TFT_BUFFER_SIZE 1200
+ #endif
+ #ifndef TFT_QUEUE_SIZE
+ #define TFT_QUEUE_SIZE 6144
+ #endif
+
+ #define BTN_EN1 P3_25
+ #define BTN_EN2 P3_26
+
+ #elif IS_TFTGLCD_PANEL
+
+ #undef BEEPER_PIN
+ #undef BTN_ENC
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS P3_25
+ #endif
+
+ #else
+
+ #define BTN_EN1 P3_25
+ #define BTN_EN2 P3_26
+
+ #define LCD_SDSS P0_28
+
+ #if ENABLED(MKS_12864OLED_SSD1306)
+
+ #define LCD_PINS_DC P0_17
+ #define DOGLCD_CS P0_16
+ #define DOGLCD_A0 LCD_PINS_DC
+ #define DOGLCD_SCK P0_15
+ #define DOGLCD_MOSI P0_18
+
+ #define LCD_PINS_RS P1_00
+ #define LCD_PINS_D7 P1_22
+ #define KILL_PIN -1 // NC
+
+ #else // !MKS_12864OLED_SSD1306
+
+ #define LCD_PINS_RS P0_16
+
+ #define LCD_PINS_ENABLE P0_18
+ #define LCD_PINS_D4 P0_15
+
+ #if ENABLED(FYSETC_MINI_12864)
+
+ #define DOGLCD_CS P0_18
+ #define DOGLCD_A0 P0_16
+ #define DOGLCD_SCK P0_07
+ #define DOGLCD_MOSI P0_09
+
+ #define LCD_BACKLIGHT_PIN -1
+
+ #define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ #define LCD_RESET_PIN P0_15 // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN P0_17
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN P1_00
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN P1_22
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN P0_17
+ #endif
+
+ #else // !FYSETC_MINI_12864
+
+ #if ENABLED(MKS_MINI_12864)
+ #define DOGLCD_CS P0_17
+ #define DOGLCD_A0 P1_00
+ #endif
+
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 P0_17
+ #define LCD_PINS_D6 P1_00
+ #define LCD_PINS_D7 P1_22
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !FYSETC_MINI_12864
+
+ #endif // !MKS_12864OLED_SSD1306
+
+ #endif // !CR10_STOCKDISPLAY
+
+#endif // HAS_WIRED_LCD
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define ONBOARD_SD_CS_PIN P0_06 // Chip select for "System" SD card
+
+#if SD_CONNECTION_IS(LCD) || SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN P0_27
+ #define SD_SCK_PIN P0_07
+ #define SD_MISO_PIN P0_08
+ #define SD_MOSI_PIN P0_09
+ #if SD_CONNECTION_IS(ONBOARD)
+ #define SD_SS_PIN ONBOARD_SD_CS_PIN
+ #else
+ #define SD_SS_PIN P0_28
+ #endif
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "No custom SD drive cable defined for this board."
+#endif
+
+//
+// Other Pins
+//
+//#define PIN_P0_02 P0_02 // AUX1 (Interrupt Capable/ADC/Serial Port 0)
+//#define PIN_P0_03 P0_03 // AUX1 (Interrupt Capable/ADC/Serial Port 0)
+//#define PS_ON_PIN P1_23 // SERVO P1.23
diff --git a/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h b/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h
new file mode 100644
index 0000000..6584030
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h
@@ -0,0 +1,518 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Re-ARM with RAMPS v1.4 pin assignments
+ *
+ * Applies to the following boards:
+ *
+ * RAMPS_14_EFB (Hotend, Fan, Bed)
+ * RAMPS_14_EEB (Hotend0, Hotend1, Bed)
+ * RAMPS_14_EFF (Hotend, Fan0, Fan1)
+ * RAMPS_14_EEF (Hotend0, Hotend1, Fan)
+ * RAMPS_14_SF (Spindle, Controller Fan)
+ */
+
+// Numbers in parentheses () are the corresponding mega2560 pin numbers
+
+#if NOT_TARGET(MCU_LPC1768)
+ #error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "Re-ARM RAMPS 1.4"
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_20 // (11)
+#define SERVO1_PIN P1_21 // ( 6) also on J5-1
+#define SERVO2_PIN P1_19 // ( 5)
+#define SERVO3_PIN P1_18 // ( 4) 5V output
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN P1_24 // ( 3) 10k pullup to 3.3V, 1K series
+#define X_MAX_PIN P1_25 // ( 2) 10k pullup to 3.3V, 1K series
+#define Y_MIN_PIN P1_26 // (14) 10k pullup to 3.3V, 1K series
+#define Y_MAX_PIN P1_27 // (15) 10k pullup to 3.3V, 1K series
+#define Z_MIN_PIN P1_29 // (18) 10k pullup to 3.3V, 1K series
+#define Z_MAX_PIN P1_28 // (19) 10k pullup to 3.3V, 1K series
+#define ONBOARD_ENDSTOPPULLUPS // Board has built-in pullups
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_01 // (54)
+#define X_DIR_PIN P0_11 // (55)
+#define X_ENABLE_PIN P0_10 // (38)
+#ifndef X_CS_PIN
+ #define X_CS_PIN P1_01 // ETH
+#endif
+
+#define Y_STEP_PIN P2_02 // (60)
+#define Y_DIR_PIN P0_20 // (61)
+#define Y_ENABLE_PIN P0_19 // (56)
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN P1_04 // ETH
+#endif
+
+#define Z_STEP_PIN P2_03 // (46)
+#define Z_DIR_PIN P0_22 // (48)
+#define Z_ENABLE_PIN P0_21 // (62)
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN P1_10 // ETH
+#endif
+
+#define E0_STEP_PIN P2_00 // (26)
+#define E0_DIR_PIN P0_05 // (28)
+#define E0_ENABLE_PIN P0_04 // (24)
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN P1_14 // ETH
+#endif
+
+#define E1_STEP_PIN P2_08 // (36)
+#define E1_DIR_PIN P2_13 // (34)
+#define E1_ENABLE_PIN P4_29 // (30)
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN -1
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI P1_00 // ETH
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO P1_08 // ETH
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK P1_09 // ETH
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+
+ //
+ // Software serial
+ //
+
+ // P2_08 E1-Step
+ // P2_13 E1-Dir
+
+ #ifndef X_SERIAL_TX_PIN
+ #define X_SERIAL_TX_PIN P0_01
+ #endif
+ #ifndef X_SERIAL_RX_PIN
+ #define X_SERIAL_RX_PIN P0_01
+ #endif
+
+ #ifndef Y_SERIAL_TX_PIN
+ #define Y_SERIAL_TX_PIN P0_00
+ #endif
+ #ifndef Y_SERIAL_RX_PIN
+ #define Y_SERIAL_RX_PIN P0_00
+ #endif
+
+ #ifndef Z_SERIAL_TX_PIN
+ #define Z_SERIAL_TX_PIN P2_13
+ #endif
+ #ifndef Z_SERIAL_RX_PIN
+ #define Z_SERIAL_RX_PIN P2_13
+ #endif
+
+ #ifndef E0_SERIAL_TX_PIN
+ #define E0_SERIAL_TX_PIN P2_08
+ #endif
+ #ifndef E0_SERIAL_RX_PIN
+ #define E0_SERIAL_RX_PIN P2_08
+ #endif
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_0_PIN P0_23_A0 // A0 (T0) - (67) - TEMP_0_PIN
+#define TEMP_BED_PIN P0_24_A1 // A1 (T1) - (68) - TEMP_BED_PIN
+#define TEMP_1_PIN P0_25_A2 // A2 (T2) - (69) - TEMP_1_PIN
+#define TEMP_2_PIN P0_26_A3 // A3 - (63) - J5-3 & AUX-2
+#define TEMP_3_PIN P1_30_A4 // A4 - (37) - BUZZER_PIN
+//#define TEMP_4_PIN P1_31_A5 // A5 - (49) - SD_DETECT_PIN
+//#define ?? P0_03_A6 // A6 - ( 0) - RXD0 - J4-4 & AUX-1
+#define FILWIDTH_PIN P0_02_A7 // A7 - ( 1) - TXD0 - J4-5 & AUX-1
+
+//
+// Augmentation for auto-assigning RAMPS plugs
+//
+#if NONE(IS_RAMPS_EEB, IS_RAMPS_EEF, IS_RAMPS_EFB, IS_RAMPS_EFF, IS_RAMPS_SF) && !PIN_EXISTS(MOSFET_D)
+ #if HAS_MULTI_HOTEND
+ #if TEMP_SENSOR_BED
+ #define IS_RAMPS_EEB
+ #else
+ #define IS_RAMPS_EEF
+ #endif
+ #elif TEMP_SENSOR_BED
+ #define IS_RAMPS_EFB
+ #else
+ #define IS_RAMPS_EFF
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#ifndef MOSFET_D_PIN
+ #define MOSFET_D_PIN -1
+#endif
+#ifndef RAMPS_D8_PIN
+ #define RAMPS_D8_PIN P2_07 // (8)
+#endif
+#ifndef RAMPS_D9_PIN
+ #define RAMPS_D9_PIN P2_04 // (9)
+#endif
+#ifndef RAMPS_D10_PIN
+ #define RAMPS_D10_PIN P2_05 // (10)
+#endif
+
+#define HEATER_0_PIN RAMPS_D10_PIN
+
+#if ENABLED(IS_RAMPS_EFB) // Hotend, Fan, Bed
+ #define HEATER_BED_PIN RAMPS_D8_PIN
+#elif ENABLED(IS_RAMPS_EEF) // Hotend, Hotend, Fan
+ #define HEATER_1_PIN RAMPS_D9_PIN
+#elif ENABLED(IS_RAMPS_EEB) // Hotend, Hotend, Bed
+ #define HEATER_1_PIN RAMPS_D9_PIN
+ #define HEATER_BED_PIN RAMPS_D8_PIN
+#elif ENABLED(IS_RAMPS_EFF) // Hotend, Fan, Fan
+ #define FAN1_PIN RAMPS_D8_PIN
+#elif DISABLED(IS_RAMPS_SF) // Not Spindle, Fan (i.e., "EFBF" or "EFBE")
+ #define HEATER_BED_PIN RAMPS_D8_PIN
+ #if HOTENDS == 1
+ #define FAN1_PIN MOSFET_D_PIN
+ #else
+ #define HEATER_1_PIN MOSFET_D_PIN
+ #endif
+#endif
+
+#ifndef FAN_PIN
+ #if EITHER(IS_RAMPS_EFB, IS_RAMPS_EFF) // Hotend, Fan, Bed or Hotend, Fan, Fan
+ #define FAN_PIN RAMPS_D9_PIN
+ #elif EITHER(IS_RAMPS_EEF, IS_RAMPS_SF) // Hotend, Hotend, Fan or Spindle, Fan
+ #define FAN_PIN RAMPS_D8_PIN
+ #elif ENABLED(IS_RAMPS_EEB) // Hotend, Hotend, Bed
+ #define FAN_PIN P1_18 // (4) IO pin. Buffer needed
+ #else // Non-specific are "EFB" (i.e., "EFBF" or "EFBE")
+ #define FAN_PIN RAMPS_D9_PIN
+ #endif
+#endif
+
+//
+// Misc. Functions
+//
+#define LED_PIN P4_28 // (13)
+
+// define digital pin 5 for the filament runout sensor. Use the RAMPS 1.4 digital input 5 on the servos connector
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN P1_19 // (5)
+#endif
+
+#define PS_ON_PIN P2_12 // (12)
+
+#if !defined(MAX6675_SS_PIN) && DISABLED(USE_ZMAX_PLUG)
+ #define MAX6675_SS_PIN P1_28
+#endif
+
+#if ENABLED(CASE_LIGHT_ENABLE) && !PIN_EXISTS(CASE_LIGHT) && !defined(SPINDLE_LASER_ENA_PIN)
+ #if !defined(NUM_SERVOS) || NUM_SERVOS < 4 // Try to use servo connector
+ #define CASE_LIGHT_PIN P1_18 // (4) MUST BE HARDWARE PWM
+ #endif
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+// Use servo pins, if available
+//
+#if HAS_CUTTER && !PIN_EXISTS(SPINDLE_LASER_ENA)
+ #if NUM_SERVOS > 1
+ #if ENABLED(SPINDLE_FEATURE)
+ #error "SPINDLE_FEATURE requires 3 free servo pins."
+ #else
+ #error "LASER_FEATURE requires 3 free servo pins."
+ #endif
+ #endif
+ #define SPINDLE_LASER_ENA_PIN SERVO1_PIN // (6) Pin should have a pullup/pulldown!
+ #define SPINDLE_LASER_PWM_PIN SERVO3_PIN // (4) MUST BE HARDWARE PWM
+ #define SPINDLE_DIR_PIN SERVO2_PIN // (5)
+#endif
+
+//
+// Průša i3 MK2 Multiplexer Support
+//
+#if SERIAL_PORT != 0 && SERIAL_PORT_2 != 0
+ #define E_MUX0_PIN P0_03 // ( 0) Z_CS_PIN
+ #define E_MUX1_PIN P0_02 // ( 1) E0_CS_PIN
+#endif
+#define E_MUX2_PIN P0_26 // (63) E1_CS_PIN
+
+/**
+ * LCD / Controller
+ *
+ * All controllers can use J3 and J5 on the Re-ARM board. Custom cabling will be required.
+ *
+ * - https://github.com/wolfmanjm/universal-panel-adapter
+ * - https://panucattdevices.freshdesk.com/support/solutions/articles/1000243195-lcd-display-installation
+ */
+
+/**
+ * Smart LCD adapter
+ *
+ * The Smart LCD adapter can be used for the two 10 pin LCD controllers such as
+ * REPRAP_DISCOUNT_SMART_CONTROLLER. It can't be used for controllers that use
+ * DOGLCD_A0, DOGLCD_CS, LCD_PINS_D5, LCD_PINS_D6 or LCD_PINS_D7. A custom cable
+ * is needed to pick up 5V for the EXP1 connection.
+ *
+ * SD card on the LCD uses the same SPI signals as the LCD. This results in garbage/lines
+ * on the LCD display during accesses of the SD card. The menus/code has been arranged so
+ * that the garbage/lines are erased immediately after the SD card accesses are completed.
+ */
+
+#if ENABLED(CR10_STOCKDISPLAY)
+
+ // Re-Arm can support Creality stock display without SD card reader and single cable on EXP3.
+ // Re-Arm J3 pins 1 (p1.31) & 2 (P3.26) are not used. Stock cable will need to have one
+ // 10-pin IDC connector trimmed or replaced with a 12-pin IDC connector to fit J3.
+ // Requires REVERSE_ENCODER_DIRECTION in Configuration.h
+
+ #define BEEPER_PIN P2_11 // J3-3 & AUX-4
+
+ #define BTN_EN1 P0_16 // J3-7 & AUX-4
+ #define BTN_EN2 P1_23 // J3-5 & AUX-4
+ #define BTN_ENC P3_25 // J3-4 & AUX-4
+
+ #define LCD_PINS_RS P0_15 // J3-9 & AUX-4 (CS)
+ #define LCD_PINS_ENABLE P0_18 // J3-10 & AUX-3 (SID, MOSI)
+ #define LCD_PINS_D4 P2_06 // J3-8 & AUX-3 (SCK, CLK)
+
+#elif ENABLED(ZONESTAR_LCD)
+
+ #error "CAUTION! ZONESTAR_LCD on REARM requires wiring modifications. NB. ADCs are not 5V tolerant. Comment out this line to continue."
+
+#elif IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS P3_26 // (31) J3-2 & AUX-4
+ #endif
+
+ #define SD_DETECT_PIN P1_31 // (49) J3-1 & AUX-3 (NOT 5V tolerant)
+ #define KILL_PIN P1_22 // (41) J5-4 & AUX-4
+
+#elif HAS_WIRED_LCD
+
+ #if ENABLED(FYSETC_MINI_12864)
+ #define BEEPER_PIN P1_01
+ #define BTN_ENC P1_04
+ #else
+ #define BEEPER_PIN P1_30 // (37) not 5V tolerant
+ #define BTN_ENC P2_11 // (35) J3-3 & AUX-4
+ #endif
+
+ #define BTN_EN1 P3_26 // (31) J3-2 & AUX-4
+ #define BTN_EN2 P3_25 // (33) J3-4 & AUX-4
+
+ #define SD_DETECT_PIN P1_31 // (49) J3-1 & AUX-3 (NOT 5V tolerant)
+ #define KILL_PIN P1_22 // (41) J5-4 & AUX-4
+ #define LCD_PINS_RS P0_16 // (16) J3-7 & AUX-4
+ #define LCD_SDSS P1_23 // (53) J3-5 & AUX-3
+
+ #if IS_NEWPANEL
+ #if IS_RRW_KEYPAD
+ #define SHIFT_OUT_PIN P0_18 // (51) (MOSI) J3-10 & AUX-3
+ #define SHIFT_CLK_PIN P0_15 // (52) (SCK) J3-9 & AUX-3
+ #define SHIFT_LD_PIN P1_31 // (49) J3-1 & AUX-3 (NOT 5V tolerant)
+ #endif
+ #else
+ //#define SHIFT_CLK_PIN P3_26 // (31) J3-2 & AUX-4
+ //#define SHIFT_LD_PIN P3_25 // (33) J3-4 & AUX-4
+ //#define SHIFT_OUT_PIN P2_11 // (35) J3-3 & AUX-4
+ //#define SHIFT_EN_PIN P1_22 // (41) J5-4 & AUX-4
+ #endif
+
+ #if ANY(VIKI2, miniVIKI)
+ //#define LCD_SCREEN_ROT_180
+
+ #define DOGLCD_CS P0_16 // (16)
+ #define DOGLCD_A0 P2_06 // (59) J3-8 & AUX-2
+ #define DOGLCD_SCK SD_SCK_PIN
+ #define DOGLCD_MOSI SD_MOSI_PIN
+
+ #define STAT_LED_BLUE_PIN P0_26 // (63) may change if cable changes
+ #define STAT_LED_RED_PIN P1_21 // ( 6) may change if cable changes
+
+ #else
+
+ #if ENABLED(FYSETC_MINI_12864)
+ #define DOGLCD_SCK P0_15
+ #define DOGLCD_MOSI P0_18
+
+ // EXP1 on LCD adapter is not usable - using Ethernet connector instead
+ #define DOGLCD_CS P1_09
+ #define DOGLCD_A0 P1_14
+ //#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ #define LCD_RESET_PIN P0_16 // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN P1_00
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN P1_01
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN P1_08
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN P1_00
+ #endif
+ #else
+ #define DOGLCD_CS P0_26 // (63) J5-3 & AUX-2
+ #define DOGLCD_A0 P2_06 // (59) J3-8 & AUX-2
+ #endif
+
+ #define LCD_BACKLIGHT_PIN P0_16 //(16) J3-7 & AUX-4 - only used on DOGLCD controllers
+ #define LCD_PINS_ENABLE P0_18 // (51) (MOSI) J3-10 & AUX-3
+ #define LCD_PINS_D4 P0_15 // (52) (SCK) J3-9 & AUX-3
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 P1_17 // (71) ENET_MDIO
+ #define LCD_PINS_D6 P1_14 // (73) ENET_RX_ER
+ #define LCD_PINS_D7 P1_10 // (75) ENET_RXD1
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+ #endif
+
+ #if ENABLED(MINIPANEL)
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// Ethernet pins
+//
+#if !IS_ULTIPANEL
+ #define ENET_MDIO P1_17 // (71) J12-4
+ #define ENET_RX_ER P1_14 // (73) J12-6
+ #define ENET_RXD1 P1_10 // (75) J12-8
+#endif
+#define ENET_MOC P1_16 // (70) J12-3
+#define REF_CLK P1_15 // (72) J12-5
+#define ENET_RXD0 P1_09 // (74) J12-7
+#define ENET_CRS P1_08 // (76) J12-9
+#define ENET_TX_EN P1_04 // (77) J12-10
+#define ENET_TXD0 P1_00 // (78) J12-11
+#define ENET_TXD1 P1_01 // (79) J12-12
+
+//
+// SD Support
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define ONBOARD_SD_CS_PIN P0_06 // Chip select for "System" SD card
+
+#if SD_CONNECTION_IS(LCD)
+ #define SD_SCK_PIN P0_15 // (52) system defined J3-9 & AUX-3
+ #define SD_MISO_PIN P0_17 // (50) system defined J3-10 & AUX-3
+ #define SD_MOSI_PIN P0_18 // (51) system defined J3-10 & AUX-3
+ #define SD_SS_PIN P1_23 // (53) system defined J3-5 & AUX-3 (Sometimes called SDSS) - CS used by Marlin
+#elif SD_CONNECTION_IS(ONBOARD)
+ #undef SD_DETECT_PIN
+ #define SD_SCK_PIN P0_07
+ #define SD_MISO_PIN P0_08
+ #define SD_MOSI_PIN P0_09
+ #define SD_SS_PIN ONBOARD_SD_CS_PIN
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "No custom SD drive cable defined for this board."
+#endif
+
+/**
+ * Fast PWMs
+ *
+ * The LPC1768's hardware PWM controller has 6 channels. Each channel
+ * can be setup to either control a dedicated pin directly or to generate
+ * an interrupt. The direct method's duty cycle is accurate to within a
+ * a microsecond. The interrupt method's average duty cycle has the
+ * the same accuracy but the individual cycles can vary because of higher
+ * priority interrupts.
+ *
+ * All Fast PWMs have a 50Hz rate.
+ *
+ * The following pins/signals use the direct method. All other pins use the
+ * the interrupt method. Note that SERVO2_PIN and RAMPS_D8_PIN use the
+ * interrupt method.
+ *
+ * P1_20 (11) SERVO0_PIN
+ * P1_21 ( 6) SERVO1_PIN J5-1
+ * P0_18 ( 4) SERVO3_PIN 5V output
+ * *P2_04 ( 9) RAMPS_D9_PIN
+ * *P2_05 (10) RAMPS_D10_PIN
+ *
+ * * - If used as a heater driver then a Fast PWM is NOT assigned. If used as
+ * a fan driver then enabling FAST_PWM_FAN assigns a Fast PWM to it.
+ */
+
+ /**
+ * Special pins
+ * P1_30 (37) (NOT 5V tolerant)
+ * P1_31 (49) (NOT 5V tolerant)
+ * P0_27 (57) (Open collector)
+ * P0_28 (58) (Open collector)
+ */
+
+/**
+ * The following mega2560 pins are NOT available in a Re-ARM system:
+ *
+ * 7, 17, 22, 23, 25, 27, 29, 32, 39, 40, 42, 43, 44, 45, 47, 64, 65, 66
+ */
diff --git a/Marlin/src/pins/lpc1768/pins_SELENA_COMPACT.h b/Marlin/src/pins/lpc1768/pins_SELENA_COMPACT.h
new file mode 100644
index 0000000..700e79d
--- /dev/null
+++ b/Marlin/src/pins/lpc1768/pins_SELENA_COMPACT.h
@@ -0,0 +1,118 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Selena Compact pin assignments
+ */
+
+#if NOT_TARGET(MCU_LPC1768)
+ #error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "Selena Compact"
+#define BOARD_WEBSITE_URL "github.com/Ales2-k/Selena"
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_23
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN P1_28
+#define X_MAX_PIN P1_25
+#define Y_MIN_PIN P2_11
+#define Y_MAX_PIN -1
+#define Z_MIN_PIN P1_27
+#define Z_MAX_PIN -1
+#define Z_PROBE P1_22
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_00
+#define X_DIR_PIN P0_05
+#define X_ENABLE_PIN P0_04
+
+#define Y_STEP_PIN P2_01
+#define Y_DIR_PIN P0_11
+#define Y_ENABLE_PIN P0_10
+
+#define Z_STEP_PIN P2_02
+#define Z_DIR_PIN P0_20
+#define Z_ENABLE_PIN P0_19
+
+#define E0_STEP_PIN P2_03
+#define E0_DIR_PIN P0_22
+#define E0_ENABLE_PIN P0_21
+
+#define E1_STEP_PIN P2_08
+#define E1_DIR_PIN P2_13
+#define E1_ENABLE_PIN P4_29
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_BED_PIN P0_23_A0 // A0 (TH1)
+#define TEMP_0_PIN P0_24_A1 // A1 (TH2)
+#define TEMP_1_PIN P0_25_A2 // A2 (TH3)
+
+//
+// Heaters / Fans
+//
+
+#define HEATER_BED_PIN P2_05
+#define HEATER_BED2_PIN P2_04
+#define HEATER_0_PIN P2_07
+#define HEATER_1_PIN P2_06
+#ifndef FAN_PIN
+ #define FAN_PIN P1_24
+#endif
+#define FAN1_PIN P1_26
+
+//
+// Display
+//
+
+#if IS_RRD_FG_SC
+ #define LCD_PINS_RS P0_16
+ #define LCD_PINS_ENABLE P0_18
+ #define LCD_PINS_D4 P0_15
+ #define LCD_PINS_D5 P1_00
+ #define LCD_PINS_D6 P1_01
+ #define LCD_PINS_D7 P1_04
+ #define BEEPER_PIN P1_31
+
+ #define BTN_EN1 P3_25
+ #define BTN_EN2 P3_26
+ #define BTN_ENC P1_30
+
+ #define SD_DETECT_PIN -1
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // IS_RRD_FG_SC
diff --git a/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_GT.h b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_GT.h
new file mode 100644
index 0000000..adf9085
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_GT.h
@@ -0,0 +1,126 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Azteeg X5 GT pin assignments
+ */
+
+#if NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "Azteeg X5 GT"
+#define BOARD_WEBSITE_URL "tinyurl.com/yx8tdqa3"
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_23
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN P1_24
+#define X_MAX_PIN P1_27
+#define Y_MIN_PIN P1_25
+#define Y_MAX_PIN P1_28
+#define Z_MIN_PIN P1_26
+#define Z_MAX_PIN P1_29
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_01
+#define X_DIR_PIN P0_11
+#define X_ENABLE_PIN P0_10
+#ifndef X_CS_PIN
+ #define X_CS_PIN P0_10 // BSD2660 default
+#endif
+
+#define Y_STEP_PIN P2_02
+#define Y_DIR_PIN P0_20
+#define Y_ENABLE_PIN P0_19
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN P0_19 // BSD2660 default
+#endif
+
+#define Z_STEP_PIN P2_03
+#define Z_DIR_PIN P0_22
+#define Z_ENABLE_PIN P0_21
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN P0_21 // BSD2660 default
+#endif
+
+#define E0_STEP_PIN P2_00
+#define E0_DIR_PIN P0_05
+#define E0_ENABLE_PIN P0_04
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN P0_04 // BSD2660 default
+#endif
+
+#define E1_STEP_PIN P2_08
+#define E1_DIR_PIN P2_13
+#define E1_ENABLE_PIN P4_29
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN P4_29 // BSD2660 default
+#endif
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_BED_PIN P0_23_A0 // A0 (TH1)
+#define TEMP_0_PIN P0_24_A1 // A1 (TH2)
+#define TEMP_1_PIN P0_25_A2 // A2 (TH3)
+
+//
+// Heaters / Fans
+//
+
+#define HEATER_BED_PIN P2_07
+#define HEATER_0_PIN P2_04
+#define HEATER_1_PIN P2_05
+#ifndef FAN_PIN
+ #define FAN_PIN P0_26
+#endif
+#define FAN1_PIN P1_22
+
+//
+// Display
+//
+
+#if ANY(VIKI2, miniVIKI)
+ #define BEEPER_PIN P1_31
+ #define DOGLCD_A0 P2_06
+ #define DOGLCD_CS P0_16
+
+ #define BTN_EN1 P3_25
+ #define BTN_EN2 P3_26
+ #define BTN_ENC P2_11
+
+ #define SD_DETECT_PIN P1_18
+ #define SDSS P1_21
+
+ #define STAT_LED_RED_PIN P1_19
+ #define STAT_LED_BLUE_PIN P1_20
+#endif
diff --git a/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h
new file mode 100644
index 0000000..fdd6487
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h
@@ -0,0 +1,219 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Azteeg X5 MINI pin assignments
+ */
+
+#if NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Azteeg X5 MINI"
+#endif
+#define BOARD_WEBSITE_URL "tiny.cc/x5_mini"
+
+//
+// LED
+//
+#define LED_PIN P1_18
+#define LED2_PIN P1_20
+#define LED3_PIN P1_19
+#define LED4_PIN P1_21
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_29
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN P1_24
+#define Y_STOP_PIN P1_26
+#define Z_STOP_PIN P1_28
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN P2_04
+#endif
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN P0_25_A2 // Analog Input (P0_25)
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_01
+#define X_DIR_PIN P0_11
+#define X_ENABLE_PIN P0_10
+
+#define Y_STEP_PIN P2_02
+#define Y_DIR_PIN P0_20
+#define Y_ENABLE_PIN P0_19
+
+#define Z_STEP_PIN P2_03
+#define Z_DIR_PIN P0_22
+#define Z_ENABLE_PIN P0_21
+
+#define E0_STEP_PIN P2_00
+#define E0_DIR_PIN P0_05
+#define E0_ENABLE_PIN P0_04
+
+//
+// DIGIPOT slave addresses (7-bit unshifted)
+//
+#ifndef DIGIPOT_I2C_ADDRESS_A
+ #define DIGIPOT_I2C_ADDRESS_A 0x2C
+#endif
+#ifndef DIGIPOT_I2C_ADDRESS_B
+ #define DIGIPOT_I2C_ADDRESS_B 0x2E
+#endif
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_BED_PIN P0_23_A0 // A0 (TH1)
+#define TEMP_0_PIN P0_24_A1 // A1 (TH2)
+
+//
+// Heaters / Fans
+//
+#define HEATER_BED_PIN P2_07
+#define HEATER_0_PIN P2_05
+#ifndef FAN_PIN
+ #define FAN_PIN P0_26
+#endif
+#define FAN1_PIN P1_25
+
+//
+// Display
+//
+#if HAS_WIRED_LCD
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ // Re-Arm can support Creality stock display without SD card reader and single cable on EXP3.
+ // Re-Arm J3 pins 1 (p1.31) & 2 (P3.26) are not used. Stock cable will need to have one
+ // 10-pin IDC connector trimmed or replaced with a 12-pin IDC connector to fit J3.
+ // Requires REVERSE_ENCODER_DIRECTION in Configuration.h
+
+ #define BEEPER_PIN P2_11 // J3-3 & AUX-4
+
+ #define BTN_EN1 P0_16 // J3-7 & AUX-4
+ #define BTN_EN2 P1_23 // J3-5 & AUX-4
+ #define BTN_ENC P3_25 // J3-4 & AUX-4
+
+ #define LCD_PINS_RS P0_15 // J3-9 & AUX-4 (CS)
+ #define LCD_PINS_ENABLE P0_18 // J3-10 & AUX-3 (SID, MOSI)
+ #define LCD_PINS_D4 P2_06 // J3-8 & AUX-3 (SCK, CLK)
+
+ #else
+
+ #define BTN_EN1 P3_26 // (31) J3-2 & AUX-4
+ #define BTN_EN2 P3_25 // (33) J3-4 & AUX-4
+ #define BTN_ENC P2_11 // (35) J3-3 & AUX-4
+
+ #define SD_DETECT_PIN P1_31 // (49) not 5V tolerant J3-1 & AUX-3
+ #define KILL_PIN P1_22 // (41) J5-4 & AUX-4
+ #define LCD_PINS_RS P0_16 // (16) J3-7 & AUX-4
+ #define LCD_SDSS P0_16 // (16) J3-7 & AUX-4
+ #define LCD_BACKLIGHT_PIN P0_16 // (16) J3-7 & AUX-4 - only used on DOGLCD controllers
+ #define LCD_PINS_ENABLE P0_18 // (51) (MOSI) J3-10 & AUX-3
+ #define LCD_PINS_D4 P0_15 // (52) (SCK) J3-9 & AUX-3
+
+ #define DOGLCD_A0 P2_06 // (59) J3-8 & AUX-2
+
+ #if IS_RRW_KEYPAD
+ #define SHIFT_OUT_PIN P0_18 // (51) (MOSI) J3-10 & AUX-3
+ #define SHIFT_CLK_PIN P0_15 // (52) (SCK) J3-9 & AUX-3
+ #define SHIFT_LD_PIN P1_31 // (49) not 5V tolerant J3-1 & AUX-3
+ #elif !IS_NEWPANEL
+ //#define SHIFT_OUT_PIN P2_11 // (35) J3-3 & AUX-4
+ //#define SHIFT_CLK_PIN P3_26 // (31) J3-2 & AUX-4
+ //#define SHIFT_LD_PIN P3_25 // (33) J3-4 & AUX-4
+ //#define SHIFT_EN_PIN P1_22 // (41) J5-4 & AUX-4
+ #endif
+
+ #if ANY(VIKI2, miniVIKI)
+ //#define LCD_SCREEN_ROT_180
+
+ #define BEEPER_PIN P1_30 // (37) may change if cable changes
+ #define DOGLCD_CS P0_26 // (63) J5-3 & AUX-2
+ #define DOGLCD_SCK SD_SCK_PIN
+ #define DOGLCD_MOSI SD_MOSI_PIN
+
+ #define STAT_LED_BLUE_PIN P0_26 // (63) may change if cable changes
+ #define STAT_LED_RED_PIN P1_21 // ( 6) may change if cable changes
+ #else
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 P1_17 // (71) ENET_MDIO
+ #define LCD_PINS_D6 P1_14 // (73) ENET_RX_ER
+ #define LCD_PINS_D7 P1_10 // (75) ENET_RXD1
+ #endif
+ #define BEEPER_PIN P1_30 // (37) not 5V tolerant
+ #define DOGLCD_CS P0_16 // (16)
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #if ENABLED(MINIPANEL)
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+ #endif
+
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Support
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define ONBOARD_SD_CS_PIN P0_06 // Chip select for "System" SD card
+
+#if SD_CONNECTION_IS(LCD)
+ #define SD_SCK_PIN P0_15
+ #define SD_MISO_PIN P0_17
+ #define SD_MOSI_PIN P0_18
+ #define SD_SS_PIN P1_23
+#elif SD_CONNECTION_IS(ONBOARD)
+ #undef SD_DETECT_PIN
+ #define SD_SCK_PIN P0_07
+ #define SD_MISO_PIN P0_08
+ #define SD_MOSI_PIN P0_09
+ #define SD_SS_PIN ONBOARD_SD_CS_PIN
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "No custom SD drive cable defined for this board."
+#endif
diff --git a/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI_WIFI.h b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI_WIFI.h
new file mode 100644
index 0000000..99ff0fd
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI_WIFI.h
@@ -0,0 +1,44 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Azteeg X5 MINI pin assignments
+ */
+
+#if NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "Azteeg X5 MINI WIFI"
+
+//
+// DIGIPOT slave addresses
+//
+#ifndef DIGIPOT_I2C_ADDRESS_A
+ #define DIGIPOT_I2C_ADDRESS_A 0x58 // shifted slave address for first DIGIPOT (0x58 <- 0x2C << 1)
+#endif
+#ifndef DIGIPOT_I2C_ADDRESS_B
+ #define DIGIPOT_I2C_ADDRESS_B 0x5C // shifted slave address for second DIGIPOT (0x5C <- 0x2E << 1)
+#endif
+
+#include "pins_AZTEEG_X5_MINI.h"
diff --git a/Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h b/Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h
new file mode 100644
index 0000000..6e498ba
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h
@@ -0,0 +1,266 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "BTT SKR E3 Turbo"
+#endif
+
+// Onboard I2C EEPROM
+#define I2C_EEPROM
+#define MARLIN_EEPROM_SIZE 0x1000 // 4KB (AT24C32)
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_23
+
+//
+// TMC StallGuard DIAG pins
+//
+#define X_DIAG_PIN P1_29 // X-STOP
+#define Y_DIAG_PIN P1_28 // Y-STOP
+#define Z_DIAG_PIN P1_27 // Z-STOP
+#define E0_DIAG_PIN P1_26 // E0DET
+#define E1_DIAG_PIN P1_25 // E1DET
+
+//
+// Limit Switches
+#define X_STOP_PIN X_DIAG_PIN
+#define Y_STOP_PIN Y_DIAG_PIN
+#define Z_STOP_PIN Z_DIAG_PIN
+
+//
+// Z Probe
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN P1_22
+#endif
+
+//
+// Filament Runout Sensor
+//
+#define FIL_RUNOUT_PIN P1_26 // E0DET
+#define FIL_RUNOUT2_PIN P1_25 // E1DET
+
+//
+// Power Supply Control
+//
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN P1_21
+#endif
+
+// LED driving pin
+#ifndef NEOPIXEL_PIN
+ #define NEOPIXEL_PIN P1_24
+#endif
+
+//
+// Power Loss Detection
+//
+#ifndef POWER_LOSS_PIN
+ #define POWER_LOSS_PIN P1_20 // PWRDET
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN P1_04
+#define X_DIR_PIN P1_08
+#define X_ENABLE_PIN P1_00
+#ifndef X_CS_PIN
+ #define X_CS_PIN P1_01
+#endif
+
+#define Y_STEP_PIN P1_14
+#define Y_DIR_PIN P1_15
+#define Y_ENABLE_PIN P1_09
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN P1_10
+#endif
+
+#define Z_STEP_PIN P4_29
+#define Z_DIR_PIN P4_28
+#define Z_ENABLE_PIN P1_16
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN P1_17
+#endif
+
+#define E0_STEP_PIN P2_06
+#define E0_DIR_PIN P2_07
+#define E0_ENABLE_PIN P0_04
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN P0_05
+#endif
+
+#define E1_STEP_PIN P2_11
+#define E1_DIR_PIN P2_12
+#define E1_ENABLE_PIN P0_21
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN P0_22
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN P1_01
+ #define X_SERIAL_RX_PIN P1_01
+
+ #define Y_SERIAL_TX_PIN P1_10
+ #define Y_SERIAL_RX_PIN P1_10
+
+ #define Z_SERIAL_TX_PIN P1_17
+ #define Z_SERIAL_RX_PIN P1_17
+
+ #define E0_SERIAL_TX_PIN P0_05
+ #define E0_SERIAL_RX_PIN P0_05
+
+ #define E1_SERIAL_TX_PIN P0_22
+ #define E1_SERIAL_RX_PIN P0_22
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// TMC Low Power Standby pins
+//
+#define X_STDBY_PIN P3_26
+#define Y_STDBY_PIN P3_25
+#define Z_STDBY_PIN P1_18
+#define E0_STDBY_PIN P1_19
+#define E1_STDBY_PIN P2_13
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN P0_24
+#define TEMP_1_PIN P0_23
+//#define TEMP_2_PIN P1_30 // Onboard thermistor
+#define TEMP_BED_PIN P0_25
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN P2_03 // EXTRUDER 0
+#define HEATER_1_PIN P2_04 // EXTRUDER 1
+#define HEATER_BED_PIN P2_05 // BED
+#define FAN_PIN P2_01
+#define FAN1_PIN P2_02
+
+#ifndef CONTROLLER_FAN_PIN
+ #define CONTROLLER_FAN_PIN FAN1_PIN
+#endif
+
+/**
+ * _____
+ * 5V | 1 2 | GND
+ * (LCD_EN) P0_18 | 3 4 | P0_17 (LCD_RS)
+ * (LCD_D4) P0_15 | 5 6 P0_20 (BTN_EN2)
+ * RESET | 7 8 | P0_19 (BTN_EN1)
+ * (BTN_ENC) P0_16 | 9 10| P2_08 (BEEPER)
+ * -----
+ * EXP
+ */
+
+#define EXPA1_03_PIN P0_18
+#define EXPA1_04_PIN P0_17
+#define EXPA1_05_PIN P0_15
+#define EXPA1_06_PIN P0_20
+#define EXPA1_07_PIN -1
+#define EXPA1_08_PIN P0_19
+#define EXPA1_09_PIN P0_16
+#define EXPA1_10_PIN P2_08
+
+#if HAS_WIRED_LCD
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define BEEPER_PIN EXPA1_10_PIN
+
+ #define BTN_EN1 EXPA1_08_PIN
+ #define BTN_EN2 EXPA1_06_PIN
+ #define BTN_ENC EXPA1_09_PIN
+
+ #define LCD_PINS_RS EXPA1_04_PIN
+ #define LCD_PINS_ENABLE EXPA1_03_PIN
+ #define LCD_PINS_D4 EXPA1_05_PIN
+
+ #elif ENABLED(ZONESTAR_LCD) // ANET A8 LCD Controller - Must convert to 3.3V - CONNECTING TO 5V WILL DAMAGE THE BOARD!
+
+ #error "CAUTION! ZONESTAR_LCD requires wiring modifications. See 'pins_BTT_SKR_E3_TURBO.h' for details. Comment out this line to continue."
+
+ #define LCD_PINS_RS EXPA1_05_PIN
+ #define LCD_PINS_ENABLE EXPA1_09_PIN
+ #define LCD_PINS_D4 EXPA1_04_PIN
+ #define LCD_PINS_D5 EXPA1_06_PIN
+ #define LCD_PINS_D6 EXPA1_08_PIN
+ #define LCD_PINS_D7 EXPA1_10_PIN
+ #define ADC_KEYPAD_PIN P1_23 // Repurpose servo pin for ADC - CONNECTING TO 5V WILL DAMAGE THE BOARD!
+
+ #elif EITHER(MKS_MINI_12864, ENDER2_STOCKDISPLAY)
+
+ #define BTN_EN1 EXPA1_08_PIN
+ #define BTN_EN2 EXPA1_06_PIN
+ #define BTN_ENC EXPA1_09_PIN
+
+ #define DOGLCD_CS EXPA1_04_PIN
+ #define DOGLCD_A0 EXPA1_05_PIN
+ #define DOGLCD_SCK EXPA1_10_PIN
+ #define DOGLCD_MOSI EXPA1_03_PIN
+ #define FORCE_SOFT_SPI
+ #define LCD_BACKLIGHT_PIN -1
+
+ #else
+
+ #error "Only ZONESTAR_LCD, MKS_MINI_12864, ENDER2_STOCKDISPLAY, and CR10_STOCKDISPLAY are currently supported on the BTT_SKR_E3_TURBO."
+
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Support
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN P2_00
+ #define SD_SCK_PIN P0_07
+ #define SD_MISO_PIN P0_08
+ #define SD_MOSI_PIN P0_09
+ #define SD_SS_PIN P0_06
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "SD CUSTOM_CABLE is not compatible with SKR E3 Turbo."
+#endif
+
+#define ON_BOARD_SPI_DEVICE 1 // SPI1
diff --git a/Marlin/src/pins/lpc1769/pins_BTT_SKR_V1_4_TURBO.h b/Marlin/src/pins/lpc1769/pins_BTT_SKR_V1_4_TURBO.h
new file mode 100644
index 0000000..a751286
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_BTT_SKR_V1_4_TURBO.h
@@ -0,0 +1,30 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#define BOARD_INFO_NAME "BTT SKR V1.4 TURBO"
+#define SKR_HAS_LPC1769
+
+//
+// Include SKR 1.4 pins
+//
+#include "../lpc1768/pins_BTT_SKR_V1_4.h"
diff --git a/Marlin/src/pins/lpc1769/pins_COHESION3D_MINI.h b/Marlin/src/pins/lpc1769/pins_COHESION3D_MINI.h
new file mode 100644
index 0000000..d66ffbe
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_COHESION3D_MINI.h
@@ -0,0 +1,177 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Cohesion3D Mini pin assignments
+ */
+
+#if NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "Cohesion3D Mini"
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_23
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN P1_24 // 10k pullup to 3.3V
+#define X_MAX_PIN P1_25 // 10k pullup to 3.3V
+#define Y_MIN_PIN P1_26 // 10k pullup to 3.3V
+#define Y_MAX_PIN P1_27 // 10k pullup to 3.3V
+#define Z_MIN_PIN P1_28 // 10k pullup to 3.3V
+#define Z_MAX_PIN P1_29 // 10k pullup to 3.3V
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_00
+#define X_DIR_PIN P0_05
+#define X_ENABLE_PIN P0_04
+#define X_CS_PIN P1_10 // Ethernet Expansion - Pin 9
+
+#define Y_STEP_PIN P2_01
+#define Y_DIR_PIN P0_11
+#define Y_ENABLE_PIN P0_10
+#define Y_CS_PIN P1_09 // Ethernet Expansion - Pin 10
+
+#define Z_STEP_PIN P2_02
+#define Z_DIR_PIN P0_20
+#define Z_ENABLE_PIN P0_19
+#define Z_CS_PIN P1_00 // Ethernet Expansion - Pin 11
+
+#define E0_STEP_PIN P2_03
+#define E0_DIR_PIN P0_22
+#define E0_ENABLE_PIN P0_21
+#define E0_CS_PIN P1_04 // Ethernet Expansion - Pin 12
+
+//
+// Default pins for TMC software SPI
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI P1_16 // Ethernet Expansion - Pin 5
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO P1_17 // Ethernet Expansion - Pin 6
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK P1_08 // Ethernet Expansion - Pin 7
+ #endif
+#endif
+
+//
+// Analog Inputs
+// 3.3V max when defined as an analog input
+//
+#define TEMP_0_PIN P0_23_A0 // P0_23
+#define TEMP_BED_PIN P0_24_A1 // P0_24
+
+//
+// Heaters / Fans
+//
+#define HEATER_BED_PIN P2_05
+#define HEATER_0_PIN P2_07 // FET 1
+#ifndef FAN_PIN
+ #define FAN_PIN P2_06 // FET 3
+#endif
+
+//
+// Auto fans
+//
+#define AUTO_FAN_PIN P2_04 // FET 4
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E2_AUTO_FAN_PIN
+ #define E2_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+
+//
+// Misc. Functions
+//
+#define LED_PIN P4_28 // Play LED
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER
+ #undef HEATER_0_PIN
+ #define SPINDLE_LASER_ENA_PIN P2_07 // FET 1
+ #undef HEATER_BED_PIN
+ #define SPINDLE_LASER_PWM_PIN P2_05 // Bed FET
+ #undef FAN_PIN
+ #define SPINDLE_DIR_PIN P2_06 // FET 3
+#endif
+
+//
+// LCD / Controller
+//
+// LCD_PINS_D5, D6, and D7 are not present in the EXP1 connector, and will need to be
+// defined to use the REPRAP_DISCOUNT_SMART_CONTROLLER.
+//
+// A remote SD card is currently not supported because the pins routed to the EXP2
+// connector are shared with the onboard SD card, and Marlin does not support reading
+// G-code files from the onboard SD card.
+//
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN P0_27 // EXP2-7 - open drain
+
+ #define BTN_EN1 P3_26 // EXP2-5
+ #define BTN_EN2 P3_25 // EXP2-3
+ #define BTN_ENC P1_30 // EXP1-2
+
+ #define LCD_PINS_RS P0_16 // EXP1-4
+ #define LCD_SDSS P0_28 // EXP2-4
+ #define LCD_PINS_ENABLE P0_18 // EXP1-3
+ #define LCD_PINS_D4 P0_15 // EXP1-5
+
+ #define KILL_PIN P2_11 // EXP2-10
+
+ #if ENABLED(SDSUPPORT)
+ #error "SDSUPPORT is not currently supported by the Cohesion3D boards"
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// Ethernet pins
+//
+#define ENET_MDIO P1_17
+#define ENET_RX_ER P1_14
+#define ENET_RXD1 P1_10
+#define ENET_MOC P1_16
+#define REF_CLK P1_15
+#define ENET_RXD0 P1_09
+#define ENET_CRS P1_08
+#define ENET_TX_EN P1_04
+#define ENET_TXD0 P1_00
+#define ENET_TXD1 P1_01
diff --git a/Marlin/src/pins/lpc1769/pins_COHESION3D_REMIX.h b/Marlin/src/pins/lpc1769/pins_COHESION3D_REMIX.h
new file mode 100644
index 0000000..edf13ce
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_COHESION3D_REMIX.h
@@ -0,0 +1,289 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Cohesion3D ReMix pin assignments
+ */
+
+#if NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "Cohesion3D ReMix"
+
+//
+// Servos
+//
+#define SERVO0_PIN P2_04
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN P1_24 // 10k pullup to 3.3V
+#define X_MAX_PIN P1_25 // 10k pullup to 3.3V
+#define Y_MIN_PIN P1_26 // 10k pullup to 3.3V
+#define Y_MAX_PIN P1_27 // 10k pullup to 3.3V
+#define Z_MIN_PIN P1_28 // 10k pullup to 3.3V
+#define Z_MAX_PIN P1_29 // 10k pullup to 3.3V
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN P1_29
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_00
+#define X_DIR_PIN P0_05
+#define X_ENABLE_PIN P0_04
+#define X_CS_PIN P1_10 // Ethernet Expansion - Pin 9
+
+#define Y_STEP_PIN P2_01
+#define Y_DIR_PIN P0_11
+#define Y_ENABLE_PIN P0_10
+#define Y_CS_PIN P1_09 // Ethernet Expansion - Pin 10
+
+#define Z_STEP_PIN P2_02
+#define Z_DIR_PIN P0_20
+#define Z_ENABLE_PIN P0_19
+#define Z_CS_PIN P1_00 // Ethernet Expansion - Pin 11
+
+#define E0_STEP_PIN P2_03
+#define E0_DIR_PIN P0_22
+#define E0_ENABLE_PIN P0_21
+#define E0_CS_PIN P1_04 // Ethernet Expansion - Pin 12
+
+#define E1_STEP_PIN P2_08
+#define E1_DIR_PIN P2_13
+#define E1_ENABLE_PIN P4_29
+#define E1_CS_PIN P1_01 // Ethernet Expansion - Pin 14
+
+#define E2_STEP_PIN P1_20
+#define E2_DIR_PIN P1_19
+#define E2_ENABLE_PIN P1_21
+#define E2_CS_PIN P1_18 // FET 6
+
+//
+// Default pins for TMC software SPI
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI P1_16 // Ethernet Expansion - Pin 5
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO P1_17 // Ethernet Expansion - Pin 6
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK P1_08 // Ethernet Expansion - Pin 7
+ #endif
+#endif
+
+//
+// Analog Inputs
+// 3.3V max when defined as an analog input
+//
+#define TEMP_0_PIN P0_23_A0
+#define TEMP_BED_PIN P0_24_A1
+#define TEMP_1_PIN P0_25_A2
+#if ENABLED(FILAMENT_WIDTH_SENSOR)
+ #define FILWIDTH_PIN P0_26_A3
+#else
+ #define TEMP_2_PIN P0_26_A3
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_BED_PIN P2_05
+#define HEATER_0_PIN P2_07 // FET 1
+#define HEATER_1_PIN P1_23 // FET 2
+#define HEATER_2_PIN P1_22 // FET 3
+#ifndef FAN_PIN
+ #define FAN_PIN P2_06 // FET 4
+#endif
+
+//
+// Auto fans
+//
+#if HOTENDS == 3
+ #define AUTO_FAN_PIN P1_18 // FET 6
+#else
+ #define AUTO_FAN_PIN P1_22 // FET 3
+#endif
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E2_AUTO_FAN_PIN
+ #define E2_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+
+//
+// Misc. Functions
+//
+#define LED_PIN P4_28 // Play LED
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER
+ #undef HEATER_0_PIN
+ #undef HEATER_BED_PIN
+ #undef FAN_PIN
+ #define SPINDLE_LASER_ENA_PIN P2_07 // FET 1
+ #define SPINDLE_LASER_PWM_PIN P2_05 // Bed FET
+ #define SPINDLE_DIR_PIN P2_06 // FET 4
+#endif
+
+//
+// LCD / Controller
+//
+// LCD_PINS_D5, D6, and D7 are not present in the EXP1 connector, and will need to be
+// defined to use the REPRAP_DISCOUNT_SMART_CONTROLLER.
+//
+// A remote SD card is currently not supported because the pins routed to the EXP2
+// connector are shared with the onboard SD card, and Marlin does not support that
+// hardware configuration.
+//
+
+#if ENABLED(FYSETC_MINI_12864)
+
+ #define FORCE_SOFT_SPI // REQUIRED - results in LCD soft SPI mode 3
+
+ #define BEEPER_PIN P1_31 // EXP1-1
+ #define BTN_ENC P1_30 // EXP1-2
+ #define DOGLCD_CS P0_18 // EXP1-3
+ #define DOGLCD_A0 P0_16 // EXP1-4
+ #define LCD_RESET_PIN P0_15 // EXP1-5
+
+ // A custom cable is REQUIRED for EXP2 cable because the SCK & MOSI on the card's EXP2 are dedicated
+ // to the onboard SD card. All required EXP2 signals come from the Ethernet connector. Pin 1 of this
+ // connector is the one nearest the motor power connector.
+ #define DOGLCD_SCK P1_17 // EXP2-2 => Ethernet pin 5 (bottom, 3 from left)
+ #define BTN_EN2 P1_09 // EXP2-3 => Ethernet pin 9 (bottom, 5 from left)
+ #define BTN_EN1 P1_04 // EXP2-5 => Ethernet pin 11 (bottom, 6 from left)
+ #define DOGLCD_MOSI P1_01 // EXP2-6 => Ethernet pin 13 (bottom, 7 from left)
+
+ // A custom EXP1 cable is required colored LEDs. Pins 1-5, 9, 10 of the cable go to pins 1-5, 9, 10
+ // on the board's EXP1 connector. Pins 6, 7, and 8 of the EXP1 cable go to the Ethernet connector.
+ // Rev 1.2 displays do NOT require the RGB LEDs. 2.0 and 2.1 displays do require RGB.
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN P1_16 // EXP1-6 => Ethernet pin 6 (top row, 3 from left)
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN P1_10 // EXP1-7 => Ethernet pin 10 (top row, 5 from left)
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN P1_00 // EXP1-8 => Ethernet pin 12 (top row, 6 from left)
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN P1_16 // EXP1-6 => Ethernet pin 6 (top row, 3 from left)
+ #endif
+
+#elif HAS_WIRED_LCD
+
+ #define BEEPER_PIN P1_31 // EXP1-1
+ //#define SD_DETECT_PIN P0_27 // EXP2-7
+
+ #define BTN_EN1 P3_26 // EXP2-5
+ #define BTN_EN2 P3_25 // EXP2-3
+ #define BTN_ENC P1_30 // EXP1-2
+
+ #define LCD_PINS_RS P0_16 // EXP1-4
+ #define LCD_SDSS P0_28 // EXP2-4
+ #define LCD_PINS_ENABLE P0_18 // EXP1-3
+ #define LCD_PINS_D4 P0_15 // EXP1-5
+
+ #define KILL_PIN P2_11 // EXP2-10
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Support
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define ONBOARD_SD_CS_PIN P0_06 // Chip select for "System" SD card
+
+#if SD_CONNECTION_IS(LCD) || SD_CONNECTION_IS(ONBOARD)
+ #define SD_SCK_PIN P0_07 // (52) system defined J3-9 & AUX-3
+ #define SD_MISO_PIN P0_08 // (50) system defined J3-10 & AUX-3
+ #define SD_MOSI_PIN P0_09 // (51) system defined J3-10 & AUX-3
+ #if SD_CONNECTION_IS(LCD)
+ #define SD_SS_PIN P1_23 // (53) system defined J3-5 & AUX-3 (Sometimes called SDSS) - CS used by Marlin
+ #else
+ #undef SD_DETECT_PIN
+ #define SD_SS_PIN ONBOARD_SD_CS_PIN
+ #endif
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "No custom SD drive cable defined for this board."
+#endif
+
+//
+// Ethernet pins
+//
+//#define ENET_MDIO P1_17 // Ethernet pin 5 (bottom, 3 from left)
+//#define ENET_RX_ER P1_14
+//#define ENET_RXD1 P1_10 // Ethernet pin 10 (top row, 5 from left)
+//#define ENET_MOC P1_16 // Ethernet pin 6 (top row, 3 from left)
+//#define REF_CLK P1_15
+//#define ENET_RXD0 P1_09 // Ethernet pin 9 (bottom, 5 from left)
+//#define ENET_CRS P1_08 // Ethernet pin 8 (top row, 4 from left) - INPUT ONLY
+//#define ENET_TX_EN P1_04 // Ethernet pin 11 (bottom, 6 from left)
+//#define ENET_TXD0 P1_00 // Ethernet pin 12 (top row, 6 from left)
+//#define ENET_TXD1 P1_01 // Ethernet pin 13 (bottom, 7 from left)
+
+/**
+ * EXP1 pins
+ * 1 - P1_31
+ * 2 - P1_30
+ * 3 - P0_18
+ * 4 - P0_16
+ * 5 - P0_15
+ * 6 - N/C
+ * 7 - N/C
+ * 8 - P0_27 (also on EXP2-7)
+ * 9 - GND
+ * 10 - +5V
+ *
+ *
+ * EXP2 pins
+ * 1 - P0_08
+ * 2 - P0_07
+ * 3 - P3_26
+ * 4 - P0_28
+ * 5 - P3_25
+ * 6 - P0_09
+ * 7 - P0_27 (also on EXP1_8)
+ * 8 - P2_11
+ * 9 - GND
+ * 10 - N/C
+ */
diff --git a/Marlin/src/pins/lpc1769/pins_FLY_CDY.h b/Marlin/src/pins/lpc1769/pins_FLY_CDY.h
new file mode 100644
index 0000000..3982d76
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_FLY_CDY.h
@@ -0,0 +1,181 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "FLY-CDY"
+#define BOARD_WEBSITE_URL "github.com/FLYmaker/FLY-CDY"
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_26
+
+//
+// Limit Switches
+//
+
+#define X_MIN_PIN P1_29 // X-
+#define X_MAX_PIN P1_28 // X+
+#define Y_MIN_PIN P1_27 // Y-
+#define Y_MAX_PIN P1_25 // Y+
+#define Z_MIN_PIN P1_22 // Z-
+#define Z_MAX_PIN P0_27 // Z+
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_00
+#define X_DIR_PIN P1_01
+#define X_ENABLE_PIN P1_00
+#ifndef X_CS_PIN
+ #define X_CS_PIN P1_04
+#endif
+
+#define Y_STEP_PIN P2_01
+#define Y_DIR_PIN P1_09
+#define Y_ENABLE_PIN P1_08
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN P1_10
+#endif
+
+#define Z_STEP_PIN P2_02
+#define Z_DIR_PIN P1_15
+#define Z_ENABLE_PIN P1_14
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN P1_16
+#endif
+
+#define E0_STEP_PIN P2_03
+#define E0_DIR_PIN P4_29
+#define E0_ENABLE_PIN P1_17
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN P4_28
+#endif
+
+#define E1_STEP_PIN P2_04
+#define E1_DIR_PIN P2_11
+#define E1_ENABLE_PIN P0_04
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN P2_12
+#endif
+
+#define E2_STEP_PIN P2_05
+#define E2_DIR_PIN P0_11
+#define E2_ENABLE_PIN P2_13
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN P0_10
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI P0_20
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO P0_19
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK P0_21
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ #define X_SERIAL_TX_PIN P1_04
+ #define X_SERIAL_RX_PIN P1_04
+
+ #define Y_SERIAL_TX_PIN P1_10
+ #define Y_SERIAL_RX_PIN P1_10
+
+ #define Z_SERIAL_TX_PIN P1_16
+ #define Z_SERIAL_RX_PIN P1_16
+
+ #define E0_SERIAL_TX_PIN P4_28
+ #define E0_SERIAL_RX_PIN P4_28
+
+ #define E1_SERIAL_TX_PIN P2_12
+ #define E1_SERIAL_RX_PIN P2_12
+
+ #define E2_SERIAL_TX_PIN P0_10
+ #define E2_SERIAL_RX_PIN P0_10
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN P0_26_A3 // (T4)
+#define TEMP_1_PIN P0_25_A2 // (T3)
+#define TEMP_2_PIN P0_24_A1 // (T2)
+#define TEMP_BED_PIN P0_23_A0 // (T1)
+
+//
+// Heaters / Fans
+//
+#define HEATER_BED_PIN P3_26
+#define HEATER_0_PIN P3_25
+#define HEATER_1_PIN P1_20
+#define HEATER_2_PIN P1_23
+#ifndef FAN_PIN
+ #define FAN_PIN P1_18
+#endif
+#define FAN1_PIN P1_21
+#define FAN2_PIN P1_24
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN P2_07
+#define LCD_PINS_RS P2_10
+#define LCD_PINS_ENABLE P0_22
+#define LCD_PINS_D4 P1_19
+#define LCD_PINS_D5 P2_08
+#define LCD_PINS_D6 P1_30
+#define LCD_PINS_D7 P1_31
+#define BTN_EN1 P0_00
+#define BTN_EN2 P0_01
+#define BTN_ENC P0_28
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SD_SS_PIN P0_06
+ #define SD_SCK_PIN P0_07
+ #define SD_MISO_PIN P0_08
+ #define SD_MOSI_PIN P0_09
+ #define SD_DETECT_PIN P0_05
+#elif SD_CONNECTION_IS(LCD)
+ #define SD_SCK_PIN P0_15
+ #define SD_MISO_PIN P0_17
+ #define SD_MOSI_PIN P0_18
+ #define SD_SS_PIN P0_16
+ #define SD_DETECT_PIN P2_06
+#endif
diff --git a/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h b/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h
new file mode 100644
index 0000000..d675499
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h
@@ -0,0 +1,59 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS SGen pin assignments
+ *
+ * The pins diagram can be found and the following URL:
+ * https://github.com/makerbase-mks/MKS-SGen/blob/master/Hardware/MKS%20SGEN%20V1.0_001/MKS%20SGEN%20V1.0_001%20PIN.pdf
+ */
+
+#if NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "MKS SGen"
+#define BOARD_WEBSITE_URL "github.com/makerbase-mks/MKS-SGEN"
+
+#define MKS_HAS_LPC1769
+#include "../lpc1768/pins_MKS_SBASE.h"
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ */
+
+ #define X_SERIAL_TX_PIN P1_22 // J8-2
+ #define X_SERIAL_RX_PIN P1_22 // J8-2
+ #define Y_SERIAL_TX_PIN P1_23 // J8-3
+ #define Y_SERIAL_RX_PIN P1_23 // J8-3
+ #define Z_SERIAL_TX_PIN P2_12 // J8-4
+ #define Z_SERIAL_RX_PIN P2_12 // J8-4
+ #define E0_SERIAL_TX_PIN P2_11 // J8-5
+ #define E0_SERIAL_RX_PIN P2_11 // J8-5
+ #define E1_SERIAL_TX_PIN P4_28 // J8-6
+ #define E1_SERIAL_RX_PIN P4_28 // J8-6
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
diff --git a/Marlin/src/pins/lpc1769/pins_MKS_SGEN_L_V2.h b/Marlin/src/pins/lpc1769/pins_MKS_SGEN_L_V2.h
new file mode 100644
index 0000000..79c79c5
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_MKS_SGEN_L_V2.h
@@ -0,0 +1,414 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS SGen pin assignments
+ */
+
+#if NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "MKS SGEN_L V2"
+#define BOARD_WEBSITE_URL "github.com/makerbase-mks"
+
+//
+// EEPROM, MKS SGEN_L V2.0 hardware has 4K EEPROM on the board
+//
+#if NO_EEPROM_SELECTED
+ //#define SDCARD_EEPROM_EMULATION
+ //#define I2C_EEPROM // AT24C32
+ #define FLASH_EEPROM_EMULATION
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_23 // SERVO P1.23
+#define SERVO1_PIN P2_00 // SERVO P2.0
+
+//
+// Trinamic Stallguard pins, can connect or disconnect by jumpers cap on the board
+//
+#define X_DIAG_PIN P1_29 // X-
+#define Y_DIAG_PIN P1_27 // Y-
+#define Z_DIAG_PIN P1_25 // Z-
+#define E0_DIAG_PIN P1_28 // X+
+#define E1_DIAG_PIN P1_26 // Y+
+
+//
+// Limit Switches
+//
+#if X_STALL_SENSITIVITY
+ #define X_STOP_PIN X_DIAG_PIN
+ #if X_HOME_DIR < 0
+ #define X_MAX_PIN P1_28 // X+
+ #else
+ #define X_MIN_PIN P1_28 // X+
+ #endif
+#else
+ #define X_MIN_PIN P1_29 // X-
+ #define X_MAX_PIN P1_28 // X+
+#endif
+
+#if Y_STALL_SENSITIVITY
+ #define Y_STOP_PIN Y_DIAG_PIN
+ #if Y_HOME_DIR < 0
+ #define Y_MAX_PIN P1_26 // Y+
+ #else
+ #define Y_MIN_PIN P1_26 // Y+
+ #endif
+#else
+ #define Y_MIN_PIN P1_27 // Y-
+ #define Y_MAX_PIN P1_26 // Y+
+#endif
+
+#if Z_STALL_SENSITIVITY
+ #define Z_STOP_PIN Z_DIAG_PIN
+ #if Z_HOME_DIR < 0
+ #define Z_MAX_PIN P1_24 // Z+
+ #else
+ #define Z_MIN_PIN P1_24 // Z+
+ #endif
+#else
+ #define Z_MIN_PIN P1_25 // Z-
+ #define Z_MAX_PIN P1_24 // Z+
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN P1_24
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_02
+#define X_DIR_PIN P2_03
+#define X_ENABLE_PIN P2_01
+#ifndef X_CS_PIN
+ #define X_CS_PIN P1_01
+#endif
+
+#define Y_STEP_PIN P0_19
+#define Y_DIR_PIN P0_20
+#define Y_ENABLE_PIN P2_08
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN P1_08
+#endif
+
+#define Z_STEP_PIN P0_22
+#define Z_DIR_PIN P2_11
+#define Z_ENABLE_PIN P0_21
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN P1_10
+#endif
+
+#define E0_STEP_PIN P2_13
+#define E0_DIR_PIN P0_11
+#define E0_ENABLE_PIN P2_12
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN P1_15
+#endif
+
+#define E1_STEP_PIN P1_09
+#define E1_DIR_PIN P1_14
+#define E1_ENABLE_PIN P0_10
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN P1_17
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI P1_16
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO P0_05
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK P0_04
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN P1_01
+ #define X_SERIAL_RX_PIN P1_01
+ #define Y_SERIAL_TX_PIN P1_08
+ #define Y_SERIAL_RX_PIN P1_08
+ #define Z_SERIAL_TX_PIN P1_10
+ #define Z_SERIAL_RX_PIN P1_10
+ #define E0_SERIAL_TX_PIN P1_15
+ #define E0_SERIAL_RX_PIN P1_15
+ #define E1_SERIAL_TX_PIN P1_17
+ #define E1_SERIAL_RX_PIN P1_17
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif // HAS_TMC_UART
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_0_PIN P0_23_A0 // Analog Input A0 (TH1)
+#define TEMP_BED_PIN P0_24_A1 // Analog Input A1 (TB)
+#define TEMP_1_PIN P0_25_A2 // Analog Input A2 (TH2)
+#define TEMP_2_PIN P0_26_A3 // Analog Input A3 (P0.26, No pull up)
+
+//
+// Heaters / Fans
+//
+#define HEATER_BED_PIN P2_05
+#define HEATER_0_PIN P2_07
+#if HAS_MULTI_HOTEND
+ #ifndef HEATER_1_PIN
+ #define HEATER_1_PIN P2_06
+ #endif
+#else
+ #ifndef FAN2_PIN
+ #define FAN2_PIN P2_06 // HE1 for FAN3
+ #endif
+#endif
+#ifndef FAN_PIN
+ #define FAN_PIN P2_04 // FAN1
+#endif
+#ifndef FAN1_PIN
+ #define FAN1_PIN P1_04 // FAN2
+#endif
+
+//
+// Misc. Functions
+//
+#define LED_PIN P1_18 // Used as a status indicator
+
+//
+// RGB LED
+//
+#if ENABLED(RGB_LED)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN P1_19
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN P1_20
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN P1_21
+ #endif
+#else
+ #define LED2_PIN P1_19 // Initialized by HAL/LPC1768/main.cpp
+ #define LED3_PIN P1_20
+ #define LED4_PIN P1_21
+#endif
+
+/**
+ * _____ _____
+ * (BEEPER) 1.31 | · · | 1.30 (BTN_ENC) (MISO) 0.8 | · · | 0.7 (SD_SCK)
+ * (LCD_EN) 0.18 | · · | 0.16 (LCD_RS) (BTN_EN1) 3.25 | · · | 0.28 (SD_CS2)
+ * (LCD_D4) 0.15 | · · | 0.17 (LCD_D5) (BTN_EN2) 3.26 | · · | 0.9 (SD_MOSI)
+ * (LCD_D6) 1.0 | · · | 1.22 (LCD_D7) (SD_DETECT) 0.27 | · · | RST
+ * GND | · · | 5V GND | · · | NC
+ * ----- -----
+ * EXP1 EXP2
+ */
+#if IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS P3_25
+ #endif
+
+ #define SD_DETECT_PIN P0_27
+
+#elif HAS_WIRED_LCD
+
+ #define BEEPER_PIN P1_31
+ #define BTN_ENC P1_30
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define LCD_PINS_RS P1_00
+
+ #define BTN_EN1 P0_18
+ #define BTN_EN2 P0_15
+
+ #define LCD_PINS_ENABLE P1_22
+ #define LCD_PINS_D4 P0_17
+
+ #else
+
+ #define BTN_EN1 P3_25
+ #define BTN_EN2 P3_26
+
+ #define LCD_SDSS P0_28
+
+ #if ENABLED(MKS_12864OLED_SSD1306)
+
+ #define LCD_PINS_DC P0_17
+ #define DOGLCD_CS P0_16
+ #define DOGLCD_A0 LCD_PINS_DC
+ #define DOGLCD_SCK P0_15
+ #define DOGLCD_MOSI P0_18
+
+ #define LCD_PINS_RS P1_00
+ #define LCD_PINS_D7 P1_22
+ #define KILL_PIN -1 // NC
+
+ #elif HAS_SPI_TFT // Config for Classic UI (emulated DOGM) and Color UI
+ #define TFT_CS_PIN P1_00
+ #define TFT_A0_PIN P1_22
+ #define TFT_DC_PIN P1_22
+ #define TFT_MISO_PIN P0_08
+ #define TFT_BACKLIGHT_PIN P0_18
+ #define TFT_RESET_PIN P0_16
+
+ #define LCD_USE_DMA_SPI
+
+ #define TOUCH_INT_PIN P0_17
+ #define TOUCH_CS_PIN P0_15
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 2
+
+ // Disable any LCD related PINs config
+ #define LCD_PINS_ENABLE -1
+ #define LCD_PINS_RS -1
+
+ #ifndef TFT_BUFFER_SIZE
+ #define TFT_BUFFER_SIZE 1200
+ #endif
+ #ifndef TFT_QUEUE_SIZE
+ #define TFT_QUEUE_SIZE 6144
+ #endif
+
+ #else // !MKS_12864OLED_SSD1306
+
+ #define LCD_PINS_RS P0_16
+
+ #define LCD_PINS_ENABLE P0_18
+ #define LCD_PINS_D4 P0_15
+
+ #if ENABLED(FYSETC_MINI_12864)
+
+ #define DOGLCD_CS P0_18
+ #define DOGLCD_A0 P0_16
+ #define DOGLCD_SCK P0_07
+ #define DOGLCD_MOSI P1_20
+
+ #define LCD_BACKLIGHT_PIN -1
+
+ #define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ #define LCD_RESET_PIN P0_15 // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN P0_17
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN P1_00
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN P1_22
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN P0_17
+ #endif
+
+ #else // !FYSETC_MINI_12864
+
+ #if ENABLED(MKS_MINI_12864)
+ #define DOGLCD_CS P0_17
+ #define DOGLCD_A0 P1_00
+ #endif
+
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 P0_17
+ #define LCD_PINS_D6 P1_00
+ #define LCD_PINS_D7 P1_22
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !FYSETC_MINI_12864
+
+ #endif // !MKS_12864OLED_SSD1306
+
+ #endif // !CR10_STOCKDISPLAY
+
+#endif // HAS_WIRED_LCD
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define ONBOARD_SD_CS_PIN P0_06 // Chip select for "System" SD card
+
+#if SD_CONNECTION_IS(LCD) || SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN P0_27
+ #define SD_SCK_PIN P0_07
+ #define SD_MISO_PIN P0_08
+ #define SD_MOSI_PIN P0_09
+ #if SD_CONNECTION_IS(ONBOARD)
+ #define SD_SS_PIN ONBOARD_SD_CS_PIN
+ #else
+ #define SD_SS_PIN P0_28
+ #endif
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "No custom SD drive cable defined for this board."
+#endif
+
+//
+// Other Pins
+//
+//#define PIN_P0_02 P0_02 // AUX1 (Interrupt Capable/ADC/Serial Port 0)
+//#define PIN_P0_03 P0_03 // AUX1 (Interrupt Capable/ADC/Serial Port 0)
+//#define PS_ON_PIN P1_23 // SERVO P1.23
diff --git a/Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h b/Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h
new file mode 100644
index 0000000..c5ce3f8
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h
@@ -0,0 +1,181 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Smoothieboard pin assignments
+ */
+
+#if NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "Smoothieboard"
+#define BOARD_WEBSITE_URL "smoothieware.org/smoothieboard"
+
+//
+// Servos
+//
+#define SERVO0_PIN P1_23
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN P1_24
+#define X_MAX_PIN P1_25
+#define Y_MIN_PIN P1_26
+#define Y_MAX_PIN P1_27
+#define Z_MIN_PIN P1_28
+#define Z_MAX_PIN P1_29
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_00
+#define X_DIR_PIN P0_05
+#define X_ENABLE_PIN P0_04
+
+#define Y_STEP_PIN P2_01
+#define Y_DIR_PIN P0_11
+#define Y_ENABLE_PIN P0_10
+
+#define Z_STEP_PIN P2_02
+#define Z_DIR_PIN P0_20
+#define Z_ENABLE_PIN P0_19
+
+#define E0_STEP_PIN P2_03
+#define E0_DIR_PIN P0_22
+#define E0_ENABLE_PIN P0_21
+
+#define E1_STEP_PIN P2_08
+#define E1_DIR_PIN P2_13
+#define E1_ENABLE_PIN P4_29
+
+//
+// Temperature Sensors
+// 3.3V max when defined as an analog input
+//
+#define TEMP_0_PIN P0_23_A0 // (T1)
+#define TEMP_BED_PIN P0_24_A1 // (T2)
+#define TEMP_1_PIN P0_25_A2 // (T3)
+#define TEMP_2_PIN P0_26_A3 // (T4)
+
+//
+// Heaters / Fans
+//
+#define HEATER_BED_PIN P2_05
+#define HEATER_0_PIN P2_07
+#define HEATER_1_PIN P1_23
+#ifndef FAN_PIN
+ #define FAN_PIN P2_06
+#endif
+#define FAN1_PIN P2_04
+
+//
+// LCD / Controller
+//
+#if ANY(VIKI2, miniVIKI)
+
+ #define BEEPER_PIN P1_31
+ #define DOGLCD_A0 P2_11
+ #define DOGLCD_CS P0_16
+
+ #define BTN_EN1 P3_25
+ #define BTN_EN2 P3_26
+ #define BTN_ENC P1_30
+
+ #define SD_DETECT_PIN P1_18
+ #define SDSS P1_21
+
+ #define STAT_LED_RED_PIN P1_19
+ #define STAT_LED_BLUE_PIN P1_20
+
+#elif HAS_WIRED_LCD
+
+ /**
+ * SD Support
+ *
+ * For the RRD GLCD it CANNOT share the same SPI as the LCD so it must be
+ * hooked up to the onboard SDCard SPI and use a spare pin for the SDCS.
+ * Also note that an external SDCard sharing the SPI port with the
+ * onboard/internal SDCard must be ejected before rebooting as the bootloader
+ * does not like the external card. NOTE Smoothie will not boot if the external
+ * sdcard is inserted in the RRD LCD sdcard slot at boot time, it must be
+ * inserted after it has booted.
+ */
+ #define SD_DETECT_PIN P0_27 // EXP2 Pin 7 (SD_CD, SD_DET)
+
+ #define SD_MISO_PIN P0_08 // EXP2 Pin 1 (PB3, SD_MISO)
+ #define SD_SCK_PIN P0_07 // EXP2 Pin 2 (SD_SCK)
+ #define SD_SS_PIN P0_28 // EXP2 Pin 4 (SD_CSEL, SD_CS)
+ #define SD_MOSI_PIN P0_09 // EXP2 Pin 6 (PB2, SD_MOSI)
+
+ /**
+ * The Smoothieboard supports the REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER with either
+ * a custom cable with breakouts to the pins indicated below or the RRD GLCD Adapter board
+ * found at http://smoothieware.org/rrdglcdadapter
+ *
+ * Other links to information about setting up a display panel with Smoothieboard
+ * http://chibidibidiwah.wdfiles.com/local--files/panel/smoothieboard2sd.jpg
+ * http://smoothieware.org/panel
+ */
+ #if IS_RRD_FG_SC
+ // EXP1 Pins
+ #define BEEPER_PIN P1_31 // EXP1 Pin 1
+ #define BTN_ENC P1_30 // EXP1 Pin 2
+ #define LCD_PINS_ENABLE P0_18 // EXP1 Pin 3 (MOSI)
+ #define LCD_PINS_RS P0_16 // EXP1 Pin 4 (CS)
+ #define LCD_PINS_D4 P0_15 // EXP1 Pin 5 (SCK)
+ // EXP2 Pins
+ #define BTN_EN2 P3_26 // EXP2 Pin 3
+ #define BTN_EN1 P3_25 // EXP2 Pin 5
+
+ #elif IS_TFTGLCD_PANEL
+
+ #define SD_DETECT_PIN P0_27 // EXP2 Pin 7 (SD_CD, SD_DET)
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS P3_26 // EXP2 Pin 3
+ #endif
+
+ #else
+ #error "Marlin's Smoothieboard support cannot drive your LCD."
+ #endif
+
+#endif
+
+/**
+ * I2C Digipots - MCP4451
+ * Address 58 (2C << 1)
+ * Set from 0 - 127 with stop bit.
+ * (Ex. 3F << 1 | 1)
+ */
+#define DIGIPOTS_I2C_SCL P0_00
+#define DIGIPOTS_I2C_SDA_X P0_04
+#define DIGIPOTS_I2C_SDA_Y P0_10
+#define DIGIPOTS_I2C_SDA_Z P0_19
+#define DIGIPOTS_I2C_SDA_E0 P0_21
+#define DIGIPOTS_I2C_SDA_E1 P4_29
+
+#ifndef DIGIPOT_I2C_ADDRESS_A
+ #define DIGIPOT_I2C_ADDRESS_A 0x2C // unshifted slave address (58 <- 2C << 1)
+#endif
diff --git a/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h b/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h
new file mode 100644
index 0000000..d4f3e5b
--- /dev/null
+++ b/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h
@@ -0,0 +1,182 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * TH3D EZBoard pin assignments
+ */
+
+#if NOT_TARGET(MCU_LPC1769)
+ #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "TH3D EZBoard"
+#define BOARD_WEBSITE_URL "th3dstudio.com"
+
+//
+// Servos
+//
+#define SERVO0_PIN P2_04
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN P1_24
+#define Y_STOP_PIN P1_25
+#define Z_STOP_PIN P1_26
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN P1_27
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN P2_00
+#define X_DIR_PIN P1_16
+#define X_ENABLE_PIN P1_17
+
+#define Y_STEP_PIN P2_01
+#define Y_DIR_PIN P1_10
+#define Y_ENABLE_PIN P1_09
+
+#define Z_STEP_PIN P2_02
+#define Z_DIR_PIN P1_15
+#define Z_ENABLE_PIN P1_14
+
+#define E0_STEP_PIN P2_03
+#define E0_DIR_PIN P1_04
+#define E0_ENABLE_PIN P1_08
+
+#define E1_STEP_PIN P2_08
+#define E1_DIR_PIN P2_13
+#define E1_ENABLE_PIN P4_29
+
+#if HAS_TMC_UART
+ //
+ // TMC220x stepper drivers
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN P0_04
+ #define X_SERIAL_RX_PIN P0_05
+ #define Y_SERIAL_TX_PIN P0_10
+ #define Y_SERIAL_RX_PIN P0_11
+ #define Z_SERIAL_TX_PIN P0_19
+ #define Z_SERIAL_RX_PIN P0_20
+ #define E0_SERIAL_TX_PIN P0_22
+ #define E0_SERIAL_RX_PIN P0_21
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Temp Sensors
+// 3.3V max when defined as an Analog Input!
+//
+#if TEMP_SENSOR_0 == 20 // PT100 Adapter
+ #define TEMP_0_PIN P0_02_A7 // Analog Input
+#else
+ #define TEMP_0_PIN P0_23_A0 // Analog Input P0_23
+#endif
+
+#define TEMP_BED_PIN P0_24_A1 // Analog Input P0_24
+#define TEMP_1_PIN P0_25_A2 // Analog Input P0_25
+
+#if ENABLED(FILAMENT_WIDTH_SENSOR)
+ #define FILWIDTH_PIN P0_26_A3 // Analog Input P0_26
+#else
+ #define TEMP_2_PIN P0_26_A3 // Analog Input P0_26
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_BED_PIN P2_05
+#define HEATER_0_PIN P2_07
+#ifndef FAN_PIN
+ #define FAN_PIN P2_06
+#endif
+#define FAN1_PIN P1_22
+
+//
+// Auto fans
+//
+#define AUTO_FAN_PIN P1_22 // FET 3
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E2_AUTO_FAN_PIN
+ #define E2_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+
+//
+// SD Card
+//
+
+#define SDCARD_CONNECTION ONBOARD
+
+#define SD_SCK_PIN P0_07
+#define SD_MISO_PIN P0_08
+#define SD_MOSI_PIN P0_09
+#define ONBOARD_SD_CS_PIN P0_06
+#define SD_SS_PIN ONBOARD_SD_CS_PIN
+
+//
+// LCD / Controller
+//
+
+/**
+ * _____
+ * 5V | · · | GND
+ * (LCD_EN) P0_18 | · · | P0_16 (LCD_RS)
+ * (LCD_D4) P0_15 | · · P3_25 (BTN_EN2)
+ * (RESET) P2_11 | · · | P3_26 (BTN_EN1)
+ * (BTN_ENC) P1_30 | · · | P1_31 (BEEPER)
+ * -----
+ * EXP1
+ *
+ * LCD_PINS_D5, D6, and D7 are not present in the EXP1 connector, and will need to be
+ * defined to use the REPRAP_DISCOUNT_SMART_CONTROLLER.
+ *
+ * A remote SD card is currently not supported because the pins routed to the EXP2
+ * connector are shared with the onboard SD card.
+ */
+
+#if ENABLED(CR10_STOCKDISPLAY)
+ #define BEEPER_PIN P1_31
+ #define BTN_EN1 P3_26
+ #define BTN_EN2 P3_25
+ #define BTN_ENC P1_30
+ #define LCD_PINS_RS P0_16
+ #define LCD_PINS_ENABLE P0_18
+ #define LCD_PINS_D4 P0_15
+ #define KILL_PIN P2_11
+#elif HAS_WIRED_LCD
+ #error "Only the CR10_STOCKDISPLAY is supported with TH3D EZBoard."
+#endif
diff --git a/Marlin/src/pins/mega/pins_CHEAPTRONIC.h b/Marlin/src/pins/mega/pins_CHEAPTRONIC.h
new file mode 100644
index 0000000..98427d9
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_CHEAPTRONIC.h
@@ -0,0 +1,80 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Cheaptronic v1.0 pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Cheaptronic v1.0"
+//
+// Limit Switches
+//
+#define X_STOP_PIN 3
+#define Y_STOP_PIN 2
+#define Z_STOP_PIN 5
+
+//
+// Steppers
+//
+#define X_STEP_PIN 14
+#define X_DIR_PIN 15
+#define X_ENABLE_PIN 24
+
+#define Y_STEP_PIN 35
+#define Y_DIR_PIN 36
+#define Y_ENABLE_PIN 31
+
+#define Z_STEP_PIN 40
+#define Z_DIR_PIN 41
+#define Z_ENABLE_PIN 37
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 25
+
+#define E1_STEP_PIN 33
+#define E1_DIR_PIN 34
+#define E1_ENABLE_PIN 30
+
+//
+// Temperature sensors
+//
+#define TEMP_0_PIN 15 // Analog Input
+#define TEMP_1_PIN 14 // Analog Input
+#define TEMP_BED_PIN 13 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 19 // EXTRUDER 1
+#define HEATER_1_PIN 23 // EXTRUDER 2
+#define HEATER_BED_PIN 22
+
+//
+// LCD / Controller
+//
+// Cheaptronic v1.0 doesn't support LCD
diff --git a/Marlin/src/pins/mega/pins_CHEAPTRONICv2.h b/Marlin/src/pins/mega/pins_CHEAPTRONICv2.h
new file mode 100644
index 0000000..3f18bc8
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_CHEAPTRONICv2.h
@@ -0,0 +1,140 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Cheaptronic v2.0 pin assignments
+ * Built and sold by Michal Dyntar - RRO
+ * www.reprapobchod.cz
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Cheaptronic v2.0"
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 30
+#define X_MAX_PIN 31
+#define Y_MIN_PIN 32
+#define Y_MAX_PIN 33
+#define Z_MIN_PIN 34
+#define Z_MAX_PIN 35
+
+//
+// Steppers
+//
+#define X_STEP_PIN 17
+#define X_DIR_PIN 16
+#define X_ENABLE_PIN 48
+
+#define Y_STEP_PIN 54
+#define Y_DIR_PIN 47
+#define Y_ENABLE_PIN 55
+
+#define Z_STEP_PIN 57
+#define Z_DIR_PIN 56
+#define Z_ENABLE_PIN 62
+
+#define E0_STEP_PIN 23
+#define E0_DIR_PIN 22
+#define E0_ENABLE_PIN 24
+
+#define E1_STEP_PIN 26
+#define E1_DIR_PIN 25
+#define E1_ENABLE_PIN 27
+
+#define E2_STEP_PIN 29
+#define E2_DIR_PIN 28
+#define E2_ENABLE_PIN 39
+
+//
+// Temperature sensors
+//
+#define TEMP_0_PIN 15
+#define TEMP_1_PIN 13
+#define TEMP_2_PIN 14
+#define TEMP_3_PIN 11 // should be used for chamber temperature control
+#define TEMP_BED_PIN 12
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 6
+#define HEATER_1_PIN 7
+#define HEATER_2_PIN 8
+#define HEATER_BED_PIN 9
+#ifndef FAN_PIN
+ #define FAN_PIN 3
+#endif
+#define FAN2_PIN 58 // additional fan or light control output
+
+//
+// Other board specific pins
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 37 // board input labeled as F-DET
+#endif
+#define Z_MIN_PROBE_PIN 36 // additional external board input labeled as E-SENS (should be used for Z-probe)
+#define LED_PIN 13
+#define SPINDLE_ENABLE_PIN 4 // additional PWM pin 1 at JP1 connector - should be used for laser control too
+#define EXT_2 5 // additional PWM pin 2 at JP1 connector
+#define EXT_3 2 // additional PWM pin 3 at JP1 connector
+#define PS_ON_PIN 45
+#define KILL_PIN 46
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 11 // shared with TEMP_3 analog input
+#endif
+
+//
+// LCD / Controller
+//
+#define LCD_PINS_RS 19
+#define LCD_PINS_ENABLE 42
+#define LCD_PINS_D4 18
+#define LCD_PINS_D5 38
+#define LCD_PINS_D6 41
+#define LCD_PINS_D7 40
+
+#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+#endif
+
+//
+// Beeper, SD Card, Encoder
+//
+#define BEEPER_PIN 44
+
+#if ENABLED(SDSUPPORT)
+ #define SDSS 53
+ #define SD_DETECT_PIN 49
+#endif
+
+#if IS_NEWPANEL
+ #define BTN_EN1 11
+ #define BTN_EN2 12
+ #define BTN_ENC 43
+#endif
diff --git a/Marlin/src/pins/mega/pins_CNCONTROLS_11.h b/Marlin/src/pins/mega/pins_CNCONTROLS_11.h
new file mode 100644
index 0000000..f80e614
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_CNCONTROLS_11.h
@@ -0,0 +1,160 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * CartesioV11 pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "CN Controls V11"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 43
+#define Y_STOP_PIN 45
+#define Z_STOP_PIN 42
+
+//
+// Steppers
+//
+#define X_STEP_PIN 34
+#define X_DIR_PIN 36
+#define X_ENABLE_PIN 35
+
+#define Y_STEP_PIN 37
+#define Y_DIR_PIN 39
+#define Y_ENABLE_PIN 38
+
+#define Z_STEP_PIN 40
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 41
+
+#define E0_STEP_PIN 29
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 3
+
+#define E1_STEP_PIN 61
+#define E1_DIR_PIN 62
+#define E1_ENABLE_PIN 60
+
+#define E2_STEP_PIN 15
+#define E2_DIR_PIN 14
+#define E2_ENABLE_PIN 16
+
+#define E3_STEP_PIN 44
+#define E3_DIR_PIN 49
+#define E3_ENABLE_PIN 47
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_1_PIN 3 // Analog Input. 3 for tool2 -> 2 for chambertemp
+#define TEMP_2_PIN 2 // Analog Input. 9 for tool3 -> 2 for chambertemp
+#define TEMP_3_PIN 11 // Analog Input. 11 for tool4 -> 2 for chambertemp
+#define TEMP_BED_PIN 1 // Analog Input
+
+#ifndef TEMP_CHAMBER_PIN
+ //#define TEMP_CHAMBER_PIN 2 // Analog Input
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 5
+#define HEATER_1_PIN 58
+#define HEATER_2_PIN 64
+#define HEATER_3_PIN 46
+#define HEATER_BED_PIN 2
+
+#ifndef FAN_PIN
+ //#define FAN_PIN 7 // common PWM pin for all tools
+#endif
+
+//
+// Auto fans
+//
+#define AUTO_FAN_PIN 7
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E2_AUTO_FAN_PIN
+ #define E2_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E3_AUTO_FAN_PIN
+ #define E3_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define SD_DETECT_PIN 13
+
+// Tools
+
+//#define TOOL_0_PIN 4
+//#define TOOL_1_PIN 59
+//#define TOOL_2_PIN 8
+//#define TOOL_3_PIN 30
+//#define TOOL_PWM_PIN 7 // common PWM pin for all tools
+
+// Common I/O
+
+//#define FIL_RUNOUT_PIN -1
+//#define PWM_1_PIN 11
+//#define PWM_2_PIN 10
+//#define SPARE_IO 12
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN 6
+
+// Pins for DOGM SPI LCD Support
+#define DOGLCD_A0 26
+#define DOGLCD_CS 24
+#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h
+#define DOGLCD_SCK -1
+
+#define BTN_EN1 23
+#define BTN_EN2 25
+#define BTN_ENC 27
+
+// Hardware buttons for manual movement of XYZ
+#define SHIFT_OUT_PIN 19
+#define SHIFT_LD_PIN 18
+#define SHIFT_CLK_PIN 17
+
+//#define UI1 31
+//#define UI2 22
+
+#define STAT_LED_BLUE_PIN -1
+#define STAT_LED_RED_PIN 31
diff --git a/Marlin/src/pins/mega/pins_CNCONTROLS_12.h b/Marlin/src/pins/mega/pins_CNCONTROLS_12.h
new file mode 100644
index 0000000..540f5c2
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_CNCONTROLS_12.h
@@ -0,0 +1,167 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * CartesioV12 pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "CN Controls V12"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 19
+#define Y_STOP_PIN 22
+#define Z_STOP_PIN 23
+
+//
+// Steppers
+//
+#define X_STEP_PIN 25
+#define X_DIR_PIN 27
+#define X_ENABLE_PIN 26
+
+#define Y_STEP_PIN 28
+#define Y_DIR_PIN 30
+#define Y_ENABLE_PIN 29
+
+#define Z_STEP_PIN 31
+#define Z_DIR_PIN 33
+#define Z_ENABLE_PIN 32
+
+#define E0_STEP_PIN 57
+#define E0_DIR_PIN 55
+#define E0_ENABLE_PIN 58
+
+#define E1_STEP_PIN 61
+#define E1_DIR_PIN 62
+#define E1_ENABLE_PIN 60
+
+#define E2_STEP_PIN 46
+#define E2_DIR_PIN 66
+#define E2_ENABLE_PIN 44
+
+#define E3_STEP_PIN 45
+#define E3_DIR_PIN 69
+#define E3_ENABLE_PIN 47
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_1_PIN 9 // Analog Input. 9 for tool2 -> 13 for chambertemp
+#define TEMP_2_PIN 13 // Analog Input. 10 for tool3 -> 13 for chambertemp
+#define TEMP_3_PIN 11 // Analog Input. 11 for tool4 -> 13 for chambertemp
+#define TEMP_BED_PIN 14 // Analog Input
+
+#ifndef TEMP_CHAMBER_PIN
+ //#define TEMP_CHAMBER_PIN 13 // Analog Input
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 11
+#define HEATER_1_PIN 9
+#define HEATER_2_PIN 6
+#define HEATER_3_PIN 3
+#define HEATER_BED_PIN 24
+
+#ifndef FAN_PIN
+ #define FAN_PIN 5 // 5 is PWMtool3 -> 7 is common PWM pin for all tools
+#endif
+
+//
+// Auto fans
+//
+#define AUTO_FAN_PIN 7
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E2_AUTO_FAN_PIN
+ #define E2_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E3_AUTO_FAN_PIN
+ #define E3_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define SD_DETECT_PIN 15
+
+// Tools
+
+//#define TOOL_0_PIN 56
+//#define TOOL_0_PWM_PIN 10 // red warning led at dual extruder
+//#define TOOL_1_PIN 59
+//#define TOOL_1_PWM_PIN 8 // lights at dual extruder
+//#define TOOL_2_PIN 4
+//#define TOOL_2_PWM_PIN 5
+//#define TOOL_3_PIN 14
+//#define TOOL_3_PWM_PIN 2
+
+// Common I/O
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 18
+#endif
+//#define PWM_1_PIN 12
+//#define PWM_2_PIN 13
+//#define SPARE_IO 17
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN 16
+
+// Pins for DOGM SPI LCD Support
+#define DOGLCD_A0 39
+#define DOGLCD_CS 35
+#define DOGLCD_MOSI 48
+#define DOGLCD_SCK 49
+#define LCD_SCREEN_ROT_180
+
+// The encoder and click button
+#define BTN_EN1 36
+#define BTN_EN2 34
+#define BTN_ENC 38
+
+// Hardware buttons for manual movement of XYZ
+#define SHIFT_OUT_PIN 42
+#define SHIFT_LD_PIN 41
+#define SHIFT_CLK_PIN 40
+
+//#define UI1 43
+//#define UI2 37
+
+#define STAT_LED_BLUE_PIN -1
+#define STAT_LED_RED_PIN 10 // TOOL_0_PWM_PIN
diff --git a/Marlin/src/pins/mega/pins_CNCONTROLS_15.h b/Marlin/src/pins/mega/pins_CNCONTROLS_15.h
new file mode 100644
index 0000000..8bafbdf
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_CNCONTROLS_15.h
@@ -0,0 +1,127 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * CNControls V15 for HMS434 pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "CN Controls V15"
+
+//
+// Servos
+//
+#define SERVO0_PIN 6
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 34
+#define Y_STOP_PIN 39
+#define Z_STOP_PIN 62
+
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 49
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 14
+#define X_DIR_PIN 25
+#define X_ENABLE_PIN 26
+
+#define Y_STEP_PIN 11
+#define Y_DIR_PIN 12
+#define Y_ENABLE_PIN 15
+
+#define Z_STEP_PIN 24
+#define Z_DIR_PIN 27
+#define Z_ENABLE_PIN 28
+
+#define E0_STEP_PIN 64
+#define E0_DIR_PIN 65
+#define E0_ENABLE_PIN 63
+
+//
+// Temperature Sensors
+// Analog Inputs
+//
+#define TEMP_0_PIN 2 // Analog Input
+#define TEMP_BED_PIN 4 // Analog Input
+
+#ifndef TEMP_CHAMBER_PIN
+ #define TEMP_CHAMBER_PIN 5 // Analog Input
+#endif
+
+//
+// Heaters
+//
+#define HEATER_0_PIN 4
+#define HEATER_BED_PIN 32
+#define HEATER_CHAMBER_PIN 33
+
+//
+// Fans
+//
+#define FAN_PIN 8
+
+//
+// Auto fans
+//
+#define AUTO_FAN_PIN 30
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E2_AUTO_FAN_PIN
+ #define E2_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E3_AUTO_FAN_PIN
+ #define E3_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef CHAMBER_AUTO_FAN_PIN
+ //#define CHAMBER_AUTO_FAN_PIN 10
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define SD_DETECT_PIN 40
+
+// Common I/O
+
+#define FIL_RUNOUT_PIN 9
+//#define FIL_RUNOUT_PIN 29 // encoder sensor
+//#define PWM_1_PIN 12
+//#define PWM_2_PIN 13
+//#define SPARE_IO 17
+#define BEEPER_PIN 13
+#define STAT_LED_BLUE_PIN -1
+#define STAT_LED_RED_PIN 10 // 31
diff --git a/Marlin/src/pins/mega/pins_EINSTART-S.h b/Marlin/src/pins/mega/pins_EINSTART-S.h
new file mode 100644
index 0000000..40d65c3
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_EINSTART-S.h
@@ -0,0 +1,113 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Einstart-S pin assignments
+ * PCB Silkscreen: 3DPrinterCon_v3.5
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Einstart-S"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 44
+#define Y_STOP_PIN 43
+#define Z_STOP_PIN 42
+
+//
+// Steppers
+//
+#define X_STEP_PIN 76
+#define X_DIR_PIN 75
+#define X_ENABLE_PIN 73
+
+#define Y_STEP_PIN 31
+#define Y_DIR_PIN 32
+#define Y_ENABLE_PIN 72
+
+#define Z_STEP_PIN 34
+#define Z_DIR_PIN 35
+#define Z_ENABLE_PIN 33
+
+#define E0_STEP_PIN 36
+#define E0_DIR_PIN 37
+#define E0_ENABLE_PIN 30
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_BED_PIN 1 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 83
+#define HEATER_BED_PIN 38
+
+#define FAN_PIN 82
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 4
+
+//////////////////////////
+// LCDs and Controllers //
+//////////////////////////
+
+//
+// LCD Display output pins
+//
+
+// Requires #define U8GLIB_SH1106_EINSTART in Configuration.h
+// u8glib constructor
+// U8GLIB_SH1106_128X64 u8g(DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, LCD_PINS_DC, LCD_PINS_RS);
+
+#define LCD_PINS_DC 78
+#define LCD_PINS_RS 79
+// DOGM SPI LCD Support
+#define DOGLCD_CS 3
+#define DOGLCD_MOSI 2
+#define DOGLCD_SCK 5
+#define DOGLCD_A0 2
+
+//
+// LCD Display input pins
+//
+#define BTN_UP 25
+#define BTN_DWN 26
+#define BTN_LFT 27
+#define BTN_RT 28
+
+// 'OK' button
+#define BTN_ENC 29
+
+// Set Kill to right arrow, same as RIGID_PANEL
+#define KILL_PIN 28
diff --git a/Marlin/src/pins/mega/pins_ELEFU_3.h b/Marlin/src/pins/mega/pins_ELEFU_3.h
new file mode 100644
index 0000000..af93c40
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_ELEFU_3.h
@@ -0,0 +1,152 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Elefu RA Board Pin Assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Elefu Ra v3"
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 35
+#define X_MAX_PIN 34
+#define Y_MIN_PIN 33
+#define Y_MAX_PIN 32
+#define Z_MIN_PIN 31
+#define Z_MAX_PIN 30
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 30
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 49
+#define X_DIR_PIN 13
+#define X_ENABLE_PIN 48
+
+#define Y_STEP_PIN 11
+#define Y_DIR_PIN 9
+#define Y_ENABLE_PIN 12
+
+#define Z_STEP_PIN 7
+#define Z_DIR_PIN 6
+#define Z_ENABLE_PIN 8
+
+#define E0_STEP_PIN 40
+#define E0_DIR_PIN 41
+#define E0_ENABLE_PIN 37
+
+#define E1_STEP_PIN 18
+#define E1_DIR_PIN 19
+#define E1_ENABLE_PIN 38
+
+#define E2_STEP_PIN 43
+#define E2_DIR_PIN 47
+#define E2_ENABLE_PIN 42
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 3 // Analog Input
+#define TEMP_1_PIN 2 // Analog Input
+#define TEMP_2_PIN 1 // Analog Input
+#define TEMP_BED_PIN 0 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 45 // 12V PWM1
+#define HEATER_1_PIN 46 // 12V PWM2
+#define HEATER_2_PIN 17 // 12V PWM3
+#define HEATER_BED_PIN 44 // DOUBLE 12V PWM
+
+#ifndef FAN_PIN
+ #define FAN_PIN 16 // 5V PWM
+#endif
+
+//
+// Misc. Functions
+//
+#define PS_ON_PIN 10 // Set to -1 if using a manual switch on the PWRSW Connector
+#define SLEEP_WAKE_PIN 26 // This feature still needs work
+#define PHOTOGRAPH_PIN 29
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN 36
+
+#if ENABLED(RA_CONTROL_PANEL)
+
+ #define SDSS 53
+ #define SD_DETECT_PIN 28
+
+ #define BTN_EN1 14
+ #define BTN_EN2 39
+ #define BTN_ENC 15
+
+#endif // RA_CONTROL_PANEL
+
+#if ENABLED(RA_DISCO)
+ // variables for which pins the TLC5947 is using
+ #define TLC_CLOCK_PIN 25
+ #define TLC_BLANK_PIN 23
+ #define TLC_XLAT_PIN 22
+ #define TLC_DATA_PIN 24
+
+ // We also need to define pin to port number mapping for the 2560 to match the pins listed above.
+ // If you change the TLC pins, update this as well per the 2560 datasheet! This currently only works with the RA Board.
+ #define TLC_CLOCK_BIT 3
+ #define TLC_CLOCK_PORT &PORTA
+
+ #define TLC_BLANK_BIT 1
+ #define TLC_BLANK_PORT &PORTA
+
+ #define TLC_DATA_BIT 2
+ #define TLC_DATA_PORT &PORTA
+
+ #define TLC_XLAT_BIT 0
+ #define TLC_XLAT_PORT &PORTA
+
+ // Change this to match your situation. Lots of TLCs takes up the arduino SRAM very quickly, so be careful
+ // Leave it at at least 1 if you have enabled RA_LIGHTING
+ // The number of TLC5947 boards chained together for use with the animation, additional ones will repeat the animation on them, but are not individually addressable and mimic those before them. You can leave the default at 2 even if you only have 1 TLC5947 module.
+ #define NUM_TLCS 2
+
+ // These TRANS_ARRAY values let you change the order the LEDs on the lighting modules will animate for chase functions.
+ // Modify them according to your specific situation.
+ // NOTE: the array should be 8 long for every TLC you have. These defaults assume (2) TLCs.
+ #define TRANS_ARRAY { 0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8 } // forward
+ //#define TRANS_ARRAY { 7, 6, 5, 4, 3, 2, 1, 0, 8, 9, 10, 11, 12, 13, 14, 15 } // backward
+#endif // RA_DISCO
diff --git a/Marlin/src/pins/mega/pins_GT2560_REV_A.h b/Marlin/src/pins/mega/pins_GT2560_REV_A.h
new file mode 100644
index 0000000..dcd829f
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_GT2560_REV_A.h
@@ -0,0 +1,169 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Geeetech GT2560 Revision A board pin assignments, based on the work of
+ * George Robles (https://georges3dprinters.com) and
+ * Richard Smith <galorin@gmail.com>
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "GT2560 Rev.A"
+#endif
+#define DEFAULT_MACHINE_NAME "Prusa i3 Pro B"
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 22
+#define X_MAX_PIN 24
+#define Y_MIN_PIN 26
+#define Y_MAX_PIN 28
+#define Z_MIN_PIN 30
+
+#if ENABLED(BLTOUCH)
+ #if MB(GT2560_REV_A_PLUS)
+ #define SERVO0_PIN 11
+ #else
+ #define SERVO0_PIN 32
+ #endif
+ #define Z_MAX_PIN -1
+#else
+ #define Z_MAX_PIN 32
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 25
+#define X_DIR_PIN 23
+#define X_ENABLE_PIN 27
+
+#define Y_STEP_PIN 31
+#define Y_DIR_PIN 33
+#define Y_ENABLE_PIN 29
+
+#define Z_STEP_PIN 37
+#define Z_DIR_PIN 39
+#define Z_ENABLE_PIN 35
+
+#define E0_STEP_PIN 43
+#define E0_DIR_PIN 45
+#define E0_ENABLE_PIN 41
+
+#define E1_STEP_PIN 49
+#define E1_DIR_PIN 47
+#define E1_ENABLE_PIN 48
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 8
+#define TEMP_1_PIN 9
+#define TEMP_BED_PIN 10
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+#define HEATER_1_PIN 3
+#define HEATER_BED_PIN 4
+#ifndef FAN_PIN
+ #define FAN_PIN 7
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+#define PS_ON_PIN 12
+#define SUICIDE_PIN 54 // Must be enabled at startup to keep power flowing
+#define KILL_PIN -1
+
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN 18
+
+ #if IS_NEWPANEL
+
+ #if ENABLED(MKS_MINI_12864)
+ #define DOGLCD_A0 5
+ #define DOGLCD_CS 21
+ #define BTN_EN1 40
+ #define BTN_EN2 42
+ #elif ENABLED(FYSETC_MINI_12864)
+ // Disconnect EXP2-1 and EXP2-2, otherwise future firmware upload won't work.
+ #define DOGLCD_A0 20
+ #define DOGLCD_CS 17
+
+ #define NEOPIXEL_PIN 21
+ #define BTN_EN1 42
+ #define BTN_EN2 40
+
+ #define LCD_RESET_PIN 16
+
+ #define DEFAULT_LCD_CONTRAST 220
+
+ #define LCD_BACKLIGHT_PIN -1
+ #else
+ #define LCD_PINS_RS 20
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 16
+ #define LCD_PINS_D5 21
+ #define LCD_PINS_D6 5
+ #define LCD_PINS_D7 6
+ #define BTN_EN1 42
+ #define BTN_EN2 40
+ #endif
+
+ #define BTN_ENC 19
+ #define SD_DETECT_PIN 38
+
+ #else // !IS_NEWPANEL
+
+ #define SHIFT_CLK_PIN 38
+ #define SHIFT_LD_PIN 42
+ #define SHIFT_OUT_PIN 40
+ #define SHIFT_EN_PIN 17
+
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 5
+ #define LCD_PINS_D4 6
+ #define LCD_PINS_D5 21
+ #define LCD_PINS_D6 20
+ #define LCD_PINS_D7 19
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #define SD_DETECT_PIN -1
+
+ #endif // !IS_NEWPANEL
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/mega/pins_GT2560_REV_A_PLUS.h b/Marlin/src/pins/mega/pins_GT2560_REV_A_PLUS.h
new file mode 100644
index 0000000..7e2ce20
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_GT2560_REV_A_PLUS.h
@@ -0,0 +1,34 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Geeetech GT2560 Revision A+ board pin assignments
+ */
+
+#define BOARD_INFO_NAME "GT2560 Rev.A+"
+
+#include "pins_GT2560_REV_A.h"
+
+#if DISABLED(BLTOUCH)
+ #define SERVO0_PIN 32
+#endif
diff --git a/Marlin/src/pins/mega/pins_GT2560_V3.h b/Marlin/src/pins/mega/pins_GT2560_V3.h
new file mode 100644
index 0000000..606debd
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_GT2560_V3.h
@@ -0,0 +1,185 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * GT2560 RevB + GT2560 V3.0 + GT2560 V3.1 + GT2560 V4.0 pin assignment
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "GT2560 V3.0"
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN 11 //13 untested 3Dtouch
+
+//
+// Limit Switches
+//
+#ifndef X_STOP_PIN
+ #ifndef X_MIN_PIN
+ #define X_MIN_PIN 24
+ #endif
+ #ifndef X_MAX_PIN
+ #define X_MAX_PIN 22
+ #endif
+#endif
+#ifndef Y_STOP_PIN
+ #ifndef Y_MIN_PIN
+ #define Y_MIN_PIN 28
+ #endif
+ #ifndef Y_MAX_PIN
+ #define Y_MAX_PIN 26
+ #endif
+#endif
+#ifndef Z_STOP_PIN
+ #ifndef Z_MIN_PIN
+ #define Z_MIN_PIN 30
+ #endif
+ #ifndef Z_MAX_PIN
+ #define Z_MAX_PIN 32
+ #endif
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 32
+#endif
+
+//
+// Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 66
+#endif
+#ifndef FIL_RUNOUT2_PIN
+ #define FIL_RUNOUT2_PIN 67
+#endif
+
+//
+// Power Recovery
+//
+#define POWER_LOSS_PIN 69 // Pin to detect power loss
+#define POWER_LOSS_STATE LOW
+
+//
+// Steppers
+//
+#define X_STEP_PIN 37
+#define X_DIR_PIN 39
+#define X_ENABLE_PIN 35
+
+#define Y_STEP_PIN 31
+#define Y_DIR_PIN 33
+#define Y_ENABLE_PIN 29
+
+#define Z_STEP_PIN 25
+#define Z_DIR_PIN 23
+#define Z_ENABLE_PIN 27
+
+#define E0_STEP_PIN 46
+#define E0_DIR_PIN 44
+#define E0_ENABLE_PIN 12
+
+#define E1_STEP_PIN 49
+#define E1_DIR_PIN 47
+#define E1_ENABLE_PIN 48
+
+#define E2_STEP_PIN 43
+#define E2_DIR_PIN 45
+#define E2_ENABLE_PIN 41
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 11 // Analog Input
+#define TEMP_1_PIN 9 // Analog Input
+#define TEMP_2_PIN 8 // Analog Input
+#define TEMP_BED_PIN 10 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 10
+#define HEATER_1_PIN 3
+#define HEATER_2_PIN 2
+#define HEATER_BED_PIN 4
+#define FAN_PIN 9
+#define FAN1_PIN 8
+#define FAN2_PIN 7
+
+//
+// Misc. Functions
+//
+#define SD_DETECT_PIN 38
+#define SDSS 53
+#define LED_PIN 13 // Use 6 (case light) for external LED. 13 is internal (yellow) LED.
+#define PS_ON_PIN 12
+#define SUICIDE_PIN 54 // This pin must be enabled at boot to keep power flowing
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 6 // 21
+#endif
+
+//
+// LCD Controller
+//
+#define BEEPER_PIN 18
+
+#ifndef LCD_PINS_RS
+ #define LCD_PINS_RS 20
+#endif
+#ifndef LCD_PINS_ENABLE
+ #define LCD_PINS_ENABLE 17
+#endif
+#ifndef LCD_PINS_D4
+ #define LCD_PINS_D4 16
+#endif
+#ifndef LCD_PINS_D5
+ #define LCD_PINS_D5 21
+#endif
+#ifndef LCD_PINS_D6
+ #define LCD_PINS_D6 5
+#endif
+#ifndef LCD_PINS_D7
+ #define LCD_PINS_D7 36
+#endif
+
+#if IS_NEWPANEL
+ #ifndef BTN_EN1
+ #define BTN_EN1 42
+ #endif
+ #ifndef BTN_EN2
+ #define BTN_EN2 40
+ #endif
+ #ifndef BTN_ENC
+ #define BTN_ENC 19
+ #endif
+#endif
diff --git a/Marlin/src/pins/mega/pins_GT2560_V3_A20.h b/Marlin/src/pins/mega/pins_GT2560_V3_A20.h
new file mode 100644
index 0000000..c445f5b
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_GT2560_V3_A20.h
@@ -0,0 +1,41 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Geeetech A20M pin assignment
+ */
+
+#define LCD_PINS_RS 5
+#define LCD_PINS_ENABLE 36
+#define LCD_PINS_D4 21
+#define LCD_PINS_D7 6
+
+#define SPEAKER // The speaker can produce tones
+
+#if IS_NEWPANEL
+ #define BTN_EN1 16
+ #define BTN_EN2 17
+ #define BTN_ENC 19
+#endif
+
+#include "pins_GT2560_V3.h"
diff --git a/Marlin/src/pins/mega/pins_GT2560_V3_MC2.h b/Marlin/src/pins/mega/pins_GT2560_V3_MC2.h
new file mode 100644
index 0000000..26721df
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_GT2560_V3_MC2.h
@@ -0,0 +1,35 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/*****************************************************************
+ * GT2560 V3.0 pin assignment (for Mecreator 2)
+ *****************************************************************/
+
+#define BOARD_INFO_NAME "GT2560 V3.0 (MC2)"
+
+#define X_MIN_PIN 22
+#define X_MAX_PIN 24
+#define Y_MIN_PIN 26
+#define Y_MAX_PIN 28
+
+#include "pins_GT2560_V3.h"
diff --git a/Marlin/src/pins/mega/pins_HJC2560C_REV2.h b/Marlin/src/pins/mega/pins_HJC2560C_REV2.h
new file mode 100644
index 0000000..d507d20
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_HJC2560C_REV2.h
@@ -0,0 +1,173 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * HJC2560-C Rev2.x pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define DEFAULT_MACHINE_NAME "ADIMLab Gantry v2"
+#define BOARD_INFO_NAME "HJC2560-C"
+
+//
+// Servos
+//
+//#ifndef SERVO0_PIN
+// #define SERVO0_PIN 11
+//#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 22
+#define Y_STOP_PIN 26
+#define Z_STOP_PIN 29
+//#define EXP_STOP_PIN 28
+
+//
+// Steppers
+//
+#define X_STEP_PIN 25
+#define X_DIR_PIN 23
+#define X_ENABLE_PIN 27
+
+#define Y_STEP_PIN 32
+#define Y_DIR_PIN 33
+#define Y_ENABLE_PIN 31
+
+#define Z_STEP_PIN 35
+#define Z_DIR_PIN 36
+#define Z_ENABLE_PIN 34
+
+#define E0_STEP_PIN 42
+#define E0_DIR_PIN 43
+#define E0_ENABLE_PIN 37
+
+#define E1_STEP_PIN 49
+#define E1_DIR_PIN 47
+#define E1_ENABLE_PIN 48
+
+#define MOTOR_CURRENT_PWM_XY_PIN 44
+#define MOTOR_CURRENT_PWM_Z_PIN 45
+#define MOTOR_CURRENT_PWM_E_PIN 46
+// Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range
+#ifndef MOTOR_CURRENT_PWM_RANGE
+ #define MOTOR_CURRENT_PWM_RANGE 2000
+#endif
+#define DEFAULT_PWM_MOTOR_CURRENT { 1300, 1300, 1250 }
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 8 // Analog Input
+#define TEMP_1_PIN 9 // Analog Input
+#define TEMP_BED_PIN 10 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+#define HEATER_1_PIN 3
+#define HEATER_BED_PIN 4
+
+#ifndef FAN_PIN
+ #define FAN_PIN 7 //默认不使用PWM_FAN冷却喷嘴,如果需要,则取消注释
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define SD_DETECT_PIN 39
+//#define LED_PIN 8
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 8 // 8 默认挤出机风扇作为Case LED,如果需要PWM FAN,则需要将FAN_PIN置为7,LED_PIN置为8
+#endif
+
+//#define SAFETY_TRIGGERED_PIN 28 // PIN to detect the safety circuit has triggered
+//#define MAIN_VOLTAGE_MEASURE_PIN 14 // ANALOG PIN to measure the main voltage, with a 100k - 4k7 resitor divider.
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if ENABLED(SPINDLE_LASER_ENABLE)
+ #define SPINDLE_DIR_PIN 16
+ #define SPINDLE_LASER_ENABLE_PIN 17 // Pin should have a pullup!
+ #define SPINDLE_LASER_PWM_PIN 9 // Hardware PWM
+#endif
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN 18
+
+ #if IS_NEWPANEL
+
+ #define LCD_PINS_RS 20 // LCD_CS
+ #define LCD_PINS_ENABLE 15 // LCD_SDA
+ #define LCD_PINS_D4 14 // LCD_SCK
+
+ #if ENABLED(HJC_LCD_SMART_CONTROLLER)
+ #define LCD_BACKLIGHT_PIN 5 // LCD_Backlight
+ //#ifndef LCD_CONTRAST_PIN
+ // #define LCD_CONTRAST_PIN 5 // LCD_Contrast
+ //#endif
+ #ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 24 // Filament runout
+ #endif
+ #else
+ #define LCD_PINS_D5 21
+ #define LCD_PINS_D6 5
+ #define LCD_PINS_D7 6
+ #endif
+
+ #define BTN_EN1 41
+ #define BTN_EN2 40
+ #define BTN_ENC 19
+
+ #define SD_DETECT_PIN 39
+
+ #else
+
+ // Buttons attached to a shift register
+ #define SHIFT_CLK_PIN 38
+ #define SHIFT_LD_PIN 42
+ #define SHIFT_OUT_PIN 40
+ #define SHIFT_EN_PIN 17
+
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 5
+ #define LCD_PINS_D4 6
+ #define LCD_PINS_D5 21
+ #define LCD_PINS_D6 20
+ #define LCD_PINS_D7 19
+
+ #endif // !IS_NEWPANEL
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/mega/pins_INTAMSYS40.h b/Marlin/src/pins/mega/pins_INTAMSYS40.h
new file mode 100644
index 0000000..be5f461
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_INTAMSYS40.h
@@ -0,0 +1,151 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Intamsys Funmat HT V4.0 Mainboard
+ * 4988 Drivers Tested
+ * 2208 version exists and may or may not work
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Intamsys 4.0"
+
+//
+// Servos
+//
+#define SERVO0_PIN 12 // Uses High Temp Present Jumper Pin
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 22
+#define Y_STOP_PIN 26
+#define Z_MIN_PIN 29
+#define Z_MAX_PIN 69
+
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 69
+#endif
+
+#define FIL_RUNOUT_PIN 10
+
+//
+// Steppers
+//
+#define X_STEP_PIN 25
+#define X_DIR_PIN 23
+#define X_ENABLE_PIN 27 // 44
+
+#define Y_STEP_PIN 32 // 33
+#define Y_DIR_PIN 33 // 31, 32
+#define Y_ENABLE_PIN 31 // 32
+
+#define Z_STEP_PIN 35 // 35
+#define Z_DIR_PIN 36
+#define Z_ENABLE_PIN 34 // 34
+
+#define E0_STEP_PIN 42
+#define E0_DIR_PIN 43
+#define E0_ENABLE_PIN 37
+
+#define E1_STEP_PIN 49
+#define E1_DIR_PIN 47
+#define E1_ENABLE_PIN 48
+
+#define MOTOR_CURRENT_PWM_X_PIN 11
+#define MOTOR_CURRENT_PWM_Y_PIN 44
+#define MOTOR_CURRENT_PWM_Z_PIN 45
+#define MOTOR_CURRENT_PWM_E_PIN 46
+
+// Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range
+#ifndef MOTOR_CURRENT_PWM_RANGE
+ #define MOTOR_CURRENT_PWM_RANGE 2000
+#endif
+#define DEFAULT_PWM_MOTOR_CURRENT { 1300, 1300, 1250 }
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 8 // Analog Input D62
+#define TEMP_BED_PIN 10 // Analog Input D64
+
+#define TEMP_CHAMBER_PIN 9 // Analog Input D63
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2 // PWM
+#define HEATER_BED_PIN 4 // PWM
+#define HEATER_CHAMBER_PIN 3 // PWM
+#define FAN_PIN 7 // PWM
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define SD_DETECT_PIN 39
+
+#if ENABLED(CASE_LIGHT_ENABLE)
+ #define CASE_LIGHT_PIN 8
+#endif
+
+#if ENABLED(PSU_CONTROL)
+ #define PS_ON_PIN 38 // UPS Module
+#endif
+
+//
+// LCD Controller
+//
+
+#define BEEPER_PIN 18
+
+#if HAS_WIRED_LCD
+ #define LCD_PINS_RS 20
+ #define LCD_PINS_ENABLE 30
+ #define LCD_PINS_D4 14
+ #define LCD_PINS_D5 21
+ #define LCD_PINS_D6 5
+ #define LCD_PINS_D7 6
+ #define BTN_EN1 40
+ #define BTN_EN2 41
+ #define BTN_ENC 19
+#endif
+
+///////////////////// SPARE HEADERS //////////////
+
+/**
+ * J25
+ * 1 D54
+ * 2 D55
+ * 3 D56
+ * 4 D57
+ * 5 D58
+ * 6 D59
+ * 7 D60
+ * 8 D61
+
+Hotend High Temp Connected : D12
+*/
diff --git a/Marlin/src/pins/mega/pins_LEAPFROG.h b/Marlin/src/pins/mega/pins_LEAPFROG.h
new file mode 100644
index 0000000..9e6802b
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_LEAPFROG.h
@@ -0,0 +1,92 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Leapfrog Driver board pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Mega 1280' or 'Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Leapfrog"
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 47
+#define X_MAX_PIN 2
+#define Y_MIN_PIN 48
+#define Y_MAX_PIN 15
+#define Z_MIN_PIN 49
+#define Z_MAX_PIN -1
+
+//
+// Steppers
+//
+#define X_STEP_PIN 28
+#define X_DIR_PIN 63
+#define X_ENABLE_PIN 29
+
+#define Y_STEP_PIN 14 // A6
+#define Y_DIR_PIN 15 // A0
+#define Y_ENABLE_PIN 39
+
+#define Z_STEP_PIN 31 // A2
+#define Z_DIR_PIN 32 // A6
+#define Z_ENABLE_PIN 30 // A1
+
+#define E0_STEP_PIN 34 // 34
+#define E0_DIR_PIN 35 // 35
+#define E0_ENABLE_PIN 33 // 33
+
+#define E1_STEP_PIN 37 // 37
+#define E1_DIR_PIN 40 // 40
+#define E1_ENABLE_PIN 36 // 36
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 13 // Analog Input (D27)
+#define TEMP_1_PIN 15 // Analog Input (1)
+#define TEMP_BED_PIN 14 // Analog Input (1,2 or I2C)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 9
+#define HEATER_1_PIN 8 // 12
+#define HEATER_2_PIN 11 // 13
+#define HEATER_BED_PIN 10 // 14/15
+
+#define FAN_PIN 7
+
+//
+// Misc. Functions
+//
+#define SDSS 11
+#define LED_PIN 13
+#define SOL1_PIN 16
+#define SOL2_PIN 17
+
+/* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */
diff --git a/Marlin/src/pins/mega/pins_LEAPFROG_XEED2015.h b/Marlin/src/pins/mega/pins_LEAPFROG_XEED2015.h
new file mode 100644
index 0000000..9c316aa
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_LEAPFROG_XEED2015.h
@@ -0,0 +1,115 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Leapfrog Xeed Driver board pin assignments
+ *
+ * This board is used by other Leapfrog printers in addition to the Xeed,
+ * such as the Creatr HS and Bolt. The pin assignments vary wildly between
+ * printer models. As such this file is currently specific to the Xeed.
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Leapfrog Xeed 2015"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 47 // 'X Min'
+#define Y_STOP_PIN 48 // 'Y Min'
+#define Z_STOP_PIN 49 // 'Z Min'
+
+//
+// Steppers
+// The Xeed utilizes three Z-axis motors, which use the X, Y, and Z stepper connectors
+// on the board. The X and Y steppers use external drivers, attached to signal-level
+// Y-axis and X-axis connectors on the board, which map to distinct CPU pins from
+// the on-board X/Y stepper drivers.
+//
+
+// X-axis signal-level connector
+#define X_STEP_PIN 65
+#define X_DIR_PIN 64
+#define X_ENABLE_PIN 66 // Not actually used on Xeed, could be repurposed
+
+// Y-axis signal-level connector
+#define Y_STEP_PIN 23
+#define Y_DIR_PIN 22
+#define Y_ENABLE_PIN 24 // Not actually used on Xeed, could be repurposed
+
+// ZMOT connector (Front Right Z Motor)
+#define Z_STEP_PIN 31
+#define Z_DIR_PIN 32
+#define Z_ENABLE_PIN 30
+
+// XMOT connector (Rear Z Motor)
+#define Z2_STEP_PIN 28
+#define Z2_DIR_PIN 63
+#define Z2_ENABLE_PIN 29
+
+// YMOT connector (Front Left Z Motor)
+#define Z3_STEP_PIN 14
+#define Z3_DIR_PIN 15
+#define Z3_ENABLE_PIN 39
+
+// EMOT2 connector
+#define E0_STEP_PIN 37
+#define E0_DIR_PIN 40
+#define E0_ENABLE_PIN 36
+
+// EMOT connector
+#define E1_STEP_PIN 34
+#define E1_DIR_PIN 35
+#define E1_ENABLE_PIN 33
+
+//
+// Filament runout
+//
+#define FIL_RUNOUT_PIN 42 // ROT2 Connector
+#define FIL_RUNOUT2_PIN 44 // ROT1 Connector
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 15 // T3 Connector
+#define TEMP_1_PIN 13 // T1 Connector
+#define TEMP_BED_PIN 14 // BED Connector (Between T1 and T3)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 8 // Misc Connector, pins 3 and 4 (Out2)
+#define HEATER_1_PIN 9 // Misc Connector, pins 5 and 6 (Out3)
+#define HEATER_BED_PIN 6 // Misc Connector, pins 9(-) and 10(+) (OutA)
+
+#define FAN_PIN 10 // Misc Connector, pins 7(-) and 8 (+) (Out4)
+
+#define LED_PIN 13
+
+#define SOL1_PIN 7 // Misc Connector, pins 1(-) and 2(+) (Out1)
+
+// Door Closed Sensor
+//#define DOOR_PIN 45 // HM1 Connector
diff --git a/Marlin/src/pins/mega/pins_MEGACONTROLLER.h b/Marlin/src/pins/mega/pins_MEGACONTROLLER.h
new file mode 100644
index 0000000..938ad82
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_MEGACONTROLLER.h
@@ -0,0 +1,167 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Mega controller pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "Mega Controller supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Mega Controller"
+
+//
+// Servos
+//
+#define SERVO0_PIN 30
+#define SERVO1_PIN 31
+#define SERVO2_PIN 32
+#define SERVO3_PIN 33
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 43
+#define X_MAX_PIN 42
+#define Y_MIN_PIN 38
+#define Y_MAX_PIN 41
+#define Z_MIN_PIN 40
+#define Z_MAX_PIN 37
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 37
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 62 // A8
+#define X_DIR_PIN 63 // A9
+#define X_ENABLE_PIN 61 // A7
+
+#define Y_STEP_PIN 65 // A11
+#define Y_DIR_PIN 66 // A12
+#define Y_ENABLE_PIN 64 // A10
+
+#define Z_STEP_PIN 68 // A14
+#define Z_DIR_PIN 69 // A15
+#define Z_ENABLE_PIN 67 // A13
+
+#define E0_STEP_PIN 23
+#define E0_DIR_PIN 24
+#define E0_ENABLE_PIN 22
+
+#define E1_STEP_PIN 26
+#define E1_DIR_PIN 27
+#define E1_ENABLE_PIN 25
+
+//
+// Temperature Sensors
+//
+#if TEMP_SENSOR_0 == -1
+ #define TEMP_0_PIN 4 // Analog Input
+#else
+ #define TEMP_0_PIN 0 // Analog Input
+#endif
+
+#if TEMP_SENSOR_1 == -1
+ #define TEMP_1_PIN 5 // Analog Input
+#else
+ #define TEMP_1_PIN 2 // Analog Input
+#endif
+
+#define TEMP_2_PIN 3 // Analog Input
+
+#if TEMP_SENSOR_BED == -1
+ #define TEMP_BED_PIN 6 // Analog Input
+#else
+ #define TEMP_BED_PIN 1 // Analog Input
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 29
+#define HEATER_1_PIN 34
+#define HEATER_BED_PIN 28
+
+#ifndef FAN_PIN
+ #define FAN_PIN 39
+#endif
+#define FAN1_PIN 35
+#define FAN2_PIN 36
+
+#ifndef CONTROLLER_FAN_PIN
+ #define CONTROLLER_FAN_PIN FAN2_PIN
+#endif
+
+#define FAN_SOFT_PWM
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 2
+#endif
+
+//
+// LCD / Controller
+//
+#if ENABLED(MINIPANEL)
+
+ #define BEEPER_PIN 46
+ // Pins for DOGM SPI LCD Support
+ #define DOGLCD_A0 47
+ #define DOGLCD_CS 45
+ #define LCD_BACKLIGHT_PIN 44 // backlight LED on PA3
+
+ #define KILL_PIN 12
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ #define BTN_EN1 48
+ #define BTN_EN2 11
+ #define BTN_ENC 10
+
+ #define SD_DETECT_PIN 49
+
+#endif // MINIPANEL
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_PWM_PIN 6 // Hardware PWM
+#define SPINDLE_LASER_ENA_PIN 7 // Pullup!
+#define SPINDLE_DIR_PIN 8
diff --git a/Marlin/src/pins/mega/pins_MEGATRONICS.h b/Marlin/src/pins/mega/pins_MEGATRONICS.h
new file mode 100644
index 0000000..f813366
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_MEGATRONICS.h
@@ -0,0 +1,134 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MegaTronics pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Megatronics"
+//
+// Limit Switches
+//
+#define X_MIN_PIN 41
+#define X_MAX_PIN 37
+#define Y_MIN_PIN 14
+#define Y_MAX_PIN 15
+#define Z_MIN_PIN 18
+#define Z_MAX_PIN 19
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 19
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 26
+#define X_DIR_PIN 28
+#define X_ENABLE_PIN 24
+
+#define Y_STEP_PIN 60 // A6
+#define Y_DIR_PIN 61 // A7
+#define Y_ENABLE_PIN 22
+
+#define Z_STEP_PIN 54 // A0
+#define Z_DIR_PIN 55 // A1
+#define Z_ENABLE_PIN 56 // A2
+
+#define E0_STEP_PIN 31
+#define E0_DIR_PIN 32
+#define E0_ENABLE_PIN 38
+
+#define E1_STEP_PIN 34
+#define E1_DIR_PIN 36
+#define E1_ENABLE_PIN 30
+
+//
+// Temperature Sensors
+//
+#if TEMP_SENSOR_0 == -1
+ #define TEMP_0_PIN 8 // Analog Input
+#else
+ #define TEMP_0_PIN 13 // Analog Input
+#endif
+#define TEMP_1_PIN 15 // Analog Input
+#define TEMP_BED_PIN 14 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 9
+#define HEATER_1_PIN 8
+#define HEATER_BED_PIN 10
+
+#ifndef FAN_PIN
+ #define FAN_PIN 7 // IO pin. Buffer needed
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+#define PS_ON_PIN 12
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 2
+#endif
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN 33
+
+#if IS_ULTRA_LCD && IS_NEWPANEL
+
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 23
+ #define LCD_PINS_D5 25
+ #define LCD_PINS_D6 27
+ #define LCD_PINS_D7 29
+
+ // Buttons directly attached to AUX-2
+ #define BTN_EN1 59
+ #define BTN_EN2 64
+ #define BTN_ENC 43
+
+ #define SD_DETECT_PIN -1 // RAMPS doesn't use this
+
+#endif // IS_ULTRA_LCD && IS_NEWPANEL
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_PWM_PIN 3 // Hardware PWM
+#define SPINDLE_LASER_ENA_PIN 4 // Pullup!
+#define SPINDLE_DIR_PIN 11
diff --git a/Marlin/src/pins/mega/pins_MEGATRONICS_2.h b/Marlin/src/pins/mega/pins_MEGATRONICS_2.h
new file mode 100644
index 0000000..ef4605e
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_MEGATRONICS_2.h
@@ -0,0 +1,155 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MegaTronics v2.0 pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Megatronics v2.0"
+//
+// Limit Switches
+//
+#define X_MIN_PIN 37
+#define X_MAX_PIN 40
+#define Y_MIN_PIN 41
+#define Y_MAX_PIN 38
+#define Z_MIN_PIN 18
+#define Z_MAX_PIN 19
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 19
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 26
+#define X_DIR_PIN 27
+#define X_ENABLE_PIN 25
+
+#define Y_STEP_PIN 4 // A6
+#define Y_DIR_PIN 54 // A0
+#define Y_ENABLE_PIN 5
+
+#define Z_STEP_PIN 56 // A2
+#define Z_DIR_PIN 60 // A6
+#define Z_ENABLE_PIN 55 // A1
+
+#define E0_STEP_PIN 35
+#define E0_DIR_PIN 36
+#define E0_ENABLE_PIN 34
+
+#define E1_STEP_PIN 29
+#define E1_DIR_PIN 39
+#define E1_ENABLE_PIN 28
+
+#define E2_STEP_PIN 23 // ? schematic says 24
+#define E2_DIR_PIN 24 // ? schematic says 23
+#define E2_ENABLE_PIN 22
+
+//
+// Temperature Sensors
+//
+#if TEMP_SENSOR_0 == -1
+ #define TEMP_0_PIN 4 // Analog Input
+#else
+ #define TEMP_0_PIN 13 // Analog Input
+#endif
+
+#if TEMP_SENSOR_1 == -1
+ #define TEMP_1_PIN 8 // Analog Input
+#else
+ #define TEMP_1_PIN 15 // Analog Input
+#endif
+
+#if TEMP_SENSOR_BED == -1
+ #define TEMP_BED_PIN 8 // Analog Input
+#else
+ #define TEMP_BED_PIN 14 // Analog Input
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 9
+#define HEATER_1_PIN 8
+#define HEATER_BED_PIN 10
+
+#ifndef FAN_PIN
+ #define FAN_PIN 7
+#endif
+#define FAN1_PIN 6
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+#define PS_ON_PIN 12
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 2
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_PWM_PIN 3 // Hardware PWM
+#define SPINDLE_LASER_ENA_PIN 16 // Pullup!
+#define SPINDLE_DIR_PIN 11
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN 64
+
+#if HAS_WIRED_LCD
+
+ #define LCD_PINS_RS 14
+ #define LCD_PINS_ENABLE 15
+ #define LCD_PINS_D4 30
+ #define LCD_PINS_D5 31
+ #define LCD_PINS_D6 32
+ #define LCD_PINS_D7 33
+
+ #if IS_NEWPANEL
+ // Buttons are directly attached using keypad
+ #define BTN_EN1 61
+ #define BTN_EN2 59
+ #define BTN_ENC 43
+ #else
+ // Buttons attached to shift register of reprapworld keypad v1.1
+ #define SHIFT_CLK_PIN 63
+ #define SHIFT_LD_PIN 42
+ #define SHIFT_OUT_PIN 17
+ #define SHIFT_EN_PIN 17
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/mega/pins_MEGATRONICS_3.h b/Marlin/src/pins/mega/pins_MEGATRONICS_3.h
new file mode 100644
index 0000000..9f85d46
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_MEGATRONICS_3.h
@@ -0,0 +1,198 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MegaTronics v3.0 / v3.1 / v3.2 pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#if MB(MEGATRONICS_32)
+ #define BOARD_INFO_NAME "Megatronics v3.2"
+#elif MB(MEGATRONICS_31)
+ #define BOARD_INFO_NAME "Megatronics v3.1"
+#else
+ #define BOARD_INFO_NAME "Megatronics v3.0"
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN 46 // AUX3-6
+#define SERVO1_PIN 47 // AUX3-5
+#define SERVO2_PIN 48 // AUX3-4
+#define SERVO3_PIN 49 // AUX3-3
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 37 // No INT
+#define X_MAX_PIN 40 // No INT
+#define Y_MIN_PIN 41 // No INT
+#define Y_MAX_PIN 38 // No INT
+#define Z_MIN_PIN 18 // No INT
+#define Z_MAX_PIN 19 // No INT
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 19
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 58
+#define X_DIR_PIN 57
+#define X_ENABLE_PIN 59
+
+#define Y_STEP_PIN 5
+#define Y_DIR_PIN 17
+#define Y_ENABLE_PIN 4
+
+#define Z_STEP_PIN 16
+#define Z_DIR_PIN 11
+#define Z_ENABLE_PIN 3
+
+#define E0_STEP_PIN 28
+#define E0_DIR_PIN 27
+#define E0_ENABLE_PIN 29
+
+#define E1_STEP_PIN 25
+#define E1_DIR_PIN 24
+#define E1_ENABLE_PIN 26
+
+#define E2_STEP_PIN 22
+#define E2_DIR_PIN 60
+#define E2_ENABLE_PIN 23
+
+//
+// Temperature Sensors
+//
+#if TEMP_SENSOR_0 == -1
+ #define TEMP_0_PIN 11 // Analog Input
+#else
+ #define TEMP_0_PIN 15 // Analog Input
+#endif
+#if TEMP_SENSOR_1 == -1
+ #define TEMP_1_PIN 10 // Analog Input
+#else
+ #define TEMP_1_PIN 13 // Analog Input
+#endif
+#if TEMP_SENSOR_2 == -1
+ #define TEMP_2_PIN 9 // Analog Input
+#else
+ #define TEMP_2_PIN 12 // Analog Input
+#endif
+#if TEMP_SENSOR_BED == -1
+ #define TEMP_BED_PIN 8 // Analog Input
+#else
+ #define TEMP_BED_PIN 14 // Analog Input
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+#define HEATER_1_PIN 9
+#define HEATER_2_PIN 8
+#define HEATER_BED_PIN 10
+
+#ifndef FAN_PIN
+ #define FAN_PIN 6
+#endif
+#define FAN1_PIN 7
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+#define PS_ON_PIN 12
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 45 // Try the keypad connector
+#endif
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN 61
+
+#define BTN_EN1 44
+#define BTN_EN2 45
+#define BTN_ENC 33
+
+#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #define LCD_PINS_RS 56 // CS chip select / SS chip slave select
+ #define LCD_PINS_ENABLE 51 // SID (MOSI)
+ #define LCD_PINS_D4 52 // SCK (CLK) clock
+ #define SD_DETECT_PIN 35
+
+#else
+
+ #define LCD_PINS_RS 32
+ #define LCD_PINS_ENABLE 31
+ #define LCD_PINS_D4 14
+ #define LCD_PINS_D5 30
+ #define LCD_PINS_D6 39
+ #define LCD_PINS_D7 15
+
+ #define SHIFT_CLK_PIN 43
+ #define SHIFT_LD_PIN 35
+ #define SHIFT_OUT_PIN 34
+ #define SHIFT_EN_PIN 44
+
+ #if MB(MEGATRONICS_31, MEGATRONICS_32)
+ #define SD_DETECT_PIN 56
+ #endif
+
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if DISABLED(REPRAPWORLD_KEYPAD) // try to use the keypad connector first
+ #define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
+ #define SPINDLE_LASER_ENA_PIN 43 // Pullup!
+ #define SPINDLE_DIR_PIN 42
+#elif EXTRUDERS <= 2
+ // Hijack the last extruder so that we can get the PWM signal off the Y breakout
+ // Move Y to the E2 plug. This makes dual Y steppers harder
+ #undef Y_ENABLE_PIN // 4
+ #undef Y_STEP_PIN // 5
+ #undef Y_DIR_PIN // 17
+ #undef E2_ENABLE_PIN // 23
+ #undef E2_STEP_PIN // 22
+ #undef E2_DIR_PIN // 60
+ #define Y_ENABLE_PIN 23
+ #define Y_STEP_PIN 22
+ #define Y_DIR_PIN 60
+ #define SPINDLE_LASER_PWM_PIN 4 // Hardware PWM
+ #define SPINDLE_LASER_ENA_PIN 17 // Pullup!
+ #define SPINDLE_DIR_PIN 5
+#endif
diff --git a/Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h b/Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h
new file mode 100644
index 0000000..b260a27
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h
@@ -0,0 +1,304 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Mightyboard Rev.E pin assignments
+ * also works for Rev D boards. It's all rev E despite what the silk screen says
+ */
+
+/**
+ * Rev B 2 JAN 2017
+ *
+ * Added pin definitions for:
+ * M3, M4 & M5 spindle control commands
+ * case light
+ *
+ * Corrected pin assignment for EX2_HEAT_PIN pin. Changed it from 9 to 11. The port
+ * number (B5) agrees with the schematic but B5 is assigned to logical pin 11.
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Mega 1280' or 'Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Mightyboard"
+#define DEFAULT_MACHINE_NAME "MB Replicator"
+
+//
+// Servos
+//
+#define SERVO0_PIN 36 // C1 (1280-EX1)
+#define SERVO1_PIN 37 // C0 (1280-EX2)
+#define SERVO2_PIN 40 // G1 (1280-EX3)
+#define SERVO3_PIN 41 // G0 (1280-EX4)
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 49 // L0
+#define X_MAX_PIN 48 // L1
+#define Y_MIN_PIN 47 // L2
+#define Y_MAX_PIN 46 // L3
+#define Z_MIN_PIN 43 // L6
+#define Z_MAX_PIN 42 // L7
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 42
+#endif
+
+//
+// Filament Runout Pins
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 49
+#endif
+#ifndef FIL_RUNOUT2_PIN
+ #define FIL_RUNOUT2_PIN 47
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 55 // F1
+#define X_DIR_PIN 54 // F0
+#define X_ENABLE_PIN 56 // F2
+
+#define Y_STEP_PIN 59 // F5
+#define Y_DIR_PIN 58 // F4
+#define Y_ENABLE_PIN 60 // F6
+
+#define Z_STEP_PIN 63 // K1
+#define Z_DIR_PIN 62 // K0
+#define Z_ENABLE_PIN 64 // K2
+
+#define E0_STEP_PIN 25 // A3
+#define E0_DIR_PIN 24 // A2
+#define E0_ENABLE_PIN 26 // A4
+
+#define E1_STEP_PIN 29 // A7
+#define E1_DIR_PIN 28 // A6
+#define E1_ENABLE_PIN 39 // G2
+
+//
+// I2C Digipots - MCP4018
+// Address 5E (2F << 1)
+// Set from 0 - 127 with stop bit.
+// (Ex. 3F << 1 | 1)
+//
+#define DIGIPOTS_I2C_SCL 76 // J5
+#define DIGIPOTS_I2C_SDA_X 57 // F3
+#define DIGIPOTS_I2C_SDA_Y 61 // F7
+#define DIGIPOTS_I2C_SDA_Z 65 // K3
+#define DIGIPOTS_I2C_SDA_E0 27 // A5
+#define DIGIPOTS_I2C_SDA_E1 77 // J6
+
+#ifndef DIGIPOT_I2C_ADDRESS_A
+ #define DIGIPOT_I2C_ADDRESS_A 0x2F // unshifted slave address (5E <- 2F << 1)
+#endif
+#define DIGIPOT_ENABLE_I2C_PULLUPS // MightyBoard doesn't have hardware I2C pin pull-ups.
+
+//
+// Temperature Sensors
+//
+// K7 - 69 / ADC15 - 15
+#define TEMP_BED_PIN 15
+
+// SPI for Max6675 or Max31855 Thermocouple
+// Uses a separate SPI bus
+//
+// 3 E5 DO (SO)
+// 5 E3 CS1
+// 2 E4 CS2
+// 78 E2 SCK
+//
+#define THERMO_SCK_PIN 78 // E2
+#define THERMO_DO_PIN 3 // E5
+#define THERMO_CS1_PIN 5 // E3
+#define THERMO_CS2_PIN 2 // E4
+
+#define MAX6675_SS_PIN THERMO_CS1_PIN
+#define MAX6675_SS2_PIN THERMO_CS2_PIN
+#define MAX6675_SCK_PIN THERMO_SCK_PIN
+#define MAX6675_DO_PIN THERMO_DO_PIN
+
+//
+// Augmentation for auto-assigning plugs
+//
+// Two thermocouple connectors allows for either
+// 2 extruders or 1 extruder and a heated bed.
+// With no heated bed, an additional 24V fan is possible.
+//
+
+// Labels from the schematic:
+#define EX1_HEAT_PIN 6 // H3
+#define EX1_FAN_PIN 7 // H4
+#define EX2_HEAT_PIN 11 // B5
+#define EX2_FAN_PIN 12 // B6
+#define HBP_PIN 45 // L4
+#define EXTRA_FET_PIN 44 // L5
+
+#if HAS_MULTI_HOTEND
+ #if TEMP_SENSOR_BED
+ #define IS_EEB
+ #else
+ #define IS_EEF
+ #endif
+#elif TEMP_SENSOR_BED
+ #define IS_EFB
+#else
+ #define IS_EFF
+#endif
+
+//
+// Heaters / Fans (24V)
+//
+#define HEATER_0_PIN EX1_HEAT_PIN
+
+#if ENABLED(IS_EFB) // Hotend, Fan, Bed
+ #define HEATER_BED_PIN HBP_PIN
+#elif ENABLED(IS_EEF) // Hotend, Hotend, Fan
+ #define HEATER_1_PIN EX2_HEAT_PIN
+#elif ENABLED(IS_EEB) // Hotend, Hotend, Bed
+ #define HEATER_1_PIN EX2_HEAT_PIN
+ #define HEATER_BED_PIN HBP_PIN
+#elif ENABLED(IS_EFF) // Hotend, Fan, Fan
+ #define FAN1_PIN HBP_PIN
+#endif
+
+#ifndef FAN_PIN
+ #if EITHER(IS_EFB, IS_EFF) // Hotend, Fan, Bed or Hotend, Fan, Fan
+ #define FAN_PIN EX2_HEAT_PIN
+ #elif EITHER(IS_EEF, IS_SF) // Hotend, Hotend, Fan or Spindle, Fan
+ #define FAN_PIN HBP_PIN
+ #else
+ #define FAN_PIN EXTRA_FET_PIN
+ #endif
+#endif
+
+#ifndef CONTROLLER_FAN_PIN
+ #define CONTROLLER_FAN_PIN EX2_FAN_PIN
+#endif
+
+//
+// Misc. Functions
+//
+#define LED_PIN 13 // B7
+#define CUTOFF_RESET_PIN 16 // H1
+#define CUTOFF_TEST_PIN 17 // H0
+#define CUTOFF_SR_CHECK_PIN 70 // G4 (TOSC1)
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if IS_RRD_FG_SC
+
+ #define LCD_PINS_RS 33 // C4: LCD-STROBE
+ #define LCD_PINS_ENABLE 72 // J2: LEFT
+ #define LCD_PINS_D4 35 // C2: LCD-CLK
+ #define LCD_PINS_D5 32 // C5: RLED
+ #define LCD_PINS_D6 34 // C3: LCD-DATA
+ #define LCD_PINS_D7 31 // C6: GLED
+
+ #define BTN_EN2 75 // J4, UP
+ #define BTN_EN1 73 // J3, DOWN
+ //STOP button connected as KILL_PIN
+ #define KILL_PIN 14 // J1, RIGHT
+ //KILL - not connected
+
+ #define BEEPER_PIN 8 // H5, SD_WP
+
+ //on board leds
+ #define STAT_LED_RED_LED SERVO0_PIN // C1 (1280-EX1, DEBUG2)
+ #define STAT_LED_BLUE_PIN SERVO1_PIN // C0 (1280-EX2, DEBUG3)
+
+ #else
+ // Replicator uses a 3-wire SR controller with HD44780
+ #define SR_DATA_PIN 34 // C3
+ #define SR_CLK_PIN 35 // C2
+ #define SR_STROBE_PIN 33 // C4
+
+ #define BTN_UP 75 // J4
+ #define BTN_DWN 73 // J3
+ #define BTN_LFT 72 // J2
+ #define BTN_RT 14 // J1
+
+ // Disable encoder
+ #undef BTN_EN1
+ #undef BTN_EN2
+
+ #define BEEPER_PIN 4 // G5
+
+ #define STAT_LED_RED_PIN 32 // C5
+ #define STAT_LED_BLUE_PIN 31 // C6 (Actually green)
+
+ #endif
+
+ #define BTN_CENTER 15 // J0
+ #define BTN_ENC BTN_CENTER
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Card
+//
+#define SDSS 53 // B0
+#define SD_DETECT_PIN 9 // H6
+
+//
+// TMC 220x
+//
+#if HAS_TMC_UART
+ /**
+ * TMC220x stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ #define X_HARDWARE_SERIAL Serial2
+ #define Y_HARDWARE_SERIAL Serial1
+
+ /**
+ * Software serial
+ */
+
+ #define X_SERIAL_TX_PIN 16
+ #define X_SERIAL_RX_PIN 17
+
+ #define Y_SERIAL_TX_PIN 18
+ #define Y_SERIAL_RX_PIN 19
+
+ #define Z_SERIAL_TX_PIN 41
+ #define Z_SERIAL_RX_PIN 66
+
+ #define E0_SERIAL_TX_PIN 40
+ #define E0_SERIAL_RX_PIN 67
+
+ #define E1_SERIAL_TX_PIN 37
+ #define E1_SERIAL_RX_PIN 68
+
+#endif
diff --git a/Marlin/src/pins/mega/pins_MINITRONICS.h b/Marlin/src/pins/mega/pins_MINITRONICS.h
new file mode 100644
index 0000000..bbe7464
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_MINITRONICS.h
@@ -0,0 +1,142 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Minitronics v1.0/1.1 pin assignments
+ */
+
+/**
+ * Rev B 2 JAN 2017
+ *
+ * Added pin definitions for M3, M4 & M5 spindle control commands
+ */
+
+#if NOT_TARGET(__AVR_ATmega1281__)
+ #error "Oops! Select 'Minitronics' in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "Minitronics supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Minitronics v1.0/1.1"
+//
+// Limit Switches
+//
+#define X_MIN_PIN 5
+#define X_MAX_PIN 2
+#define Y_MIN_PIN 2
+#define Y_MAX_PIN 15
+#define Z_MIN_PIN 6
+#define Z_MAX_PIN -1
+
+//
+// Steppers
+//
+#define X_STEP_PIN 48
+#define X_DIR_PIN 47
+#define X_ENABLE_PIN 49
+
+#define Y_STEP_PIN 39 // A6
+#define Y_DIR_PIN 40 // A0
+#define Y_ENABLE_PIN 38
+
+#define Z_STEP_PIN 42 // A2
+#define Z_DIR_PIN 43 // A6
+#define Z_ENABLE_PIN 41 // A1
+
+#define E0_STEP_PIN 45
+#define E0_DIR_PIN 44
+#define E0_ENABLE_PIN 27
+
+#define E1_STEP_PIN 36
+#define E1_DIR_PIN 35
+#define E1_ENABLE_PIN 37
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 7 // Analog Input
+#define TEMP_1_PIN 6 // Analog Input
+#define TEMP_BED_PIN 6 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 7 // EXTRUDER 1
+#define HEATER_1_PIN 8 // EXTRUDER 2
+#define HEATER_BED_PIN 3 // BED
+
+#ifndef FAN_PIN
+ #define FAN_PIN 9
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 16
+#define LED_PIN 46
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN -1
+
+#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #define LCD_PINS_RS 15 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE 11 // SID (MOSI)
+ #define LCD_PINS_D4 10 // SCK (CLK) clock
+
+ #define BTN_EN1 18
+ #define BTN_EN2 17
+ #define BTN_ENC 25
+
+ #define SD_DETECT_PIN 30
+
+#else
+
+ #define LCD_PINS_RS -1
+ #define LCD_PINS_ENABLE -1
+
+ // Buttons are directly attached using keypad
+ #define BTN_EN1 -1
+ #define BTN_EN2 -1
+ #define BTN_ENC -1
+
+ #define SD_DETECT_PIN -1 // Minitronics doesn't use this
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER // assumes we're only doing CNC work (no 3D printing)
+ #undef HEATER_BED_PIN
+ #undef TEMP_BED_PIN // need to free up some pins but also need to
+ #undef TEMP_0_PIN // re-assign them (to unused pins) because Marlin
+ #undef TEMP_1_PIN // requires the presence of certain pins or else it
+ #define HEATER_BED_PIN 4 // won't compile
+ #define TEMP_BED_PIN 50
+ #define TEMP_0_PIN 51
+ #define SPINDLE_LASER_ENA_PIN 52 // using A6 because it already has a pullup
+ #define SPINDLE_LASER_PWM_PIN 3 // WARNING - LED & resistor pull up to +12/+24V stepper voltage
+ #define SPINDLE_DIR_PIN 53
+#endif
diff --git a/Marlin/src/pins/mega/pins_OVERLORD.h b/Marlin/src/pins/mega/pins_OVERLORD.h
new file mode 100644
index 0000000..18bb1f2
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_OVERLORD.h
@@ -0,0 +1,144 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Dreammaker Overlord v1.1 pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "Overlord Controller supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "OVERLORD"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 24
+#define Y_STOP_PIN 28
+#define Z_MIN_PIN 46
+#define Z_MAX_PIN 32
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 46 // JP4, Tfeed1
+#endif
+
+#if ENABLED(FILAMENT_RUNOUT_SENSOR)
+ #define FIL_RUNOUT_PIN 44 // JP3, Tfeed2
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 25
+#define X_DIR_PIN 23
+#define X_ENABLE_PIN 27
+
+#define Y_STEP_PIN 31
+#define Y_DIR_PIN 33
+#define Y_ENABLE_PIN 29
+
+#define Z_STEP_PIN 37
+#define Z_DIR_PIN 39
+#define Z_ENABLE_PIN 35
+
+#define E0_STEP_PIN 43
+#define E0_DIR_PIN 45
+#define E0_ENABLE_PIN 41
+
+#define E1_STEP_PIN 49
+#define E1_DIR_PIN 47
+#define E1_ENABLE_PIN 48
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 8 // Analog Input
+#define TEMP_1_PIN 9 // Analog Input - Redundant temp sensor
+#define TEMP_2_PIN 12 // Analog Input
+#define TEMP_3_PIN 14 // Analog Input
+#define TEMP_BED_PIN 10 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+#define HEATER_1_PIN 3
+#define HEATER_BED_PIN 4
+
+#define FAN_PIN 7 // material cooling fan
+
+//
+// SD Card
+//
+#define SDSS 53
+#define SD_DETECT_PIN 38
+
+//
+// Misc. Functions
+//
+#define LED_PIN 13 // On PCB status led
+#define PS_ON_PIN 12 // For stepper/heater/fan power. Active HIGH.
+#define POWER_LOSS_PIN 34 // Power check - whether hotends/steppers/fans have power
+
+#if ENABLED(BATTERY_STATUS_AVAILABLE)
+ #undef BATTERY_STATUS_PIN
+ #define BATTERY_STATUS_PIN 26 // Status of power loss battery, whether it is charged (low) or charging (high)
+#endif
+#if ENABLED(INPUT_VOLTAGE_AVAILABLE)
+ #undef VOLTAGE_DETECTION_PIN
+ #define VOLTAGE_DETECTION_PIN 11 // Analog Input - ADC Voltage level of main input
+#endif
+
+//
+// LCD / Controller
+//
+#if HAS_MARLINUI_U8GLIB
+ // OVERLORD OLED pins
+ #define LCD_PINS_RS 20
+ #define LCD_PINS_D5 21
+ #define LCD_PINS_ENABLE 15
+ #define LCD_PINS_D4 14
+ #define LCD_PINS_D6 5
+ #define LCD_PINS_D7 6
+ #ifndef LCD_RESET_PIN
+ #define LCD_RESET_PIN 5 // LCD_PINS_D6
+ #endif
+#endif
+
+#if IS_NEWPANEL
+ #define BTN_ENC 16 // Enter Pin
+ #define BTN_UP 19 // Button UP Pin
+ #define BTN_DWN 17 // Button DOWN Pin
+#endif
+
+// Additional connectors/pins on the Overlord V1.X board
+#define PCB_VERSION_PIN 22
+#define APPROACH_PIN 11 // JP7, Tpd
+#define GATE_PIN 36 // Threshold, JP6, Tg
diff --git a/Marlin/src/pins/mega/pins_PICA.h b/Marlin/src/pins/mega/pins_PICA.h
new file mode 100644
index 0000000..ff4d3e8
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_PICA.h
@@ -0,0 +1,153 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Arduino Mega with PICA pin assignments
+ *
+ * PICA is Power, Interface, and Control Adapter and is open source hardware.
+ * See https://github.com/mjrice/PICA for schematics etc.
+ *
+ * Applies to PICA, PICA_REVB
+ */
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "PICA"
+#endif
+
+/*
+// Note that these are the "pins" that correspond to the analog inputs on the arduino mega.
+// These are not the same as the physical pin numbers
+ AD0 = 54; AD1 = 55; AD2 = 56; AD3 = 57;
+ AD4 = 58; AD5 = 59; AD6 = 60; AD7 = 61;
+ AD8 = 62; AD9 = 63; AD10 = 64; AD11 = 65;
+ AD12 = 66; AD13 = 67; AD14 = 68; AD15 = 69;
+*/
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN 3
+#define SERVO1_PIN 4
+#define SERVO2_PIN 5
+//
+// Limit Switches
+//
+#define X_MIN_PIN 14
+#define X_MAX_PIN 15
+#define Y_MIN_PIN 16
+#define Y_MAX_PIN 17
+#define Z_MIN_PIN 23
+#define Z_MAX_PIN 22
+
+//
+// Steppers
+//
+#define X_STEP_PIN 55
+#define X_DIR_PIN 54
+#define X_ENABLE_PIN 60
+
+#define Y_STEP_PIN 57
+#define Y_DIR_PIN 56
+#define Y_ENABLE_PIN 61
+
+#define Z_STEP_PIN 59
+#define Z_DIR_PIN 58
+#define Z_ENABLE_PIN 62
+
+#define E0_STEP_PIN 67
+#define E0_DIR_PIN 24
+#define E0_ENABLE_PIN 26
+
+#define E1_STEP_PIN 68
+#define E1_DIR_PIN 28
+#define E1_ENABLE_PIN 27
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 9 // Analog Input
+#define TEMP_1_PIN 10
+#define TEMP_BED_PIN 10
+#define TEMP_2_PIN 11
+#define TEMP_3_PIN 12
+
+//
+// Heaters / Fans
+//
+#ifndef HEATER_0_PIN
+ #define HEATER_0_PIN 10 // E0
+#endif
+#ifndef HEATER_1_PIN
+ #define HEATER_1_PIN 2 // E1
+#endif
+#define HEATER_BED_PIN 8 // HEAT-BED
+
+#ifndef FAN_PIN
+ #define FAN_PIN 9
+#endif
+#ifndef FAN_2_PIN
+ #define FAN_2_PIN 7
+#endif
+
+#define SDPOWER_PIN -1
+#define LED_PIN -1
+#define PS_ON_PIN -1
+#define KILL_PIN -1
+
+#define SSR_PIN 6
+
+// SPI for Max6675 or Max31855 Thermocouple
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 66 // Don't use 53 if using Display/SD card
+#else
+ #define MAX6675_SS_PIN 66 // Don't use 49 (SD_DETECT_PIN)
+#endif
+
+//
+// SD Support
+//
+#define SD_DETECT_PIN 49
+#define SDSS 53
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN 29
+
+#if HAS_WIRED_LCD
+ #define LCD_PINS_RS 33
+ #define LCD_PINS_ENABLE 30
+ #define LCD_PINS_D4 35
+ #define LCD_PINS_D5 32
+ #define LCD_PINS_D6 37
+ #define LCD_PINS_D7 36
+
+ #define BTN_EN1 47
+ #define BTN_EN2 48
+ #define BTN_ENC 31
+
+ #define LCD_SDSS 53
+#endif
diff --git a/Marlin/src/pins/mega/pins_PICAOLD.h b/Marlin/src/pins/mega/pins_PICAOLD.h
new file mode 100644
index 0000000..f53a4cd
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_PICAOLD.h
@@ -0,0 +1,28 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+#define HEATER_0_PIN 9 // E0
+#define HEATER_1_PIN 10 // E1
+#define FAN_PIN 11
+#define FAN2_PIN 12
+
+#include "pins_PICA.h"
diff --git a/Marlin/src/pins/mega/pins_SILVER_GATE.h b/Marlin/src/pins/mega/pins_SILVER_GATE.h
new file mode 100644
index 0000000..41cbe5e
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_SILVER_GATE.h
@@ -0,0 +1,99 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__AVR_ATmega1281__, __AVR_ATmega2561__)
+ #error "Oops! Select 'Silvergate' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Silver Gate"
+
+#define X_STEP_PIN 43
+#define X_DIR_PIN 44
+#define X_ENABLE_PIN 42
+#define X_MIN_PIN 31
+#define X_MAX_PIN 34
+
+#define Y_STEP_PIN 40
+#define Y_DIR_PIN 41
+#define Y_ENABLE_PIN 39
+#define Y_MIN_PIN 32
+#define Y_MAX_PIN 35
+
+#define Z_STEP_PIN 13
+#define Z_DIR_PIN 38
+#define Z_ENABLE_PIN 14
+#define Z_MIN_PIN 33
+#define Z_MAX_PIN 36
+
+#define E0_STEP_PIN 27
+#define E0_DIR_PIN 37
+#define E0_ENABLE_PIN 45
+
+#define SDSS 16
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 34 // X_MAX unless overridden
+#endif
+
+#ifndef FAN_PIN
+ #define FAN_PIN 5
+#endif
+
+#define HEATER_0_PIN 7
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN 3
+#endif
+
+#define CONTROLLER_FAN_PIN 2
+
+#define TEMP_0_PIN 7 // Analog Input
+
+#define HEATER_BED_PIN 8
+#define TEMP_BED_PIN 6
+
+#if HAS_MARLINUI_U8GLIB
+ #if ENABLED(U8GLIB_ST7920) // SPI GLCD 12864 ST7920
+ #define LCD_PINS_RS 30
+ #define LCD_PINS_ENABLE 20
+ #define LCD_PINS_D4 25
+ #define BEEPER_PIN 29
+ #define BTN_EN1 19
+ #define BTN_EN2 22
+ #define BTN_ENC 24
+ #define LCD_BACKLIGHT_PIN 6
+ #if ENABLED(SILVER_GATE_GLCD_CONTROLLER)
+ #define KILL_PIN 21
+ #define HOME_PIN 28
+ #endif
+ #endif
+#endif
+
+#define SD_DETECT_PIN 15
+
+#define STAT_LED_RED_PIN 23
+#define STAT_LED_BLUE_PIN 26
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 51
+#endif
diff --git a/Marlin/src/pins/mega/pins_WANHAO_ONEPLUS.h b/Marlin/src/pins/mega/pins_WANHAO_ONEPLUS.h
new file mode 100644
index 0000000..715e823
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_WANHAO_ONEPLUS.h
@@ -0,0 +1,111 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Wanhao 0ne+ pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Wanhao i3 Mini 0ne+"
+#define DEFAULT_MACHINE_NAME "i3 Mini"
+#define BOARD_WEBSITE_URL "tinyurl.com/yyxw7se7"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 19
+#define Y_STOP_PIN 18
+#define Z_STOP_PIN 38
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 38
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 22
+#define X_DIR_PIN 23
+#define X_ENABLE_PIN 57
+
+#define Y_STEP_PIN 25
+#define Y_DIR_PIN 26
+#define Y_ENABLE_PIN 24
+
+#define Z_STEP_PIN 29
+#define Z_DIR_PIN 39
+#define Z_ENABLE_PIN 28
+
+#define E0_STEP_PIN 55
+#define E0_DIR_PIN 56
+#define E0_ENABLE_PIN 54
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 13
+#define TEMP_BED_PIN 14
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 4
+#define HEATER_BED_PIN 44
+#define FAN_PIN 12 // IO pin. Buffer needed
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN 83
+#define SDSS 53
+
+//
+// Misc. Functions
+//
+#define BEEPER_PIN 37
+#define KILL_PIN 64
+
+//
+// LCD / Controller (Integrated MINIPANEL)
+//
+#if ENABLED(MINIPANEL)
+ #define DOGLCD_A0 40
+ #define DOGLCD_CS 41
+ #define LCD_BACKLIGHT_PIN 65 // Backlight LED on A11/D65
+ #define LCD_RESET_PIN 27
+
+ #define BTN_EN1 2
+ #define BTN_EN2 3
+ #define BTN_ENC 5
+
+ // This display has adjustable contrast
+ #define LCD_CONTRAST_MIN 0
+ #define LCD_CONTRAST_MAX 255
+ #define LCD_CONTRAST_INIT LCD_CONTRAST_MAX
+#endif
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
new file mode 100644
index 0000000..737c886
--- /dev/null
+++ b/Marlin/src/pins/pins.h
@@ -0,0 +1,768 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * File: pins/pins.h
+ *
+ * Include pins definitions
+ *
+ * Pins numbering schemes:
+ *
+ * - Digital I/O pin number if used by READ/WRITE macros. (e.g., X_STEP_DIR)
+ * The FastIO headers map digital pins to their ports and functions.
+ *
+ * - Analog Input number if used by analogRead or DAC. (e.g., TEMP_n_PIN)
+ * These numbers are the same in any pin mapping.
+ */
+
+#if HAS_SMUFF
+ #define MAX_EXTRUDERS 12
+#else
+ #define MAX_EXTRUDERS 8
+#endif
+#define MAX_E_STEPPERS 8
+
+#if MB(RAMPS_13_EFB, RAMPS_14_EFB, RAMPS_PLUS_EFB, RAMPS_14_RE_ARM_EFB, RAMPS_SMART_EFB, RAMPS_DUO_EFB, RAMPS4DUE_EFB)
+ #define IS_RAMPS_EFB
+#elif MB(RAMPS_13_EEB, RAMPS_14_EEB, RAMPS_PLUS_EEB, RAMPS_14_RE_ARM_EEB, RAMPS_SMART_EEB, RAMPS_DUO_EEB, RAMPS4DUE_EEB)
+ #define IS_RAMPS_EEB
+#elif MB(RAMPS_13_EFF, RAMPS_14_EFF, RAMPS_PLUS_EFF, RAMPS_14_RE_ARM_EFF, RAMPS_SMART_EFF, RAMPS_DUO_EFF, RAMPS4DUE_EFF)
+ #define IS_RAMPS_EFF
+#elif MB(RAMPS_13_EEF, RAMPS_14_EEF, RAMPS_PLUS_EEF, RAMPS_14_RE_ARM_EEF, RAMPS_SMART_EEF, RAMPS_DUO_EEF, RAMPS4DUE_EEF)
+ #define IS_RAMPS_EEF
+#elif MB(RAMPS_13_SF, RAMPS_14_SF, RAMPS_PLUS_SF, RAMPS_14_RE_ARM_SF, RAMPS_SMART_SF, RAMPS_DUO_SF, RAMPS4DUE_SF)
+ #define IS_RAMPS_SF
+#endif
+
+#if !(BOTH(IS_ULTRA_LCD, IS_NEWPANEL) && ANY(PANEL_ONE, VIKI2, miniVIKI, MINIPANEL, REPRAPWORLD_KEYPAD))
+ #define HAS_FREE_AUX2_PINS 1
+#endif
+
+// Test the target within the included pins file
+#ifdef __MARLIN_DEPS__
+ #define NOT_TARGET(V...) 0
+#else
+ #define NOT_TARGET(V...) NONE(V)
+#endif
+
+//
+// RAMPS 1.3 / 1.4 - ATmega1280, ATmega2560
+//
+
+#if MB(RAMPS_OLD)
+ #include "ramps/pins_RAMPS_OLD.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(RAMPS_13_EFB, RAMPS_13_EEB, RAMPS_13_EFF, RAMPS_13_EEF, RAMPS_13_SF)
+ #include "ramps/pins_RAMPS_13.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(RAMPS_14_EFB, RAMPS_14_EEB, RAMPS_14_EFF, RAMPS_14_EEF, RAMPS_14_SF)
+ #include "ramps/pins_RAMPS.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(RAMPS_PLUS_EFB, RAMPS_PLUS_EEB, RAMPS_PLUS_EFF, RAMPS_PLUS_EEF, RAMPS_PLUS_SF)
+ #include "ramps/pins_RAMPS_PLUS.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+
+//
+// RAMPS Derivatives - ATmega1280, ATmega2560
+//
+
+#elif MB(3DRAG)
+ #include "ramps/pins_3DRAG.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(K8200)
+ #include "ramps/pins_K8200.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(K8400)
+ #include "ramps/pins_K8400.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(K8600)
+ #include "ramps/pins_K8600.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(K8800)
+ #include "ramps/pins_K8800.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(BAM_DICE)
+ #include "ramps/pins_RAMPS.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(BAM_DICE_DUE)
+ #include "ramps/pins_BAM_DICE_DUE.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(MKS_BASE)
+ #include "ramps/pins_MKS_BASE_10.h" // ATmega2560 env:mega2560
+#elif MB(MKS_BASE_14)
+ #include "ramps/pins_MKS_BASE_14.h" // ATmega2560 env:mega2560
+#elif MB(MKS_BASE_15)
+ #include "ramps/pins_MKS_BASE_15.h" // ATmega2560 env:mega2560
+#elif MB(MKS_BASE_16)
+ #include "ramps/pins_MKS_BASE_16.h" // ATmega2560 env:mega2560
+#elif MB(MKS_BASE_HEROIC)
+ #include "ramps/pins_MKS_BASE_HEROIC.h" // ATmega2560 env:mega2560
+#elif MB(MKS_GEN_13)
+ #include "ramps/pins_MKS_GEN_13.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(MKS_GEN_L)
+ #include "ramps/pins_MKS_GEN_L.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(KFB_2)
+ #include "ramps/pins_BIQU_KFB_2.h" // ATmega2560 env:mega2560
+#elif MB(ZRIB_V20)
+ #include "ramps/pins_ZRIB_V20.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(ZRIB_V52)
+ #include "ramps/pins_ZRIB_V52.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(FELIX2)
+ #include "ramps/pins_FELIX2.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(RIGIDBOARD)
+ #include "ramps/pins_RIGIDBOARD.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(RIGIDBOARD_V2)
+ #include "ramps/pins_RIGIDBOARD_V2.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(SAINSMART_2IN1)
+ #include "ramps/pins_SAINSMART_2IN1.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(ULTIMAKER)
+ #include "ramps/pins_ULTIMAKER.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(ULTIMAKER_OLD)
+ #include "ramps/pins_ULTIMAKER_OLD.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(AZTEEG_X3)
+ #include "ramps/pins_AZTEEG_X3.h" // ATmega2560 env:mega2560
+#elif MB(AZTEEG_X3_PRO)
+ #include "ramps/pins_AZTEEG_X3_PRO.h" // ATmega2560 env:mega2560
+#elif MB(ULTIMAIN_2)
+ #include "ramps/pins_ULTIMAIN_2.h" // ATmega2560 env:mega2560ext
+#elif MB(FORMBOT_RAPTOR)
+ #include "ramps/pins_FORMBOT_RAPTOR.h" // ATmega2560 env:mega2560
+#elif MB(FORMBOT_RAPTOR2)
+ #include "ramps/pins_FORMBOT_RAPTOR2.h" // ATmega2560 env:mega2560
+#elif MB(FORMBOT_TREX2PLUS)
+ #include "ramps/pins_FORMBOT_TREX2PLUS.h" // ATmega2560 env:mega2560
+#elif MB(FORMBOT_TREX3)
+ #include "ramps/pins_FORMBOT_TREX3.h" // ATmega2560 env:mega2560
+#elif MB(RUMBA)
+ #include "ramps/pins_RUMBA.h" // ATmega2560 env:mega2560
+#elif MB(RUMBA_RAISE3D)
+ #include "ramps/pins_RUMBA_RAISE3D.h" // ATmega2560 env:mega2560
+#elif MB(RL200)
+ #include "ramps/pins_RL200.h" // ATmega2560 env:mega2560
+#elif MB(BQ_ZUM_MEGA_3D)
+ #include "ramps/pins_BQ_ZUM_MEGA_3D.h" // ATmega2560 env:mega2560ext
+#elif MB(MAKEBOARD_MINI)
+ #include "ramps/pins_MAKEBOARD_MINI.h" // ATmega2560 env:mega2560
+#elif MB(TRIGORILLA_13)
+ #include "ramps/pins_TRIGORILLA_13.h" // ATmega2560 env:mega2560
+#elif MB(TRIGORILLA_14, TRIGORILLA_14_11)
+ #include "ramps/pins_TRIGORILLA_14.h" // ATmega2560 env:mega2560
+#elif MB(RAMPS_ENDER_4)
+ #include "ramps/pins_RAMPS_ENDER_4.h" // ATmega2560 env:mega2560
+#elif MB(RAMPS_CREALITY)
+ #include "ramps/pins_RAMPS_CREALITY.h" // ATmega2560 env:mega2560
+#elif MB(DAGOMA_F5)
+ #include "ramps/pins_DAGOMA_F5.h" // ATmega2560 env:mega2560
+#elif MB(FYSETC_F6_13)
+ #include "ramps/pins_FYSETC_F6_13.h" // ATmega2560 env:FYSETC_F6
+#elif MB(FYSETC_F6_14)
+ #include "ramps/pins_FYSETC_F6_14.h" // ATmega2560 env:FYSETC_F6
+#elif MB(DUPLICATOR_I3_PLUS)
+ #include "ramps/pins_DUPLICATOR_I3_PLUS.h" // ATmega2560 env:mega2560
+#elif MB(VORON)
+ #include "ramps/pins_VORON.h" // ATmega2560 env:mega2560
+#elif MB(TRONXY_V3_1_0)
+ #include "ramps/pins_TRONXY_V3_1_0.h" // ATmega2560 env:mega2560
+#elif MB(Z_BOLT_X_SERIES)
+ #include "ramps/pins_Z_BOLT_X_SERIES.h" // ATmega2560 env:mega2560
+#elif MB(TT_OSCAR)
+ #include "ramps/pins_TT_OSCAR.h" // ATmega2560 env:mega2560
+#elif MB(TANGO)
+ #include "ramps/pins_TANGO.h" // ATmega2560 env:mega2560
+#elif MB(MKS_GEN_L_V2)
+ #include "ramps/pins_MKS_GEN_L_V2.h" // ATmega2560 env:mega2560
+#elif MB(COPYMASTER_3D)
+ #include "ramps/pins_COPYMASTER_3D.h" // ATmega2560 env:mega2560
+#elif MB(ORTUR_4)
+ #include "ramps/pins_ORTUR_4.h" // ATmega2560 env:mega2560
+#elif MB(TENLOG_D3_HERO)
+ #include "ramps/pins_TENLOG_D3_HERO.h" // ATmega2560 env:mega2560
+#elif MB(MKS_GEN_L_V21)
+ #include "ramps/pins_MKS_GEN_L_V21.h" // ATmega2560 env:mega2560
+#elif MB(RAMPS_S_12_EEFB, RAMPS_S_12_EEEB, RAMPS_S_12_EFFB)
+ #include "ramps/pins_RAMPS_S_12.h" // ATmega2560 env:mega2560
+#elif MB(LONGER3D_LK1_PRO, LONGER3D_LKx_PRO)
+ #include "ramps/pins_LONGER3D_LKx_PRO.h" // ATmega2560 env:mega2560
+
+//
+// RAMBo and derivatives
+//
+
+#elif MB(RAMBO)
+ #include "rambo/pins_RAMBO.h" // ATmega2560 env:rambo
+#elif MB(MINIRAMBO, MINIRAMBO_10A)
+ #include "rambo/pins_MINIRAMBO.h" // ATmega2560 env:rambo
+#elif MB(EINSY_RAMBO)
+ #include "rambo/pins_EINSY_RAMBO.h" // ATmega2560 env:rambo
+#elif MB(EINSY_RETRO)
+ #include "rambo/pins_EINSY_RETRO.h" // ATmega2560 env:rambo
+#elif MB(SCOOVO_X9H)
+ #include "rambo/pins_SCOOVO_X9H.h" // ATmega2560 env:rambo
+
+//
+// Other ATmega1280, ATmega2560
+//
+
+#elif MB(CNCONTROLS_11)
+ #include "mega/pins_CNCONTROLS_11.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(CNCONTROLS_12)
+ #include "mega/pins_CNCONTROLS_12.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(CNCONTROLS_15)
+ #include "mega/pins_CNCONTROLS_15.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(MIGHTYBOARD_REVE)
+ #include "mega/pins_MIGHTYBOARD_REVE.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560ext
+#elif MB(CHEAPTRONIC)
+ #include "mega/pins_CHEAPTRONIC.h" // ATmega2560 env:mega2560
+#elif MB(CHEAPTRONIC_V2)
+ #include "mega/pins_CHEAPTRONICv2.h" // ATmega2560 env:mega2560
+#elif MB(MEGATRONICS)
+ #include "mega/pins_MEGATRONICS.h" // ATmega2560 env:mega2560
+#elif MB(MEGATRONICS_2)
+ #include "mega/pins_MEGATRONICS_2.h" // ATmega2560 env:mega2560
+#elif MB(MEGATRONICS_3, MEGATRONICS_31, MEGATRONICS_32)
+ #include "mega/pins_MEGATRONICS_3.h" // ATmega2560 env:mega2560
+#elif MB(ELEFU_3)
+ #include "mega/pins_ELEFU_3.h" // ATmega2560 env:mega2560
+#elif MB(LEAPFROG)
+ #include "mega/pins_LEAPFROG.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(MEGACONTROLLER)
+ #include "mega/pins_MEGACONTROLLER.h" // ATmega2560 env:mega2560
+#elif MB(GT2560_REV_A)
+ #include "mega/pins_GT2560_REV_A.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(GT2560_REV_A_PLUS)
+ #include "mega/pins_GT2560_REV_A_PLUS.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560
+#elif MB(GT2560_V3)
+ #include "mega/pins_GT2560_V3.h" // ATmega2560 env:mega2560
+#elif MB(GT2560_V3_MC2)
+ #include "mega/pins_GT2560_V3_MC2.h" // ATmega2560 env:mega2560
+#elif MB(GT2560_V3_A20)
+ #include "mega/pins_GT2560_V3_A20.h" // ATmega2560 env:mega2560
+#elif MB(EINSTART_S)
+ #include "mega/pins_EINSTART-S.h" // ATmega1280, ATmega2560 env:mega1280 env:mega2560ext
+#elif MB(WANHAO_ONEPLUS)
+ #include "mega/pins_WANHAO_ONEPLUS.h" // ATmega2560 env:mega2560
+#elif MB(OVERLORD)
+ #include "mega/pins_OVERLORD.h" // ATmega2560 env:mega2560
+#elif MB(HJC2560C_REV2)
+ #include "mega/pins_HJC2560C_REV2.h" // ATmega2560 env:mega2560
+#elif MB(LEAPFROG_XEED2015)
+ #include "mega/pins_LEAPFROG_XEED2015.h" // ATmega2560 env:mega2560
+#elif MB(PICA)
+ #include "mega/pins_PICA.h" // ATmega2560 env:mega2560
+#elif MB(PICA_REVB)
+ #include "mega/pins_PICAOLD.h" // ATmega2560 env:mega2560
+#elif MB(INTAMSYS40)
+ #include "mega/pins_INTAMSYS40.h" // ATmega2560 env:mega2560
+
+//
+// ATmega1281, ATmega2561
+//
+
+#elif MB(MINITRONICS)
+ #include "mega/pins_MINITRONICS.h" // ATmega1281 env:mega1280
+#elif MB(SILVER_GATE)
+ #include "mega/pins_SILVER_GATE.h" // ATmega2561 env:mega2560
+
+//
+// Sanguinololu and Derivatives - ATmega644P, ATmega1284P
+//
+
+#elif MB(SANGUINOLOLU_11)
+ #include "sanguino/pins_SANGUINOLOLU_11.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(SANGUINOLOLU_12)
+ #include "sanguino/pins_SANGUINOLOLU_12.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(MELZI)
+ #include "sanguino/pins_MELZI.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(MELZI_V2)
+ #include "sanguino/pins_MELZI_V2.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(MELZI_MAKR3D)
+ #include "sanguino/pins_MELZI_MAKR3D.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(MELZI_CREALITY)
+ #include "sanguino/pins_MELZI_CREALITY.h" // ATmega1284P env:melzi env:melzi_optimized env:melzi_optiboot env:melzi_optiboot_optimized
+#elif MB(MELZI_MALYAN)
+ #include "sanguino/pins_MELZI_MALYAN.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(MELZI_TRONXY)
+ #include "sanguino/pins_MELZI_TRONXY.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(STB_11)
+ #include "sanguino/pins_STB_11.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(AZTEEG_X1)
+ #include "sanguino/pins_AZTEEG_X1.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(ZMIB_V2)
+ #include "sanguino/pins_ZMIB_V2.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+
+//
+// Other ATmega644P, ATmega644, ATmega1284P
+//
+
+#elif MB(GEN3_MONOLITHIC)
+ #include "sanguino/pins_GEN3_MONOLITHIC.h" // ATmega644P env:sanguino644p
+#elif MB(GEN3_PLUS)
+ #include "sanguino/pins_GEN3_PLUS.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(GEN6)
+ #include "sanguino/pins_GEN6.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(GEN6_DELUXE)
+ #include "sanguino/pins_GEN6_DELUXE.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(GEN7_CUSTOM)
+ #include "sanguino/pins_GEN7_CUSTOM.h" // ATmega644P, ATmega644, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(GEN7_12)
+ #include "sanguino/pins_GEN7_12.h" // ATmega644P, ATmega644, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(GEN7_13)
+ #include "sanguino/pins_GEN7_13.h" // ATmega644P, ATmega644, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(GEN7_14)
+ #include "sanguino/pins_GEN7_14.h" // ATmega644P, ATmega644, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(OMCA_A)
+ #include "sanguino/pins_OMCA_A.h" // ATmega644 env:sanguino644p
+#elif MB(OMCA)
+ #include "sanguino/pins_OMCA.h" // ATmega644P, ATmega644 env:sanguino644p
+#elif MB(ANET_10)
+ #include "sanguino/pins_ANET_10.h" // ATmega1284P env:sanguino1284p env:sanguino1284p_optimized
+#elif MB(SETHI)
+ #include "sanguino/pins_SETHI.h" // ATmega644P, ATmega644, ATmega1284P env:sanguino644p env:sanguino1284p env:sanguino1284p_optimized
+
+//
+// Teensyduino - AT90USB1286, AT90USB1286P
+//
+
+#elif MB(TEENSYLU)
+ #include "teensy2/pins_TEENSYLU.h" // AT90USB1286, AT90USB1286P env:at90usb1286_cdc
+#elif MB(PRINTRBOARD)
+ #include "teensy2/pins_PRINTRBOARD.h" // AT90USB1286 env:at90usb1286_dfu
+#elif MB(PRINTRBOARD_REVF)
+ #include "teensy2/pins_PRINTRBOARD_REVF.h" // AT90USB1286 env:at90usb1286_dfu
+#elif MB(BRAINWAVE)
+ #include "teensy2/pins_BRAINWAVE.h" // AT90USB646 env:at90usb1286_cdc
+#elif MB(BRAINWAVE_PRO)
+ #include "teensy2/pins_BRAINWAVE_PRO.h" // AT90USB1286 env:at90usb1286_cdc
+#elif MB(SAV_MKI)
+ #include "teensy2/pins_SAV_MKI.h" // AT90USB1286 env:at90usb1286_cdc
+#elif MB(TEENSY2)
+ #include "teensy2/pins_TEENSY2.h" // AT90USB1286 env:teensy20
+#elif MB(5DPRINT)
+ #include "teensy2/pins_5DPRINT.h" // AT90USB1286 env:at90usb1286_dfu
+
+//
+// LPC1768 ARM Cortex M3
+//
+
+#elif MB(RAMPS_14_RE_ARM_EFB, RAMPS_14_RE_ARM_EEB, RAMPS_14_RE_ARM_EFF, RAMPS_14_RE_ARM_EEF, RAMPS_14_RE_ARM_SF)
+ #include "lpc1768/pins_RAMPS_RE_ARM.h" // LPC1768 env:LPC1768
+#elif MB(MKS_SBASE)
+ #include "lpc1768/pins_MKS_SBASE.h" // LPC1768 env:LPC1768
+#elif MB(MKS_SGEN_L)
+ #include "lpc1768/pins_MKS_SGEN_L.h" // LPC1768 env:LPC1768
+#elif MB(AZSMZ_MINI)
+ #include "lpc1768/pins_AZSMZ_MINI.h" // LPC1768 env:LPC1768
+#elif MB(BIQU_BQ111_A4)
+ #include "lpc1768/pins_BIQU_BQ111_A4.h" // LPC1768 env:LPC1768
+#elif MB(SELENA_COMPACT)
+ #include "lpc1768/pins_SELENA_COMPACT.h" // LPC1768 env:LPC1768
+#elif MB(BIQU_B300_V1_0)
+ #include "lpc1768/pins_BIQU_B300_V1.0.h" // LPC1768 env:LPC1768
+#elif MB(GMARSH_X6_REV1)
+ #include "lpc1768/pins_GMARSH_X6_REV1.h" // LPC1768 env:LPC1768
+#elif MB(BTT_SKR_V1_1)
+ #include "lpc1768/pins_BTT_SKR_V1_1.h" // LPC1768 env:LPC1768
+#elif MB(BTT_SKR_V1_3)
+ #include "lpc1768/pins_BTT_SKR_V1_3.h" // LPC1768 env:LPC1768
+#elif MB(BTT_SKR_V1_4)
+ #include "lpc1768/pins_BTT_SKR_V1_4.h" // LPC1768 env:LPC1768
+
+//
+// LPC1769 ARM Cortex M3
+//
+
+#elif MB(MKS_SGEN)
+ #include "lpc1769/pins_MKS_SGEN.h" // LPC1769 env:LPC1769
+#elif MB(AZTEEG_X5_GT)
+ #include "lpc1769/pins_AZTEEG_X5_GT.h" // LPC1769 env:LPC1769
+#elif MB(AZTEEG_X5_MINI)
+ #include "lpc1769/pins_AZTEEG_X5_MINI.h" // LPC1769 env:LPC1769
+#elif MB(AZTEEG_X5_MINI_WIFI)
+ #include "lpc1769/pins_AZTEEG_X5_MINI_WIFI.h" // LPC1769 env:LPC1769
+#elif MB(COHESION3D_REMIX)
+ #include "lpc1769/pins_COHESION3D_REMIX.h" // LPC1769 env:LPC1769
+#elif MB(COHESION3D_MINI)
+ #include "lpc1769/pins_COHESION3D_MINI.h" // LPC1769 env:LPC1769
+#elif MB(SMOOTHIEBOARD)
+ #include "lpc1769/pins_SMOOTHIEBOARD.h" // LPC1769 env:LPC1769
+#elif MB(TH3D_EZBOARD)
+ #include "lpc1769/pins_TH3D_EZBOARD.h" // LPC1769 env:LPC1769
+#elif MB(BTT_SKR_V1_4_TURBO)
+ #include "lpc1769/pins_BTT_SKR_V1_4_TURBO.h" // LPC1769 env:LPC1769
+#elif MB(MKS_SGEN_L_V2)
+ #include "lpc1769/pins_MKS_SGEN_L_V2.h" // LPC1769 env:LPC1769
+#elif MB(BTT_SKR_E3_TURBO)
+ #include "lpc1769/pins_BTT_SKR_E3_TURBO.h" // LPC1769 env:LPC1769
+#elif MB(FLY_CDY)
+ #include "lpc1769/pins_FLY_CDY.h" // LPC1769 env:LPC1769
+
+//
+// Due (ATSAM) boards
+//
+
+#elif MB(DUE3DOM)
+ #include "sam/pins_DUE3DOM.h" // SAM3X8E env:DUE env:DUE_USB env:DUE_debug
+#elif MB(DUE3DOM_MINI)
+ #include "sam/pins_DUE3DOM_MINI.h" // SAM3X8E env:DUE env:DUE_USB env:DUE_debug
+#elif MB(RADDS)
+ #include "sam/pins_RADDS.h" // SAM3X8E env:DUE env:DUE_USB env:DUE_debug
+#elif MB(RURAMPS4D_11)
+ #include "sam/pins_RURAMPS4D_11.h" // SAM3X8E env:DUE env:DUE_USB env:DUE_debug
+#elif MB(RURAMPS4D_13)
+ #include "sam/pins_RURAMPS4D_13.h" // SAM3X8E env:DUE env:DUE_USB env:DUE_debug
+#elif MB(RAMPS_FD_V1)
+ #include "sam/pins_RAMPS_FD_V1.h" // SAM3X8E env:DUE env:DUE_USB env:DUE_debug
+#elif MB(RAMPS_FD_V2)
+ #include "sam/pins_RAMPS_FD_V2.h" // SAM3X8E env:DUE env:DUE_USB env:DUE_debug
+#elif MB(RAMPS_SMART_EFB, RAMPS_SMART_EEB, RAMPS_SMART_EFF, RAMPS_SMART_EEF, RAMPS_SMART_SF)
+ #include "sam/pins_RAMPS_SMART.h" // SAM3X8E env:DUE env:DUE_USB env:DUE_debug
+#elif MB(RAMPS_DUO_EFB, RAMPS_DUO_EEB, RAMPS_DUO_EFF, RAMPS_DUO_EEF, RAMPS_DUO_SF)
+ #include "sam/pins_RAMPS_DUO.h" // SAM3X8E env:DUE env:DUE_USB env:DUE_debug
+#elif MB(RAMPS4DUE_EFB, RAMPS4DUE_EEB, RAMPS4DUE_EFF, RAMPS4DUE_EEF, RAMPS4DUE_SF)
+ #include "sam/pins_RAMPS4DUE.h" // SAM3X8E env:DUE env:DUE_USB env:DUE_debug
+#elif MB(ULTRATRONICS_PRO)
+ #include "sam/pins_ULTRATRONICS_PRO.h" // SAM3X8E env:DUE env:DUE_debug
+#elif MB(ARCHIM1)
+ #include "sam/pins_ARCHIM1.h" // SAM3X8E env:DUE_archim env:DUE_archim_debug
+#elif MB(ARCHIM2)
+ #include "sam/pins_ARCHIM2.h" // SAM3X8E env:DUE_archim env:DUE_archim_debug
+#elif MB(ALLIGATOR)
+ #include "sam/pins_ALLIGATOR_R2.h" // SAM3X8E env:DUE env:DUE_debug
+#elif MB(ADSK)
+ #include "sam/pins_ADSK.h" // SAM3X8E env:DUE env:DUE_debug
+#elif MB(PRINTRBOARD_G2)
+ #include "sam/pins_PRINTRBOARD_G2.h" // SAM3X8C env:DUE_USB
+#elif MB(CNCONTROLS_15D)
+ #include "sam/pins_CNCONTROLS_15D.h" // SAM3X8E env:DUE env:DUE_USB
+
+//
+// STM32 ARM Cortex-M0
+//
+#elif MB(MALYAN_M200_V2)
+ #include "stm32f0/pins_MALYAN_M200_V2.h" // STM32F0 env:STM32F070RB_malyan env:STM32F070CB_malyan
+#elif MB(MALYAN_M300)
+ #include "stm32f0/pins_MALYAN_M300.h" // STM32F070 env:malyan_M300
+
+//
+// STM32 ARM Cortex-M3
+//
+
+#elif MB(STM32F103RE)
+ #include "stm32f1/pins_STM32F1R.h" // STM32F1 env:STM32F103RE
+#elif MB(MALYAN_M200)
+ #include "stm32f1/pins_MALYAN_M200.h" // STM32F1 env:STM32F103CB_malyan
+#elif MB(STM3R_MINI)
+ #include "stm32f1/pins_STM3R_MINI.h" // STM32F1 env:STM32F103RE
+#elif MB(GTM32_PRO_VB)
+ #include "stm32f1/pins_GTM32_PRO_VB.h" // STM32F1 env:STM32F103RE
+#elif MB(GTM32_MINI)
+ #include "stm32f1/pins_GTM32_MINI.h" // STM32F1 env:STM32F103RE
+#elif MB(GTM32_MINI_A30)
+ #include "stm32f1/pins_GTM32_MINI_A30.h" // STM32F1 env:STM32F103RE
+#elif MB(GTM32_REV_B)
+ #include "stm32f1/pins_GTM32_REV_B.h" // STM32F1 env:STM32F103RE
+#elif MB(MORPHEUS)
+ #include "stm32f1/pins_MORPHEUS.h" // STM32F1 env:STM32F103RE
+#elif MB(CHITU3D)
+ #include "stm32f1/pins_CHITU3D.h" // STM32F1 env:STM32F103RE
+#elif MB(MKS_ROBIN)
+ #include "stm32f1/pins_MKS_ROBIN.h" // STM32F1 env:mks_robin env:mks_robin_stm32
+#elif MB(MKS_ROBIN_MINI)
+ #include "stm32f1/pins_MKS_ROBIN_MINI.h" // STM32F1 env:mks_robin_mini
+#elif MB(MKS_ROBIN_NANO)
+ #include "stm32f1/pins_MKS_ROBIN_NANO.h" // STM32F1 env:mks_robin_nano35
+#elif MB(MKS_ROBIN_NANO_V2)
+ #include "stm32f1/pins_MKS_ROBIN_NANO_V2.h" // STM32F1 env:mks_robin_nano35
+#elif MB(MKS_ROBIN_LITE)
+ #include "stm32f1/pins_MKS_ROBIN_LITE.h" // STM32F1 env:mks_robin_lite
+#elif MB(MKS_ROBIN_LITE3)
+ #include "stm32f1/pins_MKS_ROBIN_LITE3.h" // STM32F1 env:mks_robin_lite3
+#elif MB(MKS_ROBIN_PRO)
+ #include "stm32f1/pins_MKS_ROBIN_PRO.h" // STM32F1 env:mks_robin_pro
+#elif MB(MKS_ROBIN_E3)
+ #include "stm32f1/pins_MKS_ROBIN_E3.h" // STM32F1 env:mks_robin_e3
+#elif MB(MKS_ROBIN_E3_V1_1)
+ #include "stm32f1/pins_MKS_ROBIN_E3_V1_1.h" // STM32F1 env:mks_robin_e3
+#elif MB(MKS_ROBIN_E3D)
+ #include "stm32f1/pins_MKS_ROBIN_E3D.h" // STM32F1 env:mks_robin_e3
+#elif MB(MKS_ROBIN_E3D_V1_1)
+ #include "stm32f1/pins_MKS_ROBIN_E3D_V1_1.h" // STM32F1 env:mks_robin_e3
+#elif MB(MKS_ROBIN_E3P)
+ #include "stm32f1/pins_MKS_ROBIN_E3P.h" // STM32F1 env:mks_robin_e3p
+#elif MB(BTT_SKR_MINI_V1_1)
+ #include "stm32f1/pins_BTT_SKR_MINI_V1_1.h" // STM32F1 env:STM32F103RC_btt env:STM32F103RC_btt_512K env:STM32F103RC_btt_USB env:STM32F103RC_btt_512K_USB
+#elif MB(BTT_SKR_MINI_E3_V1_0)
+ #include "stm32f1/pins_BTT_SKR_MINI_E3_V1_0.h" // STM32F1 env:STM32F103RC_btt env:STM32F103RC_btt_512K env:STM32F103RC_btt_USB env:STM32F103RC_btt_512K_USB
+#elif MB(BTT_SKR_MINI_E3_V1_2)
+ #include "stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h" // STM32F1 env:STM32F103RC_btt env:STM32F103RC_btt_512K env:STM32F103RC_btt_USB env:STM32F103RC_btt_512K_USB
+#elif MB(BTT_SKR_MINI_E3_V2_0)
+ #include "stm32f1/pins_BTT_SKR_MINI_E3_V2_0.h" // STM32F1 env:STM32F103RC_btt env:STM32F103RC_btt_512K env:STM32F103RC_btt_USB env:STM32F103RC_btt_512K_USB
+#elif MB(BTT_SKR_MINI_MZ_V1_0)
+ #include "stm32f1/pins_BTT_SKR_MINI_MZ_V1_0.h" // STM32F1 env:STM32F103RC_btt env:STM32F103RC_btt_512K env:STM32F103RC_btt_USB env:STM32F103RC_btt_512K_USB
+#elif MB(BTT_SKR_E3_DIP)
+ #include "stm32f1/pins_BTT_SKR_E3_DIP.h" // STM32F1 env:STM32F103RE_btt env:STM32F103RE_btt_USB env:STM32F103RC_btt env:STM32F103RC_btt_512K env:STM32F103RC_btt_USB env:STM32F103RC_btt_512K_USB
+#elif MB(BTT_SKR_CR6)
+ #include "stm32f1/pins_BTT_SKR_CR6.h" // STM32F1 env:STM32F103RC_btt_512K_USB
+#elif MB(JGAURORA_A5S_A1)
+ #include "stm32f1/pins_JGAURORA_A5S_A1.h" // STM32F1 env:jgaurora_a5s_a1
+#elif MB(FYSETC_AIO_II)
+ #include "stm32f1/pins_FYSETC_AIO_II.h" // STM32F1 env:STM32F103RC_fysetc
+#elif MB(FYSETC_CHEETAH)
+ #include "stm32f1/pins_FYSETC_CHEETAH.h" // STM32F1 env:STM32F103RC_fysetc
+#elif MB(FYSETC_CHEETAH_V12)
+ #include "stm32f1/pins_FYSETC_CHEETAH_V12.h" // STM32F1 env:STM32F103RC_fysetc
+#elif MB(LONGER3D_LK)
+ #include "stm32f1/pins_LONGER3D_LK.h" // STM32F1 env:STM32F103VE_longer
+#elif MB(CCROBOT_MEEB_3DP)
+ #include "stm32f1/pins_CCROBOT_MEEB_3DP.h" // STM32F1 env:STM32F103RC_meeb
+#elif MB(CHITU3D_V5)
+ #include "stm32f1/pins_CHITU3D_V5.h" // STM32F1 env:chitu_f103 env:chitu_v5_gpio_init
+#elif MB(CHITU3D_V6)
+ #include "stm32f1/pins_CHITU3D_V6.h" // STM32F1 env:chitu_f103
+#elif MB(CREALITY_V4)
+ #include "stm32f1/pins_CREALITY_V4.h" // STM32F1 env:STM32F103RET6_creality
+#elif MB(CREALITY_V4210)
+ #include "stm32f1/pins_CREALITY_V4210.h" // STM32F1 env:STM32F103RET6_creality
+#elif MB(CREALITY_V427)
+ #include "stm32f1/pins_CREALITY_V427.h" // STM32F1 env:STM32F103RET6_creality
+#elif MB(CREALITY_V431)
+ #include "stm32f1/pins_CREALITY_V431.h" // STM32F1 env:STM32F103RET6_creality
+#elif MB(CREALITY_V452)
+ #include "stm32f1/pins_CREALITY_V452.h" // STM32F1 env:STM32F103RET6_creality
+#elif MB(CREALITY_V453)
+ #include "stm32f1/pins_CREALITY_V453.h" // STM32F1 env:STM32F103RET6_creality
+#elif MB(TRIGORILLA_PRO)
+ #include "stm32f1/pins_TRIGORILLA_PRO.h" // STM32F1 env:trigorilla_pro
+#elif MB(FLY_MINI)
+ #include "stm32f1/pins_FLY_MINI.h" // STM32F1 env:FLY_MINI
+#elif MB(FLSUN_HISPEED)
+ #include "stm32f1/pins_FLSUN_HISPEED.h" // STM32F1 env:flsun_hispeed
+#elif MB(BEAST)
+ #include "stm32f1/pins_BEAST.h" // STM32F1 env:STM32F103RE
+#elif MB(MINGDA_MPX_ARM_MINI)
+ #include "stm32f1/pins_MINGDA_MPX_ARM_MINI.h" // STM32F1 env:STM32F103RE
+
+//
+// ARM Cortex-M4F
+//
+
+#elif MB(TEENSY31_32)
+ #include "teensy3/pins_TEENSY31_32.h" // TEENSY31_32 env:teensy31
+#elif MB(TEENSY35_36)
+ #include "teensy3/pins_TEENSY35_36.h" // TEENSY35_36 env:teensy35 env:teensy36
+
+//
+// STM32 ARM Cortex-M4F
+//
+
+#elif MB(ARMED)
+ #include "stm32f4/pins_ARMED.h" // STM32F4 env:ARMED
+#elif MB(RUMBA32_V1_0, RUMBA32_V1_1)
+ #include "stm32f4/pins_RUMBA32_AUS3D.h" // STM32F4 env:rumba32
+#elif MB(RUMBA32_MKS)
+ #include "stm32f4/pins_RUMBA32_MKS.h" // STM32F4 env:rumba32
+#elif MB(BLACK_STM32F407VE)
+ #include "stm32f4/pins_BLACK_STM32F407VE.h" // STM32F4 env:STM32F407VE_black
+#elif MB(STEVAL_3DP001V1)
+ #include "stm32f4/pins_STEVAL_3DP001V1.h" // STM32F4 env:STM32F401VE_STEVAL
+#elif MB(BTT_SKR_PRO_V1_1)
+ #include "stm32f4/pins_BTT_SKR_PRO_V1_1.h" // STM32F4 env:BIGTREE_SKR_PRO env:BIGTREE_SKR_PRO_usb_flash_drive
+#elif MB(BTT_SKR_PRO_V1_2)
+ #include "stm32f4/pins_BTT_SKR_PRO_V1_2.h" // STM32F4 env:BIGTREE_SKR_PRO env:BIGTREE_SKR_PRO_usb_flash_drive
+#elif MB(BTT_GTR_V1_0)
+ #include "stm32f4/pins_BTT_GTR_V1_0.h" // STM32F4 env:BIGTREE_GTR_V1_0 env:BIGTREE_GTR_V1_0_usb_flash_drive
+#elif MB(BTT_BTT002_V1_0)
+ #include "stm32f4/pins_BTT_BTT002_V1_0.h" // STM32F4 env:BIGTREE_BTT002
+#elif MB(LERDGE_K)
+ #include "stm32f4/pins_LERDGE_K.h" // STM32F4 env:LERDGEK env:LERDGEK_usb_flash_drive
+#elif MB(LERDGE_S)
+ #include "stm32f4/pins_LERDGE_S.h" // STM32F4 env:LERDGES env:LERDGES_usb_flash_drive
+#elif MB(LERDGE_X)
+ #include "stm32f4/pins_LERDGE_X.h" // STM32F4 env:LERDGEX env:LERDGEX_usb_flash_drive
+#elif MB(VAKE403D)
+ #include "stm32f4/pins_VAKE403D.h" // STM32F4
+#elif MB(FYSETC_S6)
+ #include "stm32f4/pins_FYSETC_S6.h" // STM32F4 env:FYSETC_S6
+#elif MB(FYSETC_S6_V2_0)
+ #include "stm32f4/pins_FYSETC_S6_V2_0.h" // STM32F4 env:FYSETC_S6
+#elif MB(FLYF407ZG)
+ #include "stm32f4/pins_FLYF407ZG.h" // STM32F4 env:FLYF407ZG
+#elif MB(MKS_ROBIN2)
+ #include "stm32f4/pins_MKS_ROBIN2.h" // STM32F4 env:MKS_ROBIN2
+#elif MB(MKS_ROBIN_PRO_V2)
+ #include "stm32f4/pins_MKS_ROBIN_PRO_V2.h" // STM32F4 env:mks_robin_pro2
+#elif MB(MKS_ROBIN_NANO_V3)
+ #include "stm32f4/pins_MKS_ROBIN_NANO_V3.h" // STM32F4 env:mks_robin_nano_v3 env:mks_robin_nano_v3_usb_flash_drive
+#elif MB(ANET_ET4)
+ #include "stm32f4/pins_ANET_ET4.h" // STM32F4 env:Anet_ET4_OpenBLT
+#elif MB(ANET_ET4P)
+ #include "stm32f4/pins_ANET_ET4P.h" // STM32F4 env:Anet_ET4_OpenBLT
+#elif MB(FYSETC_CHEETAH_V20)
+ #include "stm32f4/pins_FYSETC_CHEETAH_V20.h" // STM32F4 env:FYSETC_CHEETAH_V20
+
+//
+// ARM Cortex M7
+//
+
+#elif MB(REMRAM_V1)
+ #include "stm32f7/pins_REMRAM_V1.h" // STM32F7 env:REMRAM_V1
+#elif MB(NUCLEO_F767ZI)
+ #include "stm32f7/pins_NUCLEO_F767ZI.h" // STM32F7 env:NUCLEO_F767ZI
+#elif MB(TEENSY41)
+ #include "teensy4/pins_TEENSY41.h" // Teensy-4.x env:teensy41
+#elif MB(T41U5XBB)
+ #include "teensy4/pins_T41U5XBB.h" // Teensy-4.x env:teensy41
+
+//
+// Espressif ESP32
+//
+
+#elif MB(ESPRESSIF_ESP32)
+ #include "esp32/pins_ESP32.h" // ESP32 env:esp32
+#elif MB(MRR_ESPA)
+ #include "esp32/pins_MRR_ESPA.h" // ESP32 env:esp32
+#elif MB(MRR_ESPE)
+ #include "esp32/pins_MRR_ESPE.h" // ESP32 env:esp32
+#elif MB(E4D_BOX)
+ #include "esp32/pins_E4D.h" // ESP32 env:esp32
+#elif MB(FYSETC_E4)
+ #include "esp32/pins_FYSETC_E4.h" // ESP32 env:FYSETC_E4
+
+//
+// Adafruit Grand Central M4 (SAMD51 ARM Cortex-M4)
+//
+
+#elif MB(AGCM4_RAMPS_144)
+ #include "samd/pins_RAMPS_144.h" // SAMD51 env:SAMD51_grandcentral_m4
+
+//
+// Custom board (with custom PIO env)
+//
+
+#elif MB(CUSTOM)
+ #include "pins_custom.h" // env:custom
+
+//
+// Linux Native Debug board
+//
+
+#elif MB(LINUX_RAMPS)
+ #include "linux/pins_RAMPS_LINUX.h" // Linux env:linux_native
+
+#else
+
+ //
+ // Obsolete or unknown board
+ //
+
+ #define BOARD_MKS_13 -1000
+ #define BOARD_TRIGORILLA -1001
+ #define BOARD_RURAMPS4D -1002
+ #define BOARD_FORMBOT_TREX2 -1003
+ #define BOARD_BIQU_SKR_V1_1 -1004
+ #define BOARD_STM32F1R -1005
+ #define BOARD_STM32F103R -1006
+ #define BOARD_ESP32 -1007
+ #define BOARD_STEVAL -1008
+ #define BOARD_BIGTREE_SKR_V1_1 -1009
+ #define BOARD_BIGTREE_SKR_V1_3 -1010
+ #define BOARD_BIGTREE_SKR_V1_4 -1011
+ #define BOARD_BIGTREE_SKR_V1_4_TURBO -1012
+ #define BOARD_BIGTREE_BTT002_V1_0 -1013
+ #define BOARD_BIGTREE_SKR_PRO_V1_1 -1014
+ #define BOARD_BIGTREE_SKR_MINI_V1_1 -1015
+ #define BOARD_BIGTREE_SKR_MINI_E3 -1016
+ #define BOARD_BIGTREE_SKR_E3_DIP -1017
+ #define BOARD_RUMBA32 -1018
+ #define BOARD_RUMBA32_AUS3D -1019
+ #define BOARD_RAMPS_DAGOMA -1020
+ #define BOARD_RAMPS_LONGER3D_LK4PRO -1021
+
+ #if MB(MKS_13)
+ #error "BOARD_MKS_13 has been renamed BOARD_MKS_GEN_13. Please update your configuration."
+ #elif MB(TRIGORILLA)
+ #error "BOARD_TRIGORILLA has been renamed BOARD_TRIGORILLA_13. Please update your configuration."
+ #elif MB(RURAMPS4D)
+ #error "BOARD_RURAMPS4D has been renamed BOARD_RURAMPS4D_11. Please update your configuration."
+ #elif MB(FORMBOT_TREX2)
+ #error "FORMBOT_TREX2 has been renamed BOARD_FORMBOT_TREX2PLUS. Please update your configuration."
+ #elif MB(BIQU_SKR_V1_1)
+ #error "BOARD_BIQU_SKR_V1_1 has been renamed BOARD_BTT_SKR_V1_1. Please update your configuration."
+ #elif MB(BIGTREE_SKR_V1_1)
+ #error "BOARD_BIGTREE_SKR_V1_1 has been renamed BOARD_BTT_SKR_V1_1. Please update your configuration."
+ #elif MB(BIGTREE_SKR_V2_2)
+ #error "BOARD_BIGTREE_SKR_V1_2 has been renamed BOARD_BTT_SKR_V1_2. Please update your configuration."
+ #elif MB(BIGTREE_SKR_V1_3)
+ #error "BOARD_BIGTREE_SKR_V1_3 has been renamed BOARD_BTT_SKR_V1_3. Please update your configuration."
+ #elif MB(BIGTREE_SKR_V1_4)
+ #error "BOARD_BIGTREE_SKR_V1_4 has been renamed BOARD_BTT_SKR_V1_4. Please update your configuration."
+ #elif MB(BIGTREE_SKR_V1_4_TURBO)
+ #error "BOARD_BIGTREE_SKR_V1_4_TURBO has been renamed BOARD_BTT_SKR_V1_4_TURBO. Please update your configuration."
+ #elif MB(BIGTREE_BTT002_V1_0)
+ #error "BOARD_BIGTREE_BTT002_V1_0 has been renamed BOARD_BTT_BTT002_V1_0. Please update your configuration."
+ #elif MB(BIGTREE_SKR_PRO_V1_1)
+ #error "BOARD_BIGTREE_SKR_PRO_V1_1 has been renamed BOARD_BTT_SKR_PRO_V1_1. Please update your configuration."
+ #elif MB(BIGTREE_SKR_MINI_V1_1)
+ #error "BOARD_BIGTREE_SKR_MINI_V1_1 has been renamed BOARD_BTT_SKR_MINI_V1_1. Please update your configuration."
+ #elif MB(BIGTREE_SKR_MINI_E3)
+ #error "BOARD_BIGTREE_SKR_MINI_E3 has been renamed BOARD_BTT_SKR_MINI_E3_V1_0. Please update your configuration."
+ #elif MB(BIGTREE_SKR_E3_DIP)
+ #error "BOARD_BIGTREE_SKR_E3_DIP has been renamed BOARD_BTT_SKR_E3_DIP. Please update your configuration."
+ #elif MB(STM32F1R)
+ #error "BOARD_STM32F1R has been renamed BOARD_STM32F103RE. Please update your configuration."
+ #elif MB(STM32F103R)
+ #error "BOARD_STM32F103R has been renamed BOARD_STM32F103RE. Please update your configuration."
+ #elif MOTHERBOARD == BOARD_ESP32
+ #error "BOARD_ESP32 has been renamed BOARD_ESPRESSIF_ESP32. Please update your configuration."
+ #elif MB(STEVAL)
+ #error "BOARD_STEVAL has been renamed BOARD_STEVAL_3DP001V1. Please update your configuration."
+ #elif MB(RUMBA32)
+ #error "BOARD_RUMBA32 is now BOARD_RUMBA32_MKS or BOARD_RUMBA32_V1_0. Please update your configuration."
+ #elif MB(RUMBA32_AUS3D)
+ #error "BOARD_RUMBA32_AUS3D is now BOARD_RUMBA32_V1_0. Please update your configuration."
+ #elif MB(RAMPS_DAGOMA)
+ #error "BOARD_RAMPS_DAGOMA is now BOARD_DAGOMA_F5. Please update your configuration."
+ #elif MB(RAMPS_LONGER3D_LK4PRO)
+ #error "BOARD_RAMPS_LONGER3D_LK4PRO is now BOARD_LONGER3D_LKx_PRO. Please update your configuration."
+ #else
+ #error "Unknown MOTHERBOARD value set in Configuration.h"
+ #endif
+
+ #undef BOARD_MKS_13
+ #undef BOARD_TRIGORILLA
+ #undef BOARD_RURAMPS4D
+ #undef BOARD_FORMBOT_TREX2
+ #undef BOARD_BIQU_SKR_V1_1
+ #undef BOARD_STM32F1R
+ #undef BOARD_STM32F103R
+ #undef BOARD_ESP32
+ #undef BOARD_STEVAL
+ #undef BOARD_BIGTREE_SKR_MINI_E3
+ #undef BOARD_BIGTREE_SKR_V1_1
+ #undef BOARD_BIGTREE_SKR_V1_3
+ #undef BOARD_BIGTREE_SKR_V1_4
+ #undef BOARD_BIGTREE_SKR_V1_4_TURBO
+ #undef BOARD_BIGTREE_BTT002_V1_0
+ #undef BOARD_BIGTREE_SKR_PRO_V1_1
+ #undef BOARD_BIGTREE_SKR_MINI_V1_1
+ #undef BOARD_BIGTREE_SKR_E3_DIP
+ #undef BOARD_RUMBA32
+ #undef BOARD_RUMBA32_AUS3D
+ #undef BOARD_RAMPS_DAGOMA
+ #undef BOARD_RAMPS_LONGER3D_LK4PRO
+
+#endif
+
+//
+// Post-process pins according to configured settings
+//
+#include "pins_postprocess.h"
diff --git a/Marlin/src/pins/pinsDebug.h b/Marlin/src/pins/pinsDebug.h
new file mode 100644
index 0000000..5f153cf
--- /dev/null
+++ b/Marlin/src/pins/pinsDebug.h
@@ -0,0 +1,363 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "../inc/MarlinConfig.h"
+
+#define MAX_NAME_LENGTH 39 // one place to specify the format of all the sources of names
+ // "-" left justify, "39" minimum width of name, pad with blanks
+
+/**
+ * This routine minimizes RAM usage by creating a FLASH resident array to
+ * store the pin names, pin numbers and analog/digital flag.
+ *
+ * Creating the array in FLASH is a two pass process. The first pass puts the
+ * name strings into FLASH. The second pass actually creates the array.
+ *
+ * Both passes use the same pin list. The list contains two macro names. The
+ * actual macro definitions are changed depending on which pass is being done.
+ */
+
+// first pass - put the name strings into FLASH
+
+#define _ADD_PIN_2(PIN_NAME, ENTRY_NAME) static const char ENTRY_NAME[] PROGMEM = { PIN_NAME };
+#define _ADD_PIN(PIN_NAME, COUNTER) _ADD_PIN_2(PIN_NAME, entry_NAME_##COUNTER)
+#define REPORT_NAME_DIGITAL(COUNTER, NAME) _ADD_PIN(#NAME, COUNTER)
+#define REPORT_NAME_ANALOG(COUNTER, NAME) _ADD_PIN(#NAME, COUNTER)
+
+#include "pinsDebug_list.h"
+#line 46
+
+// manually add pins that have names that are macros which don't play well with these macros
+#if ANY(AVR_ATmega2560_FAMILY, AVR_ATmega1284_FAMILY, ARDUINO_ARCH_SAM, TARGET_LPC1768)
+ #if SERIAL_PORT == 0
+ static const char RXD_NAME_0[] PROGMEM = { "RXD0" };
+ static const char TXD_NAME_0[] PROGMEM = { "TXD0" };
+ #elif SERIAL_PORT == 1
+ static const char RXD_NAME_1[] PROGMEM = { "RXD1" };
+ static const char TXD_NAME_1[] PROGMEM = { "TXD1" };
+ #elif SERIAL_PORT == 2
+ static const char RXD_NAME_2[] PROGMEM = { "RXD2" };
+ static const char TXD_NAME_2[] PROGMEM = { "TXD2" };
+ #elif SERIAL_PORT == 3
+ static const char RXD_NAME_3[] PROGMEM = { "RXD3" };
+ static const char TXD_NAME_3[] PROGMEM = { "TXD3" };
+ #endif
+ #ifdef SERIAL_PORT_2
+ #if SERIAL_PORT_2 == 0
+ static const char RXD_NAME_0[] PROGMEM = { "RXD0" };
+ static const char TXD_NAME_0[] PROGMEM = { "TXD0" };
+ #elif SERIAL_PORT_2 == 1
+ static const char RXD_NAME_1[] PROGMEM = { "RXD1" };
+ static const char TXD_NAME_1[] PROGMEM = { "TXD1" };
+ #elif SERIAL_PORT_2 == 2
+ static const char RXD_NAME_2[] PROGMEM = { "RXD2" };
+ static const char TXD_NAME_2[] PROGMEM = { "TXD2" };
+ #elif SERIAL_PORT_2 == 3
+ static const char RXD_NAME_3[] PROGMEM = { "RXD3" };
+ static const char TXD_NAME_3[] PROGMEM = { "TXD3" };
+ #endif
+ #endif
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+
+// second pass - create the array
+
+#undef _ADD_PIN_2
+#undef _ADD_PIN
+#undef REPORT_NAME_DIGITAL
+#undef REPORT_NAME_ANALOG
+
+#define _ADD_PIN_2(ENTRY_NAME, NAME, IS_DIGITAL) { ENTRY_NAME, NAME, IS_DIGITAL },
+#define _ADD_PIN(NAME, COUNTER, IS_DIGITAL) _ADD_PIN_2(entry_NAME_##COUNTER, NAME, IS_DIGITAL)
+#define REPORT_NAME_DIGITAL(COUNTER, NAME) _ADD_PIN(NAME, COUNTER, true)
+#define REPORT_NAME_ANALOG(COUNTER, NAME) _ADD_PIN(analogInputToDigitalPin(NAME), COUNTER, false)
+
+
+typedef struct {
+ PGM_P const name;
+ pin_t pin;
+ bool is_digital;
+} PinInfo;
+
+const PinInfo pin_array[] PROGMEM = {
+
+ /**
+ * [pin name] [pin number] [is digital or analog] 1 = digital, 0 = analog
+ * Each entry takes up 6 bytes in FLASH:
+ * 2 byte pointer to location of the name string
+ * 2 bytes containing the pin number
+ * analog pin numbers were convereted to digital when the array was created
+ * 2 bytes containing the digital/analog bool flag
+ */
+
+ // manually add pins ...
+ #if SERIAL_PORT == 0
+ #if EITHER(AVR_ATmega2560_FAMILY, ARDUINO_ARCH_SAM)
+ { RXD_NAME_0, 0, true },
+ { TXD_NAME_0, 1, true },
+ #elif AVR_ATmega1284_FAMILY
+ { RXD_NAME_0, 8, true },
+ { TXD_NAME_0, 9, true },
+ #elif defined(TARGET_LPC1768) // TX P0_02 RX P0_03
+ { RXD_NAME_0, 3, true },
+ { TXD_NAME_0, 2, true },
+ #endif
+ #elif SERIAL_PORT == 1
+ #if EITHER(AVR_ATmega2560_FAMILY, ARDUINO_ARCH_SAM)
+ { RXD_NAME_1, 19, true },
+ { TXD_NAME_1, 18, true },
+ #elif AVR_ATmega1284_FAMILY
+ { RXD_NAME_1, 10, true },
+ { TXD_NAME_1, 11, true },
+ #elif defined(TARGET_LPC1768)
+ #ifdef LPC_PINCFG_UART1_P2_00 // TX P2_00 RX P2_01
+ { RXD_NAME_1, 0x41, true },
+ { TXD_NAME_1, 0x40, true },
+ #else // TX P0_15 RX P0_16
+ { RXD_NAME_1, 16, true },
+ { TXD_NAME_1, 15, true },
+ #endif
+ #endif
+ #elif SERIAL_PORT == 2
+ #if EITHER(AVR_ATmega2560_FAMILY, ARDUINO_ARCH_SAM)
+ { RXD_NAME_2, 17, true },
+ { TXD_NAME_2, 16, true },
+ #elif defined(TARGET_LPC1768)
+ #ifdef LPC_PINCFG_UART2_P2_08 // TX P2_08 RX P2_09
+ { RXD_NAME_2, 0x49, true },
+ { TXD_NAME_2, 0x48, true },
+ #else // TX P0_10 RX P0_11
+ { RXD_NAME_2, 11, true },
+ { TXD_NAME_2, 10, true },
+ #endif
+ #endif
+ #elif SERIAL_PORT == 3
+ #if EITHER(AVR_ATmega2560_FAMILY, ARDUINO_ARCH_SAM)
+ { RXD_NAME_3, 15, true },
+ { TXD_NAME_3, 14, true },
+ #elif defined(TARGET_LPC1768)
+ #ifdef LPC_PINCFG_UART3_P0_25 // TX P0_25 RX P0_26
+ { RXD_NAME_3, 0x1A, true },
+ { TXD_NAME_3, 0x19, true },
+ #elif defined(LPC_PINCFG_UART3_P4_28) // TX P4_28 RX P4_29
+ { RXD_NAME_3, 0x9D, true },
+ { TXD_NAME_3, 0x9C, true },
+ #else // TX P0_00 RX P0_01
+ { RXD_NAME_3, 1, true },
+ { TXD_NAME_3, 0, true },
+ #endif
+ #endif
+ #endif
+
+ #ifdef SERIAL_PORT_2
+ #if SERIAL_PORT_2 == 0
+ #if EITHER(AVR_ATmega2560_FAMILY, ARDUINO_ARCH_SAM)
+ { RXD_NAME_0, 0, true },
+ { TXD_NAME_0, 1, true },
+ #elif AVR_ATmega1284_FAMILY
+ { RXD_NAME_0, 8, true },
+ { TXD_NAME_0, 9, true },
+ #elif defined(TARGET_LPC1768) // TX P0_02 RX P0_03
+ { RXD_NAME_0, 3, true },
+ { TXD_NAME_0, 2, true },
+ #endif
+ #elif SERIAL_PORT_2 == 1
+ #if EITHER(AVR_ATmega2560_FAMILY, ARDUINO_ARCH_SAM)
+ { RXD_NAME_1, 19, true },
+ { TXD_NAME_1, 18, true },
+ #elif AVR_ATmega1284_FAMILY
+ { RXD_NAME_1, 10, true },
+ { TXD_NAME_1, 11, true },
+ #elif defined(TARGET_LPC1768)
+ #ifdef LPC_PINCFG_UART1_P2_00 // TX P2_00 RX P2_01
+ { RXD_NAME_1, 0x41, true },
+ { TXD_NAME_1, 0x40, true },
+ #else // TX P0_15 RX P0_16
+ { RXD_NAME_1, 16, true },
+ { TXD_NAME_1, 15, true },
+ #endif
+ #endif
+ #elif SERIAL_PORT_2 == 2
+ #if EITHER(AVR_ATmega2560_FAMILY, ARDUINO_ARCH_SAM)
+ { RXD_NAME_2, 17, true },
+ { TXD_NAME_2, 16, true },
+ #elif defined(TARGET_LPC1768)
+ #ifdef LPC_PINCFG_UART2_P2_08 // TX P2_08 RX P2_09
+ { RXD_NAME_2, 0x49, true },
+ { TXD_NAME_2, 0x48, true },
+ #else // TX P0_10 RX P0_11
+ { RXD_NAME_2, 11, true },
+ { TXD_NAME_2, 10, true },
+ #endif
+ #endif
+ #elif SERIAL_PORT_2 == 3
+ #if EITHER(AVR_ATmega2560_FAMILY, ARDUINO_ARCH_SAM)
+ { RXD_NAME_3, 15, true },
+ { TXD_NAME_3, 14, true },
+ #elif defined(TARGET_LPC1768)
+ #ifdef LPC_PINCFG_UART3_P0_25 // TX P0_25 RX P0_26
+ { RXD_NAME_3, 0x1A, true },
+ { TXD_NAME_3, 0x19, true },
+ #elif defined(LPC_PINCFG_UART3_P4_28) // TX P4_28 RX P4_29
+ { RXD_NAME_3, 0x9D, true },
+ { TXD_NAME_3, 0x9C, true },
+ #else // TX P0_00 RX P0_01
+ { RXD_NAME_3, 1, true },
+ { TXD_NAME_3, 0, true },
+ #endif
+ #endif
+ #endif
+ #endif
+
+ #include "pinsDebug_list.h"
+ #line 172
+
+};
+
+#include HAL_PATH(../HAL, pinsDebug.h) // get the correct support file for this CPU
+
+#ifndef M43_NEVER_TOUCH
+ #define M43_NEVER_TOUCH(Q) false
+#endif
+
+static void print_input_or_output(const bool isout) {
+ serialprintPGM(isout ? PSTR("Output = ") : PSTR("Input = "));
+}
+
+// pretty report with PWM info
+inline void report_pin_state_extended(pin_t pin, const bool ignore, const bool extended=false, PGM_P const start_string=nullptr) {
+ char buffer[MAX_NAME_LENGTH + 1]; // for the sprintf statements
+ bool found = false, multi_name_pin = false;
+
+ auto alt_pin_echo = [](const pin_t &pin) {
+ #if AVR_AT90USB1286_FAMILY
+ // Use FastIO for pins Teensy doesn't expose
+ if (pin == 46) {
+ print_input_or_output(IS_OUTPUT(46));
+ SERIAL_CHAR('0' + READ(46));
+ return false;
+ }
+ else if (pin == 47) {
+ print_input_or_output(IS_OUTPUT(47));
+ SERIAL_CHAR('0' + READ(47));
+ return false;
+ }
+ #endif
+ return true;
+ };
+
+ LOOP_L_N(x, COUNT(pin_array)) { // scan entire array and report all instances of this pin
+ if (GET_ARRAY_PIN(x) == pin) {
+ if (!found) { // report digital and analog pin number only on the first time through
+ if (start_string) serialprintPGM(start_string);
+ serialprintPGM(PSTR("PIN: "));
+ PRINT_PIN(pin);
+ PRINT_PORT(pin);
+ if (int8_t(DIGITAL_PIN_TO_ANALOG_PIN(pin)) >= 0) {
+ sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); // analog pin number
+ SERIAL_ECHO(buffer);
+ }
+ else SERIAL_ECHO_SP(8); // add padding if not an analog pin
+ }
+ else {
+ SERIAL_CHAR('.');
+ SERIAL_ECHO_SP(MULTI_NAME_PAD + (start_string ? strlen_P(start_string) : 0)); // add padding if not the first instance found
+ }
+ PRINT_ARRAY_NAME(x);
+ if (extended) {
+ if (pin_is_protected(pin) && !ignore)
+ SERIAL_ECHOPGM("protected ");
+ else {
+ if (alt_pin_echo(pin)) {
+ if (!GET_ARRAY_IS_DIGITAL(x)) {
+ sprintf_P(buffer, PSTR("Analog in = %5ld"), (long)analogRead(DIGITAL_PIN_TO_ANALOG_PIN(pin)));
+ SERIAL_ECHO(buffer);
+ }
+ else {
+ if (!GET_PINMODE(pin)) {
+ //pinMode(pin, INPUT_PULLUP); // make sure input isn't floating - stopped doing this
+ // because this could interfere with inductive/capacitive
+ // sensors (high impedance voltage divider) and with Pt100 amplifier
+ print_input_or_output(false);
+ SERIAL_ECHO(digitalRead_mod(pin));
+ }
+ else if (pwm_status(pin)) {
+ // do nothing
+ }
+ else {
+ print_input_or_output(true);
+ SERIAL_ECHO(digitalRead_mod(pin));
+ }
+ }
+ if (!multi_name_pin && extended) pwm_details(pin); // report PWM capabilities only on the first pass & only if doing an extended report
+ }
+ }
+ }
+ SERIAL_EOL();
+ multi_name_pin = found;
+ found = true;
+ } // end of IF
+ } // end of for loop
+
+ if (!found) {
+ if (start_string) serialprintPGM(start_string);
+ serialprintPGM(PSTR("PIN: "));
+ PRINT_PIN(pin);
+ PRINT_PORT(pin);
+ if (int8_t(DIGITAL_PIN_TO_ANALOG_PIN(pin)) >= 0) {
+ sprintf_P(buffer, PSTR(" (A%2d) "), DIGITAL_PIN_TO_ANALOG_PIN(pin)); // analog pin number
+ SERIAL_ECHO(buffer);
+ }
+ else
+ SERIAL_ECHO_SP(8); // add padding if not an analog pin
+ SERIAL_ECHOPGM("<unused/unknown>");
+ if (extended) {
+
+ if (alt_pin_echo(pin)) {
+ if (pwm_status(pin)) {
+ // do nothing
+ }
+ else if (GET_PINMODE(pin)) {
+ SERIAL_ECHO_SP(MAX_NAME_LENGTH - 16);
+ print_input_or_output(true);
+ SERIAL_ECHO(digitalRead_mod(pin));
+ }
+ else {
+ if (IS_ANALOG(pin)) {
+ sprintf_P(buffer, PSTR(" Analog in = %5ld"), (long)analogRead(DIGITAL_PIN_TO_ANALOG_PIN(pin)));
+ SERIAL_ECHO(buffer);
+ SERIAL_ECHOPGM(" ");
+ }
+ else
+ SERIAL_ECHO_SP(MAX_NAME_LENGTH - 16); // add padding if not an analog pin
+
+ print_input_or_output(false);
+ SERIAL_ECHO(digitalRead_mod(pin));
+ }
+ //if (!pwm_status(pin)) SERIAL_CHAR(' '); // add padding if it's not a PWM pin
+ if (extended) {
+ SERIAL_ECHO_SP(MAX_NAME_LENGTH - 16);
+ pwm_details(pin); // report PWM capabilities only if doing an extended report
+ }
+ }
+ }
+ SERIAL_EOL();
+ }
+}
diff --git a/Marlin/src/pins/pinsDebug_list.h b/Marlin/src/pins/pinsDebug_list.h
new file mode 100644
index 0000000..79a67c3
--- /dev/null
+++ b/Marlin/src/pins/pinsDebug_list.h
@@ -0,0 +1,1448 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+// Please update this list when adding new pins to Marlin.
+// The order doesn't matter.
+// Following this pattern is a must.
+// If the new pin name is over 28 characters long then pinsDebug.h will need to be modified.
+
+// Pin lists 1.1.x and 2.0.x synchronized 2018-02-17
+
+#line 28 // set __LINE__ to a known value for both passes
+
+//
+// Analog Pin Assignments
+//
+
+#define ANALOG_OK(PN) ((PN) >= 0 && (PN) < NUM_ANALOG_INPUTS)
+
+#if defined(EXT_AUX_A0) && ANALOG_OK(EXT_AUX_A0)
+ REPORT_NAME_ANALOG(__LINE__, EXT_AUX_A0)
+#endif
+#if defined(EXT_AUX_A1) && ANALOG_OK(EXT_AUX_A0)
+ REPORT_NAME_ANALOG(__LINE__, EXT_AUX_A1)
+#endif
+#if defined(EXT_AUX_A2) && ANALOG_OK(EXT_AUX_A0)
+ REPORT_NAME_ANALOG(__LINE__, EXT_AUX_A2)
+#endif
+#if defined(EXT_AUX_A3) && ANALOG_OK(EXT_AUX_A0)
+ REPORT_NAME_ANALOG(__LINE__, EXT_AUX_A3)
+#endif
+#if defined(EXT_AUX_A4) && ANALOG_OK(EXT_AUX_A0)
+ REPORT_NAME_ANALOG(__LINE__, EXT_AUX_A4)
+#endif
+#if PIN_EXISTS(FILWIDTH) && ANALOG_OK(FILWIDTH_PIN)
+ REPORT_NAME_ANALOG(__LINE__, FILWIDTH_PIN)
+#endif
+#if PIN_EXISTS(MAIN_VOLTAGE_MEASURE) && ANALOG_OK(MAIN_VOLTAGE_MEASURE_PIN)
+ REPORT_NAME_ANALOG(__LINE__, MAIN_VOLTAGE_MEASURE_PIN)
+#endif
+#if !defined(ARDUINO_ARCH_SAM) && !defined(ARDUINO_ARCH_SAMD) // TC1 & TC2 are macros in the SAM/SAMD tool chain
+ #if defined(TC1) && ANALOG_OK(TC1)
+ REPORT_NAME_ANALOG(__LINE__, TC1)
+ #endif
+ #if defined(TC2) && ANALOG_OK(TC1)
+ REPORT_NAME_ANALOG(__LINE__, TC2)
+ #endif
+#endif
+#if PIN_EXISTS(TEMP_0) && ANALOG_OK(TEMP_0_PIN)
+ REPORT_NAME_ANALOG(__LINE__, TEMP_0_PIN)
+#endif
+#if PIN_EXISTS(TEMP_1) && ANALOG_OK(TEMP_1_PIN)
+ REPORT_NAME_ANALOG(__LINE__, TEMP_1_PIN)
+#endif
+#if PIN_EXISTS(TEMP_2) && ANALOG_OK(TEMP_2_PIN)
+ REPORT_NAME_ANALOG(__LINE__, TEMP_2_PIN)
+#endif
+#if PIN_EXISTS(TEMP_3) && ANALOG_OK(TEMP_3_PIN)
+ REPORT_NAME_ANALOG(__LINE__, TEMP_3_PIN)
+#endif
+#if PIN_EXISTS(TEMP_4) && ANALOG_OK(TEMP_4_PIN)
+ REPORT_NAME_ANALOG(__LINE__, TEMP_4_PIN)
+#endif
+#if PIN_EXISTS(TEMP_5) && ANALOG_OK(TEMP_5_PIN)
+ REPORT_NAME_ANALOG(__LINE__, TEMP_5_PIN)
+#endif
+#if PIN_EXISTS(TEMP_6) && ANALOG_OK(TEMP_6_PIN)
+ REPORT_NAME_ANALOG(__LINE__, TEMP_6_PIN)
+#endif
+#if PIN_EXISTS(TEMP_7) && ANALOG_OK(TEMP_7_PIN)
+ REPORT_NAME_ANALOG(__LINE__, TEMP_7_PIN)
+#endif
+#if PIN_EXISTS(TEMP_BED) && ANALOG_OK(TEMP_BED_PIN)
+ REPORT_NAME_ANALOG(__LINE__, TEMP_BED_PIN)
+#endif
+#if PIN_EXISTS(TEMP_CHAMBER) && ANALOG_OK(TEMP_CHAMBER_PIN)
+ REPORT_NAME_ANALOG(__LINE__, TEMP_CHAMBER_PIN)
+#endif
+#if PIN_EXISTS(ADC_KEYPAD) && ANALOG_OK(ADC_KEYPAD_PIN)
+ REPORT_NAME_ANALOG(__LINE__, ADC_KEYPAD_PIN)
+#endif
+
+//
+// Digital Pin Assignments
+//
+
+#if defined(__FD) && __FD >= 0
+ REPORT_NAME_DIGITAL(__LINE__, __FD)
+#endif
+#if defined(__FS) && __FS >= 0
+ REPORT_NAME_DIGITAL(__LINE__, __FS)
+#endif
+#if defined(__GD) && __GD >= 0
+ REPORT_NAME_DIGITAL(__LINE__, __GD)
+#endif
+#if defined(__GS) && __GS >= 0
+ REPORT_NAME_DIGITAL(__LINE__, __GS)
+#endif
+#if PIN_EXISTS(AVR_MISO)
+ REPORT_NAME_DIGITAL(__LINE__, AVR_MISO_PIN)
+#endif
+#if PIN_EXISTS(AVR_MOSI)
+ REPORT_NAME_DIGITAL(__LINE__, AVR_MOSI_PIN)
+#endif
+#if PIN_EXISTS(AVR_SCK)
+ REPORT_NAME_DIGITAL(__LINE__, AVR_SCK_PIN)
+#endif
+#if PIN_EXISTS(ALARM)
+ REPORT_NAME_DIGITAL(__LINE__, ALARM_PIN)
+#endif
+#if PIN_EXISTS(AVR_SS)
+ REPORT_NAME_DIGITAL(__LINE__, AVR_SS_PIN)
+#endif
+#if PIN_EXISTS(BEEPER)
+ REPORT_NAME_DIGITAL(__LINE__, BEEPER_PIN)
+#endif
+#if defined(BTN_BACK) && BTN_BACK >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_BACK)
+#endif
+#if defined(BTN_CENTER) && BTN_CENTER >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_CENTER)
+#endif
+#if defined(BTN_DOWN) && BTN_DOWN >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_DOWN)
+#endif
+#if defined(BTN_DWN) && BTN_DWN >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_DWN)
+#endif
+#if defined(BTN_EN1) && BTN_EN1 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_EN1)
+#endif
+#if defined(BTN_EN2) && BTN_EN2 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_EN2)
+#endif
+#if defined(BTN_ENC_EN) && BTN_ENC_EN >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_ENC_EN)
+#endif
+#if defined(BTN_ENC) && BTN_ENC >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_ENC)
+#endif
+#if defined(BTN_HOME) && BTN_HOME >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_HOME)
+#endif
+#if defined(BTN_LEFT) && BTN_LEFT >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_LEFT)
+#endif
+#if defined(BTN_LFT) && BTN_LFT >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_LFT)
+#endif
+#if defined(BTN_RIGHT) && BTN_RIGHT >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_RIGHT)
+#endif
+#if defined(BTN_RT) && BTN_RT >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_RT)
+#endif
+#if defined(BTN_UP) && BTN_UP >= 0
+ REPORT_NAME_DIGITAL(__LINE__, BTN_UP)
+#endif
+#if PIN_EXISTS(JOY_X)
+ REPORT_NAME_DIGITAL(__LINE__, JOY_X_PIN)
+#endif
+#if PIN_EXISTS(JOY_Y)
+ REPORT_NAME_DIGITAL(__LINE__, JOY_Y_PIN)
+#endif
+#if PIN_EXISTS(JOY_Z)
+ REPORT_NAME_DIGITAL(__LINE__, JOY_Z_PIN)
+#endif
+#if PIN_EXISTS(JOY_EN)
+ REPORT_NAME_DIGITAL(__LINE__, JOY_EN_PIN)
+#endif
+#if PIN_EXISTS(CASE_LIGHT)
+ REPORT_NAME_DIGITAL(__LINE__, CASE_LIGHT_PIN)
+#endif
+#if PIN_EXISTS(CHAMBER_AUTO_FAN)
+ REPORT_NAME_DIGITAL(__LINE__, CHAMBER_AUTO_FAN_PIN)
+#endif
+#if PIN_EXISTS(CONTROLLER_FAN)
+ REPORT_NAME_DIGITAL(__LINE__, CONTROLLER_FAN_PIN)
+#endif
+#if PIN_EXISTS(COOLANT_FLOOD)
+ REPORT_NAME_DIGITAL(__LINE__, COOLANT_FLOOD_PIN)
+#endif
+#if PIN_EXISTS(COOLANT_MIST)
+ REPORT_NAME_DIGITAL(__LINE__, COOLANT_MIST_PIN)
+#endif
+#if PIN_EXISTS(CUTOFF_RESET)
+ REPORT_NAME_DIGITAL(__LINE__, CUTOFF_RESET_PIN)
+#endif
+#if PIN_EXISTS(CUTOFF_TEST)
+ REPORT_NAME_DIGITAL(__LINE__, CUTOFF_TEST_PIN)
+#endif
+#if defined(D57) && D57 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, D57)
+#endif
+#if defined(D58) && D58 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, D58)
+#endif
+#if PIN_EXISTS(DAC_DISABLE)
+ REPORT_NAME_DIGITAL(__LINE__, DAC_DISABLE_PIN)
+#endif
+#if defined(DAC0_SYNC) && DAC0_SYNC >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DAC0_SYNC)
+#endif
+#if defined(DAC1_SYNC) && DAC1_SYNC >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DAC1_SYNC)
+#endif
+#if PIN_EXISTS(DEBUG)
+ REPORT_NAME_DIGITAL(__LINE__, DEBUG_PIN)
+#endif
+#if defined(DIGIPOTS_I2C_SCL) && DIGIPOTS_I2C_SCL >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DIGIPOTS_I2C_SCL)
+#endif
+#if defined(DIGIPOTS_I2C_SDA_E0) && DIGIPOTS_I2C_SDA_E0 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DIGIPOTS_I2C_SDA_E0)
+#endif
+#if defined(DIGIPOTS_I2C_SDA_E1) && DIGIPOTS_I2C_SDA_E1 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DIGIPOTS_I2C_SDA_E1)
+#endif
+#if defined(DIGIPOTS_I2C_SDA_X) && DIGIPOTS_I2C_SDA_X >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DIGIPOTS_I2C_SDA_X)
+#endif
+#if defined(DIGIPOTS_I2C_SDA_Y) && DIGIPOTS_I2C_SDA_Y >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DIGIPOTS_I2C_SDA_Y)
+#endif
+#if defined(DIGIPOTS_I2C_SDA_Z) && DIGIPOTS_I2C_SDA_Z >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DIGIPOTS_I2C_SDA_Z)
+#endif
+#if PIN_EXISTS(DIGIPOTSS)
+ REPORT_NAME_DIGITAL(__LINE__, DIGIPOTSS_PIN)
+#endif
+#if defined(DOGLCD_A0) && DOGLCD_A0 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DOGLCD_A0)
+#endif
+#if defined(DOGLCD_CS) && DOGLCD_CS >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DOGLCD_CS)
+#endif
+#if defined(DOGLCD_MOSI) && DOGLCD_MOSI >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DOGLCD_MOSI)
+#endif
+#if defined(DOGLCD_SCK) && DOGLCD_SCK >= 0
+ REPORT_NAME_DIGITAL(__LINE__, DOGLCD_SCK)
+#endif
+#if defined(TMC_SW_MISO) && TMC_SW_MISO >= 0
+ REPORT_NAME_DIGITAL(__LINE__, TMC_SW_MISO)
+#endif
+#if defined(TMC_SW_MOSI) && TMC_SW_MOSI >= 0
+ REPORT_NAME_DIGITAL(__LINE__, TMC_SW_MOSI)
+#endif
+#if defined(TMC_SW_SCK) && TMC_SW_SCK >= 0
+ REPORT_NAME_DIGITAL(__LINE__, TMC_SW_SCK)
+#endif
+#if defined(TFTGLCD_CS) && TFTGLCD_CS >= 0
+ REPORT_NAME_DIGITAL(__LINE__, TFTGLCD_CS)
+#endif
+#if PIN_EXISTS(E_MUX0)
+ REPORT_NAME_DIGITAL(__LINE__, E_MUX0_PIN)
+#endif
+#if PIN_EXISTS(E_MUX1)
+ REPORT_NAME_DIGITAL(__LINE__, E_MUX1_PIN)
+#endif
+#if PIN_EXISTS(E_MUX2)
+ REPORT_NAME_DIGITAL(__LINE__, E_MUX2_PIN)
+#endif
+#if PIN_EXISTS(E_STOP)
+ REPORT_NAME_DIGITAL(__LINE__, E_STOP_PIN)
+#endif
+#if PIN_EXISTS(E0_ATT)
+ REPORT_NAME_DIGITAL(__LINE__, E0_ATT_PIN)
+#endif
+#if PIN_EXISTS(E0_AUTO_FAN)
+ REPORT_NAME_DIGITAL(__LINE__, E0_AUTO_FAN_PIN)
+#endif
+#if PIN_EXISTS(E0_CS)
+ REPORT_NAME_DIGITAL(__LINE__, E0_CS_PIN)
+#endif
+#if PIN_EXISTS(E0_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, E0_DIR_PIN)
+#endif
+#if PIN_EXISTS(E0_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, E0_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(E0_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, E0_MS1_PIN)
+#endif
+#if PIN_EXISTS(E0_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, E0_MS2_PIN)
+#endif
+#if PIN_EXISTS(E0_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, E0_MS3_PIN)
+#endif
+#if PIN_EXISTS(E0_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, E0_STEP_PIN)
+#endif
+#if PIN_EXISTS(E1_AUTO_FAN)
+ REPORT_NAME_DIGITAL(__LINE__, E1_AUTO_FAN_PIN)
+#endif
+#if PIN_EXISTS(E1_CS)
+ REPORT_NAME_DIGITAL(__LINE__, E1_CS_PIN)
+#endif
+#if PIN_EXISTS(E1_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, E1_DIR_PIN)
+#endif
+#if PIN_EXISTS(E1_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, E1_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(E1_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, E1_MS1_PIN)
+#endif
+#if PIN_EXISTS(E1_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, E1_MS2_PIN)
+#endif
+#if PIN_EXISTS(E1_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, E1_MS3_PIN)
+#endif
+#if PIN_EXISTS(E1_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, E1_STEP_PIN)
+#endif
+#if PIN_EXISTS(E2_AUTO_FAN)
+ REPORT_NAME_DIGITAL(__LINE__, E2_AUTO_FAN_PIN)
+#endif
+#if PIN_EXISTS(E2_CS)
+ REPORT_NAME_DIGITAL(__LINE__, E2_CS_PIN)
+#endif
+#if PIN_EXISTS(E2_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, E2_DIR_PIN)
+#endif
+#if PIN_EXISTS(E2_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, E2_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(E2_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, E2_MS1_PIN)
+#endif
+#if PIN_EXISTS(E2_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, E2_MS2_PIN)
+#endif
+#if PIN_EXISTS(E2_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, E2_MS3_PIN)
+#endif
+#if PIN_EXISTS(E2_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, E2_STEP_PIN)
+#endif
+#if PIN_EXISTS(E3_AUTO_FAN)
+ REPORT_NAME_DIGITAL(__LINE__, E3_AUTO_FAN_PIN)
+#endif
+#if PIN_EXISTS(E3_CS)
+ REPORT_NAME_DIGITAL(__LINE__, E3_CS_PIN)
+#endif
+#if PIN_EXISTS(E3_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, E3_DIR_PIN)
+#endif
+#if PIN_EXISTS(E3_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, E3_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(E3_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, E3_MS1_PIN)
+#endif
+#if PIN_EXISTS(E3_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, E3_MS2_PIN)
+#endif
+#if PIN_EXISTS(E3_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, E3_MS3_PIN)
+#endif
+#if PIN_EXISTS(E3_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, E3_STEP_PIN)
+#endif
+#if PIN_EXISTS(E4_AUTO_FAN)
+ REPORT_NAME_DIGITAL(__LINE__, E4_AUTO_FAN_PIN)
+#endif
+#if PIN_EXISTS(E4_CS)
+ REPORT_NAME_DIGITAL(__LINE__, E4_CS_PIN)
+#endif
+#if PIN_EXISTS(E4_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, E4_DIR_PIN)
+#endif
+#if PIN_EXISTS(E4_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, E4_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(E4_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, E4_MS1_PIN)
+#endif
+#if PIN_EXISTS(E4_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, E4_MS2_PIN)
+#endif
+#if PIN_EXISTS(E4_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, E4_MS3_PIN)
+#endif
+#if PIN_EXISTS(E4_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, E4_STEP_PIN)
+#endif
+#if PIN_EXISTS(E5_AUTO_FAN)
+ REPORT_NAME_DIGITAL(__LINE__, E5_AUTO_FAN_PIN)
+#endif
+#if PIN_EXISTS(E5_CS)
+ REPORT_NAME_DIGITAL(__LINE__, E5_CS_PIN)
+#endif
+#if PIN_EXISTS(E5_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, E5_DIR_PIN)
+#endif
+#if PIN_EXISTS(E5_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, E5_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(E5_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, E5_MS1_PIN)
+#endif
+#if PIN_EXISTS(E5_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, E5_MS2_PIN)
+#endif
+#if PIN_EXISTS(E5_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, E5_MS3_PIN)
+#endif
+#if PIN_EXISTS(E5_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, E5_STEP_PIN)
+#endif
+#if PIN_EXISTS(E6_AUTO_FAN)
+ REPORT_NAME_DIGITAL(__LINE__, E6_AUTO_FAN_PIN)
+#endif
+#if PIN_EXISTS(E6_CS)
+ REPORT_NAME_DIGITAL(__LINE__, E6_CS_PIN)
+#endif
+#if PIN_EXISTS(E6_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, E6_DIR_PIN)
+#endif
+#if PIN_EXISTS(E6_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, E6_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(E6_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, E6_MS1_PIN)
+#endif
+#if PIN_EXISTS(E6_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, E6_MS2_PIN)
+#endif
+#if PIN_EXISTS(E6_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, E6_MS3_PIN)
+#endif
+#if PIN_EXISTS(E6_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, E6_STEP_PIN)
+#endif
+#if PIN_EXISTS(E7_AUTO_FAN)
+ REPORT_NAME_DIGITAL(__LINE__, E7_AUTO_FAN_PIN)
+#endif
+#if PIN_EXISTS(E7_CS)
+ REPORT_NAME_DIGITAL(__LINE__, E7_CS_PIN)
+#endif
+#if PIN_EXISTS(E7_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, E7_DIR_PIN)
+#endif
+#if PIN_EXISTS(E7_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, E7_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(E7_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, E7_MS1_PIN)
+#endif
+#if PIN_EXISTS(E7_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, E7_MS2_PIN)
+#endif
+#if PIN_EXISTS(E7_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, E7_MS3_PIN)
+#endif
+#if PIN_EXISTS(E7_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, E7_STEP_PIN)
+#endif
+#if defined(ENET_CRS) && ENET_CRS >= 0
+ REPORT_NAME_DIGITAL(__LINE__, ENET_CRS)
+#endif
+#if defined(ENET_MDIO) && ENET_MDIO >= 0
+ REPORT_NAME_DIGITAL(__LINE__, ENET_MDIO)
+#endif
+#if defined(ENET_MOC) && ENET_MOC >= 0
+ REPORT_NAME_DIGITAL(__LINE__, ENET_MOC)
+#endif
+#if defined(ENET_RX_ER) && ENET_RX_ER >= 0
+ REPORT_NAME_DIGITAL(__LINE__, ENET_RX_ER)
+#endif
+#if defined(ENET_RXD0) && ENET_RXD0 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, ENET_RXD0)
+#endif
+#if defined(ENET_RXD1) && ENET_RXD1 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, ENET_RXD1)
+#endif
+#if defined(ENET_TX_EN) && ENET_TX_EN >= 0
+ REPORT_NAME_DIGITAL(__LINE__, ENET_TX_EN)
+#endif
+#if defined(ENET_TXD0) && ENET_TXD0 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, ENET_TXD0)
+#endif
+#if defined(ENET_TXD1) && ENET_TXD1 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, ENET_TXD1)
+#endif
+#if PIN_EXISTS(EXP_VOLTAGE_LEVEL)
+ REPORT_NAME_DIGITAL(__LINE__, EXP_VOLTAGE_LEVEL_PIN)
+#endif
+
+#if defined(EXT_AUX_A0_IO) && EXT_AUX_A0_IO >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXT_AUX_A0_IO)
+#endif
+#if defined(EXT_AUX_A1_IO) && EXT_AUX_A1_IO >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXT_AUX_A1_IO)
+#endif
+#if defined(EXT_AUX_A2_IO) && EXT_AUX_A2_IO >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXT_AUX_A2_IO)
+#endif
+#if defined(EXT_AUX_A3_IO) && EXT_AUX_A3_IO >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXT_AUX_A3_IO)
+#endif
+#if defined(EXT_AUX_A4_IO) && EXT_AUX_A4_IO >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXT_AUX_A4_IO)
+#endif
+#if defined(EXT_AUX_PWM_D24) && EXT_AUX_PWM_D24 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXT_AUX_PWM_D24)
+#endif
+#if defined(EXT_AUX_RX1_D2) && EXT_AUX_RX1_D2 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXT_AUX_RX1_D2)
+#endif
+#if defined(EXT_AUX_SCL_D0) && EXT_AUX_SCL_D0 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXT_AUX_SCL_D0)
+#endif
+#if defined(EXT_AUX_SDA_D1) && EXT_AUX_SDA_D1 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXT_AUX_SDA_D1)
+#endif
+#if defined(EXT_AUX_TX1_D3) && EXT_AUX_TX1_D3 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXT_AUX_TX1_D3)
+#endif
+#if defined(EXTRUDER_0_AUTO_FAN) && EXTRUDER_0_AUTO_FAN >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXTRUDER_0_AUTO_FAN)
+#endif
+#if defined(EXTRUDER_1_AUTO_FAN) && EXTRUDER_1_AUTO_FAN >= 0
+ REPORT_NAME_DIGITAL(__LINE__, EXTRUDER_1_AUTO_FAN)
+#endif
+#if PIN_EXISTS(FAN)
+ REPORT_NAME_DIGITAL(__LINE__, FAN_PIN)
+#endif
+#if PIN_EXISTS(FAN1)
+ REPORT_NAME_DIGITAL(__LINE__, FAN1_PIN)
+#endif
+#if PIN_EXISTS(FAN2)
+ REPORT_NAME_DIGITAL(__LINE__, FAN2_PIN)
+#endif
+#if PIN_EXISTS(FAN3)
+ REPORT_NAME_DIGITAL(__LINE__, FAN3_PIN)
+#endif
+#if PIN_EXISTS(FAN4)
+ REPORT_NAME_DIGITAL(__LINE__, FAN4_PIN)
+#endif
+#if PIN_EXISTS(FAN5)
+ REPORT_NAME_DIGITAL(__LINE__, FAN5_PIN)
+#endif
+#if PIN_EXISTS(FAN6)
+ REPORT_NAME_DIGITAL(__LINE__, FAN6_PIN)
+#endif
+#if PIN_EXISTS(FAN7)
+ REPORT_NAME_DIGITAL(__LINE__, FAN7_PIN)
+#endif
+#if PIN_EXISTS(FAN_MUX0)
+ REPORT_NAME_DIGITAL(__LINE__, FAN_MUX0_PIN)
+#endif
+#if PIN_EXISTS(FAN_MUX1)
+ REPORT_NAME_DIGITAL(__LINE__, FAN_MUX1_PIN)
+#endif
+#if PIN_EXISTS(FAN_MUX2)
+ REPORT_NAME_DIGITAL(__LINE__, FAN_MUX2_PIN)
+#endif
+#if PIN_EXISTS(POWER_LOSS)
+ REPORT_NAME_DIGITAL(__LINE__, POWER_LOSS_PIN)
+#endif
+#if PIN_EXISTS(FIL_RUNOUT)
+ REPORT_NAME_DIGITAL(__LINE__, FIL_RUNOUT_PIN)
+#endif
+#if PIN_EXISTS(FIL_RUNOUT2)
+ REPORT_NAME_DIGITAL(__LINE__, FIL_RUNOUT2_PIN)
+#endif
+#if PIN_EXISTS(FIL_RUNOUT3)
+ REPORT_NAME_DIGITAL(__LINE__, FIL_RUNOUT3_PIN)
+#endif
+#if PIN_EXISTS(FIL_RUNOUT4)
+ REPORT_NAME_DIGITAL(__LINE__, FIL_RUNOUT4_PIN)
+#endif
+#if PIN_EXISTS(FIL_RUNOUT5)
+ REPORT_NAME_DIGITAL(__LINE__, FIL_RUNOUT5_PIN)
+#endif
+#if PIN_EXISTS(FIL_RUNOUT6)
+ REPORT_NAME_DIGITAL(__LINE__, FIL_RUNOUT6_PIN)
+#endif
+#if PIN_EXISTS(FIL_RUNOUT7)
+ REPORT_NAME_DIGITAL(__LINE__, FIL_RUNOUT7_PIN)
+#endif
+#if PIN_EXISTS(FIL_RUNOUT8)
+ REPORT_NAME_DIGITAL(__LINE__, FIL_RUNOUT8_PIN)
+#endif
+#if PIN_EXISTS(HEATER_0)
+ REPORT_NAME_DIGITAL(__LINE__, HEATER_0_PIN)
+#endif
+#if PIN_EXISTS(HEATER_1)
+ REPORT_NAME_DIGITAL(__LINE__, HEATER_1_PIN)
+#endif
+#if PIN_EXISTS(HEATER_2)
+ REPORT_NAME_DIGITAL(__LINE__, HEATER_2_PIN)
+#endif
+#if PIN_EXISTS(HEATER_3)
+ REPORT_NAME_DIGITAL(__LINE__, HEATER_3_PIN)
+#endif
+#if PIN_EXISTS(HEATER_4)
+ REPORT_NAME_DIGITAL(__LINE__, HEATER_4_PIN)
+#endif
+#if PIN_EXISTS(HEATER_5)
+ REPORT_NAME_DIGITAL(__LINE__, HEATER_5_PIN)
+#endif
+#if PIN_EXISTS(HEATER_6)
+ REPORT_NAME_DIGITAL(__LINE__, HEATER_6_PIN)
+#endif
+#if PIN_EXISTS(HEATER_7)
+ REPORT_NAME_DIGITAL(__LINE__, HEATER_7_PIN)
+#endif
+#if PIN_EXISTS(HEATER_BED)
+ REPORT_NAME_DIGITAL(__LINE__, HEATER_BED_PIN)
+#endif
+#if PIN_EXISTS(HEATER_CHAMBER)
+ REPORT_NAME_DIGITAL(__LINE__, HEATER_CHAMBER_PIN)
+#endif
+#if PIN_EXISTS(HOME)
+ REPORT_NAME_DIGITAL(__LINE__, HOME_PIN)
+#endif
+#if PIN_EXISTS(I2C_SCL)
+ REPORT_NAME_DIGITAL(__LINE__, I2C_SCL_PIN)
+#endif
+#if PIN_EXISTS(I2C_SDA)
+ REPORT_NAME_DIGITAL(__LINE__, I2C_SDA_PIN)
+#endif
+#if PIN_EXISTS(KILL)
+ REPORT_NAME_DIGITAL(__LINE__, KILL_PIN)
+#endif
+#if PIN_EXISTS(LCD_BACKLIGHT)
+ REPORT_NAME_DIGITAL(__LINE__, LCD_BACKLIGHT_PIN)
+#endif
+#if defined(LCD_PINS_D4) && LCD_PINS_D4 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, LCD_PINS_D4)
+#endif
+#if defined(LCD_PINS_D5) && LCD_PINS_D5 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, LCD_PINS_D5)
+#endif
+#if defined(LCD_PINS_D6) && LCD_PINS_D6 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, LCD_PINS_D6)
+#endif
+#if defined(LCD_PINS_D7) && LCD_PINS_D7 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, LCD_PINS_D7)
+#endif
+#if defined(LCD_PINS_ENABLE) && LCD_PINS_ENABLE >= 0
+ REPORT_NAME_DIGITAL(__LINE__, LCD_PINS_ENABLE)
+#endif
+#if defined(LCD_PINS_RS) && LCD_PINS_RS >= 0
+ REPORT_NAME_DIGITAL(__LINE__, LCD_PINS_RS)
+#endif
+#if defined(LCD_SDSS) && LCD_SDSS >= 0
+ REPORT_NAME_DIGITAL(__LINE__, LCD_SDSS)
+#endif
+#if PIN_EXISTS(LED_GREEN)
+ REPORT_NAME_DIGITAL(__LINE__, LED_GREEN_PIN)
+#endif
+#if PIN_EXISTS(LED)
+ REPORT_NAME_DIGITAL(__LINE__, LED_PIN)
+#endif
+#if PIN_EXISTS(LED_RED)
+ REPORT_NAME_DIGITAL(__LINE__, LED_RED_PIN)
+#endif
+#if PIN_EXISTS(MAX6675_DO)
+ REPORT_NAME_DIGITAL(__LINE__, MAX6675_DO_PIN)
+#endif
+#if PIN_EXISTS(MAX6675_SCK)
+ REPORT_NAME_DIGITAL(__LINE__, MAX6675_SCK_PIN)
+#endif
+#if PIN_EXISTS(MAX6675_SS)
+ REPORT_NAME_DIGITAL(__LINE__, MAX6675_SS_PIN)
+#endif
+#if PIN_EXISTS(MAX6675_SS2)
+ REPORT_NAME_DIGITAL(__LINE__, MAX6675_SS2_PIN)
+#endif
+#if PIN_EXISTS(MAX7219_CLK)
+ REPORT_NAME_DIGITAL(__LINE__, MAX7219_CLK_PIN)
+#endif
+#if PIN_EXISTS(MAX7219_DIN)
+ REPORT_NAME_DIGITAL(__LINE__, MAX7219_DIN_PIN)
+#endif
+#if PIN_EXISTS(MAX7219_LOAD)
+ REPORT_NAME_DIGITAL(__LINE__, MAX7219_LOAD_PIN)
+#endif
+
+// #if defined(MISO) && MISO >= 0
+// REPORT_NAME_DIGITAL(__LINE__, MISO)
+// #endif
+#if PIN_EXISTS(MISO)
+ REPORT_NAME_DIGITAL(__LINE__, SD_MISO_PIN)
+#endif
+#if PIN_EXISTS(MOSFET_A)
+ REPORT_NAME_DIGITAL(__LINE__, MOSFET_A_PIN)
+#endif
+#if PIN_EXISTS(MOSFET_B)
+ REPORT_NAME_DIGITAL(__LINE__, MOSFET_B_PIN)
+#endif
+#if PIN_EXISTS(MOSFET_C)
+ REPORT_NAME_DIGITAL(__LINE__, MOSFET_C_PIN)
+#endif
+#if PIN_EXISTS(MOSFET_D)
+ REPORT_NAME_DIGITAL(__LINE__, MOSFET_D_PIN)
+#endif
+// #if defined(MOSI) && MOSI >= 0
+// REPORT_NAME_DIGITAL(__LINE__, MOSI)
+// #endif
+#if PIN_EXISTS(MOSI)
+ REPORT_NAME_DIGITAL(__LINE__, SD_MOSI_PIN)
+#endif
+#if PIN_EXISTS(MOTOR_CURRENT_PWM_E)
+ REPORT_NAME_DIGITAL(__LINE__, MOTOR_CURRENT_PWM_E_PIN)
+#endif
+#if PIN_EXISTS(MOTOR_CURRENT_PWM_X)
+ REPORT_NAME_DIGITAL(__LINE__, MOTOR_CURRENT_PWM_X_PIN)
+#endif
+#if PIN_EXISTS(MOTOR_CURRENT_PWM_Y)
+ REPORT_NAME_DIGITAL(__LINE__, MOTOR_CURRENT_PWM_Y_PIN)
+#endif
+#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
+ REPORT_NAME_DIGITAL(__LINE__, MOTOR_CURRENT_PWM_XY_PIN)
+#endif
+#if PIN_EXISTS(MOTOR_CURRENT_PWM_X)
+ REPORT_NAME_DIGITAL(__LINE__, MOTOR_CURRENT_PWM_X_PIN)
+#endif
+#if PIN_EXISTS(MOTOR_CURRENT_PWM_Y)
+ REPORT_NAME_DIGITAL(__LINE__, MOTOR_CURRENT_PWM_Y_PIN)
+#endif
+#if PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
+ REPORT_NAME_DIGITAL(__LINE__, MOTOR_CURRENT_PWM_Z_PIN)
+#endif
+#if PIN_EXISTS(MOTOR_FAULT)
+ REPORT_NAME_DIGITAL(__LINE__, MOTOR_FAULT_PIN)
+#endif
+#if PIN_EXISTS(PHOTOGRAPH)
+ REPORT_NAME_DIGITAL(__LINE__, PHOTOGRAPH_PIN)
+#endif
+#if PIN_EXISTS(CHDK)
+ REPORT_NAME_DIGITAL(__LINE__, CHDK_PIN)
+#endif
+#if PIN_EXISTS(PS_ON)
+ REPORT_NAME_DIGITAL(__LINE__, PS_ON_PIN)
+#endif
+#if PIN_EXISTS(PWM_1)
+ REPORT_NAME_DIGITAL(__LINE__, PWM_1_PIN)
+#endif
+#if PIN_EXISTS(PWM_2)
+ REPORT_NAME_DIGITAL(__LINE__, PWM_2_PIN)
+#endif
+#if defined(REF_CLK) && REF_CLK >= 0
+ REPORT_NAME_DIGITAL(__LINE__, REF_CLK)
+#endif
+#if PIN_EXISTS(RAMPS_D10)
+ REPORT_NAME_DIGITAL(__LINE__, RAMPS_D10_PIN)
+#endif
+#if PIN_EXISTS(RAMPS_D8)
+ REPORT_NAME_DIGITAL(__LINE__, RAMPS_D8_PIN)
+#endif
+#if PIN_EXISTS(RAMPS_D9)
+ REPORT_NAME_DIGITAL(__LINE__, RAMPS_D9_PIN)
+#endif
+#if PIN_EXISTS(NEOPIXEL)
+ REPORT_NAME_DIGITAL(__LINE__, NEOPIXEL_PIN)
+#endif
+#if PIN_EXISTS(NEOPIXEL2)
+ REPORT_NAME_DIGITAL(__LINE__, NEOPIXEL2_PIN)
+#endif
+#if PIN_EXISTS(RGB_LED_R)
+ REPORT_NAME_DIGITAL(__LINE__, RGB_LED_R_PIN)
+#endif
+#if PIN_EXISTS(RGB_LED_G)
+ REPORT_NAME_DIGITAL(__LINE__, RGB_LED_G_PIN)
+#endif
+#if PIN_EXISTS(RGB_LED_B)
+ REPORT_NAME_DIGITAL(__LINE__, RGB_LED_B_PIN)
+#endif
+#if PIN_EXISTS(RGB_LED_W)
+ REPORT_NAME_DIGITAL(__LINE__, RGB_LED_W_PIN)
+#endif
+#if PIN_EXISTS(RX_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, RX_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(SAFETY_TRIGGERED)
+ REPORT_NAME_DIGITAL(__LINE__, SAFETY_TRIGGERED_PIN)
+#endif
+// #if defined(SCK) && SCK >= 0
+// REPORT_NAME_DIGITAL(__LINE__, SCK)
+// #endif
+#if PIN_EXISTS(SCK)
+ REPORT_NAME_DIGITAL(__LINE__, SD_SCK_PIN)
+#endif
+// #if defined(SCL) && SCL >= 0
+// REPORT_NAME_DIGITAL(__LINE__, SCL)
+// #endif
+#if PIN_EXISTS(SD_DETECT)
+ REPORT_NAME_DIGITAL(__LINE__, SD_DETECT_PIN)
+#endif
+// #if defined(SDA) && SDA >= 0
+// REPORT_NAME_DIGITAL(__LINE__, SDA)
+// #endif
+#if PIN_EXISTS(SDPOWER)
+ REPORT_NAME_DIGITAL(__LINE__, SDPOWER_PIN)
+#endif
+#if defined(SDSS) && SDSS >= 0
+ REPORT_NAME_DIGITAL(__LINE__, SDSS)
+#endif
+#if defined(SERVO0) && SERVO0 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, SERVO0)
+#endif
+#if PIN_EXISTS(SERVO0)
+ REPORT_NAME_DIGITAL(__LINE__, SERVO0_PIN)
+#endif
+#if PIN_EXISTS(SERVO1)
+ REPORT_NAME_DIGITAL(__LINE__, SERVO1_PIN)
+#endif
+#if PIN_EXISTS(SERVO2)
+ REPORT_NAME_DIGITAL(__LINE__, SERVO2_PIN)
+#endif
+#if PIN_EXISTS(SERVO3)
+ REPORT_NAME_DIGITAL(__LINE__, SERVO3_PIN)
+#endif
+#if PIN_EXISTS(SHIFT_CLK)
+ REPORT_NAME_DIGITAL(__LINE__, SHIFT_CLK_PIN)
+#endif
+#if PIN_EXISTS(SHIFT_EN)
+ REPORT_NAME_DIGITAL(__LINE__, SHIFT_EN_PIN)
+#endif
+#if PIN_EXISTS(SHIFT_LD)
+ REPORT_NAME_DIGITAL(__LINE__, SHIFT_LD_PIN)
+#endif
+#if PIN_EXISTS(SHIFT_OUT)
+ REPORT_NAME_DIGITAL(__LINE__, SHIFT_OUT_PIN)
+#endif
+#if PIN_EXISTS(SLED)
+ REPORT_NAME_DIGITAL(__LINE__, SLED_PIN)
+#endif
+#if PIN_EXISTS(SLEEP_WAKE)
+ REPORT_NAME_DIGITAL(__LINE__, SLEEP_WAKE_PIN)
+#endif
+#if PIN_EXISTS(SOL0)
+ REPORT_NAME_DIGITAL(__LINE__, SOL0_PIN)
+#endif
+#if PIN_EXISTS(SOL1)
+ REPORT_NAME_DIGITAL(__LINE__, SOL1_PIN)
+#endif
+#if PIN_EXISTS(SOL2)
+ REPORT_NAME_DIGITAL(__LINE__, SOL2_PIN)
+#endif
+#if PIN_EXISTS(SOL3)
+ REPORT_NAME_DIGITAL(__LINE__, SOL3_PIN)
+#endif
+#if PIN_EXISTS(SOL4)
+ REPORT_NAME_DIGITAL(__LINE__, SOL4_PIN)
+#endif
+#if PIN_EXISTS(SOL5)
+ REPORT_NAME_DIGITAL(__LINE__, SOL5_PIN)
+#endif
+#if PIN_EXISTS(SOL6)
+ REPORT_NAME_DIGITAL(__LINE__, SOL6_PIN)
+#endif
+#if PIN_EXISTS(SOL7)
+ REPORT_NAME_DIGITAL(__LINE__, SOL7_PIN)
+#endif
+#if defined(SPARE_IO) && SPARE_IO >= 0
+ REPORT_NAME_DIGITAL(__LINE__, SPARE_IO)
+#endif
+#if defined(SPI_EEPROM1_CS) && SPI_EEPROM1_CS >= 0
+ REPORT_NAME_DIGITAL(__LINE__, SPI_EEPROM1_CS)
+#endif
+#if defined(SPI_EEPROM2_CS) && SPI_EEPROM2_CS >= 0
+ REPORT_NAME_DIGITAL(__LINE__, SPI_EEPROM2_CS)
+#endif
+#if defined(SPI_FLASH_CS) && SPI_FLASH_CS >= 0
+ REPORT_NAME_DIGITAL(__LINE__, SPI_FLASH_CS)
+#endif
+#if PIN_EXISTS(SPINDLE_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, SPINDLE_DIR_PIN)
+#endif
+#if PIN_EXISTS(SPINDLE_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, SPINDLE_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(SPINDLE_LASER_ENA)
+ REPORT_NAME_DIGITAL(__LINE__, SPINDLE_LASER_ENA_PIN)
+#endif
+#if PIN_EXISTS(SPINDLE_LASER_PWM)
+ REPORT_NAME_DIGITAL(__LINE__, SPINDLE_LASER_PWM_PIN)
+#endif
+#if PIN_EXISTS(SR_CLK)
+ REPORT_NAME_DIGITAL(__LINE__, SR_CLK_PIN)
+#endif
+#if PIN_EXISTS(SR_DATA)
+ REPORT_NAME_DIGITAL(__LINE__, SR_DATA_PIN)
+#endif
+#if PIN_EXISTS(SR_STROBE)
+ REPORT_NAME_DIGITAL(__LINE__, SR_STROBE_PIN)
+#endif
+#if PIN_EXISTS(SS)
+ REPORT_NAME_DIGITAL(__LINE__, SD_SS_PIN)
+#endif
+#if PIN_EXISTS(STAT_LED_BLUE)
+ REPORT_NAME_DIGITAL(__LINE__, STAT_LED_BLUE_PIN)
+#endif
+#if defined(STAT_LED_RED_LED) && STAT_LED_RED_LED >= 0
+ REPORT_NAME_DIGITAL(__LINE__, STAT_LED_RED_LED)
+#endif
+#if PIN_EXISTS(STAT_LED_RED)
+ REPORT_NAME_DIGITAL(__LINE__, STAT_LED_RED_PIN)
+#endif
+#if PIN_EXISTS(STEPPER_RESET)
+ REPORT_NAME_DIGITAL(__LINE__, STEPPER_RESET_PIN)
+#endif
+#if PIN_EXISTS(SUICIDE)
+ REPORT_NAME_DIGITAL(__LINE__, SUICIDE_PIN)
+#endif
+#if PIN_EXISTS(THERMO_CS1)
+ REPORT_NAME_DIGITAL(__LINE__, THERMO_CS1_PIN)
+#endif
+#if PIN_EXISTS(THERMO_CS2)
+ REPORT_NAME_DIGITAL(__LINE__, THERMO_CS2_PIN)
+#endif
+#if PIN_EXISTS(THERMO_DO)
+ REPORT_NAME_DIGITAL(__LINE__, THERMO_DO_PIN)
+#endif
+#if PIN_EXISTS(THERMO_SCK)
+ REPORT_NAME_DIGITAL(__LINE__, THERMO_SCK_PIN)
+#endif
+#if PIN_EXISTS(TLC_BLANK)
+ REPORT_NAME_DIGITAL(__LINE__, TLC_BLANK_PIN)
+#endif
+#if PIN_EXISTS(TLC_CLOCK)
+ REPORT_NAME_DIGITAL(__LINE__, TLC_CLOCK_PIN)
+#endif
+#if PIN_EXISTS(TLC_DATA)
+ REPORT_NAME_DIGITAL(__LINE__, TLC_DATA_PIN)
+#endif
+#if PIN_EXISTS(TLC_XLAT)
+ REPORT_NAME_DIGITAL(__LINE__, TLC_XLAT_PIN)
+#endif
+#if PIN_EXISTS(TOOL_0)
+ REPORT_NAME_DIGITAL(__LINE__, TOOL_0_PIN)
+#endif
+#if PIN_EXISTS(TOOL_0_PWM)
+ REPORT_NAME_DIGITAL(__LINE__, TOOL_0_PWM_PIN)
+#endif
+#if PIN_EXISTS(TOOL_1)
+ REPORT_NAME_DIGITAL(__LINE__, TOOL_1_PIN)
+#endif
+#if PIN_EXISTS(TOOL_1_PWM)
+ REPORT_NAME_DIGITAL(__LINE__, TOOL_1_PWM_PIN)
+#endif
+#if PIN_EXISTS(TOOL_2)
+ REPORT_NAME_DIGITAL(__LINE__, TOOL_2_PIN)
+#endif
+#if PIN_EXISTS(TOOL_2_PWM)
+ REPORT_NAME_DIGITAL(__LINE__, TOOL_2_PWM_PIN)
+#endif
+#if PIN_EXISTS(TOOL_3)
+ REPORT_NAME_DIGITAL(__LINE__, TOOL_3_PIN)
+#endif
+#if PIN_EXISTS(TOOL_3_PWM)
+ REPORT_NAME_DIGITAL(__LINE__, TOOL_3_PWM_PIN)
+#endif
+#if PIN_EXISTS(TOOL_PWM)
+ REPORT_NAME_DIGITAL(__LINE__, TOOL_PWM_PIN)
+#endif
+#if PIN_EXISTS(TX_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, TX_ENABLE_PIN)
+#endif
+#if defined(UI1) && UI1 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, UI1)
+#endif
+#if defined(UI2) && UI2 >= 0
+ REPORT_NAME_DIGITAL(__LINE__, UI2)
+#endif
+#if defined(UNUSED_PWM) && UNUSED_PWM >= 0
+ REPORT_NAME_DIGITAL(__LINE__, UNUSED_PWM)
+#endif
+#if PIN_EXISTS(X_ATT)
+ REPORT_NAME_DIGITAL(__LINE__, X_ATT_PIN)
+#endif
+#if PIN_EXISTS(X_CS)
+ REPORT_NAME_DIGITAL(__LINE__, X_CS_PIN)
+#endif
+#if PIN_EXISTS(X_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, X_DIR_PIN)
+#endif
+#if PIN_EXISTS(X_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, X_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(X_MAX)
+ REPORT_NAME_DIGITAL(__LINE__, X_MAX_PIN)
+#endif
+#if PIN_EXISTS(X_MIN)
+ REPORT_NAME_DIGITAL(__LINE__, X_MIN_PIN)
+#endif
+#if PIN_EXISTS(X_DIAG)
+ REPORT_NAME_DIGITAL(__LINE__, X_DIAG_PIN)
+#endif
+#if PIN_EXISTS(X_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, X_MS1_PIN)
+#endif
+#if PIN_EXISTS(X_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, X_MS2_PIN)
+#endif
+#if PIN_EXISTS(X_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, X_MS3_PIN)
+#endif
+#if PIN_EXISTS(X_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, X_STEP_PIN)
+#endif
+#if PIN_EXISTS(X_STOP)
+ REPORT_NAME_DIGITAL(__LINE__, X_STOP_PIN)
+#endif
+#if PIN_EXISTS(X2_CS)
+ REPORT_NAME_DIGITAL(__LINE__, X2_CS_PIN)
+#endif
+#if PIN_EXISTS(X2_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, X2_DIR_PIN)
+#endif
+#if PIN_EXISTS(X2_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, X2_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(X2_MAX)
+ REPORT_NAME_DIGITAL(__LINE__, X2_MAX_PIN)
+#endif
+#if PIN_EXISTS(X2_MIN)
+ REPORT_NAME_DIGITAL(__LINE__, X2_MIN_PIN)
+#endif
+#if PIN_EXISTS(X2_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, X2_MS1_PIN)
+#endif
+#if PIN_EXISTS(X2_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, X2_MS2_PIN)
+#endif
+#if PIN_EXISTS(X2_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, X2_MS3_PIN)
+#endif
+#if PIN_EXISTS(X2_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, X2_STEP_PIN)
+#endif
+#if PIN_EXISTS(Y_ATT)
+ REPORT_NAME_DIGITAL(__LINE__, Y_ATT_PIN)
+#endif
+#if PIN_EXISTS(Y_CS)
+ REPORT_NAME_DIGITAL(__LINE__, Y_CS_PIN)
+#endif
+#if PIN_EXISTS(Y_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, Y_DIR_PIN)
+#endif
+#if PIN_EXISTS(Y_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, Y_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(Y_MAX)
+ REPORT_NAME_DIGITAL(__LINE__, Y_MAX_PIN)
+#endif
+#if PIN_EXISTS(Y_MIN)
+ REPORT_NAME_DIGITAL(__LINE__, Y_MIN_PIN)
+#endif
+#if PIN_EXISTS(Y_DIAG)
+ REPORT_NAME_DIGITAL(__LINE__, Y_DIAG_PIN)
+#endif
+#if PIN_EXISTS(Y_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, Y_MS1_PIN)
+#endif
+#if PIN_EXISTS(Y_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, Y_MS2_PIN)
+#endif
+#if PIN_EXISTS(Y_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, Y_MS3_PIN)
+#endif
+#if PIN_EXISTS(Y_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, Y_STEP_PIN)
+#endif
+#if PIN_EXISTS(Y_STOP)
+ REPORT_NAME_DIGITAL(__LINE__, Y_STOP_PIN)
+#endif
+#if PIN_EXISTS(Y2_CS)
+ REPORT_NAME_DIGITAL(__LINE__, Y2_CS_PIN)
+#endif
+#if PIN_EXISTS(Y2_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, Y2_DIR_PIN)
+#endif
+#if PIN_EXISTS(Y2_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, Y2_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(Y2_MAX)
+ REPORT_NAME_DIGITAL(__LINE__, Y2_MAX_PIN)
+#endif
+#if PIN_EXISTS(Y2_MIN)
+ REPORT_NAME_DIGITAL(__LINE__, Y2_MIN_PIN)
+#endif
+#if PIN_EXISTS(Y2_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, Y2_MS1_PIN)
+#endif
+#if PIN_EXISTS(Y2_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, Y2_MS2_PIN)
+#endif
+#if PIN_EXISTS(Y2_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, Y2_MS3_PIN)
+#endif
+#if PIN_EXISTS(Y2_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, Y2_STEP_PIN)
+#endif
+#if PIN_EXISTS(Z_ATT)
+ REPORT_NAME_DIGITAL(__LINE__, Z_ATT_PIN)
+#endif
+#if PIN_EXISTS(Z_CS)
+ REPORT_NAME_DIGITAL(__LINE__, Z_CS_PIN)
+#endif
+#if PIN_EXISTS(Z_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, Z_DIR_PIN)
+#endif
+#if PIN_EXISTS(Z_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, Z_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(Z_MAX)
+ REPORT_NAME_DIGITAL(__LINE__, Z_MAX_PIN)
+#endif
+#if PIN_EXISTS(Z_MIN)
+ REPORT_NAME_DIGITAL(__LINE__, Z_MIN_PIN)
+#endif
+#if PIN_EXISTS(Z_DIAG)
+ REPORT_NAME_DIGITAL(__LINE__, Z_DIAG_PIN)
+#endif
+#if PIN_EXISTS(Z_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, Z_MS1_PIN)
+#endif
+#if PIN_EXISTS(Z_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, Z_MS2_PIN)
+#endif
+#if PIN_EXISTS(Z_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, Z_MS3_PIN)
+#endif
+#if PIN_EXISTS(Z_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, Z_STEP_PIN)
+#endif
+#if PIN_EXISTS(Z_STOP)
+ REPORT_NAME_DIGITAL(__LINE__, Z_STOP_PIN)
+#endif
+#if PIN_EXISTS(Z2_CS)
+ REPORT_NAME_DIGITAL(__LINE__, Z2_CS_PIN)
+#endif
+#if PIN_EXISTS(Z2_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, Z2_DIR_PIN)
+#endif
+#if PIN_EXISTS(Z2_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, Z2_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(Z2_MAX)
+ REPORT_NAME_DIGITAL(__LINE__, Z2_MAX_PIN)
+#endif
+#if PIN_EXISTS(Z2_MIN)
+ REPORT_NAME_DIGITAL(__LINE__, Z2_MIN_PIN)
+#endif
+#if PIN_EXISTS(Z2_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, Z2_MS1_PIN)
+#endif
+#if PIN_EXISTS(Z2_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, Z2_MS2_PIN)
+#endif
+#if PIN_EXISTS(Z2_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, Z2_MS3_PIN)
+#endif
+#if PIN_EXISTS(Z2_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, Z2_STEP_PIN)
+#endif
+#if PIN_EXISTS(Z3_CS)
+ REPORT_NAME_DIGITAL(__LINE__, Z3_CS_PIN)
+#endif
+#if PIN_EXISTS(Z3_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, Z3_DIR_PIN)
+#endif
+#if PIN_EXISTS(Z3_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, Z3_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(Z3_MAX)
+ REPORT_NAME_DIGITAL(__LINE__, Z3_MAX_PIN)
+#endif
+#if PIN_EXISTS(Z3_MIN)
+ REPORT_NAME_DIGITAL(__LINE__, Z3_MIN_PIN)
+#endif
+#if PIN_EXISTS(Z3_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, Z3_MS1_PIN)
+#endif
+#if PIN_EXISTS(Z3_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, Z3_MS2_PIN)
+#endif
+#if PIN_EXISTS(Z3_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, Z3_MS3_PIN)
+#endif
+#if PIN_EXISTS(Z3_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, Z3_STEP_PIN)
+#endif
+#if PIN_EXISTS(Z4_CS)
+ REPORT_NAME_DIGITAL(__LINE__, Z4_CS_PIN)
+#endif
+#if PIN_EXISTS(Z4_DIR)
+ REPORT_NAME_DIGITAL(__LINE__, Z4_DIR_PIN)
+#endif
+#if PIN_EXISTS(Z4_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, Z4_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(Z4_MAX)
+ REPORT_NAME_DIGITAL(__LINE__, Z4_MAX_PIN)
+#endif
+#if PIN_EXISTS(Z4_MIN)
+ REPORT_NAME_DIGITAL(__LINE__, Z4_MIN_PIN)
+#endif
+#if PIN_EXISTS(Z4_MS1)
+ REPORT_NAME_DIGITAL(__LINE__, Z4_MS1_PIN)
+#endif
+#if PIN_EXISTS(Z4_MS2)
+ REPORT_NAME_DIGITAL(__LINE__, Z4_MS2_PIN)
+#endif
+#if PIN_EXISTS(Z4_MS3)
+ REPORT_NAME_DIGITAL(__LINE__, Z4_MS3_PIN)
+#endif
+#if PIN_EXISTS(Z4_STEP)
+ REPORT_NAME_DIGITAL(__LINE__, Z4_STEP_PIN)
+#endif
+#if PIN_EXISTS(Z_MIN_PROBE)
+ REPORT_NAME_DIGITAL(__LINE__, Z_MIN_PROBE_PIN)
+#endif
+#if PIN_EXISTS(ZRIB_V20_D6)
+ REPORT_NAME_DIGITAL(__LINE__, ZRIB_V20_D6_PIN)
+#endif
+#if PIN_EXISTS(ZRIB_V20_D9)
+ REPORT_NAME_DIGITAL(__LINE__, ZRIB_V20_D9_PIN)
+#endif
+#if PIN_EXISTS(X_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, X_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(X_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, X_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(X2_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, X2_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(X2_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, X2_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(Y_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, Y_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(Y_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, Y_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(Y2_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, Y2_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(Y2_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, Y2_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(Z_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, Z_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(Z_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, Z_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(Z2_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, Z2_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(Z2_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, Z2_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(Z3_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, Z3_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(Z3_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, Z3_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(Z4_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, Z4_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(Z4_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, Z4_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(E0_DIAG)
+ REPORT_NAME_DIGITAL(__LINE__, E0_DIAG_PIN)
+#endif
+#if PIN_EXISTS(E0_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, E0_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(E0_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, E0_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(E1_DIAG)
+ REPORT_NAME_DIGITAL(__LINE__, E1_DIAG_PIN)
+#endif
+#if PIN_EXISTS(E1_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, E1_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(E1_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, E1_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(E2_DIAG)
+ REPORT_NAME_DIGITAL(__LINE__, E2_DIAG_PIN)
+#endif
+#if PIN_EXISTS(E2_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, E2_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(E2_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, E2_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(E3_DIAG)
+ REPORT_NAME_DIGITAL(__LINE__, E3_DIAG_PIN)
+#endif
+#if PIN_EXISTS(E3_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, E3_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(E3_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, E3_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(E4_DIAG)
+ REPORT_NAME_DIGITAL(__LINE__, E4_DIAG_PIN)
+#endif
+#if PIN_EXISTS(E4_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, E4_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(E4_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, E4_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(E5_DIAG)
+ REPORT_NAME_DIGITAL(__LINE__, E5_DIAG_PIN)
+#endif
+#if PIN_EXISTS(E5_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, E5_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(E5_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, E5_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(E6_DIAG)
+ REPORT_NAME_DIGITAL(__LINE__, E6_DIAG_PIN)
+#endif
+#if PIN_EXISTS(E6_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, E6_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(E6_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, E6_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(E7_DIAG)
+ REPORT_NAME_DIGITAL(__LINE__, E7_DIAG_PIN)
+#endif
+#if PIN_EXISTS(E7_SERIAL_TX)
+ REPORT_NAME_DIGITAL(__LINE__, E7_SERIAL_TX_PIN)
+#endif
+#if PIN_EXISTS(E7_SERIAL_RX)
+ REPORT_NAME_DIGITAL(__LINE__, E7_SERIAL_RX_PIN)
+#endif
+#if PIN_EXISTS(L6470_CHAIN_SCK)
+ REPORT_NAME_DIGITAL(__LINE__, L6470_CHAIN_SCK_PIN)
+#endif
+#if PIN_EXISTS(L6470_CHAIN_MISO)
+ REPORT_NAME_DIGITAL(__LINE__, L6470_CHAIN_MISO_PIN)
+#endif
+#if PIN_EXISTS(L6470_CHAIN_MOSI)
+ REPORT_NAME_DIGITAL(__LINE__, L6470_CHAIN_MOSI_PIN)
+#endif
+#if PIN_EXISTS(L6470_CHAIN_SS)
+ REPORT_NAME_DIGITAL(__LINE__, L6470_CHAIN_SS_PIN)
+#endif
+#if PIN_EXISTS(L6470_RESET_CHAIN)
+ REPORT_NAME_DIGITAL(__LINE__, L6470_RESET_CHAIN_PIN)
+#endif
+#if PIN_EXISTS(FET_SAFETY)
+ REPORT_NAME_DIGITAL(__LINE__, FET_SAFETY_PIN)
+#endif
+#if PIN_EXISTS(TOUCH_MISO)
+ REPORT_NAME_DIGITAL(__LINE__, TOUCH_MISO_PIN)
+#endif
+#if PIN_EXISTS(TOUCH_MOSI)
+ REPORT_NAME_DIGITAL(__LINE__, TOUCH_MOSI_PIN)
+#endif
+#if PIN_EXISTS(TOUCH_SCK)
+ REPORT_NAME_DIGITAL(__LINE__, TOUCH_SCK_PIN)
+#endif
+#if PIN_EXISTS(TOUCH_CS)
+ REPORT_NAME_DIGITAL(__LINE__, TOUCH_CS_PIN)
+#endif
+#if PIN_EXISTS(TOUCH_INT)
+ REPORT_NAME_DIGITAL(__LINE__, TOUCH_INT_PIN)
+#endif
+#if PIN_EXISTS(USB_CS)
+ REPORT_NAME_DIGITAL(__LINE__, USB_CS_PIN)
+#endif
+#if PIN_EXISTS(USB_INTR)
+ REPORT_NAME_DIGITAL(__LINE__, USB_INTR_PIN)
+#endif
+#if PIN_EXISTS(MMU2_RST)
+ REPORT_NAME_DIGITAL(__LINE__, MMU2_RST_PIN)
+#endif
+#if PIN_EXISTS(CALIBRATION)
+ REPORT_NAME_DIGITAL(__LINE__, CALIBRATION_PIN)
+#endif
+#if PIN_EXISTS(SMART_EFFECTOR_MOD)
+ REPORT_NAME_DIGITAL(__LINE__, SMART_EFFECTOR_MOD_PIN)
+#endif
+#if PIN_EXISTS(CLOSED_LOOP_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, CLOSED_LOOP_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(CLOSED_LOOP_MOVE_COMPLETE)
+ REPORT_NAME_DIGITAL(__LINE__, CLOSED_LOOP_MOVE_COMPLETE_PIN)
+#endif
+#if PIN_EXISTS(ESP_WIFI_MODULE_RESET)
+ REPORT_NAME_DIGITAL(__LINE__, ESP_WIFI_MODULE_RESET_PIN)
+#endif
+#if PIN_EXISTS(ESP_WIFI_MODULE_ENABLE)
+ REPORT_NAME_DIGITAL(__LINE__, ESP_WIFI_MODULE_ENABLE_PIN)
+#endif
+#if PIN_EXISTS(ESP_WIFI_MODULE_GPIO0)
+ REPORT_NAME_DIGITAL(__LINE__, ESP_WIFI_MODULE_GPIO0_PIN)
+#endif
+#if PIN_EXISTS(ESP_WIFI_MODULE_GPIO2)
+ REPORT_NAME_DIGITAL(__LINE__, ESP_WIFI_MODULE_GPIO2_PIN)
+#endif
+// TFT PINS
+#if PIN_EXISTS(TFT_CS)
+ REPORT_NAME_DIGITAL(__LINE__, TFT_CS_PIN)
+#endif
+#if PIN_EXISTS(TFT_A0)
+ REPORT_NAME_DIGITAL(__LINE__, TFT_A0_PIN)
+#endif
+#if PIN_EXISTS(TFT_DC)
+ REPORT_NAME_DIGITAL(__LINE__, TFT_DC_PIN)
+#endif
+#if PIN_EXISTS(TFT_MISO)
+ REPORT_NAME_DIGITAL(__LINE__, TFT_MISO_PIN)
+#endif
+#if PIN_EXISTS(TFT_BACKLIGHT)
+ REPORT_NAME_DIGITAL(__LINE__, TFT_BACKLIGHT_PIN)
+#endif
+#if PIN_EXISTS(TFT_RESET)
+ REPORT_NAME_DIGITAL(__LINE__, TFT_RESET_PIN)
+#endif
diff --git a/Marlin/src/pins/pins_postprocess.h b/Marlin/src/pins/pins_postprocess.h
new file mode 100644
index 0000000..de70248
--- /dev/null
+++ b/Marlin/src/pins/pins_postprocess.h
@@ -0,0 +1,880 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+//
+// File: pins/pins_postprocess.h
+// Post-process pins according to configured settings
+//
+
+// Define certain undefined pins
+#ifndef X_MS1_PIN
+ #define X_MS1_PIN -1
+#endif
+#ifndef X_MS2_PIN
+ #define X_MS2_PIN -1
+#endif
+#ifndef X_MS3_PIN
+ #define X_MS3_PIN -1
+#endif
+#ifndef Y_MS1_PIN
+ #define Y_MS1_PIN -1
+#endif
+#ifndef Y_MS2_PIN
+ #define Y_MS2_PIN -1
+#endif
+#ifndef Y_MS3_PIN
+ #define Y_MS3_PIN -1
+#endif
+#ifndef Z_MS1_PIN
+ #define Z_MS1_PIN -1
+#endif
+#ifndef Z_MS2_PIN
+ #define Z_MS2_PIN -1
+#endif
+#ifndef Z_MS3_PIN
+ #define Z_MS3_PIN -1
+#endif
+#ifndef E0_MS1_PIN
+ #define E0_MS1_PIN -1
+#endif
+#ifndef E0_MS2_PIN
+ #define E0_MS2_PIN -1
+#endif
+#ifndef E0_MS3_PIN
+ #define E0_MS3_PIN -1
+#endif
+#ifndef E1_MS1_PIN
+ #define E1_MS1_PIN -1
+#endif
+#ifndef E1_MS2_PIN
+ #define E1_MS2_PIN -1
+#endif
+#ifndef E1_MS3_PIN
+ #define E1_MS3_PIN -1
+#endif
+#ifndef E2_MS1_PIN
+ #define E2_MS1_PIN -1
+#endif
+#ifndef E2_MS2_PIN
+ #define E2_MS2_PIN -1
+#endif
+#ifndef E2_MS3_PIN
+ #define E2_MS3_PIN -1
+#endif
+#ifndef E3_MS1_PIN
+ #define E3_MS1_PIN -1
+#endif
+#ifndef E3_MS2_PIN
+ #define E3_MS2_PIN -1
+#endif
+#ifndef E3_MS3_PIN
+ #define E3_MS3_PIN -1
+#endif
+#ifndef E4_MS1_PIN
+ #define E4_MS1_PIN -1
+#endif
+#ifndef E4_MS2_PIN
+ #define E4_MS2_PIN -1
+#endif
+#ifndef E4_MS3_PIN
+ #define E4_MS3_PIN -1
+#endif
+#ifndef E5_MS1_PIN
+ #define E5_MS1_PIN -1
+#endif
+#ifndef E5_MS2_PIN
+ #define E5_MS2_PIN -1
+#endif
+#ifndef E5_MS3_PIN
+ #define E5_MS3_PIN -1
+#endif
+#ifndef E6_MS1_PIN
+ #define E6_MS1_PIN -1
+#endif
+#ifndef E6_MS2_PIN
+ #define E6_MS2_PIN -1
+#endif
+#ifndef E6_MS3_PIN
+ #define E6_MS3_PIN -1
+#endif
+#ifndef E7_MS1_PIN
+ #define E7_MS1_PIN -1
+#endif
+#ifndef E7_MS2_PIN
+ #define E7_MS2_PIN -1
+#endif
+#ifndef E7_MS3_PIN
+ #define E7_MS3_PIN -1
+#endif
+
+#ifndef E0_STEP_PIN
+ #define E0_STEP_PIN -1
+#endif
+#ifndef E0_DIR_PIN
+ #define E0_DIR_PIN -1
+#endif
+#ifndef E0_ENABLE_PIN
+ #define E0_ENABLE_PIN -1
+#endif
+#ifndef E1_STEP_PIN
+ #define E1_STEP_PIN -1
+#endif
+#ifndef E1_DIR_PIN
+ #define E1_DIR_PIN -1
+#endif
+#ifndef E1_ENABLE_PIN
+ #define E1_ENABLE_PIN -1
+#endif
+#ifndef E2_STEP_PIN
+ #define E2_STEP_PIN -1
+#endif
+#ifndef E2_DIR_PIN
+ #define E2_DIR_PIN -1
+#endif
+#ifndef E2_ENABLE_PIN
+ #define E2_ENABLE_PIN -1
+#endif
+#ifndef E3_STEP_PIN
+ #define E3_STEP_PIN -1
+#endif
+#ifndef E3_DIR_PIN
+ #define E3_DIR_PIN -1
+#endif
+#ifndef E3_ENABLE_PIN
+ #define E3_ENABLE_PIN -1
+#endif
+#ifndef E4_STEP_PIN
+ #define E4_STEP_PIN -1
+#endif
+#ifndef E4_DIR_PIN
+ #define E4_DIR_PIN -1
+#endif
+#ifndef E4_ENABLE_PIN
+ #define E4_ENABLE_PIN -1
+#endif
+#ifndef E5_STEP_PIN
+ #define E5_STEP_PIN -1
+#endif
+#ifndef E5_DIR_PIN
+ #define E5_DIR_PIN -1
+#endif
+#ifndef E5_ENABLE_PIN
+ #define E5_ENABLE_PIN -1
+#endif
+#ifndef E6_STEP_PIN
+ #define E6_STEP_PIN -1
+#endif
+#ifndef E6_DIR_PIN
+ #define E6_DIR_PIN -1
+#endif
+#ifndef E6_ENABLE_PIN
+ #define E6_ENABLE_PIN -1
+#endif
+#ifndef E7_STEP_PIN
+ #define E7_STEP_PIN -1
+#endif
+#ifndef E7_DIR_PIN
+ #define E7_DIR_PIN -1
+#endif
+#ifndef E7_ENABLE_PIN
+ #define E7_ENABLE_PIN -1
+#endif
+
+//
+// Destroy unused CS pins
+//
+#if !AXIS_HAS_SPI(X)
+ #undef X_CS_PIN
+#endif
+#if !AXIS_HAS_SPI(Y)
+ #undef Y_CS_PIN
+#endif
+#if !AXIS_HAS_SPI(Z)
+ #undef Z_CS_PIN
+#endif
+#if E_STEPPERS && !AXIS_HAS_SPI(E0)
+ #undef E0_CS_PIN
+#endif
+#if E_STEPPERS > 1 && !AXIS_HAS_SPI(E1)
+ #undef E1_CS_PIN
+#endif
+#if E_STEPPERS > 2 && !AXIS_HAS_SPI(E2)
+ #undef E2_CS_PIN
+#endif
+#if E_STEPPERS > 3 && !AXIS_HAS_SPI(E3)
+ #undef E3_CS_PIN
+#endif
+#if E_STEPPERS > 4 && !AXIS_HAS_SPI(E4)
+ #undef E4_CS_PIN
+#endif
+#if E_STEPPERS > 5 && !AXIS_HAS_SPI(E5)
+ #undef E5_CS_PIN
+#endif
+#if E_STEPPERS > 6 && !AXIS_HAS_SPI(E6)
+ #undef E6_CS_PIN
+#endif
+#if E_STEPPERS > 7 && !AXIS_HAS_SPI(E7)
+ #undef E7_CS_PIN
+#endif
+
+#ifndef X_CS_PIN
+ #define X_CS_PIN -1
+#endif
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN -1
+#endif
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN -1
+#endif
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN -1
+#endif
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN -1
+#endif
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN -1
+#endif
+#ifndef E3_CS_PIN
+ #define E3_CS_PIN -1
+#endif
+#ifndef E4_CS_PIN
+ #define E4_CS_PIN -1
+#endif
+#ifndef E5_CS_PIN
+ #define E5_CS_PIN -1
+#endif
+#ifndef E6_CS_PIN
+ #define E6_CS_PIN -1
+#endif
+#ifndef E7_CS_PIN
+ #define E7_CS_PIN -1
+#endif
+
+#ifndef FAN_PIN
+ #define FAN_PIN -1
+#endif
+#define FAN0_PIN FAN_PIN
+#ifndef FAN1_PIN
+ #define FAN1_PIN -1
+#endif
+#ifndef FAN2_PIN
+ #define FAN2_PIN -1
+#endif
+#ifndef CONTROLLER_FAN_PIN
+ #define CONTROLLER_FAN_PIN -1
+#endif
+
+#ifndef FANMUX0_PIN
+ #define FANMUX0_PIN -1
+#endif
+#ifndef FANMUX1_PIN
+ #define FANMUX1_PIN -1
+#endif
+#ifndef FANMUX2_PIN
+ #define FANMUX2_PIN -1
+#endif
+
+#ifndef HEATER_0_PIN
+ #define HEATER_0_PIN -1
+#endif
+#ifndef HEATER_1_PIN
+ #define HEATER_1_PIN -1
+#endif
+#ifndef HEATER_2_PIN
+ #define HEATER_2_PIN -1
+#endif
+#ifndef HEATER_3_PIN
+ #define HEATER_3_PIN -1
+#endif
+#ifndef HEATER_4_PIN
+ #define HEATER_4_PIN -1
+#endif
+#ifndef HEATER_5_PIN
+ #define HEATER_5_PIN -1
+#endif
+#ifndef HEATER_6_PIN
+ #define HEATER_6_PIN -1
+#endif
+#ifndef HEATER_7_PIN
+ #define HEATER_7_PIN -1
+#endif
+#ifndef HEATER_BED_PIN
+ #define HEATER_BED_PIN -1
+#endif
+
+#ifndef TEMP_0_PIN
+ #define TEMP_0_PIN -1
+#endif
+#ifndef TEMP_1_PIN
+ #define TEMP_1_PIN -1
+#endif
+#ifndef TEMP_2_PIN
+ #define TEMP_2_PIN -1
+#endif
+#ifndef TEMP_3_PIN
+ #define TEMP_3_PIN -1
+#endif
+#ifndef TEMP_4_PIN
+ #define TEMP_4_PIN -1
+#endif
+#ifndef TEMP_5_PIN
+ #define TEMP_5_PIN -1
+#endif
+#ifndef TEMP_6_PIN
+ #define TEMP_6_PIN -1
+#endif
+#ifndef TEMP_7_PIN
+ #define TEMP_7_PIN -1
+#endif
+#ifndef TEMP_BED_PIN
+ #define TEMP_BED_PIN -1
+#endif
+
+#ifndef SD_DETECT_PIN
+ #define SD_DETECT_PIN -1
+#endif
+#ifndef SDPOWER_PIN
+ #define SDPOWER_PIN -1
+#endif
+#ifndef SDSS
+ #define SDSS -1
+#endif
+#ifndef LED_PIN
+ #define LED_PIN -1
+#endif
+#if DISABLED(PSU_CONTROL) || !defined(PS_ON_PIN)
+ #undef PS_ON_PIN
+ #define PS_ON_PIN -1
+#endif
+#ifndef KILL_PIN
+ #define KILL_PIN -1
+#endif
+#ifndef SUICIDE_PIN
+ #define SUICIDE_PIN -1
+#endif
+#ifndef SUICIDE_PIN_INVERTING
+ #define SUICIDE_PIN_INVERTING false
+#endif
+
+#ifndef NUM_SERVO_PLUGS
+ #define NUM_SERVO_PLUGS 4
+#endif
+
+//
+// Assign endstop pins for boards with only 3 connectors
+//
+#ifdef X_STOP_PIN
+ #if X_HOME_DIR < 0
+ #define X_MIN_PIN X_STOP_PIN
+ #ifndef X_MAX_PIN
+ #define X_MAX_PIN -1
+ #endif
+ #else
+ #define X_MAX_PIN X_STOP_PIN
+ #ifndef X_MIN_PIN
+ #define X_MIN_PIN -1
+ #endif
+ #endif
+#elif X_HOME_DIR < 0
+ #define X_STOP_PIN X_MIN_PIN
+#else
+ #define X_STOP_PIN X_MAX_PIN
+#endif
+
+#ifdef Y_STOP_PIN
+ #if Y_HOME_DIR < 0
+ #define Y_MIN_PIN Y_STOP_PIN
+ #ifndef Y_MAX_PIN
+ #define Y_MAX_PIN -1
+ #endif
+ #else
+ #define Y_MAX_PIN Y_STOP_PIN
+ #ifndef Y_MIN_PIN
+ #define Y_MIN_PIN -1
+ #endif
+ #endif
+#elif Y_HOME_DIR < 0
+ #define Y_STOP_PIN Y_MIN_PIN
+#else
+ #define Y_STOP_PIN Y_MAX_PIN
+#endif
+
+#ifdef Z_STOP_PIN
+ #if Z_HOME_DIR < 0
+ #define Z_MIN_PIN Z_STOP_PIN
+ #ifndef Z_MAX_PIN
+ #define Z_MAX_PIN -1
+ #endif
+ #else
+ #define Z_MAX_PIN Z_STOP_PIN
+ #ifndef Z_MIN_PIN
+ #define Z_MIN_PIN -1
+ #endif
+ #endif
+#elif Z_HOME_DIR < 0
+ #define Z_STOP_PIN Z_MIN_PIN
+#else
+ #define Z_STOP_PIN Z_MAX_PIN
+#endif
+
+//
+// Disable unused endstop / probe pins
+//
+#if !HAS_CUSTOM_PROBE_PIN
+ #undef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN -1
+#endif
+
+#if DISABLED(USE_XMAX_PLUG)
+ #undef X_MAX_PIN
+ #define X_MAX_PIN -1
+#endif
+
+#if DISABLED(USE_YMAX_PLUG)
+ #undef Y_MAX_PIN
+ #define Y_MAX_PIN -1
+#endif
+
+#if DISABLED(USE_ZMAX_PLUG)
+ #undef Z_MAX_PIN
+ #define Z_MAX_PIN -1
+#endif
+
+#if DISABLED(USE_XMIN_PLUG)
+ #undef X_MIN_PIN
+ #define X_MIN_PIN -1
+#endif
+
+#if DISABLED(USE_YMIN_PLUG)
+ #undef Y_MIN_PIN
+ #define Y_MIN_PIN -1
+#endif
+
+#if DISABLED(USE_ZMIN_PLUG)
+ #undef Z_MIN_PIN
+ #define Z_MIN_PIN -1
+#endif
+
+#if HAS_FILAMENT_SENSOR
+ #define FIL_RUNOUT1_PIN FIL_RUNOUT_PIN
+#else
+ #undef FIL_RUNOUT_PIN
+ #undef FIL_RUNOUT1_PIN
+#endif
+
+#ifndef LCD_PINS_D4
+ #define LCD_PINS_D4 -1
+#endif
+
+#if HAS_MARLINUI_HD44780 || TOUCH_UI_ULTIPANEL
+ #ifndef LCD_PINS_D5
+ #define LCD_PINS_D5 -1
+ #endif
+ #ifndef LCD_PINS_D6
+ #define LCD_PINS_D6 -1
+ #endif
+ #ifndef LCD_PINS_D7
+ #define LCD_PINS_D7 -1
+ #endif
+#endif
+
+/**
+ * Auto-Assignment for Dual X, Dual Y, Multi-Z Steppers
+ *
+ * By default X2 is assigned to the next open E plug
+ * on the board, then in order, Y2, Z2, Z3. These can be
+ * overridden in Configuration.h or Configuration_adv.h.
+ */
+
+#define __PEXI(p,q) PIN_EXISTS(E##p##_##q)
+#define _PEXI(p,q) __PEXI(p,q)
+#define __EPIN(p,q) E##p##_##q##_PIN
+#define _EPIN(p,q) __EPIN(p,q)
+#define DIAG_REMAPPED(p,q) (PIN_EXISTS(q) && _EPIN(p##_E_INDEX, DIAG) == q##_PIN)
+
+// The X2 axis, if any, should be the next open extruder port
+#define X2_E_INDEX E_STEPPERS
+
+#if EITHER(DUAL_X_CARRIAGE, X_DUAL_STEPPER_DRIVERS)
+ #ifndef X2_STEP_PIN
+ #define X2_STEP_PIN _EPIN(X2_E_INDEX, STEP)
+ #define X2_DIR_PIN _EPIN(X2_E_INDEX, DIR)
+ #define X2_ENABLE_PIN _EPIN(X2_E_INDEX, ENABLE)
+ #if X2_E_INDEX >= MAX_E_STEPPERS || !PIN_EXISTS(X2_STEP)
+ #error "No E stepper plug left for X2!"
+ #endif
+ #endif
+ #ifndef X2_MS1_PIN
+ #define X2_MS1_PIN _EPIN(X2_E_INDEX, MS1)
+ #endif
+ #ifndef X2_MS2_PIN
+ #define X2_MS2_PIN _EPIN(X2_E_INDEX, MS2)
+ #endif
+ #ifndef X2_MS3_PIN
+ #define X2_MS3_PIN _EPIN(X2_E_INDEX, MS3)
+ #endif
+ #if AXIS_HAS_SPI(X2) && !defined(X2_CS_PIN)
+ #define X2_CS_PIN _EPIN(X2_E_INDEX, CS)
+ #endif
+ #if AXIS_HAS_UART(X2)
+ #ifndef X2_SERIAL_TX_PIN
+ #define X2_SERIAL_TX_PIN _EPIN(X2_E_INDEX, SERIAL_TX)
+ #endif
+ #ifndef X2_SERIAL_RX_PIN
+ #define X2_SERIAL_RX_PIN _EPIN(X2_E_INDEX, SERIAL_RX)
+ #endif
+ #endif
+
+ //
+ // Auto-assign pins for stallGuard sensorless homing
+ //
+ #if defined(X2_STALL_SENSITIVITY) && ENABLED(X_DUAL_ENDSTOPS) && _PEXI(X2_E_INDEX, DIAG)
+ #define X2_DIAG_PIN _EPIN(X2_E_INDEX, DIAG)
+ #if DIAG_REMAPPED(X2, X_MIN) // If already remapped in the pins file...
+ #define X2_USE_ENDSTOP _XMIN_
+ #elif DIAG_REMAPPED(X2, Y_MIN)
+ #define X2_USE_ENDSTOP _YMIN_
+ #elif DIAG_REMAPPED(X2, Z_MIN)
+ #define X2_USE_ENDSTOP _ZMIN_
+ #elif DIAG_REMAPPED(X2, X_MAX)
+ #define X2_USE_ENDSTOP _XMAX_
+ #elif DIAG_REMAPPED(X2, Y_MAX)
+ #define X2_USE_ENDSTOP _YMAX_
+ #elif DIAG_REMAPPED(X2, Z_MAX)
+ #define X2_USE_ENDSTOP _ZMAX_
+ #else // Otherwise use the driver DIAG_PIN directly
+ #define _X2_USE_ENDSTOP(P) _E##P##_DIAG_
+ #define X2_USE_ENDSTOP _X2_USE_ENDSTOP(X2_E_INDEX)
+ #endif
+ #undef X2_DIAG_PIN
+ #endif
+
+ #define Y2_E_INDEX INCREMENT(X2_E_INDEX)
+#else
+ #define Y2_E_INDEX X2_E_INDEX
+#endif
+
+#ifndef X2_CS_PIN
+ #define X2_CS_PIN -1
+#endif
+#ifndef X2_MS1_PIN
+ #define X2_MS1_PIN -1
+#endif
+#ifndef X2_MS2_PIN
+ #define X2_MS2_PIN -1
+#endif
+#ifndef X2_MS3_PIN
+ #define X2_MS3_PIN -1
+#endif
+
+// The Y2 axis, if any, should be the next open extruder port
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
+ #ifndef Y2_STEP_PIN
+ #define Y2_STEP_PIN _EPIN(Y2_E_INDEX, STEP)
+ #define Y2_DIR_PIN _EPIN(Y2_E_INDEX, DIR)
+ #define Y2_ENABLE_PIN _EPIN(Y2_E_INDEX, ENABLE)
+ #if Y2_E_INDEX >= MAX_E_STEPPERS || !PIN_EXISTS(Y2_STEP)
+ #error "No E stepper plug left for Y2!"
+ #endif
+ #endif
+ #ifndef Y2_MS1_PIN
+ #define Y2_MS1_PIN _EPIN(Y2_E_INDEX, MS1)
+ #endif
+ #ifndef Y2_MS2_PIN
+ #define Y2_MS2_PIN _EPIN(Y2_E_INDEX, MS2)
+ #endif
+ #ifndef Y2_MS3_PIN
+ #define Y2_MS3_PIN _EPIN(Y2_E_INDEX, MS3)
+ #endif
+ #if AXIS_HAS_SPI(Y2) && !defined(Y2_CS_PIN)
+ #define Y2_CS_PIN _EPIN(Y2_E_INDEX, CS)
+ #endif
+ #if AXIS_HAS_UART(Y2)
+ #ifndef Y2_SERIAL_TX_PIN
+ #define Y2_SERIAL_TX_PIN _EPIN(Y2_E_INDEX, SERIAL_TX)
+ #endif
+ #ifndef Y2_SERIAL_RX_PIN
+ #define Y2_SERIAL_RX_PIN _EPIN(Y2_E_INDEX, SERIAL_RX)
+ #endif
+ #endif
+ #if defined(Y2_STALL_SENSITIVITY) && ENABLED(Y_DUAL_ENDSTOPS) && _PEXI(Y2_E_INDEX, DIAG)
+ #define Y2_DIAG_PIN _EPIN(Y2_E_INDEX, DIAG)
+ #if DIAG_REMAPPED(Y2, X_MIN)
+ #define Y2_USE_ENDSTOP _XMIN_
+ #elif DIAG_REMAPPED(Y2, Y_MIN)
+ #define Y2_USE_ENDSTOP _YMIN_
+ #elif DIAG_REMAPPED(Y2, Z_MIN)
+ #define Y2_USE_ENDSTOP _ZMIN_
+ #elif DIAG_REMAPPED(Y2, X_MAX)
+ #define Y2_USE_ENDSTOP _XMAX_
+ #elif DIAG_REMAPPED(Y2, Y_MAX)
+ #define Y2_USE_ENDSTOP _YMAX_
+ #elif DIAG_REMAPPED(Y2, Z_MAX)
+ #define Y2_USE_ENDSTOP _ZMAX_
+ #else
+ #define _Y2_USE_ENDSTOP(P) _E##P##_DIAG_
+ #define Y2_USE_ENDSTOP _Y2_USE_ENDSTOP(Y2_E_INDEX)
+ #endif
+ #undef Y2_DIAG_PIN
+ #endif
+ #define Z2_E_INDEX INCREMENT(Y2_E_INDEX)
+#else
+ #define Z2_E_INDEX Y2_E_INDEX
+#endif
+
+#ifndef Y2_CS_PIN
+ #define Y2_CS_PIN -1
+#endif
+#ifndef Y2_MS1_PIN
+ #define Y2_MS1_PIN -1
+#endif
+#ifndef Y2_MS2_PIN
+ #define Y2_MS2_PIN -1
+#endif
+#ifndef Y2_MS3_PIN
+ #define Y2_MS3_PIN -1
+#endif
+
+// The Z2 axis, if any, should be the next open extruder port
+#if NUM_Z_STEPPER_DRIVERS >= 2
+ #ifndef Z2_STEP_PIN
+ #define Z2_STEP_PIN _EPIN(Z2_E_INDEX, STEP)
+ #define Z2_DIR_PIN _EPIN(Z2_E_INDEX, DIR)
+ #define Z2_ENABLE_PIN _EPIN(Z2_E_INDEX, ENABLE)
+ #if Z2_E_INDEX >= MAX_E_STEPPERS || !PIN_EXISTS(Z2_STEP)
+ #error "No E stepper plug left for Z2!"
+ #endif
+ #endif
+ #ifndef Z2_MS1_PIN
+ #define Z2_MS1_PIN _EPIN(Z2_E_INDEX, MS1)
+ #endif
+ #ifndef Z2_MS2_PIN
+ #define Z2_MS2_PIN _EPIN(Z2_E_INDEX, MS2)
+ #endif
+ #ifndef Z2_MS3_PIN
+ #define Z2_MS3_PIN _EPIN(Z2_E_INDEX, MS3)
+ #endif
+ #if AXIS_HAS_SPI(Z2) && !defined(Z2_CS_PIN)
+ #define Z2_CS_PIN _EPIN(Z2_E_INDEX, CS)
+ #endif
+ #if AXIS_HAS_UART(Z2)
+ #ifndef Z2_SERIAL_TX_PIN
+ #define Z2_SERIAL_TX_PIN _EPIN(Z2_E_INDEX, SERIAL_TX)
+ #endif
+ #ifndef Z2_SERIAL_RX_PIN
+ #define Z2_SERIAL_RX_PIN _EPIN(Z2_E_INDEX, SERIAL_RX)
+ #endif
+ #endif
+ #if defined(Z2_STALL_SENSITIVITY) && ENABLED(Z_MULTI_ENDSTOPS) && NUM_Z_STEPPER_DRIVERS >= 2 && _PEXI(Z2_E_INDEX, DIAG)
+ #define Z2_DIAG_PIN _EPIN(Z2_E_INDEX, DIAG)
+ #if DIAG_REMAPPED(Z2, X_MIN)
+ #define Z2_USE_ENDSTOP _XMIN_
+ #elif DIAG_REMAPPED(Z2, Y_MIN)
+ #define Z2_USE_ENDSTOP _YMIN_
+ #elif DIAG_REMAPPED(Z2, Z_MIN)
+ #define Z2_USE_ENDSTOP _ZMIN_
+ #elif DIAG_REMAPPED(Z2, X_MAX)
+ #define Z2_USE_ENDSTOP _XMAX_
+ #elif DIAG_REMAPPED(Z2, Y_MAX)
+ #define Z2_USE_ENDSTOP _YMAX_
+ #elif DIAG_REMAPPED(Z2, Z_MAX)
+ #define Z2_USE_ENDSTOP _ZMAX_
+ #else
+ #define _Z2_USE_ENDSTOP(P) _E##P##_DIAG_
+ #define Z2_USE_ENDSTOP _Z2_USE_ENDSTOP(Z2_E_INDEX)
+ #endif
+ #undef Z2_DIAG_PIN
+ #endif
+ #define Z3_E_INDEX INCREMENT(Z2_E_INDEX)
+#else
+ #define Z3_E_INDEX Z2_E_INDEX
+#endif
+
+#ifndef Z2_CS_PIN
+ #define Z2_CS_PIN -1
+#endif
+#ifndef Z2_MS1_PIN
+ #define Z2_MS1_PIN -1
+#endif
+#ifndef Z2_MS2_PIN
+ #define Z2_MS2_PIN -1
+#endif
+#ifndef Z2_MS3_PIN
+ #define Z2_MS3_PIN -1
+#endif
+
+#if NUM_Z_STEPPER_DRIVERS >= 3
+ #ifndef Z3_STEP_PIN
+ #define Z3_STEP_PIN _EPIN(Z3_E_INDEX, STEP)
+ #define Z3_DIR_PIN _EPIN(Z3_E_INDEX, DIR)
+ #define Z3_ENABLE_PIN _EPIN(Z3_E_INDEX, ENABLE)
+ #if Z3_E_INDEX >= MAX_E_STEPPERS || !PIN_EXISTS(Z3_STEP)
+ #error "No E stepper plug left for Z3!"
+ #endif
+ #endif
+ #if AXIS_HAS_SPI(Z3)
+ #ifndef Z3_CS_PIN
+ #define Z3_CS_PIN _EPIN(Z3_E_INDEX, CS)
+ #endif
+ #endif
+ #ifndef Z3_MS1_PIN
+ #define Z3_MS1_PIN _EPIN(Z3_E_INDEX, MS1)
+ #endif
+ #ifndef Z3_MS2_PIN
+ #define Z3_MS2_PIN _EPIN(Z3_E_INDEX, MS2)
+ #endif
+ #ifndef Z3_MS3_PIN
+ #define Z3_MS3_PIN _EPIN(Z3_E_INDEX, MS3)
+ #endif
+ #if AXIS_HAS_UART(Z3)
+ #ifndef Z3_SERIAL_TX_PIN
+ #define Z3_SERIAL_TX_PIN _EPIN(Z3_E_INDEX, SERIAL_TX)
+ #endif
+ #ifndef Z3_SERIAL_RX_PIN
+ #define Z3_SERIAL_RX_PIN _EPIN(Z3_E_INDEX, SERIAL_RX)
+ #endif
+ #endif
+ #if defined(Z3_STALL_SENSITIVITY) && ENABLED(Z_MULTI_ENDSTOPS) && NUM_Z_STEPPER_DRIVERS >= 3 && _PEXI(Z3_E_INDEX, DIAG)
+ #define Z3_DIAG_PIN _EPIN(Z3_E_INDEX, DIAG)
+ #if DIAG_REMAPPED(Z3, X_MIN)
+ #define Z3_USE_ENDSTOP _XMIN_
+ #elif DIAG_REMAPPED(Z3, Y_MIN)
+ #define Z3_USE_ENDSTOP _YMIN_
+ #elif DIAG_REMAPPED(Z3, Z_MIN)
+ #define Z3_USE_ENDSTOP _ZMIN_
+ #elif DIAG_REMAPPED(Z3, X_MAX)
+ #define Z3_USE_ENDSTOP _XMAX_
+ #elif DIAG_REMAPPED(Z3, Y_MAX)
+ #define Z3_USE_ENDSTOP _YMAX_
+ #elif DIAG_REMAPPED(Z3, Z_MAX)
+ #define Z3_USE_ENDSTOP _ZMAX_
+ #else
+ #define _Z3_USE_ENDSTOP(P) _E##P##_DIAG_
+ #define Z3_USE_ENDSTOP _Z3_USE_ENDSTOP(Z3_E_INDEX)
+ #endif
+ #undef Z3_DIAG_PIN
+ #endif
+ #define Z4_E_INDEX INCREMENT(Z3_E_INDEX)
+#endif
+
+#ifndef Z3_CS_PIN
+ #define Z3_CS_PIN -1
+#endif
+#ifndef Z3_MS1_PIN
+ #define Z3_MS1_PIN -1
+#endif
+#ifndef Z3_MS2_PIN
+ #define Z3_MS2_PIN -1
+#endif
+#ifndef Z3_MS3_PIN
+ #define Z3_MS3_PIN -1
+#endif
+
+#if NUM_Z_STEPPER_DRIVERS >= 4
+ #ifndef Z4_STEP_PIN
+ #define Z4_STEP_PIN _EPIN(Z4_E_INDEX, STEP)
+ #define Z4_DIR_PIN _EPIN(Z4_E_INDEX, DIR)
+ #define Z4_ENABLE_PIN _EPIN(Z4_E_INDEX, ENABLE)
+ #if Z4_E_INDEX >= MAX_E_STEPPERS || !PIN_EXISTS(Z4_STEP)
+ #error "No E stepper plug left for Z4!"
+ #endif
+ #endif
+ #if AXIS_HAS_SPI(Z4)
+ #ifndef Z4_CS_PIN
+ #define Z4_CS_PIN _EPIN(Z4_E_INDEX, CS)
+ #endif
+ #endif
+ #ifndef Z4_MS1_PIN
+ #define Z4_MS1_PIN _EPIN(Z4_E_INDEX, MS1)
+ #endif
+ #ifndef Z4_MS2_PIN
+ #define Z4_MS2_PIN _EPIN(Z4_E_INDEX, MS2)
+ #endif
+ #ifndef Z4_MS3_PIN
+ #define Z4_MS3_PIN _EPIN(Z4_E_INDEX, MS3)
+ #endif
+ #if AXIS_HAS_UART(Z4)
+ #ifndef Z4_SERIAL_TX_PIN
+ #define Z4_SERIAL_TX_PIN _EPIN(Z4_E_INDEX, SERIAL_TX)
+ #endif
+ #ifndef Z4_SERIAL_RX_PIN
+ #define Z4_SERIAL_RX_PIN _EPIN(Z4_E_INDEX, SERIAL_RX)
+ #endif
+ #endif
+ #if defined(Z4_STALL_SENSITIVITY) && ENABLED(Z_MULTI_ENDSTOPS) && NUM_Z_STEPPER_DRIVERS >= 4 && _PEXI(Z4_E_INDEX, DIAG)
+ #define Z4_DIAG_PIN _EPIN(Z4_E_INDEX, DIAG)
+ #if DIAG_REMAPPED(Z4, X_MIN)
+ #define Z4_USE_ENDSTOP _XMIN_
+ #elif DIAG_REMAPPED(Z4, Y_MIN)
+ #define Z4_USE_ENDSTOP _YMIN_
+ #elif DIAG_REMAPPED(Z4, Z_MIN)
+ #define Z4_USE_ENDSTOP _ZMIN_
+ #elif DIAG_REMAPPED(Z4, X_MAX)
+ #define Z4_USE_ENDSTOP _XMAX_
+ #elif DIAG_REMAPPED(Z4, Y_MAX)
+ #define Z4_USE_ENDSTOP _YMAX_
+ #elif DIAG_REMAPPED(Z4, Z_MAX)
+ #define Z4_USE_ENDSTOP _ZMAX_
+ #else
+ #define _Z4_USE_ENDSTOP(P) _E##P##_DIAG_
+ #define Z4_USE_ENDSTOP _Z4_USE_ENDSTOP(Z4_E_INDEX)
+ #endif
+ #undef Z4_DIAG_PIN
+ #endif
+#endif
+
+#ifndef Z4_CS_PIN
+ #define Z4_CS_PIN -1
+#endif
+#ifndef Z4_MS1_PIN
+ #define Z4_MS1_PIN -1
+#endif
+#ifndef Z4_MS2_PIN
+ #define Z4_MS2_PIN -1
+#endif
+#ifndef Z4_MS3_PIN
+ #define Z4_MS3_PIN -1
+#endif
+
+#if HAS_MARLINUI_U8GLIB
+ #if !defined(ST7920_DELAY_1) && defined(BOARD_ST7920_DELAY_1)
+ #define ST7920_DELAY_1 BOARD_ST7920_DELAY_1
+ #endif
+ #if !defined(ST7920_DELAY_2) && defined(BOARD_ST7920_DELAY_2)
+ #define ST7920_DELAY_2 BOARD_ST7920_DELAY_2
+ #endif
+ #if !defined(ST7920_DELAY_3) && defined(BOARD_ST7920_DELAY_3)
+ #define ST7920_DELAY_3 BOARD_ST7920_DELAY_3
+ #endif
+#else
+ #undef ST7920_DELAY_1
+ #undef ST7920_DELAY_2
+ #undef ST7920_DELAY_3
+ #undef BOARD_ST7920_DELAY_1
+ #undef BOARD_ST7920_DELAY_2
+ #undef BOARD_ST7920_DELAY_3
+#endif
+
+#undef HAS_FREE_AUX2_PINS
+#undef DIAG_REMAPPED
diff --git a/Marlin/src/pins/rambo/pins_EINSY_RAMBO.h b/Marlin/src/pins/rambo/pins_EINSY_RAMBO.h
new file mode 100644
index 0000000..2ca2cc9
--- /dev/null
+++ b/Marlin/src/pins/rambo/pins_EINSY_RAMBO.h
@@ -0,0 +1,196 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Einsy-Rambo pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino Mega 2560 or Rambo' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Einsy Rambo"
+
+//
+// TMC2130 Configuration_adv defaults for EinsyRambo
+//
+#if !AXIS_DRIVER_TYPE_X(TMC2130) || !AXIS_DRIVER_TYPE_Y(TMC2130) || !AXIS_DRIVER_TYPE_Z(TMC2130) || !AXIS_DRIVER_TYPE_E0(TMC2130)
+ #error "You must set ([XYZ]|E0)_DRIVER_TYPE to TMC2130 in Configuration.h for EinsyRambo."
+#endif
+
+// TMC2130 Diag Pins (currently just for reference)
+#define X_DIAG_PIN 64
+#define Y_DIAG_PIN 69
+#define Z_DIAG_PIN 68
+#define E0_DIAG_PIN 65
+
+//
+// Limit Switches
+//
+// Only use Diag Pins when SENSORLESS_HOMING is enabled for the TMC2130 drivers.
+// Otherwise use a physical endstop based configuration.
+//
+// SERVO0_PIN and Z_MIN_PIN configuration for BLTOUCH sensor when combined with SENSORLESS_HOMING.
+//
+
+#if DISABLED(SENSORLESS_HOMING)
+
+ #define X_STOP_PIN 12
+ #define Y_STOP_PIN 11
+ #define Z_STOP_PIN 10
+
+#else
+
+ #define X_STOP_PIN X_DIAG_PIN
+ #define Y_STOP_PIN Y_DIAG_PIN
+
+ #if ENABLED(BLTOUCH)
+ #define Z_STOP_PIN 11 // Y-MIN
+ #define SERVO0_PIN 10 // Z-MIN
+ #else
+ #define Z_STOP_PIN 10
+ #endif
+
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 10
+#endif
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 62
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 37
+#define X_DIR_PIN 49
+#define X_ENABLE_PIN 29
+#define X_CS_PIN 41
+
+#define Y_STEP_PIN 36
+#define Y_DIR_PIN 48
+#define Y_ENABLE_PIN 28
+#define Y_CS_PIN 39
+
+#define Z_STEP_PIN 35
+#define Z_DIR_PIN 47
+#define Z_ENABLE_PIN 27
+#define Z_CS_PIN 67
+
+#define E0_STEP_PIN 34
+#define E0_DIR_PIN 43
+#define E0_ENABLE_PIN 26
+#define E0_CS_PIN 66
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_1_PIN 1 // Analog Input
+#define TEMP_BED_PIN 2 // Analog Input
+#define TEMP_PROBE_PIN 3 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 3
+#define HEATER_BED_PIN 4
+
+#ifndef FAN_PIN
+ #define FAN_PIN 8
+#endif
+
+#ifndef FAN1_PIN
+ #define FAN1_PIN 6
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 77
+#define LED_PIN 13
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 9
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+// use P1 connector for spindle pins
+#define SPINDLE_LASER_PWM_PIN 9 // Hardware PWM
+#define SPINDLE_LASER_ENA_PIN 18 // Pullup!
+#define SPINDLE_DIR_PIN 19
+
+//
+// Průša i3 MK2 Multiplexer Support
+//
+#define E_MUX0_PIN 17
+#define E_MUX1_PIN 16
+#define E_MUX2_PIN 78 // 84 in MK2 Firmware, with BEEPER as 78
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD || TOUCH_UI_ULTIPANEL
+
+ #define KILL_PIN 32
+
+ #if IS_ULTIPANEL || TOUCH_UI_ULTIPANEL
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ #define LCD_PINS_RS 85
+ #define LCD_PINS_ENABLE 71
+ #define LCD_PINS_D4 70
+ #define BTN_EN1 61
+ #define BTN_EN2 59
+ #else
+ #define LCD_PINS_RS 82
+ #define LCD_PINS_ENABLE 61
+ #define LCD_PINS_D4 59
+ #define LCD_PINS_D5 70
+ #define LCD_PINS_D6 85
+ #define LCD_PINS_D7 71
+ #define BTN_EN1 14
+ #define BTN_EN2 72
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #define BTN_ENC 9 // AUX-2
+ #define BEEPER_PIN 84 // AUX-4
+ #define SD_DETECT_PIN 15
+
+ #endif // IS_ULTIPANEL || TOUCH_UI_ULTIPANEL
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/rambo/pins_EINSY_RETRO.h b/Marlin/src/pins/rambo/pins_EINSY_RETRO.h
new file mode 100644
index 0000000..a6a4b65
--- /dev/null
+++ b/Marlin/src/pins/rambo/pins_EINSY_RETRO.h
@@ -0,0 +1,203 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Einsy-Retro pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino Mega 2560 or Rambo' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Einsy Retro"
+
+//
+// TMC2130 Configuration_adv defaults for EinsyRetro
+//
+#if !AXIS_DRIVER_TYPE_X(TMC2130) || !AXIS_DRIVER_TYPE_Y(TMC2130) || !AXIS_DRIVER_TYPE_Z(TMC2130) || !AXIS_DRIVER_TYPE_E0(TMC2130)
+ #error "You must set ([XYZ]|E0)_DRIVER_TYPE to TMC2130 in Configuration.h for EinsyRetro."
+#endif
+
+// TMC2130 Diag Pins
+#define X_DIAG_PIN 64
+#define Y_DIAG_PIN 69
+#define Z_DIAG_PIN 68
+#define E0_DIAG_PIN 65
+
+//
+// Limit Switches
+//
+// Only use Diag Pins when SENSORLESS_HOMING is enabled for the TMC2130 drivers.
+// Otherwise use a physical endstop based configuration.
+//
+// SERVO0_PIN and Z_MIN_PIN configuration for BLTOUCH sensor when combined with SENSORLESS_HOMING.
+//
+
+#if DISABLED(SENSORLESS_HOMING)
+
+ #define X_MIN_PIN 12 // X-
+ #define Y_MIN_PIN 11 // Y-
+ #define Z_MIN_PIN 10 // Z-
+ #define X_MAX_PIN 81 // X+
+ #define Y_MAX_PIN 57 // Y+
+
+#else
+
+ #if X_HOME_DIR < 0
+ #define X_MIN_PIN X_DIAG_PIN
+ #define X_MAX_PIN 81 // X+
+ #else
+ #define X_MIN_PIN 12 // X-
+ #define X_MAX_PIN X_DIAG_PIN
+ #endif
+
+ #if Y_HOME_DIR < 0
+ #define Y_MIN_PIN Y_DIAG_PIN
+ #define Y_MAX_PIN 57 // Y+
+ #else
+ #define Y_MIN_PIN 11 // Y-
+ #define Y_MAX_PIN Y_DIAG_PIN
+ #endif
+
+ #if ENABLED(BLTOUCH)
+ #define Z_MIN_PIN 11 // Y-MIN
+ #define SERVO0_PIN 10 // Z-MIN
+ #else
+ #define Z_MIN_PIN 10
+ #endif
+
+#endif
+
+#define Z_MAX_PIN 7
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 10
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 37
+#define X_DIR_PIN 49
+#define X_ENABLE_PIN 29
+#define X_CS_PIN 41
+
+#define Y_STEP_PIN 36
+#define Y_DIR_PIN 48
+#define Y_ENABLE_PIN 28
+#define Y_CS_PIN 39
+
+#define Z_STEP_PIN 35
+#define Z_DIR_PIN 47
+#define Z_ENABLE_PIN 27
+#define Z_CS_PIN 67
+
+#define E0_STEP_PIN 34
+#define E0_DIR_PIN 43
+#define E0_ENABLE_PIN 26
+#define E0_CS_PIN 66
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_1_PIN 1 // Analog Input
+#define TEMP_BED_PIN 2 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 3
+#define HEATER_BED_PIN 4
+
+#ifndef FAN_PIN
+ #define FAN_PIN 8
+#endif
+#define FAN1_PIN 6
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 9
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+// use P1 connector for spindle pins
+#define SPINDLE_LASER_PWM_PIN 9 // Hardware PWM
+#define SPINDLE_LASER_ENA_PIN 18 // Pullup!
+#define SPINDLE_DIR_PIN 19
+
+//
+// Průša i3 MK2 Multiplexer Support
+//
+#define E_MUX0_PIN 17
+#define E_MUX1_PIN 16
+#define E_MUX2_PIN 78 // 84 in MK2 Firmware, with BEEPER as 78
+
+//
+// LCD / Controller
+//
+#if ANY(HAS_WIRED_LCD, TOUCH_UI_ULTIPANEL, TOUCH_UI_FTDI_EVE)
+
+ #define KILL_PIN 32
+
+ #if ANY(IS_ULTIPANEL, TOUCH_UI_ULTIPANEL, TOUCH_UI_FTDI_EVE)
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ #define LCD_PINS_RS 85
+ #define LCD_PINS_ENABLE 71
+ #define LCD_PINS_D4 70
+ #define BTN_EN1 18
+ #define BTN_EN2 19
+ #else
+ #define LCD_PINS_RS 82
+ #define LCD_PINS_ENABLE 18 // On 0.6b, use 61
+ #define LCD_PINS_D4 19 // On 0.6b, use 59
+ #define LCD_PINS_D5 70
+ #define LCD_PINS_D6 85
+ #define LCD_PINS_D7 71
+ #define BTN_EN1 14
+ #define BTN_EN2 72
+ #endif
+
+ #define BTN_ENC 9 // AUX-2
+ #define BEEPER_PIN 84 // AUX-4
+
+ #define SD_DETECT_PIN 15
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif // IS_ULTIPANEL || TOUCH_UI_ULTIPANEL || TOUCH_UI_FTDI_EVE
+
+#endif // HAS_WIRED_LCD || TOUCH_UI_ULTIPANEL || TOUCH_UI_FTDI_EVE
diff --git a/Marlin/src/pins/rambo/pins_MINIRAMBO.h b/Marlin/src/pins/rambo/pins_MINIRAMBO.h
new file mode 100644
index 0000000..4dcf358
--- /dev/null
+++ b/Marlin/src/pins/rambo/pins_MINIRAMBO.h
@@ -0,0 +1,196 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Mini-RAMBo pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'RAMBo' in 'Tools > Board' or the Mega2560 environment in PlatformIO."
+#endif
+
+#if MB(MINIRAMBO_10A)
+ #define BOARD_INFO_NAME "Mini RAMBo 1.0a"
+#else
+ #define BOARD_INFO_NAME "Mini RAMBo"
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 12
+#define X_MAX_PIN 30
+#define Y_MIN_PIN 11
+#define Y_MAX_PIN 24
+#define Z_MIN_PIN 10
+#define Z_MAX_PIN 23
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 23
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 37
+#define X_DIR_PIN 48
+#define X_ENABLE_PIN 29
+
+#define Y_STEP_PIN 36
+#define Y_DIR_PIN 49
+#define Y_ENABLE_PIN 28
+
+#define Z_STEP_PIN 35
+#define Z_DIR_PIN 47
+#define Z_ENABLE_PIN 27
+
+#define E0_STEP_PIN 34
+#define E0_DIR_PIN 43
+#define E0_ENABLE_PIN 26
+
+// Microstepping pins - Mapping not from fastio.h (?)
+#define X_MS1_PIN 40
+#define X_MS2_PIN 41
+#define Y_MS1_PIN 69
+#define Y_MS2_PIN 39
+#define Z_MS1_PIN 68
+#define Z_MS2_PIN 67
+#define E0_MS1_PIN 65
+#define E0_MS2_PIN 66
+
+#define MOTOR_CURRENT_PWM_XY_PIN 46
+#define MOTOR_CURRENT_PWM_Z_PIN 45
+#define MOTOR_CURRENT_PWM_E_PIN 44
+// Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range
+#ifndef MOTOR_CURRENT_PWM_RANGE
+ #define MOTOR_CURRENT_PWM_RANGE 2000
+#endif
+#define DEFAULT_PWM_MOTOR_CURRENT {1300, 1300, 1250}
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_1_PIN 1 // Analog Input
+#define TEMP_BED_PIN 2 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 3
+#define HEATER_1_PIN 7
+#if !MB(MINIRAMBO_10A)
+ #define HEATER_2_PIN 6
+#endif
+#define HEATER_BED_PIN 4
+
+#ifndef FAN_PIN
+ #define FAN_PIN 8
+#endif
+#define FAN1_PIN 6
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+#if !MB(MINIRAMBO_10A)
+ #define CASE_LIGHT_PIN 9
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+// use P1 connector for spindle pins
+#define SPINDLE_LASER_PWM_PIN 9 // Hardware PWM
+#define SPINDLE_LASER_ENA_PIN 18 // Pullup!
+#define SPINDLE_DIR_PIN 19
+
+//
+// Průša i3 MK2 Multiplexer Support
+//
+#define E_MUX0_PIN 17
+#define E_MUX1_PIN 16
+#if !MB(MINIRAMBO_10A)
+ #define E_MUX2_PIN 78 // 84 in MK2 Firmware, with BEEPER as 78
+#endif
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD || TOUCH_UI_ULTIPANEL
+
+ #if !MB(MINIRAMBO_10A)
+ #define KILL_PIN 32
+ #endif
+
+ #if IS_ULTIPANEL || TOUCH_UI_ULTIPANEL
+
+ #if MB(MINIRAMBO_10A)
+
+ #define BEEPER_PIN 78
+
+ #define BTN_EN1 80
+ #define BTN_EN2 73
+ #define BTN_ENC 21
+
+ #define LCD_PINS_RS 38
+ #define LCD_PINS_ENABLE 5
+ #define LCD_PINS_D4 14
+ #define LCD_PINS_D5 15
+ #define LCD_PINS_D6 32
+ #define LCD_PINS_D7 31
+
+ #define SD_DETECT_PIN 72
+
+ #else // !MINIRAMBO_10A
+
+ // AUX-4
+ #define BEEPER_PIN 84
+
+ // AUX-2
+ #define BTN_EN1 14
+ #define BTN_EN2 72
+ #define BTN_ENC 9
+
+ #define LCD_PINS_RS 82
+ #define LCD_PINS_ENABLE 18
+ #define LCD_PINS_D4 19
+ #define LCD_PINS_D5 70
+ #define LCD_PINS_D6 85
+ #define LCD_PINS_D7 71
+
+ #define SD_DETECT_PIN 15
+
+ #endif // !MINIRAMBO_10A
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif // IS_ULTIPANEL || TOUCH_UI_ULTIPANEL
+
+#endif // HAS_WIRED_LCD || TOUCH_UI_ULTIPANEL
diff --git a/Marlin/src/pins/rambo/pins_RAMBO.h b/Marlin/src/pins/rambo/pins_RAMBO.h
new file mode 100644
index 0000000..be2317b
--- /dev/null
+++ b/Marlin/src/pins/rambo/pins_RAMBO.h
@@ -0,0 +1,256 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * IMPORTANT NOTE:
+ * Rambo users should be sure to compile Marlin using either the RAMBo
+ * board type if using the Arduino IDE - available via the link below - or
+ * the 'rambo' environment if using platformio, by specifying '-e rambo' on
+ * the command line or by changing the value of the 'env_default' variable to
+ * 'rambo' in the supplied platformio.ini.
+ *
+ * If you don't compile using the proper board type, the RAMBo's extended
+ * pins will likely be unavailable and accessories/addons may not work.
+ *
+ * Instructions for installing the Arduino RAMBo board type for the
+ * Arduino IDE are available at:
+ * https://reprap.org/wiki/Rambo_firmware
+ */
+
+/**
+ * Rambo pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Rambo"
+
+//
+// Servos
+//
+#define SERVO0_PIN 22 // Motor header MX1
+#define SERVO1_PIN 23 // Motor header MX2
+#define SERVO2_PIN 24 // Motor header MX3
+#define SERVO3_PIN 5 // PWM header pin 5
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 12
+#define X_MAX_PIN 24
+#define Y_MIN_PIN 11
+#define Y_MAX_PIN 23
+#define Z_MIN_PIN 10
+#define Z_MAX_PIN 30
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 30
+#endif
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 5
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 37
+#define X_DIR_PIN 48
+#define X_ENABLE_PIN 29
+
+#define Y_STEP_PIN 36
+#define Y_DIR_PIN 49
+#define Y_ENABLE_PIN 28
+
+#define Z_STEP_PIN 35
+#define Z_DIR_PIN 47
+#define Z_ENABLE_PIN 27
+
+#define E0_STEP_PIN 34
+#define E0_DIR_PIN 43
+#define E0_ENABLE_PIN 26
+
+#define E1_STEP_PIN 33
+#define E1_DIR_PIN 42
+#define E1_ENABLE_PIN 25
+
+// Microstepping pins - Mapping not from fastio.h (?)
+#define X_MS1_PIN 40
+#define X_MS2_PIN 41
+#define Y_MS1_PIN 69
+#define Y_MS2_PIN 39
+#define Z_MS1_PIN 68
+#define Z_MS2_PIN 67
+#define E0_MS1_PIN 65
+#define E0_MS2_PIN 66
+#define E1_MS1_PIN 63
+#define E1_MS2_PIN 64
+
+#define DIGIPOTSS_PIN 38
+#define DIGIPOT_CHANNELS { 4, 5, 3, 0, 1 } // X Y Z E0 E1 digipot channels to stepper driver mapping
+#ifndef DIGIPOT_MOTOR_CURRENT
+ #define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_1_PIN 1 // Analog Input
+#define TEMP_BED_PIN 2 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 9
+#define HEATER_1_PIN 7
+#define HEATER_2_PIN 6
+#define HEATER_BED_PIN 3
+
+#ifndef FAN_PIN
+ #define FAN_PIN 8
+#endif
+#define FAN1_PIN 6
+#define FAN2_PIN 2
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+#define PS_ON_PIN 4
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 46
+#endif
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 3 // Analog Input
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_PWM_PIN 45 // Hardware PWM
+#define SPINDLE_LASER_ENA_PIN 31 // Pullup!
+#define SPINDLE_DIR_PIN 32
+
+//
+// SPI for Max6675 or Max31855 Thermocouple
+//
+#ifndef MAX6675_SS_PIN
+ #define MAX6675_SS_PIN 32 // SPINDLE_DIR_PIN / STAT_LED_BLUE_PIN
+#endif
+
+//
+// M7/M8/M9 - Coolant Control
+//
+#define COOLANT_MIST_PIN 22
+#define COOLANT_FLOOD_PIN 44
+
+//
+// Průša i3 MK2 Multiplexer Support
+//
+#define E_MUX0_PIN 17
+#define E_MUX1_PIN 16
+#define E_MUX2_PIN 84 // 84 in MK2 Firmware
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD || TOUCH_UI_ULTIPANEL
+
+ #define KILL_PIN 80
+
+ #if IS_ULTIPANEL || TOUCH_UI_ULTIPANEL
+
+ #define LCD_PINS_RS 70
+ #define LCD_PINS_ENABLE 71
+ #define LCD_PINS_D4 72
+ #define LCD_PINS_D5 73
+ #define LCD_PINS_D6 74
+ #define LCD_PINS_D7 75
+
+ #if ANY(VIKI2, miniVIKI)
+ #define BEEPER_PIN 44
+ // NB: Panucatt's Viki 2.0 wiring diagram (v1.2) indicates that the
+ // beeper/buzzer is connected to pin 33; however, the pin used in the
+ // diagram is actually pin 44, so this is correct.
+
+ #define DOGLCD_A0 70
+ #define DOGLCD_CS 71
+ #define LCD_SCREEN_ROT_180
+
+ #define BTN_EN1 85
+ #define BTN_EN2 84
+ #define BTN_ENC 83
+
+ #define SD_DETECT_PIN -1 // Pin 72 if using easy adapter board
+
+ #define STAT_LED_RED_PIN 22
+ #define STAT_LED_BLUE_PIN 32
+
+ #else // !VIKI2 && !miniVIKI
+
+ #define BEEPER_PIN 79 // AUX-4
+
+ // AUX-2
+ #define BTN_EN1 76
+ #define BTN_EN2 77
+ #define BTN_ENC 78
+
+ #define SD_DETECT_PIN 81
+
+ #endif // !VIKI2 && !miniVIKI
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #else // !IS_NEWPANEL - old style panel with shift register
+
+ // No Beeper added
+ #define BEEPER_PIN 33
+
+ // Buttons attached to a shift register
+ // Not wired yet
+ //#define SHIFT_CLK_PIN 38
+ //#define SHIFT_LD_PIN 42
+ //#define SHIFT_OUT_PIN 40
+ //#define SHIFT_EN_PIN 17
+
+ #define LCD_PINS_RS 75
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 23
+ #define LCD_PINS_D5 25
+ #define LCD_PINS_D6 27
+ #define LCD_PINS_D7 29
+
+ #endif // !IS_NEWPANEL
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/rambo/pins_SCOOVO_X9H.h b/Marlin/src/pins/rambo/pins_SCOOVO_X9H.h
new file mode 100644
index 0000000..5680b00
--- /dev/null
+++ b/Marlin/src/pins/rambo/pins_SCOOVO_X9H.h
@@ -0,0 +1,159 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/************************************************
+ * Rambo pin assignments MODIFIED FOR Scoovo X9H
+ ************************************************/
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Scoovo X9H"
+
+//
+// Servos
+//
+#define SERVO0_PIN 22 // Motor header MX1
+#define SERVO1_PIN 23 // Motor header MX2
+#define SERVO2_PIN 24 // Motor header MX3
+#define SERVO3_PIN 5 // PWM header pin 5
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 12
+#define X_MAX_PIN 24
+#define Y_MIN_PIN 11
+#define Y_MAX_PIN 23
+#define Z_MIN_PIN 10
+#define Z_MAX_PIN 30
+
+//
+// Z Probe (when not Z_MIN_IN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 30
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 37
+#define X_DIR_PIN 48
+#define X_ENABLE_PIN 29
+
+#define Y_STEP_PIN 36
+#define Y_DIR_PIN 49
+#define Y_ENABLE_PIN 28
+
+#define Z_STEP_PIN 35
+#define Z_DIR_PIN 47
+#define Z_ENABLE_PIN 27
+
+#define E0_STEP_PIN 34
+#define E0_DIR_PIN 43
+#define E0_ENABLE_PIN 26
+
+#define E1_STEP_PIN 33
+#define E1_DIR_PIN 42
+#define E1_ENABLE_PIN 25
+
+// Microstepping pins - Mapping not from fastio.h (?)
+#define X_MS1_PIN 40
+#define X_MS2_PIN 41
+#define Y_MS1_PIN 69
+#define Y_MS2_PIN 39
+#define Z_MS1_PIN 68
+#define Z_MS2_PIN 67
+#define E0_MS1_PIN 65
+#define E0_MS2_PIN 66
+#define E1_MS1_PIN 63
+#define E1_MS2_PIN 64
+
+#define DIGIPOTSS_PIN 38
+#define DIGIPOT_CHANNELS { 4, 5, 3, 0, 1 } // X Y Z E0 E1 digipot channels to stepper driver mapping
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_BED_PIN 7 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 9
+#define HEATER_1_PIN 7
+#define HEATER_BED_PIN 3
+
+#ifndef FAN_PIN
+ #define FAN_PIN 8
+#endif
+#define FAN1_PIN 6
+#define FAN2_PIN 2
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+#define PS_ON_PIN 4
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 3 // Analog Input
+#endif
+
+//
+// LCD / Controller
+//
+#define LCD_PINS_RS 70 // Ext2_5
+#define LCD_PINS_ENABLE 71 // Ext2_7
+#define LCD_PINS_D4 72 // Ext2_9 ?
+#define LCD_PINS_D5 73 // Ext2_11 ?
+#define LCD_PINS_D6 74 // Ext2_13
+#define LCD_PINS_D7 75 // Ext2_15 ?
+#define BEEPER_PIN -1
+
+#define BTN_HOME 80 // Ext_16
+#define BTN_CENTER 81 // Ext_14
+#define BTN_ENC BTN_CENTER
+#define BTN_RIGHT 82 // Ext_12
+#define BTN_LEFT 83 // Ext_10
+#define BTN_UP 84 // Ext2_8
+#define BTN_DOWN 85 // Ext2_6
+
+#define HOME_PIN BTN_HOME
+
+#if ANY(VIKI2, miniVIKI)
+ #define BEEPER_PIN 44
+ // Pins for DOGM SPI LCD Support
+ #define DOGLCD_A0 70
+ #define DOGLCD_CS 71
+ #define LCD_SCREEN_ROT_180
+
+ #define SD_DETECT_PIN -1 // Pin 72 if using easy adapter board
+
+ #define STAT_LED_RED_PIN 22
+ #define STAT_LED_BLUE_PIN 32
+#endif // VIKI2/miniVIKI
diff --git a/Marlin/src/pins/ramps/pins_3DRAG.h b/Marlin/src/pins/ramps/pins_3DRAG.h
new file mode 100644
index 0000000..6c7f7f4
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_3DRAG.h
@@ -0,0 +1,164 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * 3DRAG (and K8200 / K8400) Arduino Mega with RAMPS v1.4 pin assignments
+ */
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "3Drag"
+#endif
+
+#ifndef DEFAULT_MACHINE_NAME
+ #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+#endif
+
+#ifndef DEFAULT_SOURCE_CODE_URL
+ #define DEFAULT_SOURCE_CODE_URL "3dprint.elettronicain.it"
+#endif
+
+//
+// Heaters / Fans
+//
+#define RAMPS_D8_PIN 9
+#define RAMPS_D9_PIN 8
+#define MOSFET_D_PIN 12
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN -1 // Hardware PWM but one is not available on expansion header
+#endif
+
+#include "pins_RAMPS.h"
+
+//
+// Limit Switches
+//
+#undef Z_MAX_PIN
+
+//
+// Steppers
+//
+#undef Z_ENABLE_PIN
+#define Z_ENABLE_PIN 63
+
+//
+// Heaters / Fans
+//
+#define HEATER_2_PIN 6
+
+//
+// Misc. Functions
+//
+#undef SDSS
+#define SDSS 25
+
+#undef SD_DETECT_PIN
+#define SD_DETECT_PIN 53
+
+//
+// LCD / Controller
+//
+#if IS_ULTRA_LCD && IS_NEWPANEL
+ #undef BEEPER_PIN
+
+ #undef LCD_PINS_RS
+ #undef LCD_PINS_ENABLE
+ #undef LCD_PINS_D4
+ #undef LCD_PINS_D5
+ #undef LCD_PINS_D6
+ #undef LCD_PINS_D7
+ #define LCD_PINS_RS 27
+ #define LCD_PINS_ENABLE 29
+ #define LCD_PINS_D4 37
+ #define LCD_PINS_D5 35
+ #define LCD_PINS_D6 33
+ #define LCD_PINS_D7 31
+
+ // Buttons
+ #undef BTN_EN1
+ #undef BTN_EN2
+ #undef BTN_ENC
+ #define BTN_EN1 16
+ #define BTN_EN2 17
+ #define BTN_ENC 23
+
+#else
+
+ #define BEEPER_PIN 33
+
+#endif // IS_ULTRA_LCD && IS_NEWPANEL
+
+/**
+ * M3/M4/M5 - Spindle/Laser Control
+ *
+ * If you want to control the speed of your spindle then you'll have
+ * have to sacrifce the Extruder and pull some signals off the Z stepper
+ * driver socket.
+ *
+ * The following assumes:
+ * - the Z stepper driver socket is empty
+ * - the extruder driver socket has a driver board plugged into it
+ * - the Z stepper wires are attached the the extruder connector
+ *
+ * If you want to keep the extruder AND don't have a LCD display then
+ * you can still control the power on/off and spindle direction.
+ *
+ * Where to get spindle signals
+ *
+ * stepper signal socket name socket name
+ * -------
+ * SPINDLE_LASER_ENA_PIN /ENABLE O| |O VMOT
+ * MS1 O| |O GND
+ * MS2 O| |O 2B
+ * MS3 O| |O 2A
+ * /RESET O| |O 1A
+ * /SLEEP O| |O 1B
+ * SPINDLE_LASER_PWM_PIN STEP O| |O VDD
+ * SPINDLE_DIR_PIN DIR O| |O GND
+ * -------
+ *
+ * Note: Socket names vary from vendor to vendor
+ */
+#undef SPINDLE_LASER_PWM_PIN // Definitions in pins_RAMPS.h are not good with 3DRAG
+#undef SPINDLE_LASER_ENA_PIN
+#undef SPINDLE_DIR_PIN
+
+#if HAS_CUTTER
+ #if !EXTRUDERS
+ #undef E0_DIR_PIN
+ #undef E0_ENABLE_PIN
+ #undef E0_STEP_PIN
+ #undef Z_DIR_PIN
+ #undef Z_ENABLE_PIN
+ #undef Z_STEP_PIN
+ #define Z_DIR_PIN 28
+ #define Z_ENABLE_PIN 24
+ #define Z_STEP_PIN 26
+ #define SPINDLE_LASER_PWM_PIN 46 // Hardware PWM
+ #define SPINDLE_LASER_ENA_PIN 62 // Pullup!
+ #define SPINDLE_DIR_PIN 48
+ #elif !BOTH(IS_ULTRA_LCD, IS_NEWPANEL) // Use expansion header if no LCD in use
+ #define SPINDLE_LASER_ENA_PIN 16 // Pullup or pulldown!
+ #define SPINDLE_DIR_PIN 17
+ #endif
+#endif
diff --git a/Marlin/src/pins/ramps/pins_AZTEEG_X3.h b/Marlin/src/pins/ramps/pins_AZTEEG_X3.h
new file mode 100644
index 0000000..6ddd2a5
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_AZTEEG_X3.h
@@ -0,0 +1,96 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * AZTEEG_X3 Arduino Mega with RAMPS v1.4 pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "Azteeg X3 supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#if ENABLED(CASE_LIGHT_ENABLE) && !PIN_EXISTS(CASE_LIGHT)
+ #define CASE_LIGHT_PIN 6 // Define before RAMPS pins include
+#endif
+#define BOARD_INFO_NAME "Azteeg X3"
+
+//
+// Servos
+//
+#define SERVO0_PIN 44 // SERVO1 port
+#define SERVO1_PIN 55 // SERVO2 port
+
+#include "pins_RAMPS_13.h"
+
+//
+// LCD / Controller
+//
+#undef STAT_LED_RED_PIN
+#undef STAT_LED_BLUE_PIN
+
+#if ANY(VIKI2, miniVIKI)
+
+ #undef DOGLCD_A0
+ #undef DOGLCD_CS
+ #undef BTN_ENC
+ #define DOGLCD_A0 31
+ #define DOGLCD_CS 32
+ #define BTN_ENC 12
+
+ #define STAT_LED_RED_PIN 64
+ #define STAT_LED_BLUE_PIN 63
+
+#else
+
+ #define STAT_LED_RED_PIN 6
+ #define STAT_LED_BLUE_PIN 11
+
+#endif
+
+//
+// Misc
+//
+#if ENABLED(CASE_LIGHT_ENABLE) && PINS_EXIST(CASE_LIGHT, STAT_LED_RED) && STAT_LED_RED_PIN == CASE_LIGHT_PIN
+ #undef STAT_LED_RED_PIN
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#undef SPINDLE_LASER_PWM_PIN // Definitions in pins_RAMPS.h are no good with the AzteegX3 board
+#undef SPINDLE_LASER_ENA_PIN
+#undef SPINDLE_DIR_PIN
+
+#if HAS_CUTTER
+ #undef SDA // use EXP3 header
+ #undef SCL
+ #if SERVO0_PIN == 7
+ #undef SERVO0_PIN
+ #define SERVO0_PIN 11
+ #endif
+ #define SPINDLE_LASER_PWM_PIN 7 // Hardware PWM
+ #define SPINDLE_LASER_ENA_PIN 20 // Pullup!
+ #define SPINDLE_DIR_PIN 21
+#endif
diff --git a/Marlin/src/pins/ramps/pins_AZTEEG_X3_PRO.h b/Marlin/src/pins/ramps/pins_AZTEEG_X3_PRO.h
new file mode 100644
index 0000000..9ba6a0c
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_AZTEEG_X3_PRO.h
@@ -0,0 +1,177 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * AZTEEG_X3_PRO (Arduino Mega) pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 5 || E_STEPPERS > 5
+ #error "Azteeg X3 Pro supports up to 5 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Azteeg X3 Pro"
+
+//
+// RAMPS pins overrides
+//
+
+//
+// Servos
+//
+// Tested this pin with bed leveling on a Delta with 1 servo.
+// Physical wire attachment on EXT1: GND, 5V, D47.
+//
+#define SERVO0_PIN 47
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 3
+#define Y_STOP_PIN 14
+#define Z_STOP_PIN 18
+
+#ifndef FAN_PIN
+ #define FAN_PIN 6
+#endif
+
+#if ENABLED(CASE_LIGHT_ENABLE) && !PIN_EXISTS(CASE_LIGHT)
+ #define CASE_LIGHT_PIN 44
+#endif
+
+//
+// Import RAMPS 1.4 pins
+//
+#include "pins_RAMPS.h"
+
+// DIGIPOT slave addresses
+#ifndef DIGIPOT_I2C_ADDRESS_A
+ #define DIGIPOT_I2C_ADDRESS_A 0x2C // unshifted slave address for first DIGIPOT 0x2C (0x58 <- 0x2C << 1)
+#endif
+#ifndef DIGIPOT_I2C_ADDRESS_B
+ #define DIGIPOT_I2C_ADDRESS_B 0x2E // unshifted slave address for second DIGIPOT 0x2E (0x5C <- 0x2E << 1)
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 18
+#endif
+
+//
+// Steppers
+//
+#define E2_STEP_PIN 23
+#define E2_DIR_PIN 25
+#define E2_ENABLE_PIN 40
+
+#define E3_STEP_PIN 27
+#define E3_DIR_PIN 29
+#define E3_ENABLE_PIN 41
+
+#define E4_STEP_PIN 43
+#define E4_DIR_PIN 37
+#define E4_ENABLE_PIN 42
+
+//
+// Temperature Sensors
+//
+#define TEMP_2_PIN 12 // Analog Input
+#define TEMP_3_PIN 11 // Analog Input
+#define TEMP_4_PIN 10 // Analog Input
+#define TC1 4 // Analog Input (Thermo couple on Azteeg X3Pro)
+#define TC2 5 // Analog Input (Thermo couple on Azteeg X3Pro)
+
+//
+// Heaters / Fans
+//
+#define HEATER_2_PIN 16
+#define HEATER_3_PIN 17
+#define HEATER_4_PIN 4
+#define HEATER_5_PIN 5
+#define HEATER_6_PIN 6
+#define HEATER_7_PIN 11
+
+#ifndef CONTROLLER_FAN_PIN
+ #define CONTROLLER_FAN_PIN 4 // Pin used for the fan to cool motherboard (-1 to disable)
+#endif
+
+//
+// Auto fans
+//
+#define AUTO_FAN_PIN 5
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E2_AUTO_FAN_PIN
+ #define E2_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E3_AUTO_FAN_PIN
+ #define E3_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+
+//
+// LCD / Controller
+//
+#undef BEEPER_PIN
+#define BEEPER_PIN 33
+
+#if ANY(VIKI2, miniVIKI)
+ #undef SD_DETECT_PIN
+ #define SD_DETECT_PIN 49 // For easy adapter board
+ #undef BEEPER_PIN
+ #define BEEPER_PIN 12 // 33 isn't physically available to the LCD display
+#else
+ #define STAT_LED_RED_PIN 32
+ #define STAT_LED_BLUE_PIN 35
+#endif
+
+//
+// Misc. Functions
+//
+#if ENABLED(CASE_LIGHT_ENABLE) && PIN_EXISTS(CASE_LIGHT) && defined(DOGLCD_A0) && DOGLCD_A0 == CASE_LIGHT_PIN
+ #undef DOGLCD_A0 // Steal pin 44 for the case light; if you have a Viki2 and have connected it
+ #define DOGLCD_A0 57 // following the Panucatt wiring diagram, you may need to tweak these pin assignments
+ // as the wiring diagram uses pin 44 for DOGLCD_A0
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#undef SPINDLE_LASER_PWM_PIN // Definitions in pins_RAMPS.h are no good with the AzteegX3pro board
+#undef SPINDLE_LASER_ENA_PIN
+#undef SPINDLE_DIR_PIN
+
+#if HAS_CUTTER // EXP2 header
+ #if ANY(VIKI2, miniVIKI)
+ #define BTN_EN2 31 // Pin 7 needed for Spindle PWM
+ #endif
+ #define SPINDLE_LASER_PWM_PIN 7 // Hardware PWM
+ #define SPINDLE_LASER_ENA_PIN 20 // Pullup!
+ #define SPINDLE_DIR_PIN 21
+#endif
diff --git a/Marlin/src/pins/ramps/pins_BAM_DICE_DUE.h b/Marlin/src/pins/ramps/pins_BAM_DICE_DUE.h
new file mode 100644
index 0000000..97ef1b4
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_BAM_DICE_DUE.h
@@ -0,0 +1,49 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * BAM&DICE Due (Arduino Mega) pin assignments
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "2PrintBeta Due supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "2PrintBeta Due"
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_ENA_PIN 66 // Pullup or pulldown!
+#define SPINDLE_DIR_PIN 67
+#define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
+
+#include "pins_RAMPS.h"
+
+//
+// Temperature Sensors
+//
+#undef TEMP_0_PIN
+#undef TEMP_1_PIN
+#define TEMP_0_PIN 9 // Analog Input
+#define TEMP_1_PIN 11 // Analog Input
diff --git a/Marlin/src/pins/ramps/pins_BIQU_KFB_2.h b/Marlin/src/pins/ramps/pins_BIQU_KFB_2.h
new file mode 100644
index 0000000..b31df11
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_BIQU_KFB_2.h
@@ -0,0 +1,40 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * KFB 2.0 – Arduino Mega2560 with RAMPS v1.4 pin assignments
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "KFB 2.0 supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "KFB 2.0"
+
+//
+// Heaters / Fans
+//
+// Power outputs BEEF or BEFF
+#define MOSFET_D_PIN 7
+
+#include "pins_RAMPS.h"
diff --git a/Marlin/src/pins/ramps/pins_BQ_ZUM_MEGA_3D.h b/Marlin/src/pins/ramps/pins_BQ_ZUM_MEGA_3D.h
new file mode 100644
index 0000000..f120e9c
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_BQ_ZUM_MEGA_3D.h
@@ -0,0 +1,126 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * bq ZUM Mega 3D board definition
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "ZUM Mega 3D"
+
+//
+// Heaters / Fans
+//
+#define RAMPS_D8_PIN 10
+#define RAMPS_D9_PIN 12
+#define RAMPS_D10_PIN 9
+#define MOSFET_D_PIN 7
+
+//
+// Auto fans
+//
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN 11
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN 6
+#endif
+#ifndef E2_AUTO_FAN_PIN
+ #define E2_AUTO_FAN_PIN 6
+#endif
+#ifndef E3_AUTO_FAN_PIN
+ #define E3_AUTO_FAN_PIN 6
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_ENA_PIN 40 // Pullup or pulldown!
+#define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
+#define SPINDLE_DIR_PIN 42
+
+//
+// Limit Switches
+//
+#define X_MAX_PIN 79 // 2
+
+//
+// Import RAMPS 1.3 pins
+//
+#include "pins_RAMPS_13.h"
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#undef Z_MIN_PROBE_PIN
+#define Z_MIN_PROBE_PIN 19 // IND_S_5V
+
+#undef Z_ENABLE_PIN
+#define Z_ENABLE_PIN 77 // 62
+
+//
+// Steppers
+//
+#define DIGIPOTSS_PIN 22
+#define DIGIPOT_CHANNELS { 4, 5, 3, 0, 1 }
+
+//
+// Temperature Sensors
+//
+#undef TEMP_1_PIN
+#define TEMP_1_PIN 14 // Analog Input (15)
+
+#undef TEMP_BED_PIN
+#define TEMP_BED_PIN 15 // Analog Input (14)
+
+//
+// Misc. Functions
+//
+#undef PS_ON_PIN // 12
+#define PS_ON_PIN 81 // External Power Supply
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 44 // Hardware PWM
+#endif
+
+// This board has headers for Z-min, Z-max and IND_S_5V *but* as the bq team
+// decided to ship the printer only with the probe and no additional Z-min
+// endstop and the instruction manual advises the user to connect the probe to
+// IND_S_5V the option Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN will not work.
+#ifdef Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
+ #undef Z_MIN_PIN
+ #undef Z_MAX_PIN
+ #define Z_MIN_PIN 19 // IND_S_5V
+ #define Z_MAX_PIN 18 // Z-MIN Label
+#endif
+
+//
+// Used by the Hephestos 2 heated bed upgrade kit
+//
+#if ENABLED(HEPHESTOS2_HEATED_BED_KIT)
+ #undef HEATER_BED_PIN
+ #define HEATER_BED_PIN 8
+#endif
diff --git a/Marlin/src/pins/ramps/pins_COPYMASTER_3D.h b/Marlin/src/pins/ramps/pins_COPYMASTER_3D.h
new file mode 100644
index 0000000..b9eee6b
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_COPYMASTER_3D.h
@@ -0,0 +1,34 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#define BOARD_INFO_NAME "Copymaster 3D RAMPS"
+
+#define Z_STEP_PIN 47
+#define Y_MAX_PIN 14
+#define FIL_RUNOUT_PIN 15
+#define SD_DETECT_PIN 66
+
+//
+// Import RAMPS 1.4 pins
+//
+#include "pins_RAMPS.h"
diff --git a/Marlin/src/pins/ramps/pins_DAGOMA_F5.h b/Marlin/src/pins/ramps/pins_DAGOMA_F5.h
new file mode 100644
index 0000000..07e46ac
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_DAGOMA_F5.h
@@ -0,0 +1,68 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "Dagoma3D F5 supports only 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Dagoma3D F5"
+
+//
+// Endstops
+//
+#define X_STOP_PIN 2
+#define Y_STOP_PIN 3
+#define Z_STOP_PIN 15
+
+#define FIL_RUNOUT_PIN 39
+#if EXTRUDERS > 1
+ #define FIL_RUNOUT2_PIN 14
+#endif
+
+//
+// LCD delays
+//
+#if HAS_MARLINUI_U8GLIB
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(0)
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(250)
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(250)
+#endif
+
+//
+// DAC steppers
+//
+#define HAS_MOTOR_CURRENT_DAC
+
+#define DAC_STEPPER_ORDER { 0, 1, 2, 3 }
+
+#define DAC_STEPPER_SENSE 0.11
+#define DAC_STEPPER_ADDRESS 0
+#define DAC_STEPPER_MAX 4096
+#define DAC_STEPPER_VREF 1
+#define DAC_STEPPER_GAIN 0
+#define DAC_OR_ADDRESS 0x00
+
+//
+// Import default RAMPS 1.4 pins
+//
+#include "pins_RAMPS.h"
diff --git a/Marlin/src/pins/ramps/pins_DUPLICATOR_I3_PLUS.h b/Marlin/src/pins/ramps/pins_DUPLICATOR_I3_PLUS.h
new file mode 100644
index 0000000..93ec3d6
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_DUPLICATOR_I3_PLUS.h
@@ -0,0 +1,184 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Wanhao Duplicator i3 Plus pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Duplicator i3 Plus"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 54 // PF0 / A0
+#define Y_STOP_PIN 24 // PA2 / AD2
+#define Z_MIN_PIN 23 // PA1 / AD1
+#define Z_MAX_PIN 25 // PA3 / AD3
+#define SERVO0_PIN 40 // PG1 / !RD
+
+//
+// Steppers
+//
+#define X_STEP_PIN 61 // PF7 / A7
+#define X_DIR_PIN 62 // PK0 / A8
+#define X_ENABLE_PIN 60 // PF6 / A6
+
+#define Y_STEP_PIN 64 // PK2 / A10
+#define Y_DIR_PIN 65 // PK3 / A11
+#define Y_ENABLE_PIN 63 // PK1 / A9
+
+#define Z_STEP_PIN 67 // PK5 / A13
+#define Z_DIR_PIN 69 // PK7 / A15
+#define Z_ENABLE_PIN 66 // PK4 / A12
+#define Z_MIN_PROBE_PIN 25 // PA3 / AD3
+
+#define E0_STEP_PIN 58 // PF4 / A4
+#define E0_DIR_PIN 59 // PF5 / A5
+#define E0_ENABLE_PIN 57 // PF3 / A3
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 1 // PF1 / A1 Analog
+#define TEMP_BED_PIN 14 // PK6 / A14 Analog
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 4 // PG5 / PWM4
+#define HEATER_BED_PIN 3 // PE5 / PWM3
+
+#define FAN_PIN 5 // PE3 / PWM5
+
+//
+// Misc. Functions
+//
+#define SDSS 53 // PB0 / SS
+#define LED_PIN 13 // PB7 / PWM13
+
+#define SD_MISO_PIN 50 // PB3
+#define SD_MOSI_PIN 51 // PB2
+#define SD_SCK_PIN 52 // PB1
+
+//
+// LCDs and Controllers
+//
+#if HAS_WIRED_LCD
+ #if ENABLED(ZONESTAR_LCD)
+ #define LCD_PINS_RS 2
+ #define LCD_PINS_ENABLE 36
+ #define LCD_PINS_D4 37
+ #define LCD_PINS_D5 34
+ #define LCD_PINS_D6 35
+ #define LCD_PINS_D7 32
+ #define ADC_KEYPAD_PIN 12 // Analog
+ #endif
+#endif
+
+/**
+ * == EXT connector ==
+ *
+ * 2 4 6 8 10
+ * #---------------#
+ * #2 | ° ° ° ° ° |
+ * #1 | ° ° ° ° ° |
+ * #---------------#
+ * 1 3 5 7 9
+ *
+ * ##################################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ##################################
+ * # 1 | 52 / PG1 (!RD) | 40 #
+ * # 2 | 95 / PF2 (A2) | 56 #
+ * # 3 | 54 / PC1 (A9) | 36 #
+ * # 4 | 53 / PC0 (A8) | 37 #
+ * # 5 | 56 / PC3 (A11) | 34 #
+ * # 6 | 55 / PC2 (A10) | 35 #
+ * # 7 | 58 / PC5 (A13) | 32 #
+ * # 8 | 57 / PC4 (A12) | 33 #
+ * # 9 | GND | - #
+ * # 10 | VCC | + #
+ * ##################################
+ *
+ * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ *
+ * == Z-probe connector ==
+ *
+ * 1 2 3
+ * #---------#
+ * | ° ° ° |
+ * #---------#
+ *
+ * ##################################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ##################################
+ * # 1 | 24V or 5V | + #
+ * # 2 | 75 / PA3 (AD3) | 25 #
+ * # 3 | GND | - #
+ * ##################################
+ *
+ * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ *
+ * == Y-endstop == == Z-endstop == == Bed temperature ==
+ *
+ * 1 2 1 2 1 2
+ * #------# #------# #------#
+ * | ° ° | | ° ° | | ° ° |
+ * #------# #------# #------#
+ *
+ * ############### Y ################ ############### Z ################ ############## BED ###############
+ * # Pin | ATMEGA2560 Pin | Arduino # # Pin | ATMEGA2560 Pin | Arduino # # Pin | ATMEGA2560 Pin | Arduino #
+ * ################################## ################################## ##################################
+ * # 1 | GND | - # # 1 | GND | - # # 1 | GND | - #
+ * # 2 | 76 / PA2 (AD2) | 24 # # 2 | 77 / PA1 (AD1) | 23 # # 2 |83 / PK6 (ADC14)| 14 #
+ * ################################## ################################## ##################################
+ *
+ * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ *
+ * == SPI connector ==
+ *
+ * 5 3 1
+ * #---------#
+ * | ° ° ° |
+ * | ° ° ° |
+ * #---------#
+ * 6 4 2
+ *
+ * ##################################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ##################################
+ * # 1 | 22 / PB3 (MISO)| 50 #
+ * # 2 | VCC | + #
+ * # 3 | 20 / PB1 (SCK) | 52 #
+ * # 4 | 21 / PB2 (MOSI)| 51 #
+ * # 5 | 30 / !RESET | RESET #
+ * # 6 | GND | - #
+ * ##################################
+ *
+ * Pictogram by Ludy https://github.com/Ludy87
+ * See: https://sebastien.andrivet.com/en/posts/wanhao-duplicator-i3-plus-3d-printer/
+ */
diff --git a/Marlin/src/pins/ramps/pins_FELIX2.h b/Marlin/src/pins/ramps/pins_FELIX2.h
new file mode 100644
index 0000000..e572d3f
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_FELIX2.h
@@ -0,0 +1,63 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * FELIXprinters v2.0/3.0 (RAMPS v1.4) pin assignments
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "Felix 2.0+ supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Felix 2.0+"
+
+//
+// Heaters / Fans
+//
+// Power outputs EFBF or EFBE
+#define MOSFET_D_PIN 7
+
+#include "pins_RAMPS.h"
+
+//
+// Misc. Functions
+//
+#define SDPOWER_PIN 1
+
+#define PS_ON_PIN 12
+
+//
+// LCD / Controller
+//
+#if IS_ULTRA_LCD && IS_NEWPANEL
+
+ #define SD_DETECT_PIN 6
+
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#undef SPINDLE_LASER_PWM_PIN // Definitions in pins_RAMPS.h are not valid with this board
+#undef SPINDLE_LASER_ENA_PIN
+#undef SPINDLE_DIR_PIN
diff --git a/Marlin/src/pins/ramps/pins_FORMBOT_RAPTOR.h b/Marlin/src/pins/ramps/pins_FORMBOT_RAPTOR.h
new file mode 100644
index 0000000..5b72478
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_FORMBOT_RAPTOR.h
@@ -0,0 +1,197 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Formbot Raptor pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 3 || E_STEPPERS > 3
+ #error "Formbot supports up to 3 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Formbot Raptor"
+#endif
+#ifndef DEFAULT_MACHINE_NAME
+ #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN 11
+#define SERVO1_PIN 6
+#define SERVO2_PIN 5
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 3
+#ifndef X_MAX_PIN
+ #define X_MAX_PIN 2
+#endif
+#define Y_MIN_PIN 14
+#define Y_MAX_PIN 15
+#define Z_MIN_PIN 18
+#define Z_MAX_PIN 19
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 32
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 54
+#define X_DIR_PIN 55
+#define X_ENABLE_PIN 38
+#ifndef X_CS_PIN
+ #define X_CS_PIN 53
+#endif
+
+#define Y_STEP_PIN 60
+#define Y_DIR_PIN 61
+#define Y_ENABLE_PIN 56
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 49
+#endif
+
+#define Z_STEP_PIN 46
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 62
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 40
+#endif
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 42
+#endif
+
+#define E1_STEP_PIN 36
+#define E1_DIR_PIN 34
+#define E1_ENABLE_PIN 30
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 44
+#endif
+
+#define E2_STEP_PIN 42
+#define E2_DIR_PIN 43
+#define E2_ENABLE_PIN 44
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 13 // Analog Input
+#define TEMP_1_PIN 15 // Analog Input
+#define TEMP_BED_PIN 14 // Analog Input
+
+// SPI for Max6675 or Max31855 Thermocouple
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 66 // Don't use 53 if using Display/SD card
+#else
+ #define MAX6675_SS_PIN 66 // Don't use 49 (SD_DETECT_PIN)
+#endif
+
+//
+// Augmentation for auto-assigning RAMPS plugs
+//
+#if NONE(IS_RAMPS_EEB, IS_RAMPS_EEF, IS_RAMPS_EFB, IS_RAMPS_EFF, IS_RAMPS_SF) && !PIN_EXISTS(MOSFET_D)
+ #if HAS_MULTI_HOTEND
+ #if TEMP_SENSOR_BED
+ #define IS_RAMPS_EEB
+ #else
+ #define IS_RAMPS_EEF
+ #endif
+ #elif TEMP_SENSOR_BED
+ #define IS_RAMPS_EFB
+ #else
+ #define IS_RAMPS_EFF
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 10
+#define HEATER_1_PIN 7
+#define HEATER_BED_PIN 8
+
+#ifndef FAN_PIN
+ #define FAN_PIN 9
+#endif
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 57
+#endif
+
+#if !HAS_FILAMENT_SENSOR
+ #define FAN1_PIN 4
+#endif
+
+//
+// Misc. Functions
+//
+#ifndef SDSS
+ #define SDSS 53
+#endif
+#define LED_PIN 13
+#define LED4_PIN 5
+
+// Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
+#define FILWIDTH_PIN 5 // Analog Input
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN 12
+#endif
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 5
+#endif
+
+//
+// LCD / Controller
+//
+// Formbot only supports REPRAP_DISCOUNT_SMART_CONTROLLER
+//
+#if IS_RRD_SC
+ #define BEEPER_PIN 37
+ #define BTN_EN1 31
+ #define BTN_EN2 33
+ #define BTN_ENC 35
+ #define SD_DETECT_PIN 49
+ #define KILL_PIN 41
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 23
+ #define LCD_PINS_D5 25
+ #define LCD_PINS_D6 27
+ #define LCD_PINS_D7 29
+#endif
diff --git a/Marlin/src/pins/ramps/pins_FORMBOT_RAPTOR2.h b/Marlin/src/pins/ramps/pins_FORMBOT_RAPTOR2.h
new file mode 100644
index 0000000..843eadb
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_FORMBOT_RAPTOR2.h
@@ -0,0 +1,68 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Formbot Raptor 2 pin assignments
+ */
+
+#define BOARD_INFO_NAME "Formbot Raptor2"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+#define FAN_PIN 6
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 22
+#endif
+
+#include "pins_FORMBOT_RAPTOR.h"
+
+#define GREEDY_PANEL ANY(PANEL_ONE, VIKI2, miniVIKI, MINIPANEL, REPRAPWORLD_KEYPAD)
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER && !PIN_EXISTS(SPINDLE_LASER_ENA)
+ #if !NUM_SERVOS // Try to use servo connector first
+ #define SPINDLE_LASER_ENA_PIN 6 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 4 // Hardware PWM
+ #define SPINDLE_DIR_PIN 5
+ #elif !GREEDY_PANEL // Try to use AUX2
+ #define SPINDLE_LASER_ENA_PIN 4 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
+ #define SPINDLE_DIR_PIN 65
+ #endif
+#endif
+
+#if ENABLED(CASE_LIGHT_ENABLE) && !PIN_EXISTS(CASE_LIGHT)
+ #if NUM_SERVOS <= 1 // Try to use servo connector first
+ #define CASE_LIGHT_PIN 6 // Hardware PWM
+ #elif !GREEDY_PANEL // Try to use AUX2
+ #define CASE_LIGHT_PIN 44 // Hardware PWM
+ #endif
+#endif
+
+#undef GREEDY_PANEL
+
+#if ENABLED(CASE_LIGHT_ENABLE) && PIN_EXISTS(CASE_LIGHT) && (CASE_LIGHT_PIN == SPINDLE_LASER_ENA_PIN || CASE_LIGHT_PIN == SPINDLE_LASER_PWM_PIN)
+ #error "CASE_LIGHT_PIN conflicts with a Spindle / Laser pin."
+#endif
diff --git a/Marlin/src/pins/ramps/pins_FORMBOT_TREX2PLUS.h b/Marlin/src/pins/ramps/pins_FORMBOT_TREX2PLUS.h
new file mode 100644
index 0000000..81b6ea1
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_FORMBOT_TREX2PLUS.h
@@ -0,0 +1,210 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Formbot pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "Formbot supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Formbot"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+//
+// Servos
+//
+#define SERVO0_PIN 11
+#define SERVO1_PIN -1 // was 6
+#define SERVO2_PIN -1 // was 5
+#define SERVO3_PIN -1
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 3
+#ifndef X_MAX_PIN
+ #define X_MAX_PIN 2
+#endif
+#define Y_MIN_PIN 14
+#define Y_MAX_PIN 15
+#define Z_MIN_PIN 18
+#define Z_MAX_PIN 19
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 32
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 54
+#define X_DIR_PIN 55
+#define X_ENABLE_PIN 38
+#ifndef X_CS_PIN
+ #define X_CS_PIN 53
+#endif
+
+#define Y_STEP_PIN 60
+#define Y_DIR_PIN 61
+#define Y_ENABLE_PIN 56
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 49
+#endif
+
+#define Z_STEP_PIN 46
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 62
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 40
+#endif
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 42
+#endif
+
+#define E1_STEP_PIN 36
+#define E1_DIR_PIN 34
+#define E1_ENABLE_PIN 30
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 44
+#endif
+
+#define E2_STEP_PIN 42
+#define E2_DIR_PIN 43
+#define E2_ENABLE_PIN 44
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 13 // Analog Input
+#define TEMP_1_PIN 15 // Analog Input
+#define TEMP_BED_PIN 3 // Analog Input
+
+// SPI for Max6675 or Max31855 Thermocouple
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 66 // Don't use 53 if using Display/SD card
+#else
+ #define MAX6675_SS_PIN 66 // Don't use 49 (SD_DETECT_PIN)
+#endif
+
+//
+// Augmentation for auto-assigning RAMPS plugs
+//
+#if NONE(IS_RAMPS_EEB, IS_RAMPS_EEF, IS_RAMPS_EFB, IS_RAMPS_EFF, IS_RAMPS_SF) && !PIN_EXISTS(MOSFET_D)
+ #if HAS_MULTI_HOTEND
+ #if TEMP_SENSOR_BED
+ #define IS_RAMPS_EEB
+ #else
+ #define IS_RAMPS_EEF
+ #endif
+ #elif TEMP_SENSOR_BED
+ #define IS_RAMPS_EFB
+ #else
+ #define IS_RAMPS_EFF
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 10
+#define HEATER_1_PIN 7
+#define HEATER_BED_PIN 58
+
+#define FAN_PIN 9
+
+#if HAS_FILAMENT_SENSOR
+ #define FIL_RUNOUT_PIN 4
+ //#define FIL_RUNOUT2_PIN -1
+#else
+ // Though defined as a fan pin, it is utilized as a dedicated laser pin by Formbot.
+ #define FAN1_PIN 4
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#ifndef LED_PIN
+ #define LED_PIN 13 // The Formbot v 1 board has almost no unassigned pins on it. The Board's LED
+#endif // is a good place to get a signal to control the Max7219 LED Matrix.
+
+// Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
+#define FILWIDTH_PIN 5 // Analog Input
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN 12
+#endif
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 8
+#endif
+
+//
+// LCD / Controller
+//
+// Formbot only supports REPRAP_DISCOUNT_SMART_CONTROLLER
+//
+#if IS_RRD_SC
+ #ifndef BEEPER_PIN
+ #define BEEPER_PIN 37
+ #endif
+ #define BTN_EN1 31
+ #define BTN_EN2 33
+ #define BTN_ENC 35
+ #define SD_DETECT_PIN 49
+
+ // Allow MAX7219 to steal the KILL pin
+ #if !defined(KILL_PIN) && MAX7219_CLK_PIN != 41 && MAX7219_DIN_PIN != 41 && MAX7219_LOAD_PIN != 41
+ #define KILL_PIN 41
+ #endif
+
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 23
+ #define LCD_PINS_D5 25
+ #define LCD_PINS_D6 27
+ #define LCD_PINS_D7 29
+#endif
+
+#if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(200)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(200)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(200)
+ #endif
+#endif
diff --git a/Marlin/src/pins/ramps/pins_FORMBOT_TREX3.h b/Marlin/src/pins/ramps/pins_FORMBOT_TREX3.h
new file mode 100644
index 0000000..a97b0d2
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_FORMBOT_TREX3.h
@@ -0,0 +1,175 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Formbot pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "Formbot supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Formbot"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+//
+// Servos
+//
+#define SERVO0_PIN 11
+#define SERVO1_PIN -1 // was 6
+#define SERVO2_PIN -1
+#define SERVO3_PIN -1
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 3
+#ifndef X_MAX_PIN
+ #define X_MAX_PIN 2
+#endif
+#define Y_MIN_PIN 14
+#define Y_MAX_PIN 15
+#define Z_MIN_PIN 18
+#define Z_MAX_PIN 19
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 32
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 54
+#define X_DIR_PIN 55
+#define X_ENABLE_PIN 38
+#ifndef X_CS_PIN
+ #define X_CS_PIN 53
+#endif
+
+#define Y_STEP_PIN 60
+#define Y_DIR_PIN 61
+#define Y_ENABLE_PIN 56
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 49
+#endif
+
+#define Z_STEP_PIN 46
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 62
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 40
+#endif
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 42
+#endif
+
+#define E1_STEP_PIN 36
+#define E1_DIR_PIN 34
+#define E1_ENABLE_PIN 30
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 44
+#endif
+
+#define E2_STEP_PIN 42
+#define E2_DIR_PIN 43
+#define E2_ENABLE_PIN 44
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 13 // Analog Input
+#define TEMP_1_PIN 15 // Analog Input
+#define TEMP_BED_PIN 14 // Analog Input
+
+// SPI for Max6675 or Max31855 Thermocouple
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 66 // Don't use 53 if using Display/SD card
+#else
+ #define MAX6675_SS_PIN 66 // Don't use 49 (SD_DETECT_PIN)
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 10
+#define HEATER_1_PIN 7
+#define HEATER_BED_PIN 8
+
+#define FAN_PIN 9
+#define FAN1_PIN 12
+
+#define NUM_RUNOUT_SENSORS 2
+#define FIL_RUNOUT_PIN 22
+#define FIL_RUNOUT2_PIN 21
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+
+#ifndef LED_PIN
+ #define LED_PIN 13
+#endif
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 5
+#endif
+
+#define SPINDLE_LASER_PWM_PIN -1 // Hardware PWM
+#define SPINDLE_LASER_ENA_PIN 4 // Pullup!
+
+// Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
+#define FILWIDTH_PIN 5 // Analog Input
+
+//
+// LCD / Controller
+//
+// Formbot only supports REPRAP_DISCOUNT_SMART_CONTROLLER
+//
+#if IS_RRD_SC
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 23
+ #define LCD_PINS_D5 25
+ #define LCD_PINS_D6 27
+ #define LCD_PINS_D7 29
+ #define BTN_EN1 31
+ #define BTN_EN2 33
+ #define BTN_ENC 35
+ #define SD_DETECT_PIN 49
+ #ifndef KILL_PIN
+ #define KILL_PIN 41
+ #endif
+ #ifndef BEEPER_PIN
+ #define BEEPER_PIN 37
+ #endif
+#endif
diff --git a/Marlin/src/pins/ramps/pins_FYSETC_F6_13.h b/Marlin/src/pins/ramps/pins_FYSETC_F6_13.h
new file mode 100644
index 0000000..6133a64
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_FYSETC_F6_13.h
@@ -0,0 +1,301 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+//
+// FYSETC F6 1.3 (and 1.4) pin assignments
+//
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'FYSETC F6' in 'Tools > Board.'"
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "FYSETC F6 1.3"
+#endif
+
+#define RESET_PIN 30
+#define SPI_FLASH_CS 83
+
+//
+// Servos
+//
+#define SERVO0_PIN 13
+#define SERVO1_PIN 11 // (PS_ON_PIN)
+#define SERVO2_PIN 10 // (FIL_RUNOUT_PIN)
+#define SERVO3_PIN 4 // (RGB_LED_G_PIN)
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 63
+#define X_MAX_PIN 64
+#define Y_MIN_PIN 14
+#define Y_MAX_PIN 15
+#define Z_MIN_PIN 12
+#ifndef Z_MAX_PIN
+ #define Z_MAX_PIN 9
+#endif
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN SERVO2_PIN
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 9 // Servos pin
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 54
+#define X_DIR_PIN 55
+#define X_ENABLE_PIN 38
+#ifndef X_CS_PIN
+ #define X_CS_PIN 70
+#endif
+
+#define Y_STEP_PIN 60
+#define Y_DIR_PIN 61
+#define Y_ENABLE_PIN 56
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 39
+#endif
+
+#define Z_STEP_PIN 43
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 58
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 74
+#endif
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 47
+#endif
+
+#define E1_STEP_PIN 36
+#define E1_DIR_PIN 34
+#define E1_ENABLE_PIN 30
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 32
+#endif
+
+#define E2_STEP_PIN 59
+#define E2_DIR_PIN 57
+#define E2_ENABLE_PIN 40
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN 42
+#endif
+
+//
+// Sensorless homing DIAG pin is not directly connected to the MCU. Close
+// the jumper next to the limit switch socket when using sensorless homing.
+//
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Software serial communication pins.
+ * At the moment, F6 rx pins are not pc interrupt pins
+ */
+ #ifndef X_SERIAL_RX_PIN
+ #define X_SERIAL_RX_PIN -1 // 71
+ #endif
+ #ifndef X_SERIAL_TX_PIN
+ #define X_SERIAL_TX_PIN 72
+ #endif
+ #ifndef Y_SERIAL_RX_PIN
+ #define Y_SERIAL_RX_PIN -1 // 73
+ #endif
+ #ifndef Y_SERIAL_TX_PIN
+ #define Y_SERIAL_TX_PIN 75
+ #endif
+ #ifndef Z_SERIAL_RX_PIN
+ #define Z_SERIAL_RX_PIN -1 // 78
+ #endif
+ #ifndef Z_SERIAL_TX_PIN
+ #define Z_SERIAL_TX_PIN 79
+ #endif
+ #ifndef E0_SERIAL_RX_PIN
+ #define E0_SERIAL_RX_PIN -1 // 76
+ #endif
+ #ifndef E0_SERIAL_TX_PIN
+ #define E0_SERIAL_TX_PIN 77
+ #endif
+ #ifndef E1_SERIAL_RX_PIN
+ #define E1_SERIAL_RX_PIN -1 // 80
+ #endif
+ #ifndef E1_SERIAL_TX_PIN
+ #define E1_SERIAL_TX_PIN 81
+ #endif
+ #ifndef E2_SERIAL_RX_PIN
+ #define E2_SERIAL_RX_PIN -1 // 22
+ #endif
+ #ifndef E2_SERIAL_TX_PIN
+ #define E2_SERIAL_TX_PIN 82
+ #endif
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 12 // Analog Input
+#define TEMP_1_PIN 13 // Analog Input
+#define TEMP_2_PIN 14 // Analog Input
+#define TEMP_BED_PIN 15 // Analog Input
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 9 // Analog Input on X+ endstop
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 5
+#define HEATER_1_PIN 6
+#define HEATER_2_PIN 7
+#define HEATER_BED_PIN 8
+
+#define FAN_PIN 44
+#define FAN1_PIN 45
+#define FAN2_PIN 46
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+#define KILL_PIN 41
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN SERVO1_PIN
+#endif
+
+/**
+ * ----- -----
+ * 5V/D41 | · · | GND 5V | · · | GND
+ * RESET | · · | D49 (SD_DETECT) (LCD_D7) D29 | · · | D27 (LCD_D6)
+ * (MOSI) D51 | · · D33 (BTN_EN2) (LCD_D5) D25 | · · D23 (LCD_D4)
+ * (SD_SS) D53 | · · | D31 (BTN_EN1) (LCD_RS) D16 | · · | D17 (LCD_EN)
+ * (SCK) D52 | · · | D50 (MISO) (BTN_ENC) D35 | · · | D37 (BEEPER)
+ * ----- -----
+ * EXP2 EXP1
+ */
+
+//
+// LCDs and Controllers
+//
+#define SD_DETECT_PIN 49
+
+#if ENABLED(FYSETC_242_OLED_12864)
+ #define BTN_EN1 37
+ #define BTN_EN2 29
+ #define BTN_ENC 35
+ #define BEEPER_PIN 31
+
+ #define LCD_PINS_DC 25
+ #define LCD_PINS_RS 33
+ #define DOGLCD_CS 16
+ #define DOGLCD_MOSI 23
+ #define DOGLCD_SCK 17
+ #define DOGLCD_A0 LCD_PINS_DC
+
+ #undef KILL_PIN
+ #define NEOPIXEL_PIN 27
+
+#else
+ #define BEEPER_PIN 37
+
+ #if ENABLED(FYSETC_MINI_12864)
+ //
+ // See https://wiki.fysetc.com/Mini12864_Panel/?fbclid=IwAR1FyjuNdVOOy9_xzky3qqo_WeM5h-4gpRnnWhQr_O1Ef3h0AFnFXmCehK8
+ //
+ #define DOGLCD_A0 16
+ #define DOGLCD_CS 17
+
+ #if ENABLED(FYSETC_GENERIC_12864_1_1)
+ #define LCD_BACKLIGHT_PIN 27
+ #endif
+
+ #define LCD_RESET_PIN 23 // Must be high or open for LCD to operate normally.
+ // Seems to work best if left open.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN 25
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN 27
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN 29
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN 25
+ #endif
+
+ #elif HAS_MARLINUI_U8GLIB || HAS_MARLINUI_HD44780
+
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 23
+ #define LCD_PINS_D5 25
+ #define LCD_PINS_D6 27
+ #define LCD_PINS_D7 29
+
+ #if ENABLED(MKS_MINI_12864)
+ #define DOGLCD_CS 25
+ #define DOGLCD_A0 27
+ #endif
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #if IS_NEWPANEL
+ #define BTN_EN1 31
+ #define BTN_EN2 33
+ #define BTN_ENC 35
+ #endif
+#endif
+
+#ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN 3
+#endif
+#ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN 4
+#endif
+#ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN 9
+#endif
+#ifndef RGB_LED_W_PIN
+ #define RGB_LED_W_PIN -1
+#endif
diff --git a/Marlin/src/pins/ramps/pins_FYSETC_F6_14.h b/Marlin/src/pins/ramps/pins_FYSETC_F6_14.h
new file mode 100644
index 0000000..4280204
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_FYSETC_F6_14.h
@@ -0,0 +1,50 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+//
+// FYSETC F6 v1.4 pin assignments
+//
+
+#define BOARD_INFO_NAME "FYSETC F6 1.4"
+
+#define Z_MAX_PIN 2
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ */
+ #define X_SERIAL_RX_PIN 72
+ #define X_SERIAL_TX_PIN 71
+ #define Y_SERIAL_RX_PIN 73
+ #define Y_SERIAL_TX_PIN 78
+ #define Z_SERIAL_RX_PIN 75
+ #define Z_SERIAL_TX_PIN 79
+ #define E0_SERIAL_RX_PIN 77
+ #define E0_SERIAL_TX_PIN 81
+ #define E1_SERIAL_RX_PIN 76
+ #define E1_SERIAL_TX_PIN 80
+ #define E2_SERIAL_RX_PIN 62
+ #define E2_SERIAL_TX_PIN 82
+#endif
+
+#include "pins_FYSETC_F6_13.h"
diff --git a/Marlin/src/pins/ramps/pins_K8200.h b/Marlin/src/pins/ramps/pins_K8200.h
new file mode 100644
index 0000000..df685e0
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_K8200.h
@@ -0,0 +1,33 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * K8200 Arduino Mega with RAMPS v1.3 pin assignments
+ * Identical to 3DRAG
+ */
+
+#define BOARD_INFO_NAME "Velleman K8200"
+#define DEFAULT_MACHINE_NAME "K8200"
+#define DEFAULT_SOURCE_CODE_URL "github.com/CONSULitAS/Marlin-K8200"
+
+#include "pins_3DRAG.h"
diff --git a/Marlin/src/pins/ramps/pins_K8400.h b/Marlin/src/pins/ramps/pins_K8400.h
new file mode 100644
index 0000000..af68792
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_K8400.h
@@ -0,0 +1,73 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Velleman K8400 (Vertex)
+ * 3DRAG clone
+ *
+ * K8400 has some minor differences over a normal 3Drag:
+ * - No X/Y max endstops
+ * - Second extruder step pin has moved
+ * - No power supply control
+ * - Second heater has moved pin
+ */
+
+#define BOARD_INFO_NAME "K8400"
+#define DEFAULT_MACHINE_NAME "Vertex"
+
+#include "pins_3DRAG.h"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 3
+#define Y_STOP_PIN 14
+
+#undef X_MIN_PIN
+#undef X_MAX_PIN
+#undef Y_MIN_PIN
+#undef Y_MAX_PIN
+
+//
+// Steppers
+//
+#undef E1_STEP_PIN
+#define E1_STEP_PIN 32
+
+//
+// Heaters / Fans
+//
+#undef HEATER_1_PIN
+#define HEATER_1_PIN 11
+
+//
+// Misc. Functions
+//
+#undef PS_ON_PIN
+#undef KILL_PIN
+#undef SD_DETECT_PIN
+
+#if Z_STEP_PIN == 26
+ #undef Z_STEP_PIN
+ #define Z_STEP_PIN 32
+#endif
diff --git a/Marlin/src/pins/ramps/pins_K8600.h b/Marlin/src/pins/ramps/pins_K8600.h
new file mode 100644
index 0000000..1a396b2
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_K8600.h
@@ -0,0 +1,127 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * VERTEX NANO Arduino Mega with RAMPS EFB v1.4 pin assignments.
+ */
+
+#if HOTENDS > 1
+ #error "Only 1 hotend is supported for Vertex Nano."
+#endif
+
+#define BOARD_INFO_NAME "K8600"
+#define DEFAULT_MACHINE_NAME "Vertex Nano"
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 3
+#define Y_MAX_PIN 14
+#define Z_MAX_PIN 18
+#define Z_MIN_PIN -1
+
+//
+// Heaters / Fans
+//
+#define FAN_PIN 8
+
+//
+// Misc. Functions
+//
+#define CASE_LIGHT_PIN 7
+
+//
+// Other RAMPS pins
+//
+#define IS_RAMPS_EFB // Override autodetection. Bed will be undefined.
+#include "pins_RAMPS.h"
+
+//
+// Steppers
+//
+#undef X_STEP_PIN
+#undef X_DIR_PIN
+#undef X_ENABLE_PIN
+#define X_STEP_PIN 54
+#define X_DIR_PIN 55
+#define X_ENABLE_PIN 38
+
+#undef Y_STEP_PIN
+#undef Y_DIR_PIN
+#undef Y_ENABLE_PIN
+#define Y_STEP_PIN 60
+#define Y_DIR_PIN 61
+#define Y_ENABLE_PIN 56
+
+#undef Z_ENABLE_PIN
+#define Z_ENABLE_PIN 63
+
+#undef E0_STEP_PIN
+#undef E0_DIR_PIN
+#undef E0_ENABLE_PIN
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+
+//
+// Heaters / Fans
+//
+#undef HEATER_BED_PIN
+
+//
+// Misc. Functions
+//
+#undef SDSS
+#define SDSS 25 // 53
+
+//
+// LCD / Controller
+//
+#if IS_ULTRA_LCD && IS_NEWPANEL
+ #undef BEEPER_PIN
+
+ #undef LCD_PINS_RS
+ #undef LCD_PINS_ENABLE
+ #undef LCD_PINS_D4
+ #undef LCD_PINS_D5
+ #undef LCD_PINS_D6
+ #undef LCD_PINS_D7
+ #define LCD_PINS_RS 27
+ #define LCD_PINS_ENABLE 29
+ #define LCD_PINS_D4 37
+ #define LCD_PINS_D5 35
+ #define LCD_PINS_D6 33
+ #define LCD_PINS_D7 31
+
+ // Buttons
+ #undef BTN_EN1
+ #undef BTN_EN2
+ #undef BTN_ENC
+ #define BTN_EN1 17
+ #define BTN_EN2 16
+ #define BTN_ENC 23
+
+#else
+
+ #define BEEPER_PIN 33
+
+#endif
diff --git a/Marlin/src/pins/ramps/pins_K8800.h b/Marlin/src/pins/ramps/pins_K8800.h
new file mode 100644
index 0000000..5388c96
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_K8800.h
@@ -0,0 +1,122 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Velleman K8800 (Vertex)
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "K8800"
+#define DEFAULT_MACHINE_NAME "Vertex Delta"
+
+//#define LCD_SCREEN_ROT_180
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 3
+#define Y_STOP_PIN 14
+#define Z_STOP_PIN 66
+
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 68
+#endif
+
+#define FIL_RUNOUT_PIN 69 // PK7
+
+//
+// Steppers
+//
+#define X_STEP_PIN 54
+#define X_DIR_PIN 55
+#define X_ENABLE_PIN 38
+
+#define Y_STEP_PIN 60
+#define Y_DIR_PIN 61
+#define Y_ENABLE_PIN 56
+
+#define Z_STEP_PIN 46
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 63
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 13
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 10
+#define FAN_PIN 8
+#define CONTROLLER_FAN_PIN 9
+
+//
+// Misc. Functions
+//
+#define KILL_PIN 20 // PD1
+#define CASE_LIGHT_PIN 7
+
+//
+// SD Card
+//
+#define SDSS 25
+#define SD_DETECT_PIN 21 // PD0
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN 6
+
+#if HAS_WIRED_LCD
+
+ #define LCD_SDSS 53
+
+ #define DOGLCD_CS 29
+ #define DOGLCD_A0 27
+
+ #define LCD_PINS_RS 27
+ #define LCD_PINS_ENABLE 29
+ #define LCD_PINS_D4 37
+ #define LCD_PINS_D5 35
+ #define LCD_PINS_D6 33
+ #define LCD_PINS_D7 31
+
+ #define LCD_CONTRAST_MIN 0
+ #define LCD_CONTRAST_MAX 100
+ #define DEFAULT_LCD_CONTRAST 30
+
+ #if IS_NEWPANEL
+ #define BTN_EN1 17
+ #define BTN_EN2 16
+ #define BTN_ENC 23
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/ramps/pins_LONGER3D_LKx_PRO.h b/Marlin/src/pins/ramps/pins_LONGER3D_LKx_PRO.h
new file mode 100644
index 0000000..6fcb7b9
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_LONGER3D_LKx_PRO.h
@@ -0,0 +1,118 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Longer3D LK1/LK4/LK5 Pro board pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "Longer3D LGT KIT V1.0 board only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#if SERIAL_PORT == 1 || SERIAL_PORT_2 == 1
+ #warning "Serial 1 is originally reserved to DGUS LCD."
+#endif
+#if SERIAL_PORT == 2 || SERIAL_PORT_2 == 2
+ #warning "Serial 2 has no connector. Hardware changes may be required to use it."
+#endif
+#if SERIAL_PORT == 3 || SERIAL_PORT_2 == 3
+ #define CHANGE_Y_LIMIT_PINS
+ #warning "Serial 3 is originally reserved to Y limit switches. Hardware changes are required to use it."
+#endif
+
+// Custom flags and defines for the build
+//#define BOARD_CUSTOM_BUILD_FLAGS -D__FOO__
+
+#define BOARD_INFO_NAME "LGT KIT V1.0"
+
+//
+// Servos
+//
+#if !MB(LONGER3D_LK1_PRO)
+ #define SERVO0_PIN 7
+#endif
+#define SERVO1_PIN -1
+#define SERVO2_PIN -1
+#define SERVO3_PIN -1
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 3
+
+#ifdef CHANGE_Y_LIMIT_PINS
+ #define Y_STOP_PIN 37
+#else
+ #define Y_MIN_PIN 14
+ #define Y_MAX_PIN 15
+#endif
+
+#if !MB(LONGER3D_LK1_PRO)
+ #ifdef CHANGE_Y_LIMIT_PINS
+ #define Z_STOP_PIN 35
+ #else
+ #define Z_MIN_PIN 35
+ #define Z_MAX_PIN 37
+ #endif
+#else
+ #define Z_MIN_PIN 11
+ #define Z_MAX_PIN 37
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#define Z_MIN_PROBE_PIN -1
+
+//
+// Misc. Functions
+//
+#define SD_DETECT_PIN 49
+#define FIL_RUNOUT_PIN 2
+
+//
+// Other RAMPS 1.3 pins
+//
+#define IS_RAMPS_EFB // Override autodetection. Bed will be undefined.
+#include "pins_RAMPS_13.h"
+
+//
+// Steppers
+//
+#undef E1_STEP_PIN
+#undef E1_DIR_PIN
+#undef E1_ENABLE_PIN
+#undef E1_CS_PIN
+
+//
+// Temperature Sensors
+//
+#undef TEMP_1_PIN
+
+//
+// Průša i3 MK2 Multiplexer Support
+//
+#undef E_MUX2_PIN
+#undef CHANGE_Y_LIMIT_PINS
diff --git a/Marlin/src/pins/ramps/pins_MAKEBOARD_MINI.h b/Marlin/src/pins/ramps/pins_MAKEBOARD_MINI.h
new file mode 100644
index 0000000..a42dba8
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_MAKEBOARD_MINI.h
@@ -0,0 +1,33 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#define BOARD_INFO_NAME "MAKEboard Mini"
+
+//
+// Only 3 Limit Switch plugs on Micromake C1
+//
+#define X_STOP_PIN 2
+#define Y_STOP_PIN 15
+#define Z_STOP_PIN 19
+
+#include "pins_RAMPS.h"
diff --git a/Marlin/src/pins/ramps/pins_MKS_BASE_10.h b/Marlin/src/pins/ramps/pins_MKS_BASE_10.h
new file mode 100644
index 0000000..0be5865
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_MKS_BASE_10.h
@@ -0,0 +1,37 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS BASE 1.0 – Arduino Mega2560 with RAMPS v1.4 pin assignments
+ *
+ * Rev B - Override pin definitions for CASE_LIGHT and M3/M4/M5 spindle control
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS BASE 1.0 supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS BASE 1.0"
+#define MKS_BASE_VERSION 10
+
+#include "pins_MKS_BASE_common.h"
diff --git a/Marlin/src/pins/ramps/pins_MKS_BASE_14.h b/Marlin/src/pins/ramps/pins_MKS_BASE_14.h
new file mode 100644
index 0000000..3612f9b
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_MKS_BASE_14.h
@@ -0,0 +1,170 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS BASE v1.4 with A4982 stepper drivers and digital micro-stepping
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS BASE 1.4 only supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS BASE 1.4"
+#define MKS_BASE_VERSION 14
+
+//
+// Heaters / Fans
+//
+#define FAN_PIN 9 // PH6 ** Pin18 ** PWM9
+
+// Other Mods
+
+#define SERVO3_PIN 12 // PB6 ** Pin25 ** D12
+#define PS_ON_PIN 2 // X+ // PE4 ** Pin6 ** PWM2 **MUST BE HARDWARE PWM
+#define FILWIDTH_PIN 15 // Y+ // PJ0 ** Pin63 ** USART3_RX **Pin should have a pullup!
+#define FIL_RUNOUT_PIN 19 // Z+ // PD2 ** Pin45 ** USART1_RX
+
+#ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN 50
+#endif
+#ifndef RGB_LED_R_PIN
+ #define RGB_LED_G_PIN 51
+#endif
+#ifndef RGB_LED_R_PIN
+ #define RGB_LED_B_PIN 52
+#endif
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 11 // PB5 ** Pin24 ** PWM11
+#endif
+
+#include "pins_MKS_BASE_common.h"
+
+/*
+ Available connectors on MKS BASE v1.4
+
+ =======
+ | GND |
+ |-----| E0
+ | 10 | (10) PB4 ** Pin23 ** PWM10
+ |-----|
+ | GND |
+ |-----| E1
+ | 7 | ( 7) PH4 ** Pin16 ** PWM7
+ |-----|
+ | GND |
+ |-----| FAN
+ | 9 | ( 9) PH6 ** Pin18 ** PWM9
+ =======
+
+ =======
+ | GND |
+ |-----| Heated Bed
+ | 8 | ( 8) PH5 ** Pin17 ** PWM8
+ =======
+
+ ==========
+ | 12-24V |
+ |--------| Power
+ | GND |
+ ==========
+
+ XS3 Connector
+ =================
+ | 65 | GND | 5V | (65) PK3 ** Pin86 ** A11
+ |----|-----|----|
+ | 66 | GND | 5V | (66) PK4 ** Pin85 ** A12
+ =================
+
+ Servos Connector
+ =================
+ | 11 | GND | 5V | (11) PB5 ** Pin24 ** PWM11
+ |----|-----|----|
+ | 12 | GND | 5V | (12) PB6 ** Pin25 ** PWM12
+ =================
+
+ ICSP
+ =================
+ | 5V | 51 | GND | (51) PB2 ** Pin21 ** SPI_MOSI
+ |----|----|-----|
+ | 50 | 52 | RST | (50) PB3 ** Pin22 ** SPI_MISO
+ ================= (52) PB1 ** Pin20 ** SPI_SCK
+
+ XS6/AUX-1 Connector
+ ======================
+ | 5V | GND | NC | 20 | (20) PD1 ** Pin44 ** I2C_SDA
+ |----|-----|----|----|
+ | 50 | 51 | 52 | 21 | (50) PB3 ** Pin22 ** SPI_MISO
+ ====================== (51) PB2 ** Pin21 ** SPI_MOSI
+ (52) PB1 ** Pin20 ** SPI_SCK
+ (21) PD0 ** Pin43 ** I2C_SCL
+
+ Temperature
+ ==================================
+ | GND | 69 | GND | 68 | GND | 67 |
+ ==================================
+ (69) PK7 ** Pin82 ** A15
+ (68) PK6 ** Pin83 ** A14
+ (67) PK5 ** Pin84 ** A13
+
+ Limit Switches
+ ============
+ | 2 | GND | X+ ( 2) PE4 ** Pin6 ** PWM2
+ |----|-----|
+ | 3 | GND | X- ( 3) PE5 ** Pin7 ** PWM3
+ |----|-----|
+ | 15 | GND | Y+ (15) PJ0 ** Pin63 ** USART3_RX
+ |----|-----|
+ | 14 | GND | Y- (14) PJ1 ** Pin64 ** USART3_TX
+ |----|-----|
+ | 19 | GND | Z+ (19) PD2 ** Pin45 ** USART1_RX
+ |----|-----|
+ | 18 | GND | Z- (18) PD3 ** Pin46 ** USART1_TX
+ ============
+
+ EXP1
+ ============
+ | 37 | 35 | (37) PC0 ** Pin53 ** D37
+ |-----|----| (35) PC2 ** Pin55 ** D35
+ | 17 | 16 | (17) PH0 ** Pin12 ** USART2_RX
+ |-----|----| (16) PH1 ** Pin13 ** USART2_TX
+ | 23 | 25 | (23) PA1 ** Pin77 ** D23
+ |-----|----| (25) PA3 ** Pin75 ** D25
+ | 27 | 29 | (27) PA5 ** Pin73 ** D27
+ |-----|----| (29) PA7 ** Pin71 ** D29
+ | GND | 5V |
+ ============
+
+ EXP2
+ ============
+ | 50 | 52 | (50) PB3 ** Pin22 ** SPI_MISO
+ |-----|----| (52) PB1 ** Pin20 ** SPI_SCK
+ | 31 | 53 | (31) PC6 ** Pin59 ** D31
+ |-----|----| (53) PB0 ** Pin19 ** SPI_SS
+ | 33 | 51 | (33) PC4 ** Pin57 ** D33
+ |-----|----| (51) PB2 ** Pin21 ** SPI_MOSI
+ | 49 | 41 | (49) PL0 ** Pin35 ** D49
+ |-----|----| (41) PG0 ** Pin51 ** D41
+ | GND | NC |
+ ============
+*/
diff --git a/Marlin/src/pins/ramps/pins_MKS_BASE_15.h b/Marlin/src/pins/ramps/pins_MKS_BASE_15.h
new file mode 100644
index 0000000..9e670d1
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_MKS_BASE_15.h
@@ -0,0 +1,35 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS BASE v1.5 with A4982 stepper drivers and digital micro-stepping
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS BASE 1.5 only supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS BASE 1.5"
+#define MKS_BASE_VERSION 15
+
+#include "pins_MKS_BASE_common.h"
diff --git a/Marlin/src/pins/ramps/pins_MKS_BASE_16.h b/Marlin/src/pins/ramps/pins_MKS_BASE_16.h
new file mode 100644
index 0000000..a4dfca2
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_MKS_BASE_16.h
@@ -0,0 +1,59 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS BASE v1.6 with A4982 stepper drivers and digital micro-stepping
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS BASE 1.6 only supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS BASE 1.6"
+#define MKS_BASE_VERSION 16
+
+//
+// Servos
+//
+#define SERVO1_PIN 12 // Digital 12 / Pin 25
+
+//
+// Omitted RAMPS pins
+//
+#ifndef SERVO2_PIN
+ #define SERVO2_PIN -1
+#endif
+#ifndef SERVO3_PIN
+ #define SERVO3_PIN -1
+#endif
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN -1
+#endif
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN -1
+#endif
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN -1
+#endif
+
+#include "pins_MKS_BASE_common.h"
diff --git a/Marlin/src/pins/ramps/pins_MKS_BASE_HEROIC.h b/Marlin/src/pins/ramps/pins_MKS_BASE_HEROIC.h
new file mode 100644
index 0000000..3ce138b
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_MKS_BASE_HEROIC.h
@@ -0,0 +1,36 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS BASE with Heroic HR4982 stepper drivers
+ */
+
+#include "pins_MKS_BASE_15.h"
+
+/**
+ * Some new boards use HR4982 (Heroic) instead of the A4982 (Allegro) stepper drivers.
+ * Most the functionality is similar, the HR variant obviously doesn't work with diode
+ * smoothers (no fast decay). And the Heroic has a 128 µStepping mode where the A4982
+ * is doing quarter steps (MS1=0, MS2=1).
+ */
+#define HEROIC_STEPPER_DRIVERS
diff --git a/Marlin/src/pins/ramps/pins_MKS_BASE_common.h b/Marlin/src/pins/ramps/pins_MKS_BASE_common.h
new file mode 100644
index 0000000..9047a4b
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_MKS_BASE_common.h
@@ -0,0 +1,75 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS BASE – Arduino Mega2560 with RAMPS pin assignments
+ */
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS BASE"
+#endif
+
+#if MKS_BASE_VERSION >= 14
+ //
+ // Heaters / Fans
+ //
+ // Power outputs EFBF or EFBE
+ #define MOSFET_D_PIN 7
+
+ //
+ // M3/M4/M5 - Spindle/Laser Control
+ //
+ #if HAS_CUTTER
+ #define SPINDLE_LASER_PWM_PIN 2 // Hardware PWM
+ #define SPINDLE_LASER_ENA_PIN 15 // Pullup!
+ #define SPINDLE_DIR_PIN 19
+ #endif
+
+ #ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 2
+ #endif
+
+#endif
+
+//
+// Microstepping pins
+//
+#if MKS_BASE_VERSION >= 14 // |===== 1.4 =====|===== 1.5+ =====|
+ #define X_MS1_PIN 5 // PE3 | Pin 5 | PWM5 | | D3 | SERVO2_PIN
+ #define X_MS2_PIN 6 // PH3 | Pin 15 | PWM6 | Pin 14 | D6 | SERVO1_PIN
+ #define Y_MS1_PIN 59 // PF5 | Pin 92 | A5 | | |
+ #define Y_MS2_PIN 58 // PF4 | Pin 93 | A4 | | |
+ #define Z_MS1_PIN 22 // PA0 | Pin 78 | D22 | | |
+ #define Z_MS2_PIN 39 // PG2 | Pin 70 | D39 | | |
+ #if MKS_BASE_VERSION == 14
+ #define E0_MS1_PIN 64 // PK2 | Pin 87 | A10 | | |
+ #define E0_MS2_PIN 63 // PK1 | Pin 88 | A9 | | |
+ #else
+ #define E0_MS1_PIN 63 // PK1 | | | Pin 86 | A9 |
+ #define E0_MS2_PIN 64 // PK2 | | | Pin 87 | A10 |
+ #endif
+ #define E1_MS1_PIN 57 // PF3 | Pin 94 | A3 | Pin 93 | A3 |
+ #define E1_MS2_PIN 4 // PG5 | Pin 1 | PWM4 | | D4 | SERVO3_PIN
+#endif
+
+#include "pins_RAMPS.h"
diff --git a/Marlin/src/pins/ramps/pins_MKS_GEN_13.h b/Marlin/src/pins/ramps/pins_MKS_GEN_13.h
new file mode 100644
index 0000000..08dd0f4
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_MKS_GEN_13.h
@@ -0,0 +1,147 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega with RAMPS v1.4 adjusted pin assignments
+ *
+ * MKS GEN v1.3 (Extruder, Fan, Bed)
+ * MKS GEN v1.3 (Extruder, Extruder, Fan, Bed)
+ * MKS GEN v1.4 (Extruder, Fan, Bed)
+ * MKS GEN v1.4 (Extruder, Extruder, Fan, Bed)
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS GEN 1.3/1.4 supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS GEN >= v1.3"
+
+//
+// Heaters / Fans
+//
+// Power outputs EFBF or EFBE
+#define MOSFET_D_PIN 7
+
+//
+// PSU / SERVO
+//
+// If PSU_CONTROL is specified, always hijack Servo 3
+//
+#if ENABLED(PSU_CONTROL)
+ #define SERVO3_PIN -1
+ #define PS_ON_PIN 4
+#endif
+
+#include "pins_RAMPS.h"
+
+//
+// LCD / Controller
+//
+#if ANY(VIKI2, miniVIKI)
+ /**
+ * VIKI2 Has two groups of wires with...
+ *
+ * +Vin + Input supply, requires 120ma for LCD and mSD card
+ * GND Ground Pin
+ * MOSI Data input for LCD and SD
+ * MISO Data output for SD
+ * SCK Clock for LCD and SD
+ * AO Reg. Sel for LCD
+ * LCS Chip Select for LCD
+ * SDCS Chip Select for SD
+ * SDCD Card Detect pin for SD
+ * ENCA Encoder output A
+ * ENCB Encoder output B
+ * ENCBTN Encoder button switch
+ *
+ * BTN Panel mounted button switch
+ * BUZZER Piezo buzzer
+ * BLUE-LED Blue LED ring pin (3 to 5v, mosfet buffered)
+ * RED-LED Red LED ring pin (3 to 5v, mosfet buffered)
+ *
+ * This configuration uses the following arrangement:
+ *
+ * EXP1 D37 = EN2 D35 = EN1 EXP2 D50 = MISO D52 = SCK
+ * D17 = BLUE D16 = RED D31 = ENC D53 = SDCS
+ * D23 = KILL D25 = BUZZ D33 = --- D51 = MOSI
+ * D27 = A0 D29 = LCS D49 = SDCD RST = ---
+ * GND = GND 5V = 5V GND = --- D41 = ---
+ */
+
+ #undef BTN_EN1
+ #undef BTN_EN2
+ #undef BTN_ENC
+ #undef DOGLCD_A0
+ #undef DOGLCD_CS
+ #undef SD_DETECT_PIN
+ #undef BEEPER_PIN
+ #undef KILL_PIN
+ #undef STAT_LED_RED_PIN
+ #undef STAT_LED_BLUE_PIN
+
+ //
+ // VIKI2 12-wire lead
+ //
+
+ // orange/white SDCD
+ #define SD_DETECT_PIN 49
+
+ // white ENCA
+ #define BTN_EN1 35
+
+ // green ENCB
+ #define BTN_EN2 37
+
+ // purple ENCBTN
+ #define BTN_ENC 31
+
+ // brown A0
+ #define DOGLCD_A0 27
+
+ // green/white LCS
+ #define DOGLCD_CS 29
+
+ // 50 gray MISO
+ // 51 yellow MOSI
+ // 52 orange SCK
+
+ // blue SDCS
+ //#define SDSS 53
+
+ //
+ // VIKI2 4-wire lead
+ //
+
+ // blue BTN
+ #define KILL_PIN 23
+
+ // green BUZZER
+ #define BEEPER_PIN 25
+
+ // yellow RED-LED
+ #define STAT_LED_RED_PIN 16
+
+ // white BLUE-LED
+ #define STAT_LED_BLUE_PIN 17
+
+#endif
diff --git a/Marlin/src/pins/ramps/pins_MKS_GEN_L.h b/Marlin/src/pins/ramps/pins_MKS_GEN_L.h
new file mode 100644
index 0000000..522a34c
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_MKS_GEN_L.h
@@ -0,0 +1,53 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS GEN L – Arduino Mega2560 with RAMPS v1.4 pin assignments
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS GEN L supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS GEN L"
+
+//
+// Heaters / Fans
+//
+// Power outputs EFBF or EFBE
+#define MOSFET_D_PIN 7
+
+//
+// CS Pins wired to avoid conflict with the LCD
+// See https://www.thingiverse.com/asset:66604
+//
+
+#ifndef X_CS_PIN
+ #define X_CS_PIN 59
+#endif
+
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 63
+#endif
+
+#include "pins_RAMPS.h"
diff --git a/Marlin/src/pins/ramps/pins_MKS_GEN_L_V2.h b/Marlin/src/pins/ramps/pins_MKS_GEN_L_V2.h
new file mode 100644
index 0000000..20f3dec
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_MKS_GEN_L_V2.h
@@ -0,0 +1,89 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS GEN L V2 – Arduino Mega2560 with RAMPS v1.4 pin assignments
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS GEN L V2 supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS GEN L V2"
+
+//
+// Heaters / Fans
+//
+// Power outputs EFBF or EFBE
+#define MOSFET_D_PIN 7
+
+//
+// CS Pins wired to avoid conflict with the LCD
+// See https://www.thingiverse.com/asset:66604
+//
+
+#ifndef X_CS_PIN
+ #define X_CS_PIN 63
+#endif
+
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 64
+#endif
+
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 65
+#endif
+
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 66
+#endif
+
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 21
+#endif
+
+// TMC2130 Diag Pins (currently just for reference)
+#define X_DIAG_PIN 3
+#define Y_DIAG_PIN 14
+#define Z_DIAG_PIN 18
+#define E0_DIAG_PIN 2
+#define E1_DIAG_PIN 15
+
+#ifndef SERVO1_PIN
+ #define SERVO1_PIN 12
+#endif
+#ifndef SERVO2_PIN
+ #define SERVO2_PIN 39
+#endif
+#ifndef SERVO3_PIN
+ #define SERVO3_PIN 32
+#endif
+
+#ifndef E1_SERIAL_TX_PIN
+ #define E1_SERIAL_TX_PIN 20
+#endif
+#ifndef E1_SERIAL_RX_PIN
+ #define E1_SERIAL_RX_PIN 21
+#endif
+
+#include "pins_RAMPS.h"
diff --git a/Marlin/src/pins/ramps/pins_MKS_GEN_L_V21.h b/Marlin/src/pins/ramps/pins_MKS_GEN_L_V21.h
new file mode 100644
index 0000000..24e04a3
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_MKS_GEN_L_V21.h
@@ -0,0 +1,85 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS GEN L V2 – Arduino Mega2560 with RAMPS v1.4 pin assignments
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS GEN L V2.1 supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS GEN L V2.1"
+
+//
+// Heaters / Fans
+//
+// Power outputs EFBF or EFBE
+#define MOSFET_D_PIN 7
+
+//
+// CS Pins wired to avoid conflict with the LCD
+// See https://www.thingiverse.com/asset:66604
+//
+
+#ifndef X_CS_PIN
+ #define X_CS_PIN 63
+#endif
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 64
+#endif
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 65
+#endif
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 66
+#endif
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 12
+#endif
+
+// TMC2130 Diag Pins (currently just for reference)
+#define X_DIAG_PIN 3
+#define Y_DIAG_PIN 14
+#define Z_DIAG_PIN 18
+#define E0_DIAG_PIN 2
+#define E1_DIAG_PIN 15
+
+#ifndef SERVO1_PIN
+ #define SERVO1_PIN 21
+#endif
+#ifndef SERVO2_PIN
+ #define SERVO2_PIN 39
+#endif
+#ifndef SERVO3_PIN
+ #define SERVO3_PIN 32
+#endif
+
+#ifndef E1_SERIAL_TX_PIN
+ #define E1_SERIAL_TX_PIN 20
+#endif
+#ifndef E1_SERIAL_RX_PIN
+ #define E1_SERIAL_RX_PIN 12
+#endif
+
+#include "pins_RAMPS.h"
diff --git a/Marlin/src/pins/ramps/pins_ORTUR_4.h b/Marlin/src/pins/ramps/pins_ORTUR_4.h
new file mode 100644
index 0000000..e79973e
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_ORTUR_4.h
@@ -0,0 +1,116 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Ortur 4 Arduino Mega based on RAMPS v1.4 pin assignments
+ */
+
+#define BOARD_INFO_NAME "Ortur 4.3"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+//
+// Servos
+//
+#define SERVO0_PIN 29
+
+//
+// Limit Switches
+//
+#define X_MAX_PIN 18
+#define Z_MIN_PIN 63
+
+#define Z_MIN_PROBE_PIN 2
+#define FIL_RUNOUT_PIN 59
+
+//
+// Steppers
+//
+#define E0_CS_PIN 44
+#define E1_CS_PIN 42
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 15 // Analog Input
+#define TEMP_1_PIN 13 // Analog Input
+
+//
+// Software serial
+//
+#define X_SERIAL_TX_PIN 59
+#define X_SERIAL_RX_PIN 63
+
+#define Y_SERIAL_TX_PIN 64
+#define Y_SERIAL_RX_PIN 40
+
+#define Z_SERIAL_TX_PIN 44
+#define Z_SERIAL_RX_PIN 42
+
+#define E0_SERIAL_TX_PIN 66
+#define E0_SERIAL_RX_PIN 65
+
+#include "pins_RAMPS.h"
+
+//
+// Steppers
+//
+#undef E0_STEP_PIN
+#undef E0_DIR_PIN
+#undef E0_ENABLE_PIN
+#define E0_STEP_PIN 36
+#define E0_DIR_PIN 34
+#define E0_ENABLE_PIN 30
+
+#undef E1_STEP_PIN
+#undef E1_DIR_PIN
+#undef E1_ENABLE_PIN
+#define E1_STEP_PIN 26
+#define E1_DIR_PIN 28
+#define E1_ENABLE_PIN 24
+
+//
+// LCD / Controller
+//
+#if IS_RRD_FG_SC
+ #undef BEEPER_PIN
+ #define BEEPER_PIN 35
+
+ #undef LCD_PINS_RS
+ #undef LCD_PINS_ENABLE
+ #undef LCD_PINS_D4
+ #define LCD_PINS_RS 27
+ #define LCD_PINS_ENABLE 23
+ #define LCD_PINS_D4 37
+
+ #undef LCD_SDSS
+ #undef SD_DETECT_PIN
+ #define LCD_SDSS 53
+ #define SD_DETECT_PIN 49
+
+ #undef BTN_EN1
+ #undef BTN_EN2
+ #undef BTN_ENC
+ #define BTN_EN1 29
+ #define BTN_EN2 25
+ #define BTN_ENC 16
+#endif
diff --git a/Marlin/src/pins/ramps/pins_RAMPS.h b/Marlin/src/pins/ramps/pins_RAMPS.h
new file mode 100644
index 0000000..5bcd877
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RAMPS.h
@@ -0,0 +1,781 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega with RAMPS v1.4 (or v1.3) pin assignments
+ *
+ * Applies to the following boards:
+ *
+ * RAMPS_14_EFB (Hotend, Fan, Bed)
+ * RAMPS_14_EEB (Hotend0, Hotend1, Bed)
+ * RAMPS_14_EFF (Hotend, Fan0, Fan1)
+ * RAMPS_14_EEF (Hotend0, Hotend1, Fan)
+ * RAMPS_14_SF (Spindle, Controller Fan)
+ *
+ * RAMPS_13_EFB (Hotend, Fan, Bed)
+ * RAMPS_13_EEB (Hotend0, Hotend1, Bed)
+ * RAMPS_13_EFF (Hotend, Fan0, Fan1)
+ * RAMPS_13_EEF (Hotend0, Hotend1, Fan)
+ * RAMPS_13_SF (Spindle, Controller Fan)
+ *
+ * Other pins_MYBOARD.h files may override these defaults
+ *
+ * Differences between
+ * RAMPS_13 | RAMPS_14
+ * 7 | 11
+ */
+
+#ifdef TARGET_LPC1768
+ #error "Oops! Set MOTHERBOARD to an LPC1768-based board when building for LPC1768."
+#elif defined(__STM32F1__)
+ #error "Oops! Set MOTHERBOARD to an STM32F1-based board when building for STM32F1."
+#endif
+
+#if NOT_TARGET(IS_RAMPS_SMART, IS_RAMPS_DUO, IS_RAMPS4DUE, TARGET_LPC1768, __AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' (or other appropriate target) in 'Tools > Board.'"
+#endif
+
+// Custom flags and defines for the build
+//#define BOARD_CUSTOM_BUILD_FLAGS -D__FOO__
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "RAMPS 1.4"
+#endif
+
+//
+// Servos
+//
+#ifndef SERVO0_PIN
+ #ifdef IS_RAMPS_13
+ #define SERVO0_PIN 7
+ #else
+ #define SERVO0_PIN 11
+ #endif
+#endif
+#ifndef SERVO1_PIN
+ #define SERVO1_PIN 6
+#endif
+#ifndef SERVO2_PIN
+ #define SERVO2_PIN 5
+#endif
+#ifndef SERVO3_PIN
+ #define SERVO3_PIN 4
+#endif
+
+//
+// Limit Switches
+//
+#ifndef X_STOP_PIN
+ #ifndef X_MIN_PIN
+ #define X_MIN_PIN 3
+ #endif
+ #ifndef X_MAX_PIN
+ #define X_MAX_PIN 2
+ #endif
+#endif
+#ifndef Y_STOP_PIN
+ #ifndef Y_MIN_PIN
+ #define Y_MIN_PIN 14
+ #endif
+ #ifndef Y_MAX_PIN
+ #define Y_MAX_PIN 15
+ #endif
+#endif
+#ifndef Z_STOP_PIN
+ #ifndef Z_MIN_PIN
+ #define Z_MIN_PIN 18
+ #endif
+ #ifndef Z_MAX_PIN
+ #define Z_MAX_PIN 19
+ #endif
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 32
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 54
+#define X_DIR_PIN 55
+#define X_ENABLE_PIN 38
+#ifndef X_CS_PIN
+ #define X_CS_PIN 53
+#endif
+
+#define Y_STEP_PIN 60
+#define Y_DIR_PIN 61
+#define Y_ENABLE_PIN 56
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 49
+#endif
+
+#ifndef Z_STEP_PIN
+ #define Z_STEP_PIN 46
+#endif
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 62
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 40
+#endif
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 42
+#endif
+
+#define E1_STEP_PIN 36
+#define E1_DIR_PIN 34
+#define E1_ENABLE_PIN 30
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 44
+#endif
+
+//
+// Temperature Sensors
+//
+#ifndef TEMP_0_PIN
+ #define TEMP_0_PIN 13 // Analog Input
+#endif
+#ifndef TEMP_1_PIN
+ #define TEMP_1_PIN 15 // Analog Input
+#endif
+#ifndef TEMP_BED_PIN
+ #define TEMP_BED_PIN 14 // Analog Input
+#endif
+
+//
+// SPI for Max6675 or Max31855 Thermocouple
+//
+#ifndef MAX6675_SS_PIN
+ #define MAX6675_SS_PIN 66 // Don't use 53 if using Display/SD card (SDSS) or 49 (SD_DETECT_PIN)
+#endif
+
+//
+// Augmentation for auto-assigning RAMPS plugs
+//
+#if NONE(IS_RAMPS_EEB, IS_RAMPS_EEF, IS_RAMPS_EFB, IS_RAMPS_EFF, IS_RAMPS_SF) && !PIN_EXISTS(MOSFET_D)
+ #if HAS_MULTI_HOTEND
+ #if TEMP_SENSOR_BED
+ #define IS_RAMPS_EEB
+ #else
+ #define IS_RAMPS_EEF
+ #endif
+ #elif TEMP_SENSOR_BED
+ #define IS_RAMPS_EFB
+ #else
+ #define IS_RAMPS_EFF
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#ifndef MOSFET_D_PIN
+ #define MOSFET_D_PIN -1
+#endif
+#ifndef RAMPS_D8_PIN
+ #define RAMPS_D8_PIN 8
+#endif
+#ifndef RAMPS_D9_PIN
+ #define RAMPS_D9_PIN 9
+#endif
+#ifndef RAMPS_D10_PIN
+ #define RAMPS_D10_PIN 10
+#endif
+
+#define HEATER_0_PIN RAMPS_D10_PIN
+
+#if ENABLED(IS_RAMPS_EFB) // Hotend, Fan, Bed
+ #define HEATER_BED_PIN RAMPS_D8_PIN
+#elif ENABLED(IS_RAMPS_EEF) // Hotend, Hotend, Fan
+ #define HEATER_1_PIN RAMPS_D9_PIN
+#elif ENABLED(IS_RAMPS_EEB) // Hotend, Hotend, Bed
+ #define HEATER_1_PIN RAMPS_D9_PIN
+ #define HEATER_BED_PIN RAMPS_D8_PIN
+#elif ENABLED(IS_RAMPS_EFF) // Hotend, Fan, Fan
+ #define FAN1_PIN RAMPS_D8_PIN
+#elif DISABLED(IS_RAMPS_SF) // Not Spindle, Fan (i.e., "EFBF" or "EFBE")
+ #define HEATER_BED_PIN RAMPS_D8_PIN
+ #if HOTENDS == 1
+ #define FAN1_PIN MOSFET_D_PIN
+ #else
+ #define HEATER_1_PIN MOSFET_D_PIN
+ #endif
+#endif
+
+#ifndef FAN_PIN
+ #if EITHER(IS_RAMPS_EFB, IS_RAMPS_EFF) // Hotend, Fan, Bed or Hotend, Fan, Fan
+ #define FAN_PIN RAMPS_D9_PIN
+ #elif EITHER(IS_RAMPS_EEF, IS_RAMPS_SF) // Hotend, Hotend, Fan or Spindle, Fan
+ #define FAN_PIN RAMPS_D8_PIN
+ #elif ENABLED(IS_RAMPS_EEB) // Hotend, Hotend, Bed
+ #define FAN_PIN 4 // IO pin. Buffer needed
+ #else // Non-specific are "EFB" (i.e., "EFBF" or "EFBE")
+ #define FAN_PIN RAMPS_D9_PIN
+ #endif
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 5 // Analog Input on AUX2
+#endif
+
+// RAMPS 1.4 DIO 4 on the servos connector
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 4
+#endif
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN 12
+#endif
+
+#if ENABLED(CASE_LIGHT_ENABLE) && !defined(CASE_LIGHT_PIN) && !defined(SPINDLE_LASER_ENA_PIN)
+ #if NUM_SERVOS <= 1 // Prefer the servo connector
+ #define CASE_LIGHT_PIN 6 // Hardware PWM
+ #elif HAS_FREE_AUX2_PINS
+ #define CASE_LIGHT_PIN 44 // Hardware PWM
+ #endif
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER && !defined(SPINDLE_LASER_ENA_PIN)
+ #if !NUM_SERVOS // Use servo connector if possible
+ #define SPINDLE_LASER_ENA_PIN 4 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 6 // Hardware PWM
+ #define SPINDLE_DIR_PIN 5
+ #elif HAS_FREE_AUX2_PINS
+ #define SPINDLE_LASER_ENA_PIN 40 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
+ #define SPINDLE_DIR_PIN 65
+ #else
+ #error "No auto-assignable Spindle/Laser pins available."
+ #endif
+#endif
+
+//
+// TMC software SPI
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI 66
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO 44
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK 64
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+
+ #ifndef X_SERIAL_TX_PIN
+ #define X_SERIAL_TX_PIN 40
+ #endif
+ #ifndef X_SERIAL_RX_PIN
+ #define X_SERIAL_RX_PIN 63
+ #endif
+ #ifndef X2_SERIAL_TX_PIN
+ #define X2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef X2_SERIAL_RX_PIN
+ #define X2_SERIAL_RX_PIN -1
+ #endif
+
+ #ifndef Y_SERIAL_TX_PIN
+ #define Y_SERIAL_TX_PIN 59
+ #endif
+ #ifndef Y_SERIAL_RX_PIN
+ #define Y_SERIAL_RX_PIN 64
+ #endif
+ #ifndef Y2_SERIAL_TX_PIN
+ #define Y2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef Y2_SERIAL_RX_PIN
+ #define Y2_SERIAL_RX_PIN -1
+ #endif
+
+ #ifndef Z_SERIAL_TX_PIN
+ #define Z_SERIAL_TX_PIN 42
+ #endif
+ #ifndef Z_SERIAL_RX_PIN
+ #define Z_SERIAL_RX_PIN 65
+ #endif
+ #ifndef Z2_SERIAL_TX_PIN
+ #define Z2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef Z2_SERIAL_RX_PIN
+ #define Z2_SERIAL_RX_PIN -1
+ #endif
+
+ #ifndef E0_SERIAL_TX_PIN
+ #define E0_SERIAL_TX_PIN 44
+ #endif
+ #ifndef E0_SERIAL_RX_PIN
+ #define E0_SERIAL_RX_PIN 66
+ #endif
+ #ifndef E1_SERIAL_TX_PIN
+ #define E1_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E1_SERIAL_RX_PIN
+ #define E1_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E2_SERIAL_TX_PIN
+ #define E2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E2_SERIAL_RX_PIN
+ #define E2_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E3_SERIAL_TX_PIN
+ #define E3_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E3_SERIAL_RX_PIN
+ #define E3_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E4_SERIAL_TX_PIN
+ #define E4_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E4_SERIAL_RX_PIN
+ #define E4_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E5_SERIAL_TX_PIN
+ #define E5_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E5_SERIAL_RX_PIN
+ #define E5_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E6_SERIAL_TX_PIN
+ #define E6_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E6_SERIAL_RX_PIN
+ #define E6_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E7_SERIAL_TX_PIN
+ #define E7_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E7_SERIAL_RX_PIN
+ #define E7_SERIAL_RX_PIN -1
+ #endif
+#endif
+
+//
+// Průša i3 MK2 Multiplexer Support
+//
+#ifndef E_MUX0_PIN
+ #define E_MUX0_PIN 40 // Z_CS_PIN
+#endif
+#ifndef E_MUX1_PIN
+ #define E_MUX1_PIN 42 // E0_CS_PIN
+#endif
+#ifndef E_MUX2_PIN
+ #define E_MUX2_PIN 44 // E1_CS_PIN
+#endif
+
+//////////////////////////
+// LCDs and Controllers //
+//////////////////////////
+
+#if HAS_WIRED_LCD
+
+ //
+ // LCD Display output pins
+ //
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #define LCD_PINS_RS 49 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE 51 // SID (MOSI)
+ #define LCD_PINS_D4 52 // SCK (CLK) clock
+
+ #elif BOTH(IS_NEWPANEL, PANEL_ONE)
+
+ #define LCD_PINS_RS 40
+ #define LCD_PINS_ENABLE 42
+ #define LCD_PINS_D4 65
+ #define LCD_PINS_D5 66
+ #define LCD_PINS_D6 44
+ #define LCD_PINS_D7 64
+
+ #elif ENABLED(TFTGLCD_PANEL_SPI)
+
+ #define TFTGLCD_CS 33
+
+ #else
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define LCD_PINS_RS 27
+ #define LCD_PINS_ENABLE 29
+ #define LCD_PINS_D4 25
+
+ #if !IS_NEWPANEL
+ #define BEEPER_PIN 37
+ #endif
+
+ #elif ENABLED(ZONESTAR_LCD)
+
+ #error "CAUTION! ZONESTAR_LCD on RAMPS requires wiring modifications. It plugs into AUX2 but GND and 5V need to be swapped. Comment out this line to continue."
+ #define LCD_PINS_RS 64
+ #define LCD_PINS_ENABLE 44
+ #define LCD_PINS_D4 63
+ #define LCD_PINS_D5 40
+ #define LCD_PINS_D6 42
+ #define LCD_PINS_D7 65
+
+ #else
+
+ #if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
+ #define LCD_PINS_DC 25 // Set as output on init
+ #define LCD_PINS_RS 27 // Pull low for 1s to init
+ // DOGM SPI LCD Support
+ #define DOGLCD_A0 LCD_PINS_DC
+ #define DOGLCD_CS 16
+ #define DOGLCD_MOSI 17
+ #define DOGLCD_SCK 23
+ #else
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 23
+ #define LCD_PINS_D5 25
+ #define LCD_PINS_D6 27
+ #endif
+
+ #define LCD_PINS_D7 29
+
+ #if !IS_NEWPANEL
+ #define BEEPER_PIN 33
+ #endif
+
+ #endif
+
+ #if !IS_NEWPANEL
+ // Buttons attached to a shift register
+ // Not wired yet
+ //#define SHIFT_CLK_PIN 38
+ //#define SHIFT_LD_PIN 42
+ //#define SHIFT_OUT_PIN 40
+ //#define SHIFT_EN_PIN 17
+ #endif
+
+ #endif
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ //
+ // LCD Display input pins
+ //
+ #if IS_NEWPANEL
+
+ #if IS_RRD_SC
+
+ #define BEEPER_PIN 37
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ #define BTN_EN1 17
+ #define BTN_EN2 23
+ #else
+ #define BTN_EN1 31
+ #define BTN_EN2 33
+ #endif
+
+ #define BTN_ENC 35
+ #ifndef SD_DETECT_PIN
+ #define SD_DETECT_PIN 49
+ #endif
+ #ifndef KILL_PIN
+ #define KILL_PIN 41
+ #endif
+
+ #if ENABLED(BQ_LCD_SMART_CONTROLLER)
+ #define LCD_BACKLIGHT_PIN 39
+ #endif
+
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #define BTN_EN1 64
+ #define BTN_EN2 59
+ #define BTN_ENC 63
+ #define SD_DETECT_PIN 42
+
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+
+ #define BTN_EN1 47
+ #define BTN_EN2 43
+ #define BTN_ENC 32
+ #define LCD_SDSS SDSS
+ #define KILL_PIN 41
+
+ #elif ENABLED(LCD_I2C_VIKI)
+
+ #define BTN_EN1 40 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42.
+ #define BTN_EN2 42
+ #define BTN_ENC -1
+
+ #define LCD_SDSS SDSS
+ #define SD_DETECT_PIN 49
+
+ #elif ANY(VIKI2, miniVIKI)
+
+ #define DOGLCD_CS 45
+ #define DOGLCD_A0 44
+ #define LCD_SCREEN_ROT_180
+
+ #define BEEPER_PIN 33
+ #define STAT_LED_RED_PIN 32
+ #define STAT_LED_BLUE_PIN 35
+
+ #define BTN_EN1 22
+ #define BTN_EN2 7
+ #define BTN_ENC 39
+
+ #define SD_DETECT_PIN -1 // Pin 49 for display SD interface, 72 for easy adapter board
+ #define KILL_PIN 31
+
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+
+ #define DOGLCD_CS 29
+ #define DOGLCD_A0 27
+
+ #define BEEPER_PIN 23
+ #define LCD_BACKLIGHT_PIN 33
+
+ #define BTN_EN1 35
+ #define BTN_EN2 37
+ #define BTN_ENC 31
+
+ #define LCD_SDSS SDSS
+ #define SD_DETECT_PIN 49
+ #define KILL_PIN 41
+
+ #elif EITHER(MKS_MINI_12864, FYSETC_MINI_12864)
+
+ #define BEEPER_PIN 37
+ #define BTN_ENC 35
+ #define SD_DETECT_PIN 49
+
+ #ifndef KILL_PIN
+ #define KILL_PIN 41
+ #endif
+
+ #if ENABLED(MKS_MINI_12864)
+
+ #define DOGLCD_A0 27
+ #define DOGLCD_CS 25
+
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ // not connected to a pin
+ #define LCD_BACKLIGHT_PIN -1 // 65 (MKS mini12864 can't adjust backlight by software!)
+
+ #define BTN_EN1 31
+ #define BTN_EN2 33
+
+ #elif ENABLED(FYSETC_MINI_12864)
+
+ // From https://wiki.fysetc.com/Mini12864_Panel/?fbclid=IwAR1FyjuNdVOOy9_xzky3qqo_WeM5h-4gpRnnWhQr_O1Ef3h0AFnFXmCehK8
+
+ #define DOGLCD_A0 16
+ #define DOGLCD_CS 17
+
+ #define BTN_EN1 33
+ #define BTN_EN2 31
+
+ //#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ #define LCD_RESET_PIN 23 // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN 25
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN 27
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN 29
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN 25
+ #endif
+
+ #endif
+
+ #elif ENABLED(MINIPANEL)
+
+ #define BEEPER_PIN 42
+ // not connected to a pin
+ #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
+
+ #define DOGLCD_A0 44
+ #define DOGLCD_CS 66
+
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ #define BTN_EN1 40
+ #define BTN_EN2 63
+ #define BTN_ENC 59
+
+ #define SD_DETECT_PIN 49
+ #define KILL_PIN 64
+
+ #elif ENABLED(ZONESTAR_LCD)
+
+ #define ADC_KEYPAD_PIN 12
+
+ #elif ENABLED(AZSMZ_12864)
+
+ // Pins only defined for RAMPS_SMART currently
+ #error "No pins defined for RAMPS with AZSMZ_12864."
+
+ #elif IS_TFTGLCD_PANEL
+
+ #define SD_DETECT_PIN 49
+
+ #else
+
+ // Beeper on AUX-4
+ #define BEEPER_PIN 33
+
+ // Buttons are directly attached to AUX-2
+ #if ENABLED(PANEL_ONE)
+ #define BTN_EN1 59 // AUX2 PIN 3
+ #define BTN_EN2 63 // AUX2 PIN 4
+ #define BTN_ENC 49 // AUX3 PIN 7
+ #else
+ #define BTN_EN1 37
+ #define BTN_EN2 35
+ #define BTN_ENC 31
+ #endif
+
+ #if ENABLED(G3D_PANEL)
+ #define SD_DETECT_PIN 49
+ #define KILL_PIN 41
+ #endif
+
+ #endif
+ #endif // IS_NEWPANEL
+
+#endif // HAS_WIRED_LCD
+
+#if IS_RRW_KEYPAD && !HAS_ADC_BUTTONS
+ #define SHIFT_OUT_PIN 40
+ #define SHIFT_CLK_PIN 44
+ #define SHIFT_LD_PIN 42
+ #ifndef BTN_EN1
+ #define BTN_EN1 64
+ #endif
+ #ifndef BTN_EN2
+ #define BTN_EN2 59
+ #endif
+ #ifndef BTN_ENC
+ #define BTN_ENC 63
+ #endif
+#endif
+
+#if BOTH(TOUCH_UI_FTDI_EVE, LCD_FYSETC_TFT81050)
+
+ #error "CAUTION! LCD_FYSETC_TFT81050 requires wiring modifications. See 'pins_RAMPS.h' for details. Comment out this line to continue."
+
+ /** FYSETC TFT TFT81050 display pinout
+ *
+ * Board Display
+ * _____ _____
+ * (SCK) D52 | 1 2 | D50 (MISO) MISO | 1 2 | SCK
+ * (SD_CS) D53 | 3 4 | D33 (BNT_EN2) (BNT_EN2) MOD_RESET | 3 4 | SD_CS
+ * (MOSI) D51 | 5 6 D31 (BNT_EN1) (BNT_EN1) LCD_CS | 5 6 MOSI
+ * RESET | 7 8 | D49 (SD_DET) SD_DET | 7 8 | RESET
+ * NC | 9 10| GND GND | 9 10| 5V
+ * ----- -----
+ * EXP2 EXP1
+ *
+ * Needs custom cable:
+ *
+ * Board Adapter Display
+ * _________
+ * EXP2-1 ----------- EXP1-10
+ * EXP2-2 ----------- EXP1-9
+ * EXP2-4 ----------- EXP1-8
+ * EXP2-4 ----------- EXP1-7
+ * EXP2-3 ----------- EXP1-6
+ * EXP2-6 ----------- EXP1-5
+ * EXP2-7 ----------- EXP1-4
+ * EXP2-8 ----------- EXP1-3
+ * EXP2-1 ----------- EXP1-2
+ * EXP1-10 ----------- EXP1-1
+ *
+ * NOTE: The MISO pin should not get a 5V signal.
+ * To fix, insert a 1N4148 diode in the MISO line.
+ */
+
+ #define BEEPER_PIN 37
+
+ #define SD_DETECT_PIN 49
+
+ #define CLCD_MOD_RESET 31
+ #define CLCD_SPI_CS 33
+#endif // TOUCH_UI_FTDI_EVE && LCD_FYSETC_TFT81050
diff --git a/Marlin/src/pins/ramps/pins_RAMPS_13.h b/Marlin/src/pins/ramps/pins_RAMPS_13.h
new file mode 100644
index 0000000..6e7c8cb
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RAMPS_13.h
@@ -0,0 +1,42 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega with RAMPS v1.3 pin assignments
+ *
+ * Applies to the following boards:
+ *
+ * RAMPS_13_EFB (Extruder, Fan, Bed)
+ * RAMPS_13_EEB (Extruder, Extruder, Bed)
+ * RAMPS_13_EFF (Extruder, Fan, Fan)
+ * RAMPS_13_EEF (Extruder, Extruder, Fan)
+ * RAMPS_13_SF (Spindle, Controller Fan)
+ */
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "RAMPS 1.3"
+#endif
+
+#define IS_RAMPS_13
+
+#include "pins_RAMPS.h"
diff --git a/Marlin/src/pins/ramps/pins_RAMPS_CREALITY.h b/Marlin/src/pins/ramps/pins_RAMPS_CREALITY.h
new file mode 100644
index 0000000..1dc898e
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RAMPS_CREALITY.h
@@ -0,0 +1,68 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "Creality3D RAMPS supports only 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Creality3D RAMPS"
+
+//
+// Heaters / Fans
+//
+
+// Power outputs EFBF or EFBE
+#define MOSFET_D_PIN 7
+
+#define FIL_RUNOUT_PIN 2
+#if NUM_RUNOUT_SENSORS > 1
+ #define FIL_RUNOUT2_PIN 15 // Creality CR-X can use dual runout sensors
+#endif
+
+#ifndef SD_DETECT_PIN
+ #define SD_DETECT_PIN 49 // Always define onboard SD detect
+#endif
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN 40 // Used by CR2020 Industrial series
+#endif
+
+#if ENABLED(CASE_LIGHT_ENABLE) && !defined(CASE_LIGHT_PIN)
+ #define CASE_LIGHT_PIN 65
+#endif
+
+#include "pins_RAMPS.h"
+
+#ifndef BEEPER_PIN
+ #define BEEPER_PIN 37 // Always define beeper pin so Play Tone works with ExtUI
+#endif
+
+#define EXP1_PIN 65 // A11 - Used by CR2020 Industrial series for case
+#define EXP2_PIN 66 // A12
+#define EXP3_PIN 11 // SERVO0_PIN
+#define EXP4_PIN 12 // PS_ON_PIN
+
+#define SUICIDE_PIN 12 // Used by CR2020 Industrial series
+#ifndef SUICIDE_PIN_INVERTING
+ #define SUICIDE_PIN_INVERTING true
+#endif
diff --git a/Marlin/src/pins/ramps/pins_RAMPS_ENDER_4.h b/Marlin/src/pins/ramps/pins_RAMPS_ENDER_4.h
new file mode 100644
index 0000000..d996424
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RAMPS_ENDER_4.h
@@ -0,0 +1,41 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "Ender-4 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Ender-4"
+
+#include "pins_RAMPS.h"
+
+// The board only has one PWM fan connector. The others are 12V always-on.
+// The default config uses this pin to control the brightness of the LED
+// band (case light). Thus the hotend and controller fans are always-on.
+
+#if ENABLED(CASE_LIGHT_ENABLE)
+ #undef FAN_PIN
+ #ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN RAMPS_D9_PIN
+ #endif
+#endif
diff --git a/Marlin/src/pins/ramps/pins_RAMPS_OLD.h b/Marlin/src/pins/ramps/pins_RAMPS_OLD.h
new file mode 100644
index 0000000..6d2dad2
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RAMPS_OLD.h
@@ -0,0 +1,119 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega with RAMPS v1.0, v1.1, v1.2 pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "RAMPS <1.2"
+
+// Uncomment the following line for RAMPS v1.0
+//#define RAMPS_V_1_0
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 3
+#define X_MAX_PIN 2
+#define Y_MIN_PIN 16
+#define Y_MAX_PIN 17
+#define Z_MIN_PIN 18
+#define Z_MAX_PIN 19
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 19
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 26
+#define X_DIR_PIN 28
+#define X_ENABLE_PIN 24
+
+#define Y_STEP_PIN 38
+#define Y_DIR_PIN 40
+#define Y_ENABLE_PIN 36
+
+#define Z_STEP_PIN 44
+#define Z_DIR_PIN 46
+#define Z_ENABLE_PIN 42
+
+#define E0_STEP_PIN 32
+#define E0_DIR_PIN 34
+#define E0_ENABLE_PIN 30
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 2 // Analog Input
+#define TEMP_BED_PIN 1 // Analog Input
+
+// SPI for Max6675 or Max31855 Thermocouple
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 66 // Don't use 53 if using Display/SD card
+#else
+ #define MAX6675_SS_PIN 66 // Don't use 49 (SD_DETECT_PIN)
+#endif
+
+//
+// Heaters / Fans
+//
+#if ENABLED(RAMPS_V_1_0)
+ #define HEATER_0_PIN 12
+ #define HEATER_BED_PIN -1
+ #ifndef FAN_PIN
+ #define FAN_PIN 11
+ #endif
+#else // RAMPS_V_1_1 or RAMPS_V_1_2
+ #define HEATER_0_PIN 10
+ #define HEATER_BED_PIN 8
+ #ifndef FAN_PIN
+ #define FAN_PIN 9
+ #endif
+#endif
+
+//
+// Misc. Functions
+//
+#define SDPOWER_PIN 48
+#define SDSS 53
+#define LED_PIN 13
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 45 // Hardware PWM
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_ENA_PIN 41 // Pullup or pulldown!
+#define SPINDLE_LASER_PWM_PIN 45 // Hardware PWM
+#define SPINDLE_DIR_PIN 43
diff --git a/Marlin/src/pins/ramps/pins_RAMPS_PLUS.h b/Marlin/src/pins/ramps/pins_RAMPS_PLUS.h
new file mode 100644
index 0000000..23b1dfa
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RAMPS_PLUS.h
@@ -0,0 +1,85 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega with RAMPS v1.4Plus, also known as 3DYMY version, pin assignments
+ * The differences to the RAMPS v1.4 are:
+ * - Swap heater E0 with E1
+ * - Swap pins 8 and 10. Bed/Fan/Hotend as labeled on the board are on pins 8/9/10.
+ * - Change pins 16->42, 17->44 and 29->53 used for display.
+ *
+ * Applies to the following boards:
+ *
+ * RAMPS_PLUS_EFB (Extruder, Fan, Bed)
+ * RAMPS_PLUS_EEB (Extruder, Extruder, Bed)
+ * RAMPS_PLUS_EFF (Extruder, Fan, Fan)
+ * RAMPS_PLUS_EEF (Extruder, Extruder, Fan)
+ * RAMPS_PLUS_SF (Spindle, Controller Fan)
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "RAMPS 1.4 Plus"
+
+#define RAMPS_D8_PIN 10
+#define RAMPS_D10_PIN 8
+
+#include "pins_RAMPS.h"
+
+//
+// Steppers - Swap E0 / E1 on 3DYMY
+//
+#undef E0_STEP_PIN
+#undef E0_DIR_PIN
+#undef E0_ENABLE_PIN
+
+#undef E1_STEP_PIN
+#undef E1_DIR_PIN
+#undef E1_ENABLE_PIN
+
+#define E0_STEP_PIN 36
+#define E0_DIR_PIN 34
+#define E0_ENABLE_PIN 30
+
+#define E1_STEP_PIN 26
+#define E1_DIR_PIN 28
+#define E1_ENABLE_PIN 24
+
+#undef X_CS_PIN
+#undef Y_CS_PIN
+#undef Z_CS_PIN
+#undef E0_CS_PIN
+#undef E1_CS_PIN
+
+#if IS_ULTRA_LCD && NONE(REPRAPWORLD_GRAPHICAL_LCD, CR10_STOCKDISPLAY) && !BOTH(IS_NEWPANEL, PANEL_ONE)
+ #if DISABLED(MKS_12864OLED) || ENABLED(MKS_12864OLED_SSD1306)
+ #undef LCD_PINS_RS
+ #define LCD_PINS_RS 42 // 3DYMY boards pin 16 -> 42
+ #undef LCD_PINS_ENABLE
+ #define LCD_PINS_ENABLE 44 // 3DYMY boards pin 17 -> 44
+ #endif
+ #undef LCD_PINS_D7
+ #define LCD_PINS_D7 53 // 3DYMY boards pin 29 -> 53
+#endif
diff --git a/Marlin/src/pins/ramps/pins_RAMPS_S_12.h b/Marlin/src/pins/ramps/pins_RAMPS_S_12.h
new file mode 100644
index 0000000..1bcf310
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RAMPS_S_12.h
@@ -0,0 +1,280 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega with RAMPS-S v1.2 by Sakul.cz pin assignments
+ * Written by Michal Rábek <rabek33@gmail.com>
+ *
+ * Applies to the following boards:
+ *
+ * BOARD_RAMPS_S_12_EEFB Ramps S 1.2 (Hotend0, Hotend1, Fan, Bed)
+ * BOARD_RAMPS_S_12_EEEB Ramps S 1.2 (Hotend0, Hotend1, Hotend2, Bed)
+ * BOARD_RAMPS_S_12_EFFB Ramps S 1.2 (Hotend, Fan0, Fan1, Bed)
+ *
+ * Other pins_MYBOARD.h files may override these defaults
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+// Custom flags and defines for the build
+//#define BOARD_CUSTOM_BUILD_FLAGS -D__FOO__
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "RAMPS S 1.2"
+#endif
+
+//
+// Servos
+//
+#ifndef SERVO0_PIN
+ #define SERVO0_PIN 10
+#endif
+#ifndef SERVO1_PIN
+ #define SERVO1_PIN 11
+#endif
+#ifndef SERVO2_PIN
+ #define SERVO2_PIN 12
+#endif
+#ifndef SERVO3_PIN
+ #define SERVO3_PIN 44
+#endif
+
+//
+// Limit Switches
+//
+#ifndef X_STOP_PIN
+ #ifndef X_MIN_PIN
+ #define X_MIN_PIN 37
+ #endif
+ #ifndef X_MAX_PIN
+ #define X_MAX_PIN 36
+ #endif
+#endif
+#ifndef Y_STOP_PIN
+ #ifndef Y_MIN_PIN
+ #define Y_MIN_PIN 35
+ #endif
+ #ifndef Y_MAX_PIN
+ #define Y_MAX_PIN 34
+ #endif
+#endif
+#ifndef Z_STOP_PIN
+ #ifndef Z_MIN_PIN
+ #define Z_MIN_PIN 33
+ #endif
+ #ifndef Z_MAX_PIN
+ #define Z_MAX_PIN 32
+ #endif
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 5
+#endif
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 44 // RAMPS_S S3 on the servos connector
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 17
+#define X_DIR_PIN 16
+#define X_ENABLE_PIN 48
+
+#define Y_STEP_PIN 54
+#define Y_DIR_PIN 47
+#define Y_ENABLE_PIN 55
+
+#ifndef Z_STEP_PIN
+ #define Z_STEP_PIN 57
+#endif
+#define Z_DIR_PIN 56
+#define Z_ENABLE_PIN 62
+
+#define E0_STEP_PIN 23
+#define E0_DIR_PIN 22
+#define E0_ENABLE_PIN 24
+
+#define E1_STEP_PIN 26
+#define E1_DIR_PIN 25
+#define E1_ENABLE_PIN 27
+
+#define E2_STEP_PIN 29
+#define E2_DIR_PIN 28
+#define E2_ENABLE_PIN 39
+
+//
+// Temperature Sensors
+//
+#ifndef TEMP_0_PIN
+ #define TEMP_0_PIN 15 // Analog Input
+#endif
+#ifndef TEMP_1_PIN
+ #define TEMP_1_PIN 14 // Analog Input
+#endif
+#ifndef TEMP_2_PIN
+ #define TEMP_2_PIN 13 // Analog Input
+#endif
+#ifndef TEMP_3_PIN
+ #define TEMP_3_PIN 12 // Analog Input
+#endif
+#ifndef TEMP_BED_PIN
+ #define TEMP_BED_PIN 11 // Analog Input
+#endif
+
+//
+// Heaters / Fans
+//
+#ifndef MOSFET_D_PIN
+ #define MOSFET_D_PIN -1
+#endif
+#ifndef RAMPS_S_HE_0
+ #define RAMPS_S_HE_0 2
+#endif
+#ifndef RAMPS_S_HE_1
+ #define RAMPS_S_HE_1 3
+#endif
+#ifndef RAMPS_S_HE_2
+ #define RAMPS_S_HE_2 6
+#endif
+
+#define HEATER_BED_PIN 9
+
+#define HEATER_0_PIN RAMPS_S_HE_0
+
+#if MB(RAMPS_S_12_EEFB) // Hotend0, Hotend1, Fan, Bed
+ #define HEATER_1_PIN RAMPS_S_HE_1
+ #define FAN_PIN RAMPS_S_HE_2
+#elif MB(RAMPS_S_12_EEEB) // Hotend0, Hotend1, Hotend2, Bed
+ #define HEATER_1_PIN RAMPS_S_HE_1
+ #define HEATER_2_PIN RAMPS_S_HE_2
+#elif MB(RAMPS_S_12_EFFB) // Hotend, Fan0, Fan1, Bed
+ #define FAN_PIN RAMPS_S_HE_1
+ #define FAN1_PIN RAMPS_S_HE_2
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+
+#ifndef KILL_PIN
+ #define KILL_PIN 46
+#endif
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 60 // Analog Input on EXTEND
+#endif
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN 12 // RAMPS_S S2 on the servos connector
+#endif
+
+#if ENABLED(CASE_LIGHT_ENABLE) && !defined(CASE_LIGHT_PIN) && !defined(SPINDLE_LASER_ENA_PIN)
+ #if NUM_SERVOS <= 1 // Prefer the servo connector
+ #define CASE_LIGHT_PIN 12 // Hardware PWM (RAMPS_S S1 on the servos connector)
+ #elif HAS_FREE_AUX2_PINS
+ #define CASE_LIGHT_PIN 44 // Hardware PWM
+ #endif
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER && !defined(SPINDLE_LASER_ENA_PIN)
+ #define SPINDLE_LASER_ENA_PIN 4 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 6 // Hardware PWM
+ #define SPINDLE_DIR_PIN 5
+#endif
+
+//
+// TMC software SPI
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI 51
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO 50
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK 53
+ #endif
+#endif
+
+//
+// Průša i3 MK2 Multiplexer Support
+//
+#ifndef E_MUX0_PIN
+ #define E_MUX0_PIN 29 // E2_STEP_PIN
+#endif
+#ifndef E_MUX1_PIN
+ #define E_MUX1_PIN 28 // E2_DIR_PIN
+#endif
+#ifndef E_MUX2_PIN
+ #define E_MUX2_PIN 39 // E2_ENABLE_PIN
+#endif
+
+//////////////////////////
+// LCDs and Controllers //
+//////////////////////////
+
+//
+// LCD Display output pins
+//
+#if HAS_WIRED_LCD
+ #define BEEPER_PIN 45
+ #define LCD_PINS_RS 19
+ #define LCD_PINS_ENABLE 49
+ #define LCD_PINS_D4 18
+ #define LCD_PINS_D5 30
+ #define LCD_PINS_D6 41
+ #define LCD_PINS_D7 31
+ #ifndef SD_DETECT_PIN
+ #define SD_DETECT_PIN 38
+ #endif
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif
+
+//
+// LCD Display input pins
+//
+#if IS_NEWPANEL
+ #define BTN_EN1 40
+ #define BTN_EN2 42
+ #define BTN_ENC 43
+#endif
diff --git a/Marlin/src/pins/ramps/pins_RIGIDBOARD.h b/Marlin/src/pins/ramps/pins_RIGIDBOARD.h
new file mode 100644
index 0000000..345c51d
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RIGIDBOARD.h
@@ -0,0 +1,135 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * RIGIDBOARD Arduino Mega with RAMPS v1.4 pin assignments
+ */
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "RigidBoard"
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 19 // Z-MAX pin J14 End Stops
+#endif
+
+//
+// MOSFET changes
+//
+#define RAMPS_D9_PIN 8 // FAN (by default)
+#define RAMPS_D10_PIN 9 // EXTRUDER 1
+#define MOSFET_D_PIN 12 // EXTRUDER 2 or FAN
+
+#include "pins_RAMPS.h"
+
+//
+// Steppers
+//
+// RigidBot swaps E0 / E1 plugs vs RAMPS 1.3
+#undef E0_STEP_PIN
+#undef E0_DIR_PIN
+#undef E0_ENABLE_PIN
+#define E0_STEP_PIN 36
+#define E0_DIR_PIN 34
+#define E0_ENABLE_PIN 30
+
+#undef E1_STEP_PIN
+#undef E1_DIR_PIN
+#undef E1_ENABLE_PIN
+#define E1_STEP_PIN 26
+#define E1_DIR_PIN 28
+#define E1_ENABLE_PIN 24
+
+#define STEPPER_RESET_PIN 41 // Stepper drivers have a reset on RigidBot
+
+//
+// Temperature Sensors
+//
+#undef TEMP_0_PIN
+#undef TEMP_1_PIN
+#undef TEMP_BED_PIN
+#define TEMP_0_PIN 14 // Analog Input
+#define TEMP_1_PIN 13 // Analog Input
+#define TEMP_BED_PIN 15 // Analog Input
+
+// SPI for Max6675 or Max31855 Thermocouple
+#undef MAX6675_SS_PIN
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 53 // Don't use pin 53 if there is even the remote possibility of using Display/SD card
+#else
+ #define MAX6675_SS_PIN 49 // Don't use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present
+#endif
+
+//
+// Heaters / Fans
+//
+#undef HEATER_BED_PIN
+#define HEATER_BED_PIN 10
+
+#ifndef FAN_PIN
+ #define FAN_PIN 8 // Same as RAMPS_13_EEF
+#endif
+
+//
+// Misc. Functions
+//
+#undef PS_ON_PIN
+
+//
+// LCD / Controller
+//
+// LCD Panel options for the RigidBoard
+#if ENABLED(RIGIDBOT_PANEL)
+
+ #undef BEEPER_PIN
+ #define BEEPER_PIN -1
+
+ // Direction buttons
+ #define BTN_UP 37
+ #define BTN_DWN 35
+ #define BTN_LFT 33
+ #define BTN_RT 32
+
+ // 'R' button
+ #undef BTN_ENC
+ #define BTN_ENC 31
+
+ // Disable encoder
+ #undef BTN_EN1
+ #undef BTN_EN2
+
+ #undef SD_DETECT_PIN
+ #define SD_DETECT_PIN 22
+
+#elif IS_RRD_SC
+
+ #undef SD_DETECT_PIN
+ #define SD_DETECT_PIN 22
+
+ #undef KILL_PIN
+ #define KILL_PIN 32
+
+#endif
diff --git a/Marlin/src/pins/ramps/pins_RIGIDBOARD_V2.h b/Marlin/src/pins/ramps/pins_RIGIDBOARD_V2.h
new file mode 100644
index 0000000..1428de3
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RIGIDBOARD_V2.h
@@ -0,0 +1,52 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * RIGIDBOARD V2 Arduino Mega with RAMPS v1.4 pin assignments
+ */
+
+#define BOARD_INFO_NAME "RigidBoard V2"
+
+#include "pins_RIGIDBOARD.h"
+
+//
+// Steppers
+//
+
+// I2C based DAC like on the Printrboard REVF
+#define HAS_MOTOR_CURRENT_DAC
+
+// Channels available for DAC, For Rigidboard there are 4
+#define DAC_STEPPER_ORDER { 0, 1, 2, 3 }
+
+#define DAC_STEPPER_SENSE 0.05 // sense resistors on rigidboard stepper chips are .05 value
+#define DAC_STEPPER_ADDRESS 0
+#define DAC_STEPPER_MAX 4096 // was 5000 but max allowable value is actually 4096
+#define DAC_STEPPER_VREF 1 // internal Vref, gain 2x = 4.096V
+#define DAC_STEPPER_GAIN 1 // value of 1 here sets gain of 2
+#define DAC_DISABLE_PIN 42 // set low to enable DAC
+#define DAC_OR_ADDRESS 0x01
+
+#ifndef DAC_MOTOR_CURRENT_DEFAULT
+ #define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
+#endif
diff --git a/Marlin/src/pins/ramps/pins_RL200.h b/Marlin/src/pins/ramps/pins_RL200.h
new file mode 100644
index 0000000..047ad16
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RL200.h
@@ -0,0 +1,52 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Rapide Lite 200 v1 (RUMBA clone) pin assignments. Has slightly different assignment for
+ * extruder motors due to dual Z motors. Pinout therefore based on pins_RUMBA.h.
+ */
+
+#define BOARD_INFO_NAME "RL200"
+#define DEFAULT_MACHINE_NAME "Rapide Lite 200"
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "RL200v1 supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#elif NUM_Z_STEPPER_DRIVERS != 2
+ #error "RL200 uses dual Z stepper motors. Set NUM_Z_STEPPER_DRIVERS to 2 or comment out this line to continue."
+#elif !(AXIS_DRIVER_TYPE_X(DRV8825) && AXIS_DRIVER_TYPE_Y(DRV8825) && AXIS_DRIVER_TYPE_Z(DRV8825) && AXIS_DRIVER_TYPE_Z2(DRV8825) && AXIS_DRIVER_TYPE_E0(DRV8825))
+ #error "You must set ([XYZ]|Z2|E0)_DRIVER_TYPE to DRV8825 in Configuration.h for RL200."
+#endif
+
+#define E0_STEP_PIN 26 // (RUMBA E1 pins)
+#define E0_DIR_PIN 25
+#define E0_ENABLE_PIN 27
+
+#define E1_STEP_PIN 29 // (RUMBA E2 pins)
+#define E1_DIR_PIN 28
+#define E1_ENABLE_PIN 39
+
+#define Z2_STEP_PIN 23 // (RUMBA E0 pins)
+#define Z2_DIR_PIN 22
+#define Z2_ENABLE_PIN 24
+
+#include "pins_RUMBA.h"
diff --git a/Marlin/src/pins/ramps/pins_RUMBA.h b/Marlin/src/pins/ramps/pins_RUMBA.h
new file mode 100644
index 0000000..4af49d9
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RUMBA.h
@@ -0,0 +1,234 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * RUMBA pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 3 || E_STEPPERS > 3
+ #error "RUMBA supports up to 3 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Rumba"
+#endif
+#ifndef DEFAULT_MACHINE_NAME
+ #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN 5
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 37
+#define X_MAX_PIN 36
+#define Y_MIN_PIN 35
+#define Y_MAX_PIN 34
+#define Z_MIN_PIN 33
+#define Z_MAX_PIN 32
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 32
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 17
+#define X_DIR_PIN 16
+#define X_ENABLE_PIN 48
+
+#define Y_STEP_PIN 54
+#define Y_DIR_PIN 47
+#define Y_ENABLE_PIN 55
+
+#define Z_STEP_PIN 57
+#define Z_DIR_PIN 56
+#define Z_ENABLE_PIN 62
+
+#ifndef E0_STEP_PIN
+ #define E0_STEP_PIN 23
+ #define E0_DIR_PIN 22
+ #define E0_ENABLE_PIN 24
+#endif
+
+#ifndef E1_STEP_PIN
+ #define E1_STEP_PIN 26
+ #define E1_DIR_PIN 25
+ #define E1_ENABLE_PIN 27
+#endif
+
+#if E1_STEP_PIN != 29
+ #define E2_STEP_PIN 29
+ #define E2_DIR_PIN 28
+ #define E2_ENABLE_PIN 39
+#endif
+
+//
+// Temperature Sensors
+//
+#ifndef TEMP_0_PIN
+ #if TEMP_SENSOR_0 == -1
+ #define TEMP_0_PIN 6 // Analog Input (connector *K1* on RUMBA thermocouple ADD ON is used)
+ #else
+ #define TEMP_0_PIN 15 // Analog Input (default connector for thermistor *T0* on rumba board is used)
+ #endif
+#endif
+
+#ifndef TEMP_1_PIN
+ #if TEMP_SENSOR_1 == -1
+ #define TEMP_1_PIN 5 // Analog Input (connector *K2* on RUMBA thermocouple ADD ON is used)
+ #else
+ #define TEMP_1_PIN 14 // Analog Input (default connector for thermistor *T1* on rumba board is used)
+ #endif
+#endif
+
+#if TEMP_SENSOR_2 == -1
+ #define TEMP_2_PIN 7 // Analog Input (connector *K3* on RUMBA thermocouple ADD ON is used <-- this can't be used when TEMP_SENSOR_BED is defined as thermocouple)
+#else
+ #define TEMP_2_PIN 13 // Analog Input (default connector for thermistor *T2* on rumba board is used)
+#endif
+
+// Optional for extruder 4 or chamber:
+//#define TEMP_X_PIN 12 // Analog Input (default connector for thermistor *T3* on rumba board is used)
+
+#ifndef TEMP_CHAMBER_PIN
+ //#define TEMP_CHAMBER_PIN 12 // Analog Input (default connector for thermistor *T3* on rumba board is used)
+#endif
+
+#if TEMP_SENSOR_BED == -1
+ #define TEMP_BED_PIN 7 // Analog Input (connector *K3* on RUMBA thermocouple ADD ON is used <-- this can't be used when TEMP_SENSOR_2 is defined as thermocouple)
+#else
+ #define TEMP_BED_PIN 11 // Analog Input (default connector for thermistor *THB* on rumba board is used)
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+#define HEATER_1_PIN 3
+#define HEATER_2_PIN 6
+#define HEATER_3_PIN 8
+#define HEATER_BED_PIN 9
+
+#ifndef FAN_PIN
+ #define FAN_PIN 7
+#endif
+#ifndef FAN1_PIN
+ #define FAN1_PIN 8
+#endif
+
+//
+// Misc. Functions
+//
+#define LED_PIN 13
+#define PS_ON_PIN 45
+#define KILL_PIN 46
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 45
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#ifndef SPINDLE_LASER_PWM_PIN
+ #define SPINDLE_LASER_PWM_PIN 4 // Hardware PWM. Pin 4 interrupts OC0* and OC1* always in use?
+#endif
+#ifndef SPINDLE_LASER_ENA_PIN
+ #define SPINDLE_LASER_ENA_PIN 14 // Pullup!
+#endif
+#ifndef SPINDLE_DIR_PIN
+ #define SPINDLE_DIR_PIN 15
+#endif
+
+//
+// LCD / Controller
+//
+#if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
+ #define LCD_PINS_DC 38 // Set as output on init
+ #define LCD_PINS_RS 41 // Pull low for 1s to init
+ // DOGM SPI LCD Support
+ #define DOGLCD_CS 19
+ #define DOGLCD_MOSI 42
+ #define DOGLCD_SCK 18
+ #define DOGLCD_A0 LCD_PINS_DC
+#elif ENABLED(FYSETC_MINI_12864)
+ #define DOGLCD_CS 42
+ #define DOGLCD_A0 19
+ #define DOGLCD_MOSI 51
+ #define DOGLCD_SCK 52
+
+ //#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ #define LCD_RESET_PIN 18 // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN 41
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN 38
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN 40
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN 25
+ #endif
+
+#else
+ #define LCD_PINS_RS 19
+ #define LCD_PINS_ENABLE 42
+ #define LCD_PINS_D4 18
+ #define LCD_PINS_D5 38
+ #define LCD_PINS_D6 41
+#endif
+
+#define LCD_PINS_D7 40
+
+//
+// Beeper, SD Card, Encoder
+//
+#define BEEPER_PIN 44
+
+#if ENABLED(SDSUPPORT)
+ #define SDSS 53
+ #define SD_DETECT_PIN 49
+#endif
+
+#if IS_NEWPANEL
+ #define BTN_EN1 11
+ #define BTN_EN2 12
+ #define BTN_ENC 43
+#endif
diff --git a/Marlin/src/pins/ramps/pins_RUMBA_RAISE3D.h b/Marlin/src/pins/ramps/pins_RUMBA_RAISE3D.h
new file mode 100644
index 0000000..3994261
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_RUMBA_RAISE3D.h
@@ -0,0 +1,31 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#define BOARD_INFO_NAME "Raise3D Rumba"
+#define DEFAULT_MACHINE_NAME "Raise3D N Series"
+
+// Raise3D uses thermocouples on the standard input pins
+#define TEMP_0_PIN 15 // Analog Input
+#define TEMP_1_PIN 14 // Analog Input
+
+#include "pins_RUMBA.h"
diff --git a/Marlin/src/pins/ramps/pins_SAINSMART_2IN1.h b/Marlin/src/pins/ramps/pins_SAINSMART_2IN1.h
new file mode 100644
index 0000000..e15fc94
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_SAINSMART_2IN1.h
@@ -0,0 +1,42 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Sainsmart 2-in-1 pin assignments
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "Sainsmart 2-in-1 supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Sainsmart"
+
+//
+// Heaters / Fans
+//
+#define RAMPS_D10_PIN 9 // E
+#define RAMPS_D9_PIN 7 // F PART FAN in front of board next to Extruder heat
+ // RAMPS_D8_PIN 8 // B
+#define MOSFET_D_PIN 10 // F / E
+
+#include "pins_RAMPS.h"
diff --git a/Marlin/src/pins/ramps/pins_TANGO.h b/Marlin/src/pins/ramps/pins_TANGO.h
new file mode 100644
index 0000000..451d2f8
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_TANGO.h
@@ -0,0 +1,53 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * BIQU Tango pin assignments
+ */
+
+#define BOARD_INFO_NAME "Tango"
+
+#define FAN_PIN 8
+#define FAN1_PIN -1
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN 7
+#endif
+
+#ifndef TEMP_0_PIN
+ #if TEMP_SENSOR_0 == -1
+ #define TEMP_0_PIN 10 // Analog Input (connector *K1* on Tango thermocouple ADD ON is used)
+ #else
+ #define TEMP_0_PIN 15 // Analog Input (default connector for thermistor *T0* on rumba board is used)
+ #endif
+#endif
+
+#ifndef TEMP_1_PIN
+ #if TEMP_SENSOR_1 == -1
+ #define TEMP_1_PIN 9 // Analog Input (connector *K2* on Tango thermocouple ADD ON is used)
+ #else
+ #define TEMP_1_PIN 14 // Analog Input (default connector for thermistor *T1* on rumba board is used)
+ #endif
+#endif
+
+#include "pins_RUMBA.h"
diff --git a/Marlin/src/pins/ramps/pins_TENLOG_D3_HERO.h b/Marlin/src/pins/ramps/pins_TENLOG_D3_HERO.h
new file mode 100644
index 0000000..84e7e31
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_TENLOG_D3_HERO.h
@@ -0,0 +1,185 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Tenlog pin assignments
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "Tenlog supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Tenlog D3 Hero"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+//
+// Servos
+//
+#define SERVO0_PIN 11
+#define SERVO1_PIN 6
+#define SERVO2_PIN -1 // Original pin 5 used for hotend fans
+#define SERVO3_PIN 4
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 3
+#define X_MAX_PIN 2
+#define Y_MIN_PIN 14
+//#define Y_MAX_PIN 15 // Connected to "DJ" plug on extruder heads
+#define Z_MIN_PIN 18
+#define Z_MAX_PIN 19
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 15 // Ramps is normally 32
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 54
+#define X_DIR_PIN 55
+#define X_ENABLE_PIN 38
+//#ifndef X_CS_PIN
+ //#define X_CS_PIN 53
+//#endif
+
+#define X2_STEP_PIN 36
+#define X2_DIR_PIN 34
+#define X2_ENABLE_PIN 30
+//#ifndef X2_CS_PIN
+ //#define X2_CS_PIN 53
+//#endif
+
+#define Y_STEP_PIN 60
+#define Y_DIR_PIN 61
+#define Y_ENABLE_PIN 56
+//#ifndef Y_CS_PIN
+ //#define Y_CS_PIN 49
+//#endif
+
+#define Z_STEP_PIN 46
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 62
+//#ifndef Z_CS_PIN
+ //#define Z_CS_PIN 40
+//#endif
+
+#define Z2_STEP_PIN 65
+#define Z2_DIR_PIN 66
+#define Z2_ENABLE_PIN 64
+//#ifndef Z2_CS_PIN
+ //#define Z2_CS_PIN 40
+//#endif
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+//#ifndef E0_CS_PIN
+ //define E0_CS_PIN 42
+//#endif
+
+#define E1_STEP_PIN 57
+#define E1_DIR_PIN 58
+#define E1_ENABLE_PIN 59
+//#ifndef E1_CS_PIN
+ //define E1_CS_PIN 44
+//#endif
+
+//#define E2_STEP_PIN 42
+//#define E2_DIR_PIN 43
+//#define E2_ENABLE_PIN 44
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 13 // Analog Input
+#define TEMP_1_PIN 15 // Analog Input
+#define TEMP_BED_PIN 14 // Analog Input
+
+// SPI for Max6675 or Max31855 Thermocouple
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN -1 // Don't use 53 if using Display/SD card
+#else
+ #define MAX6675_SS_PIN -1 // Don't use 49 (SD_DETECT_PIN)
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 10
+#define HEATER_1_PIN 11
+#define HEATER_BED_PIN 8
+
+#define FAN_PIN 9
+#define FAN1_PIN 5 // Normall this would be a servo pin
+
+// XXX Runout support unknown?
+//#define NUM_RUNOUT_SENSORS 0
+//#define FIL_RUNOUT_PIN 22
+//#define FIL_RUNOUT2_PIN 21
+
+//
+// Misc. Functions
+//
+//#define CASE_LIGHT_PIN 5
+#define SDSS 53
+//#ifndef LED_PIN
+ //#define LED_PIN 13
+//#endif
+
+//#define SPINDLE_LASER_PWM_PIN -1 // Hardware PWM
+//#define SPINDLE_LASER_ENA_PIN 4 // Pullup!
+
+// Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
+//#define FILWIDTH_PIN 5 // Analog Input
+
+//
+// LCD / Controller
+//
+
+//#if IS_RRD_SC
+
+#define LCD_PINS_RS -1
+#define LCD_PINS_ENABLE -1
+#define LCD_PINS_D4 -1
+#define LCD_PINS_D5 -1
+#define LCD_PINS_D6 -1
+#define LCD_PINS_D7 -1
+//#define BTN_EN1 31
+//#define BTN_EN2 33
+//#define BTN_ENC 35
+#define SD_DETECT_PIN 49
+//#ifndef KILL_PIN
+ //#define KILL_PIN 41
+//#endif
+//#ifndef BEEPER_PIN
+#define BEEPER_PIN -1
+//#endif
+
+//#endif // IS_RRD_SC
diff --git a/Marlin/src/pins/ramps/pins_TRIGORILLA_13.h b/Marlin/src/pins/ramps/pins_TRIGORILLA_13.h
new file mode 100644
index 0000000..9508be0
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_TRIGORILLA_13.h
@@ -0,0 +1,43 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega with RAMPS v1.3 for Anycubic
+ */
+
+#define BOARD_INFO_NAME "Anycubic RAMPS 1.3"
+
+#define IS_RAMPS_EFB
+#define RAMPS_D9_PIN 44
+#define FAN2_PIN 9
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN 9
+#endif
+
+#include "pins_RAMPS_13.h"
+
+#undef E1_STEP_PIN
+#undef E1_DIR_PIN
+#undef E1_ENABLE_PIN
+#undef E1_CS_PIN
diff --git a/Marlin/src/pins/ramps/pins_TRIGORILLA_14.h b/Marlin/src/pins/ramps/pins_TRIGORILLA_14.h
new file mode 100644
index 0000000..54d91ce
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_TRIGORILLA_14.h
@@ -0,0 +1,157 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega with RAMPS v1.4 for Anycubic
+ */
+
+#define BOARD_INFO_NAME "Anycubic RAMPS 1.4"
+
+// Board labeled pins:
+
+#define TG_HEATER_BED_PIN 8
+#define TG_HEATER_0_PIN 10
+#define TG_HEATER_1_PIN 45 // Anycubic Kossel: Unused
+
+#define TG_FAN0_PIN 9 // Anycubic Kossel: Usually the part cooling fan
+#define TG_FAN1_PIN 7 // Anycubic Kossel: Unused
+#define TG_FAN2_PIN 44 // Anycubic Kossel: Hotend fan
+
+//
+// Servos
+//
+#if MB(TRIGORILLA_14_11)
+ #define SERVO0_PIN 5
+ #define SERVO1_PIN 4
+ #define SERVO2_PIN 11
+ #define SERVO3_PIN 6
+#endif
+
+// Remap MOSFET pins to common usages:
+
+#define RAMPS_D10_PIN TG_HEATER_0_PIN // HEATER_0_PIN is always RAMPS_D10_PIN in pins_RAMPS.h
+
+#if HAS_MULTI_HOTEND // EEF and EEB
+ #define RAMPS_D9_PIN TG_HEATER_1_PIN
+ #if !TEMP_SENSOR_BED
+ // EEF
+ #define RAMPS_D8_PIN TG_FAN0_PIN
+ #else
+ // EEB
+ #define RAMPS_D8_PIN TG_HEATER_BED_PIN
+ #define FAN_PIN TG_FAN0_PIN // Override pin 4 in pins_RAMPS.h
+ #endif
+#elif TEMP_SENSOR_BED
+ // EFB (Anycubic Kossel default)
+ #define RAMPS_D9_PIN TG_FAN0_PIN
+ #if ENABLED(ANYCUBIC_LCD_CHIRON)
+ #define RAMPS_D8_PIN TG_HEATER_1_PIN // Heated bed is connected to HEATER1 output
+ #else
+ #define RAMPS_D8_PIN TG_HEATER_BED_PIN
+ #endif
+#else
+ // EFF
+ #define RAMPS_D9_PIN TG_FAN1_PIN
+ #define RAMPS_D8_PIN TG_FAN0_PIN
+#endif
+
+#if HAS_MULTI_HOTEND || TEMP_SENSOR_BED // EEF, EEB, EFB
+ #define FAN1_PIN TG_FAN1_PIN
+#endif
+#define FAN2_PIN TG_FAN2_PIN
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN TG_FAN2_PIN // Used in Anycubic Kossel example config
+#endif
+
+#if ENABLED(ANYCUBIC_LCD_I3MEGA)
+ #define CONTROLLER_FAN_PIN TG_FAN1_PIN
+#endif
+
+//
+// AnyCubic standard pin mappings
+//
+// On most printers, endstops are NOT all wired to the appropriate pins on the Trigorilla board.
+// For instance, on a Chiron, Y axis goes to an aux connector.
+// There are also other things that have been wired in creative ways.
+// To enable PIN definitions for a specific printer model, #define the appropriate symbol after
+// MOTHERBOARD in Configuration.h
+
+//
+// Limit Switches
+//
+//#define ANYCUBIC_4_MAX_PRO_ENDSTOPS
+
+#if ENABLED(ANYCUBIC_4_MAX_PRO_ENDSTOPS)
+ #define X_MAX_PIN 43
+ #define Y_STOP_PIN 19
+#elif EITHER(ANYCUBIC_LCD_CHIRON, ANYCUBIC_LCD_I3MEGA)
+ #define Y_STOP_PIN 42
+ #define Z2_MIN_PIN 43
+ #ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 2
+ #endif
+ #ifndef FIL_RUNOUT_PIN
+ #if ENABLED(ANYCUBIC_LCD_CHIRON)
+ #define FIL_RUNOUT_PIN 33
+ #else
+ #define FIL_RUNOUT_PIN 19
+ #endif
+ #endif
+ #define BEEPER_PIN 31
+ #define SD_DETECT_PIN 49
+#endif
+
+#include "pins_RAMPS.h"
+
+//
+// AnyCubic made the following changes to 1.1.0-RC8
+// If these are appropriate for your LCD let us know.
+//
+#if 0 && HAS_WIRED_LCD
+
+ // LCD Display output pins
+ #if BOTH(IS_NEWPANEL, PANEL_ONE)
+ #undef LCD_PINS_D6
+ #define LCD_PINS_D6 57
+ #endif
+
+ // LCD Display input pins
+ #if IS_NEWPANEL
+ #if ANY(VIKI2, miniVIKI)
+ #undef DOGLCD_A0
+ #define DOGLCD_A0 23
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+ #undef BEEPER_PIN
+ #define BEEPER_PIN 33
+ #undef LCD_BACKLIGHT_PIN
+ #define LCD_BACKLIGHT_PIN 67
+ #endif
+ #elif ENABLED(MINIPANEL)
+ #undef BEEPER_PIN
+ #define BEEPER_PIN 33
+ #undef DOGLCD_A0
+ #define DOGLCD_A0 42
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/ramps/pins_TRONXY_V3_1_0.h b/Marlin/src/pins/ramps/pins_TRONXY_V3_1_0.h
new file mode 100644
index 0000000..f342eff
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_TRONXY_V3_1_0.h
@@ -0,0 +1,279 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega for Tronxy X5S-2E, etc.
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "TRONXY-V3-1.0 supports only 2 hotends/E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "TRONXY-V3-1.0"
+
+//
+// Servos
+//
+#define SERVO1_PIN 12 // 2560 PIN 25/PB6
+
+//
+// Import RAMPS 1.4 pins
+//
+#include "pins_RAMPS.h"
+
+/**
+ * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ *
+ * ===== AUX-1 connector =====
+ *
+ * 2 4 6 8
+ * #----------------#
+ * #2 | ° ° ° ° |
+ * #1 | ° ° ° ° |
+ * NOTCH #------ ------#
+ * 1 3 5 7
+ *
+ * ###################################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ###################################
+ * # 1 | VCC | + #
+ * # 2 | VCC | + #
+ * # 3 | GND | - #
+ * # 4 | GND | - #
+ * # 5 | N/C | #
+ * # 6 | 3 / PE1 (TXD0) | D1 #
+ * # 7 | N/C | #
+ * # 8 | 2 / PE0 (RXD0) | D0 #
+ * ###################################
+ *
+ * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ *
+ * ===== Limit Switch connectors =====
+ *
+ * ############## X+ #################
+ * X+ # Pin | ATMEGA2560 Pin | Arduino #
+ * 1 2 3 ###################################
+ * #- --- -# # 1 | 6 / PE4 (INT4) | D2 #
+ * | ° ° ° | # 2 | GND | - #
+ * #-------# # 3 | VCC | + #
+ * ###################################
+ *
+ * ############## X- #################
+ * X- # Pin | ATMEGA2560 Pin | Arduino #
+ * 1 2 3 ###################################
+ * #- --- -# # 1 | 7 / PE5 (INT5) | D3 #
+ * | ° ° ° | # 2 | GND | - #
+ * #-------# # 3 | VCC | + #
+ * ###################################
+ *
+ * ############## Y+ #################
+ * Y+ # Pin | ATMEGA2560 Pin | Arduino #
+ * 1 2 3 ###################################
+ * #- --- -# # 1 | 63/PJ0 (PCINT9) | D15 #
+ * | ° ° ° | # 2 | GND | - #
+ * #-------# # 3 | VCC | + #
+ * ###################################
+ *
+ * ############## Y- #################
+ * Y- # Pin | ATMEGA2560 Pin | Arduino #
+ * 1 2 3 ###################################
+ * #- --- -# # 1 | 64/PJ1 (PCINT10)| D14 #
+ * | ° ° ° | # 2 | GND | - #
+ * #-------# # 3 | VCC | + #
+ * ###################################
+ *
+ * ############## Z+ #################
+ * Z+ # Pin | ATMEGA2560 Pin | Arduino #
+ * 1 2 3 ###################################
+ * #- --- -# # 1 | 45 / PD2 (INT2) | D19 #
+ * | ° ° ° | # 2 | GND | - #
+ * #-------# # 3 | VCC | + #
+ * ###################################
+ *
+ * ############## Z- #################
+ * Z- # Pin | ATMEGA2560 Pin | Arduino #
+ * 1 2 3 ###################################
+ * #- --- -# # 1 | 46 / PD3 (INT3) | D18 #
+ * | ° ° ° | # 2 | GND | - #
+ * #-------# # 3 | VCC | + #
+ * ###################################
+ *
+ * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ *
+ * ===== EXP1/EXP2 connectors =====
+ *
+ * (NOTE ORDER) EXP2 EXP1
+ * 2 4 6 8 10 2 4 6 8 10
+ * #-------------------# #-------------------#
+ * #2 | ° ° ° ° ° | #2 | ° ° ° ° ° |
+ * #1 | ° ° ° ° ° | #1 | ° ° ° ° ° |
+ * NOTCH #-------- -------# NOTCH #-------- -------#
+ * 1 3 5 7 9 1 3 5 7 9
+ *
+ * ############# EXP1 ################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ###################################
+ * # 1 | 53 / PC0 | D37 #
+ * # 2 | 55 / PC2 | D35 #
+ * # 3 | 12 / PH0 (RXD2) | D17 #
+ * # 4 | 13 / PH1 (TXD2) | D16 #
+ * # 5 | 77 / PA1 | D23 #
+ * # 6 | 75 / PA3 | D25 #
+ * # 7 | 73 / PA5 | D27 #
+ * # 8 | 71 / PA7 | D29 #
+ * # 9 | GND | - #
+ * # 10 | VCC | + #
+ * ###################################
+ *
+ * ############# EXP2 ################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ###################################
+ * # 1 | 22 / PB3 (MISO) | D50 #
+ * # 2 | 20 / PB1 (SCK) | D52 #
+ * # 3 | 59 / PC6 | D31 #
+ * # 4 | N/C | #
+ * # 5 | 57 / PC4 | D33 #
+ * # 6 | 21 / PB2 (MOSI) | D51 #
+ * # 7 | N/C | #
+ * # 8 | 30 / !RESET | RESET #
+ * # 9 | GND | - #
+ * # 10 | 51 / PG0 | D41 #
+ * ###################################
+ *
+ * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ *
+ * ===== ICSP connector =====
+ *
+ * 2 4 6
+ * #---------#
+ * | ° ° ° |
+ * | ° ° ° |
+ * #---------#
+ * 1 3 5
+ *
+ * ##################################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ##################################
+ * # 1 | 22 / PB3 (MISO)| 50 #
+ * # 2 | VCC | + #
+ * # 3 | 20 / PB1 (SCK) | 52 #
+ * # 4 | 21 / PB2 (MOSI)| 51 #
+ * # 5 | 30 / !RESET | RESET #
+ * # 6 | GND | - #
+ * ##################################
+ *
+ * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ *
+ * ===== SERVOS connector =====
+ *
+ * 2 4 6
+ * #---------#
+ * | ° ° ° |
+ * | ° ° ° |
+ * #---------#
+ * 1 3 5
+ *
+ * ##################################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ##################################
+ * # 1 | 25 / PB6 (OC1B)| D12 #
+ * # 2 | 24 / PB5 (OC1A)| D11 #
+ * # 3 | GND | - #
+ * # 4 | GND | - #
+ * # 5 | VCC | + #
+ * # 6 | VCC | + #
+ * ##################################
+ *
+ * NOTE: Pins 1 and 2 are the ones closest to the "L" and "PWR" LEDs.
+ *
+ * NOTE: Check servo wiring before connecting, for example:
+ * + Airtronics (non-Z) use: Red = +; Black = -; Black & White, White or Orange = signal.
+ * + Airtronics-Z use: Red = +; Black = -; Blue = signal.
+ * + Futaba use: Red = +; Black = -; White = signal.
+ * + Hitec use: Red = +; Black = -; Yellow = signal.
+ * + JR use: Red = +; Brown = -; Orange = signal.
+ *
+ * NOTE: Test your servo limits:
+ * Due to effects of component tolerances and/or age, the usable range of S-values for individual servos may be less than the settable 0-255 range. For example:
+ * 1. One servo may have a fully usable range of M280 P0 S0 through M280 P0 S255.
+ * 2. A different servo (of the same brand and model) may have a usable range of only M280 P0 S0 through M280 P0 S165 after which you experience binding.
+ *
+ * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ *
+ * ===== Thermistor connectors =====
+ *
+ * (NOTE ORDER) TH2 TH1 TB
+ * 1 2 1 2 1 2
+ * #- -# #- -# #- -#
+ * | ° ° | | ° ° | | ° ° |
+ * #-----# #-----# #-----#
+ *
+ * ############## TB #################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ###################################
+ * # 1 | GND | - #
+ * # 2 | 83 / PK6 (ADC14)| A14 #
+ * ###################################
+ *
+ * ############## TH1 ################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ###################################
+ * # 1 | GND | - #
+ * # 2 | 84 / PK5 (ADC13)| A13 #
+ * ###################################
+ *
+ * ############## TH2 ################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ###################################
+ * # 1 | GND | - #
+ * # 2 | 82 / PK7 (ADC15)| A15 #
+ * ###################################
+ *
+ * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ *
+ * ===== XS3 connector =====
+ *
+ * 2 4 6
+ * #---------#
+ * | ° ° ° |
+ * | ° ° ° |
+ * #---------#
+ * 1 3 5
+ *
+ * ##################################
+ * # Pin | ATMEGA2560 Pin | Arduino #
+ * ##################################
+ * # 1 | 85 / ADC12 | A12 #
+ * # 2 | 86 / ADC11 | A11 #
+ * # 3 | GND | - #
+ * # 4 | GND | - #
+ * # 5 | VCC | + #
+ * # 6 | VCC | + #
+ * ##################################
+ *
+ * NOTE: Pins 1 and 2 are the ones closest to the "L" and "PWR" LEDs.
+ *
+ * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ */
diff --git a/Marlin/src/pins/ramps/pins_TT_OSCAR.h b/Marlin/src/pins/ramps/pins_TT_OSCAR.h
new file mode 100644
index 0000000..ca40255
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_TT_OSCAR.h
@@ -0,0 +1,519 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#if HOTENDS > 5 || E_STEPPERS > 5
+ #error "TTOSCAR supports up to 5 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "TT OSCAR"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+//
+// Servos
+//
+#define SERVO0_PIN 11
+#define SERVO1_PIN 12
+#define SERVO2_PIN 5
+#define SERVO3_PIN 4
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 3
+#define X_MAX_PIN 2
+#define Y_MIN_PIN 14
+#define Y_MAX_PIN 15
+#define Z_MIN_PIN 18
+#define Z_MAX_PIN 19
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN SERVO3_PIN
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 54
+#define X_DIR_PIN 55
+#define X_ENABLE_PIN 38
+#define X_CS_PIN 57
+
+#define Y_STEP_PIN 60
+#define Y_DIR_PIN 61
+#define Y_ENABLE_PIN 56
+#define Y_CS_PIN 58
+
+#define Z_STEP_PIN 46
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 62
+#define Z_CS_PIN 53
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+#define E0_CS_PIN 49
+
+#define E1_STEP_PIN 36
+#define E1_DIR_PIN 34
+#define E1_ENABLE_PIN 30
+#define E1_CS_PIN E0_CS_PIN
+
+#define E2_STEP_PIN 63
+#define E2_DIR_PIN 22
+#define E2_ENABLE_PIN 59
+#define E2_CS_PIN E0_CS_PIN
+
+#define E3_STEP_PIN 32
+#define E3_DIR_PIN 40
+#define E3_ENABLE_PIN 39
+#define E3_CS_PIN E0_CS_PIN
+
+#define E4_STEP_PIN 43
+#define E4_DIR_PIN 42
+#define E4_ENABLE_PIN 47
+#define E4_CS_PIN E0_CS_PIN
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+
+ #define X_SERIAL_TX_PIN -1 // 59
+ #define X_SERIAL_RX_PIN -1 // 63
+ #define X2_SERIAL_TX_PIN -1
+ #define X2_SERIAL_RX_PIN -1
+
+ #define Y_SERIAL_TX_PIN -1 // 64
+ #define Y_SERIAL_RX_PIN -1 // 40
+ #define Y2_SERIAL_TX_PIN -1
+ #define Y2_SERIAL_RX_PIN -1
+
+ #define Z_SERIAL_TX_PIN -1 // 44
+ #define Z_SERIAL_RX_PIN -1 // 42
+ #define Z2_SERIAL_TX_PIN -1
+ #define Z2_SERIAL_RX_PIN -1
+
+ #define E0_SERIAL_TX_PIN -1 // 66
+ #define E0_SERIAL_RX_PIN -1 // 65
+ #define E1_SERIAL_TX_PIN -1
+ #define E1_SERIAL_RX_PIN -1
+ #define E2_SERIAL_TX_PIN -1
+ #define E2_SERIAL_RX_PIN -1
+ #define E3_SERIAL_TX_PIN -1
+ #define E3_SERIAL_RX_PIN -1
+ #define E4_SERIAL_TX_PIN -1
+ #define E4_SERIAL_RX_PIN -1
+ #define E5_SERIAL_RX_PIN -1
+ #define E6_SERIAL_RX_PIN -1
+ #define E7_SERIAL_RX_PIN -1
+#endif
+
+//
+// Default pins for TMC software SPI
+//
+//#if ENABLED(TMC_USE_SW_SPI)
+// #ifndef TMC_SW_MOSI
+// #define TMC_SW_MOSI 66
+// #endif
+// #ifndef TMC_SW_MISO
+// #define TMC_SW_MISO 44
+// #endif
+// #ifndef TMC_SW_SCK
+// #define TMC_SW_SCK 64
+// #endif
+//#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 13
+#define TEMP_1_PIN 15
+#define TEMP_2_PIN 10
+#define TEMP_3_PIN 11
+#define TEMP_BED_PIN 14
+
+#if TEMP_SENSOR_CHAMBER > 0
+ #define TEMP_CHAMBER_PIN 12
+#else
+ #define TEMP_4_PIN 12
+#endif
+
+// SPI for Max6675 or Max31855 Thermocouple
+//#if DISABLED(SDSUPPORT)
+// #define MAX6675_SS_PIN 66 // Don't use 53 if using Display/SD card
+//#else
+// #define MAX6675_SS_PIN 66 // Don't use 49 (SD_DETECT_PIN)
+//#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 10
+#define HEATER_1_PIN 7
+#define HEATER_2_PIN 44
+#define HEATER_BED_PIN 8
+
+#define FAN_PIN 9
+
+#if EXTRUDERS >= 5
+ #define HEATER_4_PIN 6
+#else
+ #define FAN1_PIN 6
+#endif
+
+#if EXTRUDERS >= 4
+ #define HEATER_3_PIN 45
+#else
+ #define FAN2_PIN 45
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+
+//#ifndef FILWIDTH_PIN
+// #define FILWIDTH_PIN 5 // Analog Input
+//#endif
+
+// DIO 4 (Servos plug) for the runout sensor.
+//#define FIL_RUNOUT_PIN SERVO3_PIN
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN 12
+#endif
+
+//
+// Case Light
+//
+#if ENABLED(CASE_LIGHT_ENABLE) && !PIN_EXISTS(CASE_LIGHT) && !defined(SPINDLE_LASER_ENABLE_PIN)
+ #if !NUM_SERVOS // Prefer the servo connector
+ #define CASE_LIGHT_PIN 6 // Hardware PWM
+ #elif HAS_FREE_AUX2_PINS // Try to use AUX 2
+ #define CASE_LIGHT_PIN 44 // Hardware PWM
+ #endif
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if ENABLED(SPINDLE_LASER_ENABLE) && !PIN_EXISTS(SPINDLE_LASER_ENABLE)
+ #if !NUM_SERVOS // Prefer the servo connector
+ #define SPINDLE_LASER_ENABLE_PIN 4 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 6 // Hardware PWM
+ #define SPINDLE_DIR_PIN 5
+ #elif HAS_FREE_AUX2_PINS // Try to use AUX 2
+ #define SPINDLE_LASER_ENABLE_PIN 40 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
+ #define SPINDLE_DIR_PIN 65
+ #endif
+#endif
+
+//
+// Průša i3 MK2 Multiplexer Support
+//
+//#ifndef E_MUX0_PIN
+// #define E_MUX0_PIN 58 // Y_CS_PIN
+//#endif
+//#ifndef E_MUX1_PIN
+// #define E_MUX1_PIN 53 // Z_CS_PIN
+//#endif
+//#ifndef E_MUX2_PIN
+// #define E_MUX2_PIN 49 // En_CS_PIN
+//#endif
+
+//////////////////////////
+// LCDs and Controllers //
+//////////////////////////
+
+#if HAS_WIRED_LCD
+
+ //
+ // LCD Display output pins
+ //
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #define LCD_PINS_RS 49 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE 51 // SID (MOSI)
+ #define LCD_PINS_D4 52 // SCK (CLK) clock
+
+ #elif BOTH(IS_NEWPANEL, PANEL_ONE)
+
+ #define LCD_PINS_RS 40
+ #define LCD_PINS_ENABLE 42
+ #define LCD_PINS_D4 65
+ #define LCD_PINS_D5 66
+ #define LCD_PINS_D6 44
+ #define LCD_PINS_D7 64
+
+ #elif ENABLED(ZONESTAR_LCD)
+
+ #define LCD_PINS_RS 64
+ #define LCD_PINS_ENABLE 44
+ #define LCD_PINS_D4 63
+ #define LCD_PINS_D5 40
+ #define LCD_PINS_D6 42
+ #define LCD_PINS_D7 65
+ #define ADC_KEYPAD_PIN 12
+
+ #else
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define LCD_PINS_RS 27
+ #define LCD_PINS_ENABLE 29
+ #define LCD_PINS_D4 25
+
+ #if !IS_NEWPANEL
+ #define BEEPER_PIN 37
+ #endif
+
+ #else
+
+ #if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
+ #define LCD_PINS_DC 25 // Set as output on init
+ #define LCD_PINS_RS 27 // Pull low for 1s to init
+ // DOGM SPI LCD Support
+ #define DOGLCD_CS 16
+ #define DOGLCD_MOSI 17
+ #define DOGLCD_SCK 23
+ #define DOGLCD_A0 LCD_PINS_DC
+ #else
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 23
+ #define LCD_PINS_D5 25
+ #define LCD_PINS_D6 27
+ #endif
+
+ #define LCD_PINS_D7 29
+
+ #if !IS_NEWPANEL
+ #define BEEPER_PIN 33
+ #endif
+
+ #endif
+
+ #if !IS_NEWPANEL
+ // Buttons attached to a shift register
+ // Not wired yet
+ //#define SHIFT_CLK_PIN 38
+ //#define SHIFT_LD_PIN 42
+ //#define SHIFT_OUT_PIN 40
+ //#define SHIFT_EN_PIN 17
+ #endif
+
+ #endif
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ //
+ // LCD Display input pins
+ //
+ #if IS_NEWPANEL
+
+ #if IS_RRD_SC
+
+ #define BEEPER_PIN 37
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ #define BTN_EN1 17
+ #define BTN_EN2 23
+ #else
+ #define BTN_EN1 31
+ #define BTN_EN2 33
+ #endif
+
+ #define BTN_ENC 35
+ #define SD_DETECT_PIN 49
+ //#define KILL_PIN 41
+
+ #if ENABLED(BQ_LCD_SMART_CONTROLLER)
+ #define LCD_BACKLIGHT_PIN 39
+ #endif
+
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #define BTN_EN1 64
+ #define BTN_EN2 59
+ #define BTN_ENC 63
+ #define SD_DETECT_PIN 42
+
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+
+ #define BTN_EN1 47
+ #define BTN_EN2 43
+ #define BTN_ENC 32
+ #define LCD_SDSS 53
+ //#define KILL_PIN 41
+
+ #elif ENABLED(LCD_I2C_VIKI)
+
+ #define BTN_EN1 22 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42.
+ #define BTN_EN2 7 // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13.
+ #define BTN_ENC -1
+
+ #define LCD_SDSS 53
+ #define SD_DETECT_PIN 49
+
+ #elif EITHER(VIKI2, miniVIKI)
+
+ #define DOGLCD_CS 45
+ #define DOGLCD_A0 44
+ #define LCD_SCREEN_ROT_180
+
+ #define BEEPER_PIN 33
+ #define STAT_LED_RED_PIN 32
+ #define STAT_LED_BLUE_PIN 35
+
+ #define BTN_EN1 22
+ #define BTN_EN2 7
+ #define BTN_ENC 39
+
+ #define SDSS 53
+ #define SD_DETECT_PIN -1 // Pin 49 for display SD interface, 72 for easy adapter board
+ //#define KILL_PIN 31
+
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+
+ #define DOGLCD_CS 29
+ #define DOGLCD_A0 27
+
+ #define BEEPER_PIN 23
+ #define LCD_BACKLIGHT_PIN 33
+
+ #define BTN_EN1 35
+ #define BTN_EN2 37
+ #define BTN_ENC 31
+
+ #define LCD_SDSS 53
+ #define SD_DETECT_PIN 49
+ //#define KILL_PIN 41
+
+ #elif ENABLED(MKS_MINI_12864)
+
+ #define DOGLCD_A0 27
+ #define DOGLCD_CS 25
+
+ // GLCD features
+ //#define LCD_CONTRAST_INIT 190
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ #define BEEPER_PIN 37
+
+ #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
+
+ #define BTN_EN1 31
+ #define BTN_EN2 33
+ #define BTN_ENC 35
+ //#define SDSS 53
+ #define SD_DETECT_PIN 49
+ //#define KILL_PIN 64
+
+ #elif ENABLED(MINIPANEL)
+
+ #define BEEPER_PIN 42
+ // not connected to a pin
+ #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
+
+ #define DOGLCD_A0 44
+ #define DOGLCD_CS 66
+
+ // GLCD features
+ //#define LCD_CONTRAST_INIT 190
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ #define BTN_EN1 40
+ #define BTN_EN2 63
+ #define BTN_ENC 59
+
+ #define SDSS 53
+ #define SD_DETECT_PIN 49
+ //#define KILL_PIN 64
+
+ #else
+
+ // Beeper on AUX-4
+ #define BEEPER_PIN 33
+
+ // Buttons are directly attached to AUX-2
+ #if IS_RRW_KEYPAD
+ #define SHIFT_OUT_PIN 40
+ #define SHIFT_CLK_PIN 44
+ #define SHIFT_LD_PIN 42
+ #define BTN_EN1 64
+ #define BTN_EN2 59
+ #define BTN_ENC 63
+ #elif ENABLED(PANEL_ONE)
+ #define BTN_EN1 59 // AUX2 PIN 3
+ #define BTN_EN2 63 // AUX2 PIN 4
+ #define BTN_ENC 49 // AUX3 PIN 7
+ #else
+ #define BTN_EN1 37
+ #define BTN_EN2 35
+ #define BTN_ENC 31
+ #endif
+
+ #if ENABLED(G3D_PANEL)
+ #define SD_DETECT_PIN 49
+ //#define KILL_PIN 41
+ #endif
+
+ #endif
+
+ #endif // IS_NEWPANEL
+
+#endif
diff --git a/Marlin/src/pins/ramps/pins_ULTIMAIN_2.h b/Marlin/src/pins/ramps/pins_ULTIMAIN_2.h
new file mode 100644
index 0000000..211cadd
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_ULTIMAIN_2.h
@@ -0,0 +1,142 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Ultiboard v2.0 pin assignments
+ */
+
+/**
+ * Rev B 2 JAN 2017
+ *
+ * Added pin definitions for:
+ * M3, M4 & M5 spindle control commands
+ * case light
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Ultimaker 2.x"
+#define DEFAULT_MACHINE_NAME "Ultimaker"
+#define DEFAULT_SOURCE_CODE_URL "github.com/Ultimaker/Marlin"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 22
+#define Y_STOP_PIN 26
+#define Z_STOP_PIN 29
+
+//
+// Steppers
+//
+#define X_STEP_PIN 25
+#define X_DIR_PIN 23
+#define X_ENABLE_PIN 27
+
+#define Y_STEP_PIN 32
+#define Y_DIR_PIN 33
+#define Y_ENABLE_PIN 31
+
+#define Z_STEP_PIN 35
+#define Z_DIR_PIN 36
+#define Z_ENABLE_PIN 34
+
+#define E0_STEP_PIN 42
+#define E0_DIR_PIN 43
+#define E0_ENABLE_PIN 37
+
+#define E1_STEP_PIN 49
+#define E1_DIR_PIN 47
+#define E1_ENABLE_PIN 48
+
+#define MOTOR_CURRENT_PWM_XY_PIN 44
+#define MOTOR_CURRENT_PWM_Z_PIN 45
+#define MOTOR_CURRENT_PWM_E_PIN 46
+// Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range
+#ifndef MOTOR_CURRENT_PWM_RANGE
+ #define MOTOR_CURRENT_PWM_RANGE 2000
+#endif
+#define DEFAULT_PWM_MOTOR_CURRENT {1300, 1300, 1250}
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 8 // Analog Input
+#define TEMP_1_PIN 9 // Analog Input
+#define TEMP_BED_PIN 10 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+#define HEATER_1_PIN 3
+#define HEATER_BED_PIN 4
+
+#ifndef FAN_PIN
+ #define FAN_PIN 7
+#endif
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN 77
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define SD_DETECT_PIN 39
+#define LED_PIN 8
+#define SAFETY_TRIGGERED_PIN 28 // PIN to detect the safety circuit has triggered
+#define MAIN_VOLTAGE_MEASURE_PIN 14 // ANALOG PIN to measure the main voltage, with a 100k - 4k7 resitor divider.
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN 18
+
+#define LCD_PINS_RS 20
+#define LCD_PINS_ENABLE 15
+#define LCD_PINS_D4 14
+#define LCD_PINS_D5 21
+#define LCD_PINS_D6 5
+#define LCD_PINS_D7 6
+
+// Buttons are directly attached
+#define BTN_EN1 40
+#define BTN_EN2 41
+#define BTN_ENC 19
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER // use the LED_PIN for spindle speed control or case light
+ #undef LED_PIN
+ #define SPINDLE_DIR_PIN 16
+ #define SPINDLE_LASER_ENA_PIN 17 // Pullup!
+ #define SPINDLE_LASER_PWM_PIN 8 // Hardware PWM
+#else
+ #undef LED_PIN
+ #define CASE_LIGHT_PIN 8
+#endif
diff --git a/Marlin/src/pins/ramps/pins_ULTIMAKER.h b/Marlin/src/pins/ramps/pins_ULTIMAKER.h
new file mode 100644
index 0000000..22c7fd9
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_ULTIMAKER.h
@@ -0,0 +1,168 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Ultimaker pin assignments
+ */
+
+/**
+ * Rev B 2 JAN 2017
+ *
+ * Added pin definitions for:
+ * M3, M4 & M5 spindle control commands
+ * case light
+ */
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Ultimaker"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+#define DEFAULT_SOURCE_CODE_URL "github.com/Ultimaker/Marlin"
+
+//
+// Servos
+//
+#define SERVO0_PIN 11
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 22
+#define X_MAX_PIN 24
+#define Y_MIN_PIN 26
+#define Y_MAX_PIN 28
+#define Z_MIN_PIN 30
+#define Z_MAX_PIN 32
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 32
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 25
+#define X_DIR_PIN 23
+#define X_ENABLE_PIN 27
+
+#define Y_STEP_PIN 31
+#define Y_DIR_PIN 33
+#define Y_ENABLE_PIN 29
+
+#define Z_STEP_PIN 37
+#define Z_DIR_PIN 39
+#define Z_ENABLE_PIN 35
+
+#define E0_STEP_PIN 43
+#define E0_DIR_PIN 45
+#define E0_ENABLE_PIN 41
+
+#define E1_STEP_PIN 49
+#define E1_DIR_PIN 47
+#define E1_ENABLE_PIN 48
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 8 // Analog Input
+#define TEMP_1_PIN 9 // Analog Input
+#define TEMP_BED_PIN 10 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+#define HEATER_1_PIN 3
+#define HEATER_BED_PIN 4
+
+#ifndef FAN_PIN
+ #define FAN_PIN 7
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+#define PS_ON_PIN 12
+#define SUICIDE_PIN 54 // PIN that has to be turned on right after start, to keep power flowing.
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 8
+#endif
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN 18
+
+ #if IS_NEWPANEL
+
+ #define LCD_PINS_RS 20
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 16
+ #define LCD_PINS_D5 21
+ #define LCD_PINS_D6 5
+ #define LCD_PINS_D7 6
+
+ // Buttons directly attached
+ #define BTN_EN1 40
+ #define BTN_EN2 42
+ #define BTN_ENC 19
+
+ #define SD_DETECT_PIN 38
+
+ #else // !IS_NEWPANEL - Old style panel with shift register
+
+ // Buttons attached to a shift register
+ #define SHIFT_CLK_PIN 38
+ #define SHIFT_LD_PIN 42
+ #define SHIFT_OUT_PIN 40
+ #define SHIFT_EN_PIN 17
+
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 5
+ #define LCD_PINS_D4 6
+ #define LCD_PINS_D5 21
+ #define LCD_PINS_D6 20
+ #define LCD_PINS_D7 19
+
+ #define SD_DETECT_PIN -1
+
+ #endif // !IS_NEWPANEL
+
+#endif // HAS_WIRED_LCD
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_PWM_PIN 9 // Hardware PWM
+#define SPINDLE_LASER_ENA_PIN 10 // Pullup!
+#define SPINDLE_DIR_PIN 11 // use the EXP3 PWM header
diff --git a/Marlin/src/pins/ramps/pins_ULTIMAKER_OLD.h b/Marlin/src/pins/ramps/pins_ULTIMAKER_OLD.h
new file mode 100644
index 0000000..37c28ec
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_ULTIMAKER_OLD.h
@@ -0,0 +1,274 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Ultimaker pin assignments (Old electronics)
+ */
+
+/**
+ * Rev B 3 JAN 2017
+ *
+ * Details on pin definitions for M3, M4 & M5 spindle control commands and for
+ * the CASE_LIGHT_PIN are at the end of this file.
+ *
+ * This started out as an attempt to add pin definitions for M3, M4 & M5 spindle
+ * control commands but quickly turned into a head scratcher as the sources for
+ * the revisions provided inconsistent information.
+ *
+ * As best I can determine:
+ * 1.5.3 boards should use the pins_ULTIMAKER.h file which means the BOARD_INFO_NAME
+ * define in this file should say 1.5.3 rather than 1.5.4
+ * This file is meant for 1.1 - 1.3 boards.
+ * The endstops for the 1.0 boards use different definitions than on the 1.1 - 1.3
+ * boards.
+ *
+ * I've added sections that have the 1.0 and 1.5.3 + endstop definitions so you can
+ * easily switch if needed. I've also copied over the 1.5.3 + LCD definitions.
+ *
+ * To be 100% sure of the board you have:
+ * 1. In Configuration_adv.h enable "PINS_DEBUGGING"
+ * 2. Compile & uploade
+ * 3. Enter the command "M43 W1 I1". This command will report that pin nmumber and
+ * name of any pin that changes state.
+ * 4. Using a 1k (approximately) resistor pull the endstops and some of the LCD pins
+ * to ground and see what is reported.
+ * 5. If the reported pin doesn't match the file then try a different board revision
+ * and repeat steps 2 - 5
+ */
+
+#define BOARD_REV_1_1_TO_1_3
+//#define BOARD_REV_1_0
+//#define BOARD_REV_1_5
+
+#if NOT_TARGET(__AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#ifdef BOARD_REV_1_1_TO_1_3
+ #define BOARD_INFO_NAME "Ultimaker 1.1-1.3"
+#elif defined(BOARD_REV_1_0)
+ #define BOARD_INFO_NAME "Ultimaker 1.0"
+#elif defined(BOARD_REV_1_5)
+ #define BOARD_INFO_NAME "Ultimaker 1.5"
+#else
+ #define BOARD_INFO_NAME "Ultimaker 1.5.4+"
+#endif
+#define DEFAULT_MACHINE_NAME "Ultimaker"
+#define DEFAULT_SOURCE_CODE_URL "github.com/Ultimaker/Marlin"
+
+//
+// Limit Switches
+//
+#if ENABLED(BOARD_REV_1_1_TO_1_3)
+ #define X_MIN_PIN 15 // SW1
+ #define X_MAX_PIN 14 // SW2
+ #define Y_MIN_PIN 17 // SW3
+ #define Y_MAX_PIN 16 // SW4
+ #define Z_MIN_PIN 19 // SW5
+ #define Z_MAX_PIN 18 // SW6
+#endif
+
+#if ENABLED(BOARD_REV_1_0)
+ #if HAS_CUTTER
+ #define X_STOP_PIN 13 // SW1 (didn't change) - also has a useable hardware PWM
+ #define Y_STOP_PIN 12 // SW2
+ #define Z_STOP_PIN 11 // SW3
+ #else
+ #define X_MIN_PIN 13 // SW1
+ #define X_MAX_PIN 12 // SW2
+ #define Y_MIN_PIN 11 // SW3
+ #define Y_MAX_PIN 10 // SW4
+ #define Z_MIN_PIN 9 // SW5
+ #define Z_MAX_PIN 8 // SW6
+ #endif
+#endif
+
+#if ENABLED(BOARD_REV_1_5)
+ #define X_MIN_PIN 22
+ #define X_MAX_PIN 24
+ #define Y_MIN_PIN 26
+ #define Y_MAX_PIN 28
+ #define Z_MIN_PIN 30
+ #define Z_MAX_PIN 32
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#if !defined(Z_MIN_PROBE_PIN) && !BOTH(HAS_CUTTER, BOARD_REV_1_0)
+ #define Z_MIN_PROBE_PIN Z_MAX_PIN
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 25
+#define X_DIR_PIN 23
+#define X_ENABLE_PIN 27
+
+#define Y_STEP_PIN 31
+#define Y_DIR_PIN 33
+#define Y_ENABLE_PIN 29
+
+#define Z_STEP_PIN 37
+#define Z_DIR_PIN 39
+#define Z_ENABLE_PIN 35
+
+#if BOTH(HAS_CUTTER, BOARD_REV_1_1_TO_1_3) && EXTRUDERS == 1
+ // Move E0 to the spare and get Spindle/Laser signals from E0
+ #define E0_STEP_PIN 49
+ #define E0_DIR_PIN 47
+ #define E0_ENABLE_PIN 48
+#else
+ #define E0_STEP_PIN 43
+ #define E0_DIR_PIN 45
+ #define E0_ENABLE_PIN 41
+
+ #define E1_STEP_PIN 49
+ #define E1_DIR_PIN 47
+ #define E1_ENABLE_PIN 48
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 8 // Analog Input
+#define TEMP_1_PIN 1 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 2
+//#define HEATER_1_PIN 3 // used for case light Rev A said "1"
+#define HEATER_BED_PIN 4
+
+//
+// LCD / Controller
+//
+#if ANY(BOARD_REV_1_0, BOARD_REV_1_1_TO_1_3)
+
+ #define LCD_PINS_RS 24
+ #define LCD_PINS_ENABLE 22
+ #define LCD_PINS_D4 36
+ #define LCD_PINS_D5 34
+ #define LCD_PINS_D6 32
+ #define LCD_PINS_D7 30
+
+#elif BOTH(BOARD_REV_1_5, IS_ULTRA_LCD)
+
+ #define BEEPER_PIN 18
+
+ #if IS_NEWPANEL
+
+ #define LCD_PINS_RS 20
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 16
+ #define LCD_PINS_D5 21
+ #define LCD_PINS_D6 5
+ #define LCD_PINS_D7 6
+
+ // Buttons directly attached
+ #define BTN_EN1 40
+ #define BTN_EN2 42
+ #define BTN_ENC 19
+
+ #define SD_DETECT_PIN 38
+
+ #else // !IS_NEWPANEL - Old style panel with shift register
+
+ // Buttons attached to a shift register
+ #define SHIFT_CLK_PIN 38
+ #define SHIFT_LD_PIN 42
+ #define SHIFT_OUT_PIN 40
+ #define SHIFT_EN_PIN 17
+
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 5
+ #define LCD_PINS_D4 6
+ #define LCD_PINS_D5 21
+ #define LCD_PINS_D6 20
+ #define LCD_PINS_D7 19
+
+ #endif // !IS_NEWPANEL
+
+#endif
+
+//
+// case light - see spindle section for more info on available hardware PWMs
+//
+#if !PIN_EXISTS(CASE_LIGHT) && ENABLED(BOARD_REV_1_5)
+ #define CASE_LIGHT_PIN 7 // use PWM - MUST BE HARDWARE PWM
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER
+ #if EITHER(BOARD_REV_1_0, BOARD_REV_1_5) // Use the last three SW positions
+ #define SPINDLE_DIR_PIN 10 // 1.0: SW4 1.5: EXP3-6 ("10")
+ #define SPINDLE_LASER_PWM_PIN 9 // 1.0: SW5 1.5: EXP3-7 ( "9") .. MUST BE HARDWARE PWM
+ #define SPINDLE_LASER_ENA_PIN 8 // 1.0: SW6 1.5: EXP3-8 ( "8") .. Pin should have a pullup!
+ #elif ENABLED(BOARD_REV_1_1_TO_1_3)
+ /**
+ * Only four hardware PWMs physically connected to anything on these boards:
+ *
+ * HEATER_0_PIN 2 silkscreen varies - usually "PWM 1" or "HEATER1"
+ * HEATER_1_PIN 3 silkscreen varies - usually "PWM 2" or "HEATER2"
+ * HEATER_BED_PIN 4 silkscreen varies - usually "PWM 3" or "HEATED BED"
+ * E0_DIR_PIN 45
+ *
+ * If one of the heaters is used then special precautions will usually be needed.
+ * They have an LED and resistor pullup to +24V which could damage 3.3V-5V ICs.
+ */
+ #if EXTRUDERS == 1
+ #define SPINDLE_DIR_PIN 43
+ #define SPINDLE_LASER_PWM_PIN 45 // Hardware PWM
+ #define SPINDLE_LASER_ENA_PIN 41 // Pullup!
+ #elif TEMP_SENSOR_BED == 0 // Can't use E0 so see if HEATER_BED_PIN is available
+ #undef HEATER_BED_PIN
+ #define SPINDLE_DIR_PIN 38 // Probably pin 4 on 10 pin connector closest to the E0 socket
+ #define SPINDLE_LASER_PWM_PIN 4 // Hardware PWM - Special precautions usually needed.
+ #define SPINDLE_LASER_ENA_PIN 40 // Pullup! (Probably pin 6 on the 10-pin
+ // connector closest to the E0 socket)
+ #endif
+ #endif
+#endif
+
+/**
+ * Where to get the spindle signals on the E0 socket
+ *
+ * spindle signal socket name socket name
+ * -------
+ * SPINDLE_LASER_ENA_PIN /ENABLE *| |O VMOT
+ * MS1 O| |O GND
+ * MS2 O| |O 2B
+ * MS3 O| |O 2A
+ * /RESET O| |O 1A
+ * /SLEEP O| |O 1B
+ * SPINDLE_DIR_PIN STEP O| |O VDD
+ * SPINDLE_LASER_PWM_PIN DIR O| |O GND
+ * -------
+ * * - pin closest to MS1, MS2 & MS3 jumpers on the board
+ *
+ * Note: Socket names vary from vendor to vendor.
+ */
diff --git a/Marlin/src/pins/ramps/pins_VORON.h b/Marlin/src/pins/ramps/pins_VORON.h
new file mode 100644
index 0000000..9ab6573
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_VORON.h
@@ -0,0 +1,55 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * VORON Design v2 pin assignments
+ * See https://github.com/mzbotreprap/VORON/blob/master/Firmware/Marlin/pins_RAMPS_VORON.h
+ */
+
+#define BOARD_INFO_NAME "VORON Design v2"
+
+#define RAMPS_D8_PIN 11
+
+#include "pins_RAMPS.h"
+
+//
+// Heaters / Fans
+//
+#undef FAN_PIN
+#define FAN_PIN 5 // Using the pin for the controller fan since controller fan is always on.
+#define CONTROLLER_FAN_PIN 8
+
+//
+// Auto fans
+//
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN 6 // Servo pin 6 for E3D Fan
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN 6 // Servo pin 6 for E3D Fan (same pin for both extruders since it's the same fan)
+#endif
+
+//
+// LCDs and Controllers
+//
+#undef BEEPER_PIN
diff --git a/Marlin/src/pins/ramps/pins_ZRIB_V20.h b/Marlin/src/pins/ramps/pins_ZRIB_V20.h
new file mode 100644
index 0000000..6c4b28d
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_ZRIB_V20.h
@@ -0,0 +1,87 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * ZRIB V2.0 & V3.0 pin assignments
+ * V2 and V3 Boards only differ in USB controller, nothing affecting the pins.
+ */
+
+#include "pins_MKS_GEN_13.h"
+
+#define ZRIB_V20_D6_PIN 6 // Fan
+#define ZRIB_V20_D9_PIN 9 // Fan2
+#define ZRIB_V20_A10_PIN 10
+#define ZRIB_V20_D16_PIN 16
+#define ZRIB_V20_D17_PIN 17
+#define ZRIB_V20_D23_PIN 23
+#define ZRIB_V20_D25_PIN 25
+#define ZRIB_V20_D27_PIN 27
+#define ZRIB_V20_D29_PIN 29
+#define ZRIB_V20_D37_PIN 37
+
+//
+// Auto fans
+//
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN ZRIB_V20_D6_PIN
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN ZRIB_V20_D6_PIN
+#endif
+#ifndef E2_AUTO_FAN_PIN
+ #define E2_AUTO_FAN_PIN ZRIB_V20_D6_PIN
+#endif
+#ifndef E3_AUTO_FAN_PIN
+ #define E3_AUTO_FAN_PIN ZRIB_V20_D6_PIN
+#endif
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 11 // Analog Input
+#endif
+
+#if ENABLED(ZONESTAR_LCD)
+ #undef LCD_PINS_RS
+ #undef LCD_PINS_ENABLE
+ #undef LCD_PINS_D4
+ #undef LCD_PINS_D5
+ #undef LCD_PINS_D6
+ #undef LCD_PINS_D7
+ #undef ADC_KEYPAD_PIN
+ #undef BEEPER_PIN
+
+ #undef SHIFT_OUT_PIN
+ #undef SHIFT_CLK_PIN
+ #undef SHIFT_LD_PIN
+ #undef BTN_EN1
+ #undef BTN_EN2
+ #undef BTN_ENC
+
+ #define LCD_PINS_RS ZRIB_V20_D16_PIN
+ #define LCD_PINS_ENABLE ZRIB_V20_D17_PIN
+ #define LCD_PINS_D4 ZRIB_V20_D23_PIN
+ #define LCD_PINS_D5 ZRIB_V20_D25_PIN
+ #define LCD_PINS_D6 ZRIB_V20_D27_PIN
+ #define LCD_PINS_D7 ZRIB_V20_D29_PIN
+ #define ADC_KEYPAD_PIN ZRIB_V20_A10_PIN
+ #define BEEPER_PIN ZRIB_V20_D37_PIN
+#endif
diff --git a/Marlin/src/pins/ramps/pins_ZRIB_V52.h b/Marlin/src/pins/ramps/pins_ZRIB_V52.h
new file mode 100644
index 0000000..983c840
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_ZRIB_V52.h
@@ -0,0 +1,159 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * ZRIB V5.2 Based on MKS BASE v1.4 with A4982 stepper drivers and digital micro-stepping
+ */
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "ZRIB V5.2 only supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "ZRIB V5.2"
+
+#define MKS_BASE_VERSION 14
+#define IS_RAMPS_EFB
+
+//
+// Heaters / Fans
+//
+#define FAN_PIN 9 // PH6 ** Pin18 ** PWM9
+#define FAN1_PIN 6
+
+//
+// Extra Extruder / Stepper for V5.2
+//
+#define E2_STEP_PIN 4
+#define E2_DIR_PIN 5
+#define E2_ENABLE_PIN 22
+
+#include "pins_MKS_BASE_common.h"
+
+/*
+ Available connectors on MKS BASE v1.4 (Basically same as ZRIB V5.2)
+
+ =======
+ | GND |
+ |-----| E0
+ | 10 | (10) PB4 ** Pin23 ** PWM10
+ |-----|
+ | GND |
+ |-----| E1
+ | 7 | ( 7) PH4 ** Pin16 ** PWM7
+ |-----|
+ | GND |
+ |-----| FAN
+ | 9 | ( 9) PH6 ** Pin18 ** PWM9
+ =======
+
+ =======
+ | GND |
+ |-----| Heated Bed
+ | 8 | ( 8) PH5 ** Pin17 ** PWM8
+ =======
+
+ ==========
+ | 12-24V |
+ |--------| Power
+ | GND |
+ ==========
+
+ XS3 Connector
+ =================
+ | 65 | GND | 5V | (65) PK3 ** Pin86 ** A11
+ |----|-----|----|
+ | 66 | GND | 5V | (66) PK4 ** Pin85 ** A12
+ =================
+
+ Servos Connector
+ =================
+ | 11 | GND | 5V | (11) PB5 ** Pin24 ** PWM11
+ |----|-----|----|
+ | 12 | GND | 5V | (12) PB6 ** Pin25 ** PWM12
+ =================
+
+ ICSP
+ =================
+ | 5V | 51 | GND | (51) PB2 ** Pin21 ** SPI_MOSI
+ |----|----|-----|
+ | 50 | 52 | RST | (50) PB3 ** Pin22 ** SPI_MISO
+ ================= (52) PB1 ** Pin20 ** SPI_SCK
+
+ XS6/AUX-1 Connector
+ ======================
+ | 5V | GND | NC | 20 | (20) PD1 ** Pin44 ** I2C_SDA
+ |----|-----|----|----|
+ | 50 | 51 | 52 | 21 | (50) PB3 ** Pin22 ** SPI_MISO
+ ====================== (51) PB2 ** Pin21 ** SPI_MOSI
+ (52) PB1 ** Pin20 ** SPI_SCK
+ (21) PD0 ** Pin43 ** I2C_SCL
+
+ Temperature
+ ==================================
+ | GND | 69 | GND | 68 | GND | 67 |
+ ==================================
+ (69) PK7 ** Pin82 ** A15
+ (68) PK6 ** Pin83 ** A14
+ (67) PK5 ** Pin84 ** A13
+
+ Limit Switches
+ ============
+ | 2 | GND | X+ ( 2) PE4 ** Pin6 ** PWM2
+ |----|-----|
+ | 3 | GND | X- ( 3) PE5 ** Pin7 ** PWM3
+ |----|-----|
+ | 15 | GND | Y+ (15) PJ0 ** Pin63 ** USART3_RX
+ |----|-----|
+ | 14 | GND | Y- (14) PJ1 ** Pin64 ** USART3_TX
+ |----|-----|
+ | 19 | GND | Z+ (19) PD2 ** Pin45 ** USART1_RX
+ |----|-----|
+ | 18 | GND | Z- (18) PD3 ** Pin46 ** USART1_TX
+ ============
+
+ EXP1
+ ============
+ | 37 | 35 | (37) PC0 ** Pin53 ** D37
+ |-----|----| (35) PC2 ** Pin55 ** D35
+ | 17 | 16 | (17) PH0 ** Pin12 ** USART2_RX
+ |-----|----| (16) PH1 ** Pin13 ** USART2_TX
+ | 23 | 25 | (23) PA1 ** Pin77 ** D23
+ |-----|----| (25) PA3 ** Pin75 ** D25
+ | 27 | 29 | (27) PA5 ** Pin73 ** D27
+ |-----|----| (29) PA7 ** Pin71 ** D29
+ | GND | 5V |
+ ============
+
+ EXP2
+ ============
+ | 50 | 52 | (50) PB3 ** Pin22 ** SPI_MISO
+ |-----|----| (52) PB1 ** Pin20 ** SPI_SCK
+ | 31 | 53 | (31) PC6 ** Pin59 ** D31
+ |-----|----| (53) PB0 ** Pin19 ** SPI_SS
+ | 33 | 51 | (33) PC4 ** Pin57 ** D33
+ |-----|----| (51) PB2 ** Pin21 ** SPI_MOSI
+ | 49 | 41 | (49) PL0 ** Pin35 ** D49
+ |-----|----| (41) PG0 ** Pin51 ** D41
+ | GND | NC |
+ ============
+*/
diff --git a/Marlin/src/pins/ramps/pins_Z_BOLT_X_SERIES.h b/Marlin/src/pins/ramps/pins_Z_BOLT_X_SERIES.h
new file mode 100644
index 0000000..096d970
--- /dev/null
+++ b/Marlin/src/pins/ramps/pins_Z_BOLT_X_SERIES.h
@@ -0,0 +1,306 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Z-Bolt X Series board – based on Arduino Mega2560
+ */
+
+#if NOT_TARGET(__AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#elif HOTENDS > 4 || E_STEPPERS > 4
+ #error "Z-Bolt X Series board supports up to 4 hotends / E-steppers."
+#endif
+
+#define BOARD_INFO_NAME "Z-Bolt X Series"
+
+//
+// Servos
+//
+#ifndef SERVO0_PIN
+ #define SERVO0_PIN 11
+#endif
+#ifndef SERVO3_PIN
+ #define SERVO3_PIN 4
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 3
+#ifndef X_MAX_PIN
+ #define X_MAX_PIN 2
+#endif
+#define Y_MIN_PIN 14
+#define Y_MAX_PIN 15
+#define Z_MIN_PIN 18
+#define Z_MAX_PIN 19
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 32
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 54
+#define X_DIR_PIN 55
+#define X_ENABLE_PIN 38
+#ifndef X_CS_PIN
+ #define X_CS_PIN -1
+#endif
+
+#define Y_STEP_PIN 60
+#define Y_DIR_PIN 61
+#define Y_ENABLE_PIN 56
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN -1
+#endif
+
+#define Z_STEP_PIN 46
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 62
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN -1
+#endif
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN -1
+#endif
+
+#define E1_STEP_PIN 36
+#define E1_DIR_PIN 34
+#define E1_ENABLE_PIN 30
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN -1
+#endif
+
+// Red
+#define E2_STEP_PIN 42
+#define E2_DIR_PIN 40
+#define E2_ENABLE_PIN 65
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN -1
+#endif
+
+// Black
+#define E3_STEP_PIN 44
+#define E3_DIR_PIN 64
+#define E3_ENABLE_PIN 66
+#ifndef E3_CS_PIN
+ #define E3_CS_PIN -1
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 13 // Analog Input
+#define TEMP_1_PIN 15 // Analog Input
+#define TEMP_2_PIN 5 // Analog Input (BLACK)
+#define TEMP_3_PIN 9 // Analog Input (RED)
+#define TEMP_BED_PIN 14 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 10
+#define HEATER_1_PIN 7
+#define HEATER_2_PIN 6
+#define HEATER_3_PIN 5
+#define HEATER_BED_PIN 8
+
+#define FAN_PIN 9
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 5 // Analog Input on AUX2
+#endif
+
+// Оn the servos connector
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 4
+#endif
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN 12
+#endif
+
+#if ENABLED(CASE_LIGHT_ENABLE) && !defined(CASE_LIGHT_PIN) && !defined(SPINDLE_LASER_ENA_PIN)
+ #if NUM_SERVOS <= 1 // Prefer the servo connector
+ #define CASE_LIGHT_PIN 6 // Hardware PWM
+ #elif HAS_FREE_AUX2_PINS
+ #define CASE_LIGHT_PIN 44 // Hardware PWM
+ #endif
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER && !PIN_EXISTS(SPINDLE_LASER_ENA)
+ #if !defined(NUM_SERVOS) || NUM_SERVOS == 0 // Prefer the servo connector
+ #define SPINDLE_LASER_ENA_PIN 4 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 6 // Hardware PWM
+ #define SPINDLE_DIR_PIN 5
+ #elif HAS_FREE_AUX2_PINS
+ #define SPINDLE_LASER_ENA_PIN 40 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
+ #define SPINDLE_DIR_PIN 65
+ #endif
+#endif
+
+//
+// TMC software SPI
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI 66
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO 44
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK 64
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC220x stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+
+ #ifndef X_SERIAL_TX_PIN
+ #define X_SERIAL_TX_PIN 40
+ #endif
+ #ifndef X_SERIAL_RX_PIN
+ #define X_SERIAL_RX_PIN 63
+ #endif
+ #ifndef X2_SERIAL_TX_PIN
+ #define X2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef X2_SERIAL_RX_PIN
+ #define X2_SERIAL_RX_PIN -1
+ #endif
+
+ #ifndef Y_SERIAL_TX_PIN
+ #define Y_SERIAL_TX_PIN 59
+ #endif
+ #ifndef Y_SERIAL_RX_PIN
+ #define Y_SERIAL_RX_PIN 64
+ #endif
+ #ifndef Y2_SERIAL_TX_PIN
+ #define Y2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef Y2_SERIAL_RX_PIN
+ #define Y2_SERIAL_RX_PIN -1
+ #endif
+
+ #ifndef Z_SERIAL_TX_PIN
+ #define Z_SERIAL_TX_PIN 42
+ #endif
+ #ifndef Z_SERIAL_RX_PIN
+ #define Z_SERIAL_RX_PIN 65
+ #endif
+ #ifndef Z2_SERIAL_TX_PIN
+ #define Z2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef Z2_SERIAL_RX_PIN
+ #define Z2_SERIAL_RX_PIN -1
+ #endif
+
+ #ifndef E0_SERIAL_TX_PIN
+ #define E0_SERIAL_TX_PIN 44
+ #endif
+ #ifndef E0_SERIAL_RX_PIN
+ #define E0_SERIAL_RX_PIN 66
+ #endif
+ #ifndef E1_SERIAL_TX_PIN
+ #define E1_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E1_SERIAL_RX_PIN
+ #define E1_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E2_SERIAL_TX_PIN
+ #define E2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E2_SERIAL_RX_PIN
+ #define E2_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E3_SERIAL_TX_PIN
+ #define E3_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E3_SERIAL_RX_PIN
+ #define E3_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E4_SERIAL_TX_PIN
+ #define E4_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E4_SERIAL_RX_PIN
+ #define E4_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E5_SERIAL_TX_PIN
+ #define E5_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E5_SERIAL_RX_PIN
+ #define E5_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E6_SERIAL_TX_PIN
+ #define E6_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E6_SERIAL_RX_PIN
+ #define E6_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E7_SERIAL_TX_PIN
+ #define E7_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E7_SERIAL_RX_PIN
+ #define E7_SERIAL_RX_PIN -1
+ #endif
+#endif
diff --git a/Marlin/src/pins/sam/pins_ADSK.h b/Marlin/src/pins/sam/pins_ADSK.h
new file mode 100644
index 0000000..b0e171c
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_ADSK.h
@@ -0,0 +1,207 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino DUE Shield Kit (ADSK) pin assignments
+ */
+
+#define BOARD_INFO_NAME "ADSK"
+
+#if NOT_TARGET(__SAM3X8E__, __AVR_ATmega1280__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino Due or Mega' in 'Tools > Board.'"
+#endif
+
+/* CNC shield modifications:
+FROM THE BOTTOM CUT THE 5V PIN THAT GOES TO ARDUINO!!!
+On the top put jumper between 5V and 3V3 pins,
+ jumper between D12 and A.STEP, jumper between D13 and A.DIR
+*/
+
+/* CNC shield 3D printer connections:
+X,Y,Z steppers as normal
+A stepper for E0 extruder
+(X-)&(GND) - X limit
+(Y-)&(GND) - Y limit
+(Z-)&(GND) - Z limit
+(Abort)&(GND) - Extruder thermistor (also require pullup resistor 4.7K between "Abort" and
+ Vcc (now "5V" on the board but actual 3.3V because of jumper))
+(Hold)&(GND) - Bed thermistor (also require pullup resistor 4.7K between "Hold" and
+ Vcc (now "5V" on the board but actual 3.3V because of jumper))
+(CoolEn) - 3.3v signal to controll extruder heater MOSFET
+(Resume) - 3.3v signal to control heatbed MOSFET
+(SDA) - 3.3v signal to controll extruder fan
+(SCL) - 3.3v signal to controll extruder cooling fan
+*/
+
+/* CNC Shield pinout
+"Name on the board": DUE pin
+"Abort": Analog pin 0 or Digital pin 54
+"Hold": Analog pin 1 or Digital pin 55
+"Resume": Analog pin 2 or Digital pin 56
+"CoolEn": Analog pin 3 or Digital pin 57
+"SDA": Analog pin 4 or Digital pin 58
+"SCL": Analog pin 5 or Digital pin 59
+"E-STOP": Reset pin
+"RX": Digital pin 0
+"TX": Digital pin 1
+"X.STEP": Digital pin 2
+"Y.STEP": Digital pin 3
+"Z.STEP": Digital pin 4
+"X.DIR": Digital pin 5
+"Y.DIR": Digital pin 6
+"Z.DIR": Digital pin 7
+"EN": Digital pin 8
+"X+","X-": Digital pin 9
+"Y+","Y-": Digital pin 10
+"Z+","Z-": Digital pin 11
+"SpinEn": Digital pin 12 -> will be connected to A.STEP with jumper
+"SpinDir": Digital pin 13 -> will be connected to A.DIR with jumper
+*/
+
+//
+// Servos
+//
+#define SERVO0_PIN 61 // Analog pin 7, Digital pin 61
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 9
+#define Y_MIN_PIN 10
+#define Z_MIN_PIN 11
+
+#define Z_MIN_PROBE_PIN 62 // Analog pin 8, Digital pin 62
+
+//
+// Steppers
+//
+#define X_STEP_PIN 2
+#define X_DIR_PIN 5
+#define X_ENABLE_PIN 8
+
+#define Y_STEP_PIN 3
+#define Y_DIR_PIN 6
+#define Y_ENABLE_PIN 8
+
+#define Z_STEP_PIN 4
+#define Z_DIR_PIN 7
+#define Z_ENABLE_PIN 8
+
+#define E0_STEP_PIN 12
+#define E0_DIR_PIN 13
+#define E0_ENABLE_PIN 8
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 55 // "Hold": Analog pin 1, Digital pin 55
+#define HEATER_BED_PIN 57 // "CoolEn": Analog pin 3, Digital pin 57
+#define FAN_PIN 54 // "Abort": Analog pin 0, Digital pin 54
+#undef E0_AUTO_FAN_PIN
+#define E0_AUTO_FAN_PIN 56 // "Resume": Analog pin 2, Digital pin 56
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 4 // "SDA": Analog pin 4, Digital pin 58
+#define TEMP_BED_PIN 5 // "SCL": Analog pin 5, Digital pin 59
+
+//
+// Misc. Functions
+//
+#define SDSS 52
+
+#if ENABLED(ZONESTAR_LCD)
+
+ /**
+ * The 2004 LCD should be powered with 5V.
+ * The next LCD pins RS,D4,D5,D6,D7 have internal pull-ups to 5V and as result the 5V will be on these pins.
+ * Luckily these internal pull-ups have really high resistance and adding 33K pull-down resistors will create
+ * simple voltage divider that will bring the voltage down just slightly bellow 3.3V.
+ *
+ * This LCD also has buttons that connected to the same ADC pin with different voltage divider combinations.
+ * On the LCD panel there is internal pull-up resistor of the 4.7K connected to 5V.
+ * Connecting another 4.7K pull-down resistor between ADC pin and the GND
+ * will result in scaled values for voltage dividers and will bring them down to be always below 3.3V.
+ *
+ * For 2004 LCD to work with 3.3V board like Arduino DUE the next required:
+ * Pull-down resistors of 33K between each of LCD pins RS,D4,D5,D6,D7 and the GND.
+ * Pull-down resistor of 4.7K between ADC_KEYPAD_PIN and the GND
+ *
+ * All these modifications will still work with 5V based boards but require proper scaled ADC values
+ */
+
+ #ifdef __SAM3X8E__
+ #define AREF_VOLTS 3.3
+ #else
+ #define AREF_VOLTS 5.0
+ #endif
+
+ //
+ // LCD / Controller
+ //
+ #define LCD_PINS_ENABLE 14
+ #define LCD_PINS_RS 15
+ #define LCD_PINS_D4 16
+ #define LCD_PINS_D5 17
+ #define LCD_PINS_D6 18
+ #define LCD_PINS_D7 19
+ #define ADC_KEYPAD_PIN 6 //60 // Analog pin 6, Digital pin 60
+
+ /**
+ * The below defines will scale all the values to work properly on both
+ * 5V (Mega) and 3.3V (DUE) boards with all pull-up resistors added for 3.3V
+ */
+
+ #define ADC_BUTTONS_VALUE_SCALE (5.0/AREF_VOLTS) // The LCD module pullup voltage is 5.0V but ADC reference voltage is 3.3V
+
+ #define ADC_BUTTONS_R_PULLDOWN 4.7 // Moves voltage down to be bellow 3.3V instead of 5V
+ // the resistors values will be scaled because of 4.7K pulldown parallel resistor
+ #define _ADC_BUTTONS_R_SCALED(R) ((R) * (ADC_BUTTONS_R_PULLDOWN) / ((R) + ADC_BUTTONS_R_PULLDOWN))
+
+ // buttons pullup resistor
+ #define ADC_BUTTONS_R_PULLUP 4.7 // the resistor on the 2004 LCD panel
+ // buttons resistors with scaled values because of parallel pulldown resistor
+ #define ADC_BUTTONS_LEFT_R_PULLDOWN _ADC_BUTTONS_R_SCALED(0.47)
+ #define ADC_BUTTONS_RIGHT_R_PULLDOWN _ADC_BUTTONS_R_SCALED(4.7)
+ #define ADC_BUTTONS_UP_R_PULLDOWN _ADC_BUTTONS_R_SCALED(1.0)
+ #define ADC_BUTTONS_DOWN_R_PULLDOWN _ADC_BUTTONS_R_SCALED(10.0)
+ #define ADC_BUTTONS_MIDDLE_R_PULLDOWN _ADC_BUTTONS_R_SCALED(2.2)
+
+#endif // ZONESTAR_LCD
+
+/**
+ * RJ45 8 pins extruder connector
+ *
+ * 1 - GND (Please do not connect to the same GND as extruder heater to prevent ground offset voltage)
+ * 2 - thermistor
+ * 3 - SERVO PWM
+ * 4 - extruder heater
+ * 5 - FAN (print cooling)
+ * 6 - FAN (extruder cooling)
+ * 7 - Probe signal
+ * 8 - 5V
+ *
+ * Standard ethernet pairs: 1&2, 3&6, 4&5, 7&8
+ * Use CAT7 cable to have all pairs shielded
+ */
diff --git a/Marlin/src/pins/sam/pins_ALLIGATOR_R2.h b/Marlin/src/pins/sam/pins_ALLIGATOR_R2.h
new file mode 100644
index 0000000..b01d1aa
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_ALLIGATOR_R2.h
@@ -0,0 +1,159 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Alligator Board R2
+ * https://reprap.org/wiki/Alligator_Board
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Arduino Due' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Alligator Board R2"
+
+//
+// Servos
+//
+#define SERVO0_PIN 36
+#define SERVO1_PIN 40
+#define SERVO2_PIN 41
+#define SERVO3_PIN -1
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 33 // PC1
+#define X_MAX_PIN 34 // PC2
+#define Y_MIN_PIN 35 // PC3
+#define Y_MAX_PIN 37 // PC5
+#define Z_MIN_PIN 38 // PC6
+#define Z_MAX_PIN 39 // PC7
+
+//
+// Steppers
+//
+#define X_STEP_PIN 96 // PB24
+#define X_DIR_PIN 2 // PB25
+#define X_ENABLE_PIN 24 // PA15, motor RESET pin
+
+#define Y_STEP_PIN 94 // PB22
+#define Y_DIR_PIN 95 // PB23
+#define Y_ENABLE_PIN 24 // PA15, motor RESET pin
+
+#define Z_STEP_PIN 98 // PC27
+#define Z_DIR_PIN 3 // PC28
+#define Z_ENABLE_PIN 24 // PA15, motor RESET pin
+
+#define E0_STEP_PIN 5 // PC25
+#define E0_DIR_PIN 4 // PC26
+#define E0_ENABLE_PIN 24 // PA15, motor RESET pin
+
+#define E1_STEP_PIN 28 // PD3 on piggy
+#define E1_DIR_PIN 27 // PD2 on piggy
+#define E1_ENABLE_PIN 24 // PA15, motor RESET pin
+
+#define E2_STEP_PIN 11 // PD7 on piggy
+#define E2_DIR_PIN 29 // PD6 on piggy
+#define E2_ENABLE_PIN 24 // PA15, motor RESET pin
+
+#define E3_STEP_PIN 30 // PD9 on piggy
+#define E3_DIR_PIN 12 // PD8 on piggy
+#define E3_ENABLE_PIN 24 // PA15, motor RESET pin
+
+// Microstepping pins - Mapping not from fastio.h (?)
+#define X_MS1_PIN 99 // PC10
+#define Y_MS1_PIN 10 // PC29
+#define Z_MS1_PIN 44 // PC19
+#define E0_MS1_PIN 45 // PC18
+
+//#define MOTOR_FAULT_PIN 22 // PB26 , motor X-Y-Z-E0 motor FAULT
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 1 // Analog Input (PA24)
+#define TEMP_1_PIN 2 // Analog Input (PA23 on piggy)
+#define TEMP_2_PIN 3 // Analog Input (PA22 on piggy)
+#define TEMP_3_PIN 4 // Analog Input (PA6 on piggy)
+#define TEMP_BED_PIN 0 // Analog Input (PA16)
+
+//
+// Heaters / Fans
+//
+// Note that on the Due pin A0 on the board is channel 2 on the ARM chip
+#define HEATER_0_PIN 68 // PA1
+#define HEATER_1_PIN 8 // PC22 on piggy
+#define HEATER_2_PIN 9 // PC21 on piggy
+#define HEATER_3_PIN 97 // PC20 on piggy
+#define HEATER_BED_PIN 69 // PA0
+
+#ifndef FAN_PIN
+ #define FAN_PIN 92 // PA5
+#endif
+#define FAN1_PIN 31 // PA7
+
+//
+// Misc. Functions
+//
+#define SDSS 77 // PA28
+#define SD_DETECT_PIN 87 // PA29
+#define LED_RED_PIN 40 // PC8
+#define LED_GREEN_PIN 41 // PC9
+
+#define EXP_VOLTAGE_LEVEL_PIN 65
+
+#define SPI_CHAN_DAC 1
+
+#define DAC0_SYNC 53 // PB14
+#define DAC1_SYNC 6 // PC24
+
+// 64K SPI EEPROM
+#define SPI_EEPROM
+#define SPI_CHAN_EEPROM1 2
+#define SPI_EEPROM1_CS 25 // PD0
+
+// 2K SPI EEPROM
+#define SPI_EEPROM2_CS 26 // PD1
+
+// FLASH SPI
+// 32Mb
+#define SPI_FLASH_CS 23 // PA14
+
+//
+// LCD / Controller
+//
+#if IS_RRD_FG_SC
+ #define LCD_PINS_RS 18
+ #define LCD_PINS_ENABLE 15
+ #define LCD_PINS_D4 19
+ #define BEEPER_PIN 64
+ #undef UI_VOLTAGE_LEVEL
+ #define UI_VOLTAGE_LEVEL 1
+#endif
+
+#if IS_NEWPANEL
+ #define BTN_EN1 14
+ #define BTN_EN2 16
+ #define BTN_ENC 17
+#endif
diff --git a/Marlin/src/pins/sam/pins_ARCHIM1.h b/Marlin/src/pins/sam/pins_ARCHIM1.h
new file mode 100644
index 0000000..57bbeb6
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_ARCHIM1.h
@@ -0,0 +1,206 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * ARCHIM1 pin assignment
+ *
+ * The Archim 1.0 board requires Arduino Archim addons installed.
+ *
+ * - Add the following URL to Arduino IDE's Additional Board Manager URLs:
+ * https://raw.githubusercontent.com/ultimachine/ArduinoAddons/master/package_ultimachine_index.json
+ *
+ * - In the Arduino IDE Board Manager search for Archim and install the package.
+ *
+ * - Change your target board to "Archim".
+ *
+ * Further information on the UltiMachine website...
+ * https://github.com/ultimachine/Archim/wiki
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Archim' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Archim 1.0"
+
+//
+// Timers
+//
+// These are already defined in DUE, so must be undefined first
+#define STEP_TIMER_NUM 3
+#define HAL_STEP_TIMER_ISR() void TC3_Handler()
+
+//
+// Items marked * have been altered from Archim v1.0
+//
+
+//
+// Servos
+//
+#define SERVO0_PIN 20 // D20 PB12 (Header J20 20)
+#define SERVO1_PIN 21 // D21 PB13 (Header J20 19)
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 14 // PD4 MIN ES1
+#define X_MAX_PIN 32 // PD10 MAX ES1
+#define Y_MIN_PIN 29 // PD6 MIN ES2
+#define Y_MAX_PIN 15 // PD5 MAX ES2
+#define Z_MIN_PIN 31 // PA7 MIN ES3
+#define Z_MAX_PIN 30 // PD9 MAX ES3
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 32
+#endif
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 66 // D66 PB15 (Header J20 15)
+#endif
+#ifndef FIL_RUNOUT2_PIN
+ #define FIL_RUNOUT2_PIN 67 // D67 PB16 (Header J20 16)
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 40 // PC8 STEP1 *
+#define X_DIR_PIN 59 // PA4 DIR1 *
+#define X_ENABLE_PIN 41 // PC9 EN1
+
+#define Y_STEP_PIN 49 // PC14 STEP2 *
+#define Y_DIR_PIN 47 // PC16 DIR2 *
+#define Y_ENABLE_PIN 48 // PC15 EN2 *
+
+#define Z_STEP_PIN 36 // PC4 STEP Z *
+#define Z_DIR_PIN 107 // PB10 DIR Z *
+#define Z_ENABLE_PIN 96 // PC10 EN Z -AddOns *
+
+#define E0_STEP_PIN 78 // PB23 STEP3 *
+#define E0_DIR_PIN 22 // PB26 DIR3 *
+#define E0_ENABLE_PIN 97 // PB24 EN3 -Addons *
+
+#define E1_STEP_PIN 26 // PD1 STEP4 *
+#define E1_DIR_PIN 27 // PD2 DIR4 *
+#define E1_ENABLE_PIN 28 // PD3 EN4 *
+
+// Microstepping mode pins *
+#define X_MS1_PIN 39 // PC7 MOD0E1 - As listed in schematic
+#define X_MS2_PIN 38 // PC6 MOD1E1
+#define X_MS3_PIN 37 // PC5 MOD2E1
+
+#define Y_MS1_PIN 50 // PC13 MODE0E2
+#define Y_MS2_PIN 51 // PC12 MODE1E2
+#define Y_MS3_PIN 92 // PC11 MODE2E2 - AddOns
+
+#define Z_MS1_PIN 44 // PC19 MOD0E Z
+#define Z_MS2_PIN 45 // PC18 MOD1E Z
+#define Z_MS3_PIN 46 // PC17 MOD2E Z
+
+#define E0_MS1_PIN 105 // PB22 MOD0E3 - AddOns
+#define E0_MS2_PIN 106 // PC27 MOD1E3 - AddOns
+#define E0_MS3_PIN 104 // PC20 MOD2E3 - AddOns
+
+#define E1_MS1_PIN 25 // PD0 MOD0E4
+#define E1_MS2_PIN 18 // PA11 MOD1E4
+#define E1_MS3_PIN 19 // PA10 MOD2E4
+
+// Motor current PWM pins *
+#define MOTOR_CURRENT_PWM_X_PIN 58 // PA6 X-REF TIOB2
+#define MOTOR_CURRENT_PWM_Y_PIN 12 // PD8 Y-REF TIOB8
+#define MOTOR_CURRENT_PWM_Z_PIN 10 // PC29 Z-REF TIOB7
+#define MOTOR_CURRENT_PWM_E0_PIN 3 // PC28 E1-REF TIOA7
+#define MOTOR_CURRENT_PWM_E1_PIN 11 // PD7 E2-REF TIOA8
+
+#define MOTOR_CURRENT_PWM_RANGE 2750 // (3.3 Volts * 100000 Ohms) / (100000 Ohms + 20000 Ohms) = 2.75 Volts (max vref)
+#define DEFAULT_PWM_MOTOR_CURRENT { 1000, 1000, 1000 } //, 1000, 1000} // X Y Z E0 E1, 1000 = 1000mAh
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 10 // D10 PB19 THERM AN1 *
+#define TEMP_1_PIN 9 // D9 PB18 THERM AN2 *
+#define TEMP_2_PIN 8 // D8 PB17 THERM AN4 *
+#define TEMP_BED_PIN 11 // D11 PB20 THERM AN3 *
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 6 // D6 PC24 FET_PWM3
+#define HEATER_1_PIN 7 // D7 PC23 FET_PWM4
+#define HEATER_2_PIN 8 // D8 PC22 FET_PWM5
+#define HEATER_BED_PIN 9 // D9 PC21 BED_PWM
+
+#ifndef FAN_PIN
+ #define FAN_PIN 4 // D4 PC26 FET_PWM1
+#endif
+#define FAN1_PIN 5 // D5 PC25 FET_PWM2
+
+//
+// Misc. Functions
+//
+
+// Internal MicroSD card reader on the PCB
+#define INT_SCK_PIN 42 // D42 PA19/MCCK
+#define INT_MISO_PIN 43 // D43 PA20/MCCDA
+#define INT_MOSI_PIN 73 // D73 PA21/MCDA0
+#define INT_SDSS 55 // D55 PA24/MCDA3
+
+// External SD card reader on SC2
+#define SD_SCK_PIN 76 // D76 PA27
+#define SD_MISO_PIN 74 // D74 PA25
+#define SD_MOSI_PIN 75 // D75 PA26
+#define SDSS 87 // D87 PA29
+
+// 2MB SPI Flash
+#define SPI_FLASH_SS 52 // D52 PB21
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+ #define BEEPER_PIN 23 // D24 PA15_CTS1
+ #define LCD_PINS_RS 17 // D17 PA12_RXD1
+ #define LCD_PINS_ENABLE 24 // D23 PA14_RTS1
+ #define LCD_PINS_D4 69 // D69 PA0_CANTX0
+ #define LCD_PINS_D5 54 // D54 PA16_SCK1
+ #define LCD_PINS_D6 68 // D68 PA1_CANRX0
+ #define LCD_PINS_D7 34 // D34 PC2_PWML0
+
+ #define SD_DETECT_PIN 2 // D2 PB25_TIOA0
+
+ #if IS_NEWPANEL
+ // Buttons on AUX-2
+ #define BTN_EN1 60 // D60 PA3_TIOB1
+ #define BTN_EN2 13 // D13 PB27_TIOB0
+ #define BTN_ENC 16 // D16 PA13_TXD1
+ #endif // IS_NEWPANEL
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/sam/pins_ARCHIM2.h b/Marlin/src/pins/sam/pins_ARCHIM2.h
new file mode 100644
index 0000000..3776cf8
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_ARCHIM2.h
@@ -0,0 +1,257 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * ARCHIM2 pin assignment
+ *
+ * The Archim 2.0 board requires Arduino Archim addons installed.
+ *
+ * - Add the following URL to Arduino IDE's Additional Board Manager URLs:
+ * https://raw.githubusercontent.com/ultimachine/ArduinoAddons/master/package_ultimachine_index.json
+ *
+ * - In the Arduino IDE Board Manager search for Archim and install the package.
+ *
+ * - Change your target board to "Archim".
+ *
+ * Further information on the UltiMachine website...
+ * https://github.com/ultimachine/Archim/wiki
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Archim' in 'Tools > Board.'"
+#elif DISABLED(TMC_USE_SW_SPI)
+ #error "Archim2 requires Software SPI. Enable TMC_USE_SW_SPI in Configuration_adv.h."
+#endif
+
+#define BOARD_INFO_NAME "Archim 2.0"
+
+//
+// Items marked * have been altered from Archim v1.0
+//
+
+//
+// Servos
+//
+#define SERVO0_PIN 20 // D20 PB12 (Header J20 20)
+#define SERVO1_PIN 21 // D21 PB13 (Header J20 19)
+
+//
+// Limit Switches
+//
+
+#if ENABLED(SENSORLESS_HOMING)
+
+ // Only use Diag Pins when SENSORLESS_HOMING is enabled for the TMC2130 drivers.
+ // Otherwise use a physical endstop based configuration.
+
+ // TMC2130 Diag Pins
+ #define X_DIAG_PIN 59 // PA4
+ #define Y_DIAG_PIN 48 // PC15
+ #define Z_DIAG_PIN 36 // PC4
+ #define E0_DIAG_PIN 78 // PB23
+ #define E1_DIAG_PIN 25 // PD0
+
+ #if X_HOME_DIR < 0
+ #define X_MIN_PIN X_DIAG_PIN
+ #define X_MAX_PIN 32
+ #else
+ #define X_MIN_PIN 14
+ #define X_MAX_PIN X_DIAG_PIN
+ #endif
+
+ #if Y_HOME_DIR < 0
+ #define Y_MIN_PIN Y_DIAG_PIN
+ #define Y_MAX_PIN 15
+ #else
+ #define Y_MIN_PIN 29
+ #define Y_MAX_PIN Y_DIAG_PIN
+ #endif
+
+#else
+
+ #define X_MIN_PIN 14 // PD4 MIN ES1
+ #define X_MAX_PIN 32 // PD10 MAX ES1
+ #define Y_MIN_PIN 29 // PD6 MIN ES2
+ #define Y_MAX_PIN 15 // PD5 MAX ES2
+
+#endif
+
+#define Z_MIN_PIN 31 // PA7 MIN ES3
+#define Z_MAX_PIN 30 // PD9 MAX ES3
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 32
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 38 // PC6 X-STEP *
+#define X_DIR_PIN 37 // PC5 X-DIR *
+#define X_ENABLE_PIN 41 // PC9 EN1
+#ifndef X_CS_PIN
+ #define X_CS_PIN 39 // PC7 X_nCS
+#endif
+
+#define Y_STEP_PIN 51 // PC12 Y-STEP *
+#define Y_DIR_PIN 92 // PC11 Y-DIR -AddOns *
+#define Y_ENABLE_PIN 49 // PC14 Y-EN *
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 50 // PC13 Y_nCS
+#endif
+
+#define Z_STEP_PIN 46 // PC17 Z-STEP *
+#define Z_DIR_PIN 47 // PC16 Z-DIR *
+#define Z_ENABLE_PIN 44 // PC19 Z-END *
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 45 // PC18 Z_nCS
+#endif
+
+#define E0_STEP_PIN 107 // PB10 E1-STEP -AddOns *
+#define E0_DIR_PIN 96 // PC10 E1-DIR -AddOns *
+#define E0_ENABLE_PIN 105 // PB22 E1-EN -AddOns *
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 104 // PC20 E1_nCS -AddOns *
+#endif
+
+#define E1_STEP_PIN 22 // PB26 E2_STEP *
+#define E1_DIR_PIN 97 // PB24 E2_DIR -AddOns *
+#define E1_ENABLE_PIN 18 // PA11 E2-EN
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 19 // PA10 E2_nCS
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers.
+// Required for the Archim2 board.
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI 28 // PD3
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO 26 // PD1
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK 27 // PD2
+ #endif
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 10 // D10 PB19 THERM AN1 *
+#define TEMP_1_PIN 9 // D9 PB18 THERM AN2 *
+#define TEMP_2_PIN 8 // D8 PB17 THERM AN4 *
+#define TEMP_BED_PIN 11 // D11 PB20 THERM AN3 *
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 6 // D6 PC24 FET_PWM3
+#define HEATER_1_PIN 7 // D7 PC23 FET_PWM4
+#define HEATER_2_PIN 8 // D8 PC22 FET_PWM5
+#define HEATER_BED_PIN 9 // D9 PC21 BED_PWM
+
+#ifndef FAN_PIN
+ #define FAN_PIN 4 // D4 PC26 FET_PWM1
+#endif
+#define FAN1_PIN 5 // D5 PC25 FET_PWM2
+
+//
+// Misc. Functions
+//
+
+// Internal MicroSD card reader on the PCB
+#define INT_SCK_PIN 42 // D42 PA19/MCCK
+#define INT_MISO_PIN 43 // D43 PA20/MCCDA
+#define INT_MOSI_PIN 73 // D73 PA21/MCDA0
+#define INT_SDSS 55 // D55 PA24/MCDA3
+
+// External SD card reader on SC2
+#define SD_SCK_PIN 76 // D76 PA27
+#define SD_MISO_PIN 74 // D74 PA25
+#define SD_MOSI_PIN 75 // D75 PA26
+#define SDSS 87 // D87 PA29
+
+// Unused Digital GPIO J20 Pins
+#define GPIO_PB1_J20_5 94 // D94 PB1 (Header J20 5)
+#define GPIO_PB0_J20_6 95 // D95 PB0 (Header J20 6)
+#define GPIO_PB3_J20_7 103 // D103 PB3 (Header J20 7)
+#define GPIO_PB2_J20_8 93 // D93 PB2 (Header J20 8)
+#define GPIO_PB6_J20_9 99 // D99 PB6 (Header J20 9)
+#define GPIO_PB5_J20_10 101 // D101 PB5 (Header J20 10)
+#define GPIO_PB8_J20_11 100 // D100 PB8 (Header J20 11)
+#define GPIO_PB4_J20_12 102 // D102 PB4 (Header J20 12)
+#define GPIO_PB9_J20_13 108 // D108 PB9 (Header J20 13)
+#define GPIO_PB7_J20_14 98 // D98 PB7 (Header J20 14)
+#define GPIO_PB15_J20_15 66 // D66 PB15 (Header J20 15)
+#define GPIO_PB16_J20_16 67 // D67 PB16 (Header J20 16)
+#define GPIO_PB14_J20_17 53 // D53 PB14 (Header J20 17)
+#define GPIO_PA18_J20_21 71 // D71 PA17 (Header J20 21)
+#define GPIO_PA17_J20_22 70 // D70 PA17 (Header J20 22)
+
+// Case Light
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN GPIO_PB1_J20_5
+#endif
+
+// 2MB SPI Flash
+#define SPI_FLASH_SS 52 // D52 PB21
+
+//
+// Filament Runout Sensor
+//
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN GPIO_PB15_J20_15
+#endif
+#ifndef FIL_RUNOUT2_PIN
+ #define FIL_RUNOUT2_PIN GPIO_PB16_J20_16
+#endif
+
+//
+// LCD / Controller
+//
+#if ANY(HAS_WIRED_LCD, TOUCH_UI_ULTIPANEL, TOUCH_UI_FTDI_EVE)
+ #define BEEPER_PIN 23 // D24 PA15_CTS1
+ #define LCD_PINS_RS 17 // D17 PA12_RXD1
+ #define LCD_PINS_ENABLE 24 // D23 PA14_RTS1
+ #define LCD_PINS_D4 69 // D69 PA0_CANTX0
+ #define LCD_PINS_D5 54 // D54 PA16_SCK1
+ #define LCD_PINS_D6 68 // D68 PA1_CANRX0
+ #define LCD_PINS_D7 34 // D34 PC2_PWML0
+
+ #define SD_DETECT_PIN 2 // D2 PB25_TIOA0
+#endif
+
+#if ANY(IS_ULTIPANEL, TOUCH_UI_ULTIPANEL, TOUCH_UI_FTDI_EVE)
+ // Buttons on AUX-2
+ #define BTN_EN1 60 // D60 PA3_TIOB1
+ #define BTN_EN2 13 // D13 PB27_TIOB0
+ #define BTN_ENC 16 // D16 PA13_TXD1 // the click
+#endif
diff --git a/Marlin/src/pins/sam/pins_CNCONTROLS_15D.h b/Marlin/src/pins/sam/pins_CNCONTROLS_15D.h
new file mode 100644
index 0000000..5bf3145
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_CNCONTROLS_15D.h
@@ -0,0 +1,138 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * CNControls V15 for HMS434 with DUE pin assignments
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Arduino Due' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "CN Controls V15D"
+
+//
+// Servos
+//
+#define SERVO0_PIN 6
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 34
+#define Y_STOP_PIN 39
+#define Z_STOP_PIN 62
+
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 49
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 14
+#define X_DIR_PIN 25
+#define X_ENABLE_PIN 26
+
+#define Y_STEP_PIN 11
+#define Y_DIR_PIN 12
+#define Y_ENABLE_PIN 15
+
+#define Z_STEP_PIN 24
+#define Z_DIR_PIN 27
+#define Z_ENABLE_PIN 28
+
+#define E0_STEP_PIN 64
+#define E0_DIR_PIN 65
+#define E0_ENABLE_PIN 63
+
+#define E1_STEP_PIN 8
+#define E1_DIR_PIN 7
+#define E1_ENABLE_PIN 29
+
+//
+// Temperature Sensors
+// Analog Inputs
+//
+#define TEMP_0_PIN 1
+#define TEMP_1_PIN 2
+#define TEMP_BED_PIN 4
+
+#ifndef TEMP_CHAMBER_PIN
+ #define TEMP_CHAMBER_PIN 5
+#endif
+
+//
+// Heaters
+//
+#define HEATER_0_PIN 3
+#define HEATER_1_PIN 4
+#define HEATER_BED_PIN 32
+#define HEATER_CHAMBER_PIN 33
+
+//
+// Fans
+//
+//#define FAN_PIN 8
+
+//
+// Auto fans
+//
+#define AUTO_FAN_PIN 30
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E2_AUTO_FAN_PIN
+ #define E2_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef E3_AUTO_FAN_PIN
+ #define E3_AUTO_FAN_PIN AUTO_FAN_PIN
+#endif
+#ifndef CHAMBER_AUTO_FAN_PIN
+ #define CHAMBER_AUTO_FAN_PIN 10
+#endif
+
+//
+// SD card
+//
+#define SD_SCK_PIN 76
+#define SD_MISO_PIN 74
+#define SD_MOSI_PIN 75
+#define SDSS 53
+#define SD_DETECT_PIN 40
+
+// Common I/O
+
+//#define PWM_1_PIN 6 // probe
+//#define PWM_2_PIN 13
+//#define SPARE_IO 17
+#define BEEPER_PIN 13
+#define STAT_LED_BLUE_PIN -1
+#define STAT_LED_RED_PIN 31
+
+// G425 CALIBRATION_GCODE default pin
+#ifndef CALIBRATION_PIN
+ #define CALIBRATION_PIN 66
+#endif
diff --git a/Marlin/src/pins/sam/pins_DUE3DOM.h b/Marlin/src/pins/sam/pins_DUE3DOM.h
new file mode 100644
index 0000000..90d6bdc
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_DUE3DOM.h
@@ -0,0 +1,176 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * DUE3DOM pin assignments
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Arduino Due' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "DUE3DOM"
+
+//
+// Servos
+//
+#define SERVO0_PIN 5
+#define SERVO1_PIN 6
+#define SERVO2_PIN 13
+#define SERVO3_PIN -1
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 38
+#define X_MAX_PIN 36
+#define Y_MIN_PIN 34
+#define Y_MAX_PIN 32
+#define Z_MIN_PIN 30
+#define Z_MAX_PIN 28
+
+//
+// Steppers
+//
+#define X_STEP_PIN 2
+#define X_DIR_PIN 3
+#define X_ENABLE_PIN 22
+
+#define Y_STEP_PIN 17
+#define Y_DIR_PIN 16
+#define Y_ENABLE_PIN 26
+
+#define Z_STEP_PIN 61 // Z1 STP
+#define Z_DIR_PIN 60 // Z1 DIR
+#define Z_ENABLE_PIN 15 // Z1 ENA
+
+#define E0_STEP_PIN 64 // Z2 STP
+#define E0_DIR_PIN 63 // Z2 DIR
+#define E0_ENABLE_PIN 62 // Z2 ENA
+
+#define E1_STEP_PIN 51 // E1 STP
+#define E1_DIR_PIN 53 // E1 DIR
+#define E1_ENABLE_PIN 65 // E1 ENA
+
+#define E2_STEP_PIN 24 // E2 STP
+#define E2_DIR_PIN 23 // E2 DIR
+#define E2_ENABLE_PIN 49 // E2 ENA
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input (HOTEND0 thermistor)
+#define TEMP_1_PIN 2 // Analog Input (HOTEND1 thermistor)
+#define TEMP_2_PIN 5 // Analog Input (unused)
+#define TEMP_BED_PIN 1 // Analog Input (BED thermistor)
+
+// SPI for Max6675 or Max31855 Thermocouple
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN -1
+#else
+ #define MAX6675_SS_PIN -1
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 7 // HOTEND0 MOSFET
+#define HEATER_1_PIN 8 // HOTEND1 MOSFET
+#define HEATER_BED_PIN 39 // BED MOSFET
+
+#ifndef FAN_PIN
+ #define FAN_PIN 11 // FAN1 header on board - PRINT FAN
+#endif
+#define FAN1_PIN 9 // FAN2 header on board - CONTROLLER FAN
+#define FAN2_PIN 12 // FAN3 header on board - EXTRUDER0 FAN
+
+//
+// Misc. Functions
+//
+#define SDSS 4
+#define PS_ON_PIN 40
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #define LCD_PINS_RS 42
+ #define LCD_PINS_ENABLE 43
+ #define LCD_PINS_D4 44
+ #define LCD_PINS_D5 45
+ #define LCD_PINS_D6 46
+ #define LCD_PINS_D7 47
+
+ #if IS_RRD_SC
+
+ #define BEEPER_PIN 41
+
+ #define BTN_EN1 50
+ #define BTN_EN2 52
+ #define BTN_ENC 48
+
+ #define SDSS 4
+ #define SD_DETECT_PIN 14
+
+ #elif ENABLED(RADDS_DISPLAY)
+
+ #define BEEPER_PIN 41
+
+ #define BTN_EN1 50
+ #define BTN_EN2 52
+ #define BTN_ENC 48
+
+ #define BTN_BACK 71
+
+ #undef SDSS
+ #define SDSS 4
+ #define SD_DETECT_PIN 14
+
+ #elif HAS_U8GLIB_I2C_OLED
+
+ #define BTN_EN1 50
+ #define BTN_EN2 52
+ #define BTN_ENC 48
+ #define BEEPER_PIN 41
+ #define LCD_SDSS 4
+ #define SD_DETECT_PIN 14
+
+ #elif ENABLED(SPARK_FULL_GRAPHICS)
+
+ #define LCD_PINS_D4 29
+ #define LCD_PINS_ENABLE 27
+ #define LCD_PINS_RS 25
+
+ #define BTN_EN1 35
+ #define BTN_EN2 33
+ #define BTN_ENC 37
+
+ #define BEEPER_PIN -1
+ #endif // SPARK_FULL_GRAPHICS
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/sam/pins_DUE3DOM_MINI.h b/Marlin/src/pins/sam/pins_DUE3DOM_MINI.h
new file mode 100644
index 0000000..5a20542
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_DUE3DOM_MINI.h
@@ -0,0 +1,179 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * DUE3DOM MINI pin assignments
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Arduino Due' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "DUE3DOM MINI"
+
+//
+// Servos
+//
+#define SERVO0_PIN 5
+#define SERVO1_PIN 6
+#define SERVO2_PIN 8 // 4-pin header FAN0
+#define SERVO3_PIN -1
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 38
+#define X_MAX_PIN -1
+#define Y_MIN_PIN 34
+#define Y_MAX_PIN -1
+#define Z_MIN_PIN 30
+#define Z_MAX_PIN -1
+
+//
+// Steppers
+//
+#define X_STEP_PIN 17
+#define X_DIR_PIN 16
+#define X_ENABLE_PIN 22
+
+#define Y_STEP_PIN 2
+#define Y_DIR_PIN 3
+#define Y_ENABLE_PIN 26
+
+#define Z_STEP_PIN 64
+#define Z_DIR_PIN 63
+#define Z_ENABLE_PIN 15
+
+#define E0_STEP_PIN 61
+#define E0_DIR_PIN 60
+#define E0_ENABLE_PIN 62
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input (HOTEND0 thermistor)
+#define TEMP_1_PIN 2 // Analog Input (unused)
+#define TEMP_2_PIN 5 // Analog Input (OnBoard thermistor beta 3950)
+#define TEMP_BED_PIN 1 // Analog Input (BED thermistor)
+
+// SPI for Max6675 or Max31855 Thermocouple
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 53
+#else
+ #define MAX6675_SS_PIN 53
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 13 // HOTEND0 MOSFET
+#define HEATER_BED_PIN 7 // BED MOSFET
+
+#ifndef FAN_PIN
+ #define FAN_PIN 11 // FAN1 header on board - PRINT FAN
+#endif
+#define FAN1_PIN 12 // FAN2 header on board - CONTROLLER FAN
+#define FAN2_PIN 9 // FAN3 header on board - EXTRUDER0 FAN
+//#define FAN3_PIN 8 // FAN0 4-pin header on board
+
+//
+// Misc. Functions
+//
+#define SDSS 4
+#define PS_ON_PIN 40
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #define LCD_PINS_RS 42
+ #define LCD_PINS_ENABLE 43
+ #define LCD_PINS_D4 44
+ #define LCD_PINS_D5 45
+ #define LCD_PINS_D6 46
+ #define LCD_PINS_D7 47
+
+ #if IS_RRD_SC
+
+ #define BEEPER_PIN 41
+
+ #define BTN_EN1 50
+ #define BTN_EN2 52
+ #define BTN_ENC 48
+
+ #define SDSS 4
+ #define SD_DETECT_PIN 14
+
+ #elif ENABLED(RADDS_DISPLAY)
+
+ #define BEEPER_PIN 41
+
+ #define BTN_EN1 50
+ #define BTN_EN2 52
+ #define BTN_ENC 48
+
+ #define BTN_BACK 71
+
+ #undef SDSS
+ #define SDSS 4
+ #define SD_DETECT_PIN 14
+
+ #elif HAS_U8GLIB_I2C_OLED
+
+ #define BTN_EN1 50
+ #define BTN_EN2 52
+ #define BTN_ENC 48
+ #define BEEPER_PIN 41
+ #define LCD_SDSS 4
+ #define SD_DETECT_PIN 14
+
+ #elif ENABLED(SPARK_FULL_GRAPHICS)
+
+ #define LCD_PINS_D4 29
+ #define LCD_PINS_ENABLE 27
+ #define LCD_PINS_RS 25
+
+ #define BTN_EN1 35
+ #define BTN_EN2 33
+ #define BTN_ENC 37
+
+ #define BEEPER_PIN -1
+
+ #elif ENABLED(MINIPANEL)
+ #define BTN_EN1 52
+ #define BTN_EN2 50
+ #define BTN_ENC 48
+ #define LCD_SDSS 4
+ #define SD_DETECT_PIN 14
+ #define BEEPER_PIN 41
+ #define DOGLCD_A0 46
+ #define DOGLCD_CS 45
+
+ #endif // SPARK_FULL_GRAPHICS
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/sam/pins_PRINTRBOARD_G2.h b/Marlin/src/pins/sam/pins_PRINTRBOARD_G2.h
new file mode 100644
index 0000000..424d858
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_PRINTRBOARD_G2.h
@@ -0,0 +1,173 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * PRINTRBOARD_G2
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Arduino Due' in 'Tools > Board.'"
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Printrboard G2"
+#endif
+
+//
+// Servos
+//
+//#define SERVO0_PIN -1
+//#define SERVO1_PIN -1
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 22 // PB26
+#define Y_MAX_PIN 18 // PA11
+#define Z_MIN_PIN 19 // PA10
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 22
+#endif
+
+#ifndef FIL_RUNOUT_PIN
+ //#define FIL_RUNOUT_PIN 57 // PA22
+#endif
+#ifndef FIL_RUNOUT2_PIN
+ //#define FIL_RUNOUT2_PIN 21 // PB13
+#endif
+
+//
+// LED defines
+//
+//#define NEOPIXEL_TYPE NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Adafruit_NeoPixel.h)
+//#define NEOPIXEL_PIN 20 // LED driving pin on motherboard
+//#define NEOPIXEL_PIXELS 3 // Number of LEDs in the strip
+//#define SDA0 20 // PB12 NeoPixel pin I2C data
+//#define SCL0 21 // PB13 I2C clock
+
+// D0_12 #REF! (INDICATOR_LED)
+// B28 JTAG-CLK
+// B31 JTAG_TMS /SWD_DIO
+//A18 INTERRUPT_OUT
+//A12 USART_RX not used
+//A13 USART_TX not used
+//A14 UART_RTS
+//A15 UART_CTS
+//PB2 Unassigned
+//PB4 to PB9 Unassigned
+//#define UART_RX_PIN 0 // PA8 "RX0"
+//#define UART_TX_PIN 1 // PA9 "TX0"
+//#define UART_RTS_PIN 23 // PA14
+//#define UART_CTS_PIN 24 // PA15
+
+//
+// Steppers
+//
+#define Z_STEP_PIN 73 // PA21 MOTOR 1
+#define Z_DIR_PIN 75 // PA26
+#define Z_ENABLE_PIN 74 // PA25
+
+#define X_STEP_PIN 66 // PB15 MOTOR 2
+#define X_DIR_PIN 54 // PA16
+#define X_ENABLE_PIN 67 // PB16
+
+#define Y_STEP_PIN 34 // PA29 MOTOR 3
+#define Y_DIR_PIN 35 // PB1
+#define Y_ENABLE_PIN 36 // PB0
+
+#define E0_STEP_PIN 53 // PB14 MOTOR 4
+#define E0_DIR_PIN 78 // PB23
+#define E0_ENABLE_PIN 37 // PB22
+
+// Microstepping mode pins
+#define Z_MS1_PIN 52 // PB21 MODE0 MOTOR 1
+#define Z_MS2_PIN 52 // PB21 MODE1
+#define Z_MS3_PIN 65 // PB20 MODE2
+
+#define X_MS1_PIN 43 // PA20 MODE0 MOTOR 2
+#define X_MS2_PIN 43 // PA20 MODE1
+#define X_MS3_PIN 42 // PA19 MODE2
+
+#define Y_MS1_PIN 77 // PA28 MODE0 MOTOR 3
+#define Y_MS2_PIN 77 // PA28 MODE1
+#define Y_MS3_PIN 76 // PA27 MODE2
+
+#define E0_MS1_PIN 38 // PB11 MODE0 MOTOR 4
+#define E0_MS2_PIN 38 // PB11 MODE1
+#define E0_MS3_PIN 39 // PB10 MODE2
+
+// Motor current PWM pins
+#define MOTOR_CURRENT_PWM_X_PIN 62 // PB17 MOTOR 1
+#define MOTOR_CURRENT_PWM_Z_PIN 63 // PB18 MOTOR 2
+#define MOTOR_CURRENT_PWM_Y_PIN 64 // PB19 MOTOR 3
+#define MOTOR_CURRENT_PWM_E_PIN 61 // PA2 MOTOR 4
+
+#define DEFAULT_PWM_MOTOR_CURRENT { 300, 400, 1000} // XY Z E0, 1000 = 1000mAh
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 2 // digital 56 PA23
+#define TEMP_BED_PIN 5 // digital 59 PA4
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 40 // PA5
+#define HEATER_BED_PIN 41 // PB24
+
+#ifndef FAN_PIN
+ #define FAN_PIN 13 // PB27 Fan1A
+#endif
+#define FAN1_PIN 58 // PA6 Fan1B
+
+#define FET_SAFETY_PIN 31 // PA7 must be pulsed low every 50 mS or FETs are turned off
+#define FET_SAFETY_DELAY 50 // 50 mS delay between pulses
+#define FET_SAFETY_INVERTED true // true - negative going pulse of 2 uS
+
+/////////////////////////////////////////////////////////
+
+#define SD_MISO_PIN 68 // set to unused pins for now
+#define SD_MOSI_PIN 69 // set to unused pins for now
+#define SD_SCK_PIN 70 // set to unused pins for now
+#define SDSS 71 // set to unused pins for now
+
+/**
+ * G2 uses 8 pins that are not available in the DUE environment:
+ * 34 PA29 - Y_STEP_PIN
+ * 35 PB1 - Y_DIR_PIN
+ * 36 PB0 - Y_ENABLE_PIN
+ * 37 PB22 - E0_ENABLE_PIN
+ * 38 PB11 - E0_MS1_PIN - normally used by the USB native port
+ * 39 PB10 - E0_MS3_PIN - normally used by the USB native port
+ * 40 PA5 - HEATER_0_PIN
+ * 41 PB24 - HEATER_BED_PIN
+ *
+ * None of these are in the arduino_due_x variant so digitalWrite and digitalRead can't be used on them.
+ *
+ * They can be accessed via FASTIO functions WRITE, READ, OUT_WRITE, OUTPUT, ...
+ */
diff --git a/Marlin/src/pins/sam/pins_RADDS.h b/Marlin/src/pins/sam/pins_RADDS.h
new file mode 100644
index 0000000..7b9c7f1
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_RADDS.h
@@ -0,0 +1,298 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * RADDS
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Arduino Due' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "RADDS"
+
+//
+// EEPROM
+//
+#if EITHER(NO_EEPROM_SELECTED, I2C_EEPROM)
+ #define I2C_EEPROM
+ #define MARLIN_EEPROM_SIZE 0x2000 // 8KB
+#endif
+
+//
+// Servos
+//
+#if !HAS_CUTTER
+ #define SERVO0_PIN 5
+#endif
+#define SERVO1_PIN 6
+#define SERVO2_PIN 39
+#define SERVO3_PIN 40
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 28
+#define X_MAX_PIN 34
+#define Y_MIN_PIN 30
+#define Y_MAX_PIN 36
+#define Z_MIN_PIN 32
+#define Z_MAX_PIN 38
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 38
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 24
+#define X_DIR_PIN 23
+#define X_ENABLE_PIN 26
+#ifndef X_CS_PIN
+ #define X_CS_PIN 25
+#endif
+
+#define Y_STEP_PIN 17
+#define Y_DIR_PIN 16
+#define Y_ENABLE_PIN 22
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 27
+#endif
+
+#define Z_STEP_PIN 2
+#define Z_DIR_PIN 3
+#define Z_ENABLE_PIN 15
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 29
+#endif
+
+#define E0_STEP_PIN 61
+#define E0_DIR_PIN 60
+#define E0_ENABLE_PIN 62
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 31
+#endif
+
+#define E1_STEP_PIN 64
+#define E1_DIR_PIN 63
+#define E1_ENABLE_PIN 65
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 33
+#endif
+
+#define E2_STEP_PIN 51
+#define E2_DIR_PIN 53
+#define E2_ENABLE_PIN 49
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN 35
+#endif
+
+/**
+ * RADDS Extension Board V2 / V3
+ * http://doku.radds.org/dokumentation/extension-board
+ */
+//#define RADDS_EXTENSION 2
+#if RADDS_EXTENSION >= 2
+ #define E3_DIR_PIN 33
+ #define E3_STEP_PIN 35
+ #define E3_ENABLE_PIN 37
+ #ifndef E3_CS_PIN
+ #define E3_CS_PIN 6
+ #endif
+
+ #if RADDS_EXTENSION == 3
+
+ #define E4_DIR_PIN 27
+ #define E4_STEP_PIN 29
+ #define E4_ENABLE_PIN 31
+ #ifndef E4_CS_PIN
+ #define E4_CS_PIN 39
+ #endif
+
+ #define E5_DIR_PIN 66
+ #define E5_STEP_PIN 67
+ #define E5_ENABLE_PIN 68
+ #ifndef E5_CS_PIN
+ #define E5_CS_PIN 6
+ #endif
+
+ #define RADDS_EXT_MSI_PIN 69
+
+ #define BOARD_INIT() OUT_WRITE(RADDS_EXT_VDD_PIN, HIGH)
+
+ #else
+
+ #define E4_DIR_PIN 27
+ #define E4_STEP_PIN 29
+ #define E4_ENABLE_PIN 31
+ #ifndef E4_CS_PIN
+ #define E4_CS_PIN 39
+ #endif
+
+ // E3 and E4 share the same MSx pins
+ #define E3_MS1_PIN 67
+ #define E4_MS1_PIN 67
+ #define E3_MS2_PIN 68
+ #define E4_MS2_PIN 68
+ #define E3_MS3_PIN 69
+ #define E4_MS3_PIN 69
+
+ #define RADDS_EXT_VDD2_PIN 66
+
+ #define BOARD_INIT() do{ OUT_WRITE(RADDS_EXT_VDD_PIN, HIGH); OUT_WRITE(RADDS_EXT_VDD2_PIN, HIGH); }while(0)
+
+ #endif
+
+ #define RADDS_EXT_VDD_PIN 25
+
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_1_PIN 1 // Analog Input
+#define TEMP_2_PIN 2 // Analog Input
+#define TEMP_3_PIN 3 // Analog Input
+#define TEMP_4_PIN 5 // dummy so will compile when PINS_DEBUGGING is enabled
+#define TEMP_BED_PIN 4 // Analog Input
+
+// SPI for Max6675 or Max31855 Thermocouple
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 53
+#else
+ #define MAX6675_SS_PIN 49
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 13
+#define HEATER_1_PIN 12
+#define HEATER_2_PIN 11
+#if !HAS_CUTTER
+ #define HEATER_BED_PIN 7 // BED
+#endif
+
+#ifndef FAN_PIN
+ #define FAN_PIN 9
+#endif
+#define FAN1_PIN 8
+
+//
+// Misc. Functions
+//
+#define SD_DETECT_PIN 14
+#define PS_ON_PIN 40 // SERVO3_PIN
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 39 // SERVO2_PIN
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER
+ #if !NUM_SERVOS
+ #define SPINDLE_LASER_PWM_PIN 5 // SERVO0_PIN
+ #endif
+ #define SPINDLE_LASER_ENA_PIN 7 // HEATER_BED_PIN - Pullup/down!
+#endif
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if ENABLED(RADDS_DISPLAY)
+
+ #define LCD_PINS_RS 42
+ #define LCD_PINS_ENABLE 43
+ #define LCD_PINS_D4 44
+ #define LCD_PINS_D5 45
+ #define LCD_PINS_D6 46
+ #define LCD_PINS_D7 47
+
+ #define BEEPER_PIN 41
+
+ #define BTN_EN1 50
+ #define BTN_EN2 52
+ #define BTN_ENC 48
+
+ #define BTN_BACK 71
+
+ #define SDSS 10
+ #define SD_DETECT_PIN 14
+
+ #elif IS_RRD_FG_SC
+
+ // The REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER requires
+ // an adapter such as https://www.thingiverse.com/thing:1740725
+
+ #define LCD_PINS_RS 42
+ #define LCD_PINS_ENABLE 43
+ #define LCD_PINS_D4 44
+
+ #define BEEPER_PIN 41
+
+ #define BTN_EN1 50
+ #define BTN_EN2 52
+ #define BTN_ENC 48
+
+ #define SDSS 10
+ #define SD_DETECT_PIN 14
+
+ #elif HAS_U8GLIB_I2C_OLED
+
+ #define BTN_EN1 50
+ #define BTN_EN2 52
+ #define BTN_ENC 48
+ #define BEEPER_PIN 41
+ #define LCD_SDSS 10
+ #define SD_DETECT_PIN 14
+
+ #elif ENABLED(SPARK_FULL_GRAPHICS)
+
+ #define LCD_PINS_D4 29
+ #define LCD_PINS_ENABLE 27
+ #define LCD_PINS_RS 25
+
+ #define BTN_EN1 35
+ #define BTN_EN2 33
+ #define BTN_ENC 37
+
+ #endif // SPARK_FULL_GRAPHICS
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+#ifndef SDSS
+ #define SDSS 4
+#endif
diff --git a/Marlin/src/pins/sam/pins_RAMPS4DUE.h b/Marlin/src/pins/sam/pins_RAMPS4DUE.h
new file mode 100644
index 0000000..5454833
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_RAMPS4DUE.h
@@ -0,0 +1,57 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega or Due with RAMPS4DUE pin assignments
+ *
+ * Applies to the following boards:
+ *
+ * RAMPS4DUE_EFB (Hotend, Fan, Bed)
+ * RAMPS4DUE_EEB (Hotend0, Hotend1, Bed)
+ * RAMPS4DUE_EFF (Hotend, Fan0, Fan1)
+ * RAMPS4DUE_EEF (Hotend0, Hotend1, Fan)
+ * RAMPS4DUE_SF (Spindle, Controller Fan)
+ *
+ * Differences between
+ * RAMPS_14 | RAMPS4DUE
+ * A13 | A9/D63 (shares the same pin with AUX2_4PIN)
+ * A14 | A10/D64 (shares the same pin with AUX2_5PIN)
+ * A15 | NC
+ */
+
+#if NOT_TARGET(__SAM3X8E__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino Due' or 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "RAMPS4DUE"
+
+#define IS_RAMPS4DUE
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 9 // Analog Input
+#define TEMP_1_PIN -1 // Analog Input
+#define TEMP_BED_PIN 10 // Analog Input
+
+#include "../ramps/pins_RAMPS.h"
diff --git a/Marlin/src/pins/sam/pins_RAMPS_DUO.h b/Marlin/src/pins/sam/pins_RAMPS_DUO.h
new file mode 100644
index 0000000..d2ab5c9
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_RAMPS_DUO.h
@@ -0,0 +1,136 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Mega or Due with RAMPS Duo pin assignments
+ *
+ * Applies to the following boards:
+ *
+ * RAMPS_DUO_EFB (Hotend, Fan, Bed)
+ * RAMPS_DUO_EEB (Hotend0, Hotend1, Bed)
+ * RAMPS_DUO_EFF (Hotend, Fan0, Fan1)
+ * RAMPS_DUO_EEF (Hotend0, Hotend1, Fan)
+ * RAMPS_DUO_SF (Spindle, Controller Fan)
+ *
+ * Differences between
+ * RAMPS_14 | RAMPS_DUO
+ * A9/D63 | A12/D66
+ * A10/D64 | A13/D67
+ * A11/D65 | A14/D68
+ * A12/D66 | A15/D69
+ * A13 | A9
+ * A14 | A10
+ * A15 | A11
+ */
+
+#if NOT_TARGET(__SAM3X8E__, __AVR_ATmega2560__)
+ #error "Oops! Select 'Arduino Due' or 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "RAMPS Duo"
+
+#define IS_RAMPS_DUO
+
+#include "../ramps/pins_RAMPS.h"
+
+//
+// Temperature Sensors
+//
+#undef TEMP_0_PIN
+#define TEMP_0_PIN 9 // Analog Input
+
+#undef TEMP_1_PIN
+#define TEMP_1_PIN 11 // Analog Input
+
+#undef TEMP_BED_PIN
+#define TEMP_BED_PIN 10 // Analog Input
+
+// SPI for Max6675 or Max31855 Thermocouple
+#undef MAX6675_SS_PIN
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 69 // Don't use 53 if using Display/SD card
+#else
+ #define MAX6675_SS_PIN 69 // Don't use 49 (SD_DETECT_PIN)
+#endif
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if BOTH(IS_NEWPANEL, PANEL_ONE)
+ #undef LCD_PINS_D4
+ #define LCD_PINS_D4 68
+
+ #undef LCD_PINS_D5
+ #define LCD_PINS_D5 69
+
+ #undef LCD_PINS_D7
+ #define LCD_PINS_D7 67
+ #endif
+
+ #if IS_NEWPANEL
+
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #undef BTN_EN1
+ #define BTN_EN1 67
+
+ #undef BTN_ENC
+ #define BTN_ENC 66
+
+ #elif ENABLED(MINIPANEL)
+
+ #undef DOGLCD_CS
+ #define DOGLCD_CS 69
+
+ #undef LCD_BACKLIGHT_PIN
+ #define LCD_BACKLIGHT_PIN 68 // backlight LED on A14/D68
+
+ #undef KILL_PIN
+ #define KILL_PIN 67
+
+ #undef BTN_EN2
+ #define BTN_EN2 66
+
+ #else
+
+ #if IS_RRW_KEYPAD
+ #undef BTN_EN1
+ #define BTN_EN1 67 // encoder
+
+ #undef BTN_ENC
+ #define BTN_ENC 66 // enter button
+ #elif ENABLED(PANEL_ONE)
+ #undef BTN_EN2
+ #define BTN_EN2 66 // AUX2 PIN 4
+ #endif
+ #endif
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif // IS_NEWPANEL
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/sam/pins_RAMPS_FD_V1.h b/Marlin/src/pins/sam/pins_RAMPS_FD_V1.h
new file mode 100644
index 0000000..80e8f0d
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_RAMPS_FD_V1.h
@@ -0,0 +1,239 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * RAMPS-FD
+ *
+ * No EEPROM
+ * Use 4k7 thermistor tables
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Arduino Due' in 'Tools > Board.'"
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "RAMPS-FD v1"
+#endif
+
+#define INVERTED_HEATER_PINS
+#define INVERTED_BED_PINS
+#define INVERTED_FAN_PINS
+
+//
+// Servos
+//
+#define SERVO0_PIN 7
+#define SERVO1_PIN 6
+#define SERVO2_PIN 5
+#define SERVO3_PIN 3
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 22
+#define X_MAX_PIN 30
+#define Y_MIN_PIN 24
+#define Y_MAX_PIN 38
+#define Z_MIN_PIN 26
+#define Z_MAX_PIN 34
+
+//
+// Steppers
+//
+#define X_STEP_PIN 63
+#define X_DIR_PIN 62
+#define X_ENABLE_PIN 48
+#ifndef X_CS_PIN
+ #define X_CS_PIN 68
+#endif
+
+#define Y_STEP_PIN 65
+#define Y_DIR_PIN 64
+#define Y_ENABLE_PIN 46
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 60
+#endif
+
+#define Z_STEP_PIN 67
+#define Z_DIR_PIN 66
+#define Z_ENABLE_PIN 44
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 58
+#endif
+
+#define E0_STEP_PIN 36
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 42
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 67
+#endif
+
+#define E1_STEP_PIN 43
+#define E1_DIR_PIN 41
+#define E1_ENABLE_PIN 39
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 61
+#endif
+
+#define E2_STEP_PIN 32
+#define E2_DIR_PIN 47
+#define E2_ENABLE_PIN 45
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN 59
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 1 // Analog Input
+#define TEMP_1_PIN 2 // Analog Input
+#define TEMP_2_PIN 3 // Analog Input
+#define TEMP_BED_PIN 0 // Analog Input
+
+// SPI for Max6675 or Max31855 Thermocouple
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 53
+#else
+ #define MAX6675_SS_PIN 49
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 9
+#define HEATER_1_PIN 10
+#define HEATER_2_PIN 11
+#define HEATER_BED_PIN 8
+
+#ifndef FAN_PIN
+ #define FAN_PIN 12
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 4
+#define LED_PIN 13
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+ // ramps-fd lcd adaptor
+
+ #define BEEPER_PIN 37
+ #define BTN_EN1 33
+ #define BTN_EN2 31
+ #define BTN_ENC 35
+ #define SD_DETECT_PIN 49
+
+ #if IS_NEWPANEL
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 17
+ #endif
+
+ #if ENABLED(FYSETC_MINI_12864)
+ #define DOGLCD_CS LCD_PINS_ENABLE
+ #define DOGLCD_A0 LCD_PINS_RS
+ #define DOGLCD_SCK 76
+ #define DOGLCD_MOSI 75
+
+ //#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ #define LCD_RESET_PIN 23 // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN 25
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN 27
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN 29
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN 25
+ #endif
+
+ #elif IS_NEWPANEL
+
+ #define LCD_PINS_D4 23
+ #define LCD_PINS_D5 25
+ #define LCD_PINS_D6 27
+ #define LCD_PINS_D7 29
+
+ #if ENABLED(MINIPANEL)
+ #define DOGLCD_CS 25
+ #define DOGLCD_A0 27
+ #endif
+
+ #endif
+
+ #if ANY(VIKI2, miniVIKI)
+ #define DOGLCD_A0 16
+ #define KILL_PIN 51
+ #define STAT_LED_BLUE_PIN 29
+ #define STAT_LED_RED_PIN 23
+ #define DOGLCD_CS 17
+ #define DOGLCD_SCK 76 // SCK_PIN - Required for DUE Hardware SPI
+ #define DOGLCD_MOSI 75 // MOSI_PIN
+ #define DOGLCD_MISO 74 // MISO_PIN
+ #endif
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HOTENDS < 3 && HAS_CUTTER && !PIN_EXISTS(SPINDLE_LASER_ENA)
+ #define SPINDLE_LASER_ENA_PIN 45 // Use E2 ENA
+ #define SPINDLE_LASER_PWM_PIN 12 // Hardware PWM
+ #define SPINDLE_DIR_PIN 47 // Use E2 DIR
+#endif
diff --git a/Marlin/src/pins/sam/pins_RAMPS_FD_V2.h b/Marlin/src/pins/sam/pins_RAMPS_FD_V2.h
new file mode 100644
index 0000000..55a42b2
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_RAMPS_FD_V2.h
@@ -0,0 +1,52 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * RAMPS-FD v2
+ *
+ * EEPROM supported
+ * Use 1k thermistor tables
+ */
+
+#define BOARD_INFO_NAME "RAMPS-FD v2"
+
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 69 // moved from A13 to A15 on v2.2, if not earlier
+#endif
+
+#include "pins_RAMPS_FD_V1.h"
+
+#undef INVERTED_HEATER_PINS
+#undef INVERTED_BED_PINS
+#undef INVERTED_FAN_PINS
+
+#define I2C_EEPROM
+#define MARLIN_EEPROM_SIZE 0x10000 // 64K in a 24C512
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN 12
+#endif
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 5 // Analog Input on AUX2
+#endif
diff --git a/Marlin/src/pins/sam/pins_RAMPS_SMART.h b/Marlin/src/pins/sam/pins_RAMPS_SMART.h
new file mode 100644
index 0000000..9b76ee2
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_RAMPS_SMART.h
@@ -0,0 +1,110 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Arduino Due with RAMPS-SMART pin assignments
+ *
+ * Applies to the following boards:
+ *
+ * RAMPS_SMART_EFB (Hotend, Fan, Bed)
+ * RAMPS_SMART_EEB (Hotend0, Hotend1, Bed)
+ * RAMPS_SMART_EFF (Hotend, Fan0, Fan1)
+ * RAMPS_SMART_EEF (Hotend0, Hotend1, Fan)
+ * RAMPS_SMART_SF (Spindle, Controller Fan)
+ *
+ * Differences between
+ * RAMPS_14 | RAMPS-SMART
+ * NONE | D16 (Additional AUX-3 pin(AUX3_2PIN), shares the same pin with AUX4_18PIN)
+ * NONE | D17 (Additional AUX-3 pin(AUX3_1PIN), shares the same pin with AUX4_17PIN)
+ * D0 | NONE
+ * D1 | NONE
+ * A3/D57 | NONE
+ * A4/D58 | NONE
+ * A5/D59 | A3/D57
+ * A9/D63 | A4/D58
+ * A10/D64 | A5/D59
+ * A11/D65 | D66
+ * A12/D66 | D67
+ * A13 | A9
+ * A14 | A10
+ * A15 | A11
+ *
+ *
+ * REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER works fine connected to AUX-4 with
+ * Smart Adapter, but requires removing the AUX3 pin header on the adapter to fit.
+ * To use the SD card reader, wire its pins to AUX-3 (and use Software SPI).
+ *
+ * To use Hardware SPI for SD, the SDSS pin must be set to 52 instead of 53.
+ * Hardware SPI also requires additional wiring because the board doesn't pass
+ * the 6-pin SPI header from the DUE board.
+ * (Search the web for "Arduino DUE Board Pinout" to see the correct header.)
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Arduino Due' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "RAMPS-SMART"
+#define IS_RAMPS_SMART
+#include "../ramps/pins_RAMPS.h"
+
+// I2C EEPROM with 4K of space
+#define I2C_EEPROM
+#define MARLIN_EEPROM_SIZE 0x1000
+
+#define RESET_PIN 42 // Resets the board if the jumper is attached
+
+//
+// Temperature Sensors
+//
+#undef TEMP_0_PIN
+#define TEMP_0_PIN 9 // Analog Input
+
+#undef TEMP_1_PIN
+#define TEMP_1_PIN 10 // Analog Input
+
+#undef TEMP_BED_PIN
+#define TEMP_BED_PIN 11 // Analog Input
+
+// SPI for Max6675 or Max31855 Thermocouple
+#undef MAX6675_SS_PIN
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 67 // Don't use 53 if using Display/SD card
+#else
+ #define MAX6675_SS_PIN 67 // Don't use 49 (SD_DETECT_PIN)
+#endif
+
+//
+// LCD / Controller
+//
+// Support for AZSMZ 12864 LCD with SD Card 3D printer smart controller control panel
+#if ENABLED(AZSMZ_12864)
+ #define BEEPER_PIN 66 // Smart RAMPS 1.42 pinout diagram on RepRap WIKI erroneously says this should be pin 65
+ #define DOGLCD_A0 59
+ #define DOGLCD_CS 44
+ #define BTN_EN1 58
+ #define BTN_EN2 40
+ #define BTN_ENC 67 // Smart RAMPS 1.42 pinout diagram on RepRap WIKI erroneously says this should be pin 66
+ #define SD_DETECT_PIN 49 // Pin 49 for display sd interface, 72 for easy adapter board
+ #define KILL_PIN 42
+#endif
diff --git a/Marlin/src/pins/sam/pins_RURAMPS4D_11.h b/Marlin/src/pins/sam/pins_RURAMPS4D_11.h
new file mode 100644
index 0000000..6a28340
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_RURAMPS4D_11.h
@@ -0,0 +1,278 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * Ported sys0724 & Vynt
+ */
+
+/**
+ * Arduino Mega? or Due with RuRAMPS4DUE pin assignments
+ *
+ * Applies to the following boards:
+ * RURAMPS4DUE (Hotend0, Hotend1, Hotend2, Fan0, Fan1, Bed)
+ *
+ * Differences between
+ * RADDS | RuRAMPS4DUE
+ * |
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Arduino Due' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "RuRAMPS4Due v1.1"
+
+//
+// Servos
+//
+#define SERVO0_PIN 5
+#define SERVO1_PIN 3
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 45
+#define X_MAX_PIN 39
+#define Y_MIN_PIN 46
+#define Y_MAX_PIN 41
+#define Z_MIN_PIN 47
+#define Z_MAX_PIN 43
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 43
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 37 // Support Extension Board
+#define X_DIR_PIN 36
+#define X_ENABLE_PIN 38
+#ifndef X_CS_PIN
+ #define X_CS_PIN -1
+#endif
+
+#define Y_STEP_PIN 32 // Support Extension Board
+#define Y_DIR_PIN 35
+#define Y_ENABLE_PIN 34
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN -1
+#endif
+
+#define Z_STEP_PIN 30 // Support Extension Board
+#define Z_DIR_PIN 2
+#define Z_ENABLE_PIN 33
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN -1
+#endif
+
+#define E0_STEP_PIN 29
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 31
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN -1
+#endif
+
+#define E1_STEP_PIN 22
+#define E1_DIR_PIN 24
+#define E1_ENABLE_PIN 26
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN -1
+#endif
+
+#define E2_STEP_PIN 25
+#define E2_DIR_PIN 23
+#define E2_ENABLE_PIN 27
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN -1
+#endif
+
+#define E3_STEP_PIN 15 // Only For Extension Board
+#define E3_DIR_PIN 14
+#define E3_ENABLE_PIN 61
+#ifndef E3_CS_PIN
+ #define E3_CS_PIN -1
+#endif
+
+// For Future: Microstepping pins - Mapping not from fastio.h (?)
+//#define E3_MS1_PIN ?
+//#define E3_MS2_PIN ?
+//#define E3_MS3_PIN ?
+
+#if HAS_CUSTOM_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 49
+#endif
+
+#if HAS_FILAMENT_SENSOR
+ #ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN Y_MIN_PIN
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 13
+#define HEATER_1_PIN 12
+#define HEATER_2_PIN 11
+#define HEATER_BED_PIN 7 // BED H1
+
+#ifndef FAN_PIN
+ #define FAN_PIN 9
+#endif
+#define FAN1_PIN 8
+#define CONTROLLER_FAN_PIN -1
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // ANALOG A0
+#define TEMP_1_PIN 1 // ANALOG A1
+#define TEMP_2_PIN 2 // ANALOG A2
+#define TEMP_3_PIN 3 // ANALOG A3
+#define TEMP_BED_PIN 4 // ANALOG A4
+
+// The thermocouple uses Analog pins
+#if ENABLED(VER_WITH_THERMOCOUPLE) // Defined in Configuration.h
+ #define TEMP_4_PIN 5 // A5
+ #define TEMP_5_PIN 6 // A6 (Marlin 2.0 not support)
+#endif
+
+// SPI for Max6675 or Max31855 Thermocouple
+/*
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 53
+#else
+ #define MAX6675_SS_PIN 49
+#endif
+*/
+
+//
+// Misc. Functions
+//
+#define SDSS 4 // 4,10,52 if using HW SPI.
+#define LED_PIN -1 // 13 - HEATER_0_PIN
+#define PS_ON_PIN -1 // 65
+
+// MKS TFT / Nextion Use internal USART-1
+#define TFT_LCD_MODULE_COM 1
+#define TFT_LCD_MODULE_BAUDRATE 115600
+
+// ESP WiFi Use internal USART-2
+#define ESP_WIFI_MODULE_COM 2
+#define ESP_WIFI_MODULE_BAUDRATE 115600
+#define ESP_WIFI_MODULE_RESET_PIN -1
+#define PIGGY_GPIO_PIN -1
+
+//
+// EEPROM
+//
+#define MARLIN_EEPROM_SIZE 0x8000 // 32Kb (24lc256)
+#define I2C_EEPROM // EEPROM on I2C-0
+//#define EEPROM_SD // EEPROM on SDCARD
+//#define SPI_EEPROM // EEPROM on SPI-0
+//#define SPI_CHAN_EEPROM1 ?
+//#define SPI_EEPROM1_CS ?
+// 2K EEPROM
+//#define SPI_EEPROM2_CS ?
+// 32Mb FLASH
+//#define SPI_FLASH_CS ?
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if ANY(RADDS_DISPLAY, IS_RRD_SC, IS_RRD_FG_SC)
+ #define BEEPER_PIN 62
+ #define LCD_PINS_D4 48
+ #define LCD_PINS_D5 50
+ #define LCD_PINS_D6 52
+ #define LCD_PINS_D7 53
+ #define SD_DETECT_PIN 51
+ #endif
+
+ #if EITHER(RADDS_DISPLAY, IS_RRD_SC)
+
+ #define LCD_PINS_RS 63
+ #define LCD_PINS_ENABLE 64
+
+ #elif IS_RRD_FG_SC
+
+ #define LCD_PINS_RS 52
+ #define LCD_PINS_ENABLE 53
+
+ #elif HAS_U8GLIB_I2C_OLED
+
+ #define BEEPER_PIN 62
+ #define LCD_SDSS 10
+ #define SD_DETECT_PIN 51
+
+ #elif ENABLED(FYSETC_MINI_12864)
+
+ #define BEEPER_PIN 62
+ #define DOGLCD_CS 64
+ #define DOGLCD_A0 63
+
+ //#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ #define LCD_RESET_PIN 48 // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN 50 // D5
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN 52 // D6
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN 53 // D7
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN 50 // D5
+ #endif
+
+ #elif ENABLED(SPARK_FULL_GRAPHICS)
+
+ //http://doku.radds.org/dokumentation/other-electronics/sparklcd/
+ #error "Oops! SPARK_FULL_GRAPHICS not supported with RURAMPS4D."
+ //#define LCD_PINS_D4 29 //?
+ //#define LCD_PINS_ENABLE 27 //?
+ //#define LCD_PINS_RS 25 //?
+ //#define BTN_EN1 35 //?
+ //#define BTN_EN2 33 //?
+ //#define BTN_ENC 37 //?
+
+ #endif // SPARK_FULL_GRAPHICS
+
+ #if IS_NEWPANEL
+ #define BTN_EN1 44
+ #define BTN_EN2 42
+ #define BTN_ENC 40
+ #endif
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/sam/pins_RURAMPS4D_13.h b/Marlin/src/pins/sam/pins_RURAMPS4D_13.h
new file mode 100644
index 0000000..6ec10f6
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_RURAMPS4D_13.h
@@ -0,0 +1,260 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * Ported sys0724 & Vynt
+ */
+
+/**
+ * Arduino Mega? or Due with RuRAMPS4DUE pin assignments
+ *
+ * Applies to the following boards:
+ * RURAMPS4DUE (Hotend0, Hotend1, Hotend2, Fan0, Fan1, Bed)
+ *
+ * Differences between
+ * RADDS | RuRAMPS4DUE
+ * |
+ */
+
+#if NOT_TARGET(__SAM3X8E__)
+ #error "Oops! Select 'Arduino Due' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "RuRAMPS4Due v1.3"
+
+//
+// Servos
+//
+#define SERVO0_PIN 5
+#define SERVO1_PIN 3
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 45
+#define X_MAX_PIN 39
+#define Y_MIN_PIN 46
+#define Y_MAX_PIN 41
+#define Z_MIN_PIN 47
+#define Z_MAX_PIN 43
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 49
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 37 // Support Extension Board
+#define X_DIR_PIN 36
+#define X_ENABLE_PIN 31
+#ifndef X_CS_PIN
+ #define X_CS_PIN 38
+#endif
+
+#define Y_STEP_PIN 32 // Support Extension Board
+#define Y_DIR_PIN 35
+#define Y_ENABLE_PIN 31
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 34
+#endif
+
+#define Z_STEP_PIN 30 // Support Extension Board
+#define Z_DIR_PIN 2
+#define Z_ENABLE_PIN 31
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 10
+#endif
+
+#define E0_STEP_PIN 29
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 33
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 14
+#endif
+
+#define E1_STEP_PIN 22
+#define E1_DIR_PIN 24
+#define E1_ENABLE_PIN 26
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN 15
+#endif
+
+#define E2_STEP_PIN 25
+#define E2_DIR_PIN 23
+#define E2_ENABLE_PIN 27
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN 61
+#endif
+
+#if HAS_CUSTOM_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 49
+#endif
+
+#if HAS_FILAMENT_SENSOR
+ #ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN Y_MIN_PIN
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 13
+#define HEATER_1_PIN 12
+#define HEATER_2_PIN 11
+#define HEATER_BED_PIN 7 // BED H1
+
+#define FAN_PIN 9
+#define FAN1_PIN 8
+#define CONTROLLER_FAN_PIN -1
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // ANALOG A0
+#define TEMP_1_PIN 1 // ANALOG A1
+#define TEMP_2_PIN 2 // ANALOG A2
+#define TEMP_3_PIN 3 // ANALOG A3
+#define TEMP_BED_PIN 4 // ANALOG A4
+
+// The thermocouple uses Analog pins
+#if ENABLED(VER_WITH_THERMOCOUPLE) // Defined in Configuration.h
+ #define TEMP_4_PIN 5 // A5
+ #define TEMP_5_PIN 6 // A6 (Marlin 2.0 not support)
+#endif
+
+// SPI for Max6675 or Max31855 Thermocouple
+/*
+#if DISABLED(SDSUPPORT)
+ #define MAX6675_SS_PIN 53
+#else
+ #define MAX6675_SS_PIN 49
+#endif
+*/
+
+//
+// Misc. Functions
+//
+#define SDSS 4 // 4,10,52 if using HW SPI.
+#define LED_PIN -1 // 13 - HEATER_0_PIN
+#define PS_ON_PIN -1 // 65
+
+// MKS TFT / Nextion Use internal USART-1
+#define TFT_LCD_MODULE_COM 1
+#define TFT_LCD_MODULE_BAUDRATE 115200
+
+// ESP WiFi Use internal USART-2
+#define ESP_WIFI_MODULE_COM 2
+#define ESP_WIFI_MODULE_BAUDRATE 115200
+#define ESP_WIFI_MODULE_RESET_PIN -1
+#define PIGGY_GPIO_PIN -1
+
+//
+// EEPROM
+//
+#define MARLIN_EEPROM_SIZE 0x8000 // 32Kb (24lc256)
+#define I2C_EEPROM // EEPROM on I2C-0
+//#define EEPROM_SD // EEPROM on SDCARD
+//#define SPI_EEPROM // EEPROM on SPI-0
+//#define SPI_CHAN_EEPROM1 ?
+//#define SPI_EEPROM1_CS ?
+// 2K EEPROM
+//#define SPI_EEPROM2_CS ?
+// 32Mb FLASH
+//#define SPI_FLASH_CS ?
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if ANY(RADDS_DISPLAY, IS_RRD_SC, IS_RRD_FG_SC)
+ #define BEEPER_PIN 62
+ #define LCD_PINS_D4 48
+ #define LCD_PINS_D5 50
+ #define LCD_PINS_D6 52
+ #define LCD_PINS_D7 53
+ #define SD_DETECT_PIN 51
+ #endif
+
+ #if EITHER(RADDS_DISPLAY, IS_RRD_SC)
+
+ #define LCD_PINS_RS 63
+ #define LCD_PINS_ENABLE 64
+
+ #elif IS_RRD_FG_SC
+
+ #define LCD_PINS_RS 52
+ #define LCD_PINS_ENABLE 53
+
+ #elif HAS_U8GLIB_I2C_OLED
+
+ #define BEEPER_PIN 62
+ #define LCD_SDSS 10
+ #define SD_DETECT_PIN 51
+
+ #elif ENABLED(FYSETC_MINI_12864)
+
+ #define BEEPER_PIN 62
+ #define DOGLCD_CS 64
+ #define DOGLCD_A0 63
+
+ //#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ #define LCD_RESET_PIN 48 // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN 50 // D5
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN 52 // D6
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN 53 // D7
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN 50 // D5
+ #endif
+
+ #elif ENABLED(MKS_MINI_12864)
+
+ #define DOGLCD_A0 52
+ #define DOGLCD_CS 50
+
+ #define SD_DETECT_PIN 51
+
+ #endif
+
+ #if IS_NEWPANEL
+ #define BTN_EN1 44
+ #define BTN_EN2 42
+ #define BTN_ENC 40
+ #endif
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/sam/pins_ULTRATRONICS_PRO.h b/Marlin/src/pins/sam/pins_ULTRATRONICS_PRO.h
new file mode 100644
index 0000000..ea09618
--- /dev/null
+++ b/Marlin/src/pins/sam/pins_ULTRATRONICS_PRO.h
@@ -0,0 +1,179 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * ReprapWorld ULTRATRONICS v1.0
+ * https://reprapworld.com/documentation/datasheet_ultratronics10_05.pdf
+ */
+
+#if NOT_TARGET(ARDUINO_ARCH_SAM)
+ #error "Oops! Select 'Arduino Due' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Ultratronics v1.0"
+
+//
+// Servos
+//
+#if NUM_SERVOS > 0
+ #define SERVO0_PIN 11
+ #if NUM_SERVOS > 1
+ #define SERVO1_PIN 12
+ #endif
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 31
+#define X_MAX_PIN 30
+#define Y_MIN_PIN 12
+#define Y_MAX_PIN 11
+#define Z_MIN_PIN 29
+#define Z_MAX_PIN 28
+
+//
+// Steppers
+//
+#define X_STEP_PIN 35
+#define X_DIR_PIN 34
+#define X_ENABLE_PIN 37
+#ifndef X_CS_PIN
+ #define X_CS_PIN 18
+#endif
+
+#define Y_STEP_PIN 22
+#define Y_DIR_PIN 23
+#define Y_ENABLE_PIN 33
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 19
+#endif
+
+#define Z_STEP_PIN 25
+#define Z_DIR_PIN 26
+#define Z_ENABLE_PIN 24
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 16
+#endif
+
+#define E0_STEP_PIN 47
+#define E0_DIR_PIN 46
+#define E0_ENABLE_PIN 48
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 17
+#endif
+
+#define E1_STEP_PIN 44
+#define E1_DIR_PIN 36
+#define E1_ENABLE_PIN 45
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN -1
+#endif
+
+#define E2_STEP_PIN 42
+#define E2_DIR_PIN 41
+#define E2_ENABLE_PIN 43
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN -1
+#endif
+
+#define E3_STEP_PIN 39
+#define E3_DIR_PIN 38
+#define E3_ENABLE_PIN 40
+#ifndef E3_CS_PIN
+ #define E3_CS_PIN -1
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_1_PIN 2 // Analog Input
+#define TEMP_2_PIN 3 // Analog Input
+#define TEMP_3_PIN 4 // Analog Input
+#define TEMP_BED_PIN 1 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 3
+#define HEATER_1_PIN 8
+#define HEATER_2_PIN 7
+#define HEATER_3_PIN 9
+#define HEATER_BED_PIN 2
+
+#ifndef FAN_PIN
+ #define FAN_PIN 6
+#endif
+#define FAN2_PIN 5
+
+//
+// Misc. Functions
+//
+#define SDSS 59
+#define SD_DETECT_PIN 60
+#define LED_PIN 13
+#define PS_ON_PIN 32
+
+//
+// SPI Buses
+//
+
+#define DAC0_SYNC 53 // PB14
+#define SPI_CHAN_DAC 1
+
+#define SPI_CHAN_EEPROM1 -1
+#define SPI_EEPROM1_CS -1
+#define SPI_EEPROM2_CS -1
+#define SPI_FLASH_CS -1
+
+#define SD_SCK_PIN 76
+#define SD_MISO_PIN 74
+#define SD_MOSI_PIN 75
+
+// SPI for Max6675 or Max31855 Thermocouple
+#define MAX6675_SS_PIN 65
+#define MAX31855_SS0 65
+#define MAX31855_SS1 52
+#define MAX31855_SS2 50
+#define MAX31855_SS3 51
+
+#define ENC424_SS 61
+
+//
+// LCD / Controller
+//
+
+#define BEEPER_PIN 27
+
+#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #define LCD_PINS_RS A8 // CS chip select / SS chip slave select
+ #define LCD_PINS_ENABLE MOSI // SID (MOSI)
+ #define LCD_PINS_D4 SCK // SCK (CLK) clock
+
+ #define BTN_EN1 20
+ #define BTN_EN2 21
+ #define BTN_ENC 64
+
+#endif // REPRAPWORLD_GRAPHICAL_LCD
diff --git a/Marlin/src/pins/samd/pins_RAMPS_144.h b/Marlin/src/pins/samd/pins_RAMPS_144.h
new file mode 100644
index 0000000..7a72ef6
--- /dev/null
+++ b/Marlin/src/pins/samd/pins_RAMPS_144.h
@@ -0,0 +1,615 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * AGCM4 with RAMPS v1.4.4 pin assignments
+ */
+
+#if NOT_TARGET(ARDUINO_GRAND_CENTRAL_M4)
+ #error "Oops! Select 'Adafruit Grand Central M4' in 'Tools > Board.'"
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "AGCM4 RAMPS 1.4.4"
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN 11
+#define SERVO1_PIN 6
+#define SERVO2_PIN 5
+#define SERVO3_PIN 4
+
+//
+// EEPROM
+//
+//#define QSPI_EEPROM // Use AGCM4 onboard QSPI EEPROM (Uses 4K of RAM)
+#define I2C_EEPROM // EEPROM on I2C-0
+#define MARLIN_EEPROM_SIZE 0x8000 // 32K (24lc256)
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 3
+#define X_MAX_PIN 2
+#define Y_MIN_PIN 14
+#define Y_MAX_PIN 15
+#define Z_MIN_PIN 18
+#define Z_MAX_PIN 19
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 18
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 67 // Mega/Due:54 - AGCM4:67
+#define X_DIR_PIN 68 // Mega/Due:55 - AGCM4:68
+#define X_ENABLE_PIN 38
+#ifndef X_CS_PIN
+ #define X_CS_PIN 47
+#endif
+
+#define Y_STEP_PIN 73 // Mega/Due:60 - AGCM4:73
+#define Y_DIR_PIN 74 // Mega/Due:61 - AGCM4:74
+#define Y_ENABLE_PIN 69 // Mega/Due:56 - AGCM4:69
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN 45
+#endif
+
+#define Z_STEP_PIN 46
+#define Z_DIR_PIN 48
+#define Z_ENABLE_PIN 54 // Mega/Due:62 - AGCM4:54
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN 32
+#endif
+
+#define Z2_STEP_PIN 36
+#define Z2_DIR_PIN 34
+#define Z2_ENABLE_PIN 30
+#ifndef Z2_CS_PIN
+ #define Z2_CS_PIN 22
+#endif
+
+#define E0_STEP_PIN 26
+#define E0_DIR_PIN 28
+#define E0_ENABLE_PIN 24
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN 43
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 13
+#define TEMP_BED_PIN 14
+#define TEMP_CHAMBER_PIN 15
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 10
+#define HEATER_BED_PIN 8
+#define FAN_PIN 9
+#define FAN1_PIN 7
+#define FAN2_PIN 12
+
+//
+// Misc. Functions
+//
+#define SDSS 53
+#define LED_PIN 13
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 5 // Analog Input on AUX2
+#endif
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 70
+#endif
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN 39
+#endif
+
+#if ENABLED(CASE_LIGHT_ENABLE) && !defined(CASE_LIGHT_PIN) && !defined(SPINDLE_LASER_ENA_PIN)
+ #if NUM_SERVOS <= 1 // Prefer the servo connector
+ #define CASE_LIGHT_PIN 6 // Hardware PWM
+ #endif
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER && !defined(SPINDLE_LASER_ENA_PIN)
+ #if !NUM_SERVOS // Use servo connector if possible
+ #define SPINDLE_LASER_ENA_PIN 4 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 6 // Hardware PWM
+ #define SPINDLE_DIR_PIN 5
+ #else
+ #error "No auto-assignable Spindle/Laser pins available."
+ #endif
+#endif
+
+//
+// TMC software SPI
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI 58 // Mega/Due:66 - AGCM4:58
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO 44
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK 56 // Mega/Due:64 - AGCM4:56
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+
+ #ifndef X_SERIAL_TX_PIN
+ #define X_SERIAL_TX_PIN 47
+ #endif
+ #ifndef X_SERIAL_RX_PIN
+ #define X_SERIAL_RX_PIN 47
+ #endif
+ #ifndef X2_SERIAL_TX_PIN
+ #define X2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef X2_SERIAL_RX_PIN
+ #define X2_SERIAL_RX_PIN -1
+ #endif
+
+ #ifndef Y_SERIAL_TX_PIN
+ #define Y_SERIAL_TX_PIN 45
+ #endif
+ #ifndef Y_SERIAL_RX_PIN
+ #define Y_SERIAL_RX_PIN 45
+ #endif
+ #ifndef Y2_SERIAL_TX_PIN
+ #define Y2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef Y2_SERIAL_RX_PIN
+ #define Y2_SERIAL_RX_PIN -1
+ #endif
+
+ #ifndef Z_SERIAL_TX_PIN
+ #define Z_SERIAL_TX_PIN 32
+ #endif
+ #ifndef Z_SERIAL_RX_PIN
+ #define Z_SERIAL_RX_PIN 32
+ #endif
+ #ifndef Z2_SERIAL_TX_PIN
+ #define Z2_SERIAL_TX_PIN 22
+ #endif
+ #ifndef Z2_SERIAL_RX_PIN
+ #define Z2_SERIAL_RX_PIN 22
+ #endif
+
+ #ifndef E0_SERIAL_TX_PIN
+ #define E0_SERIAL_TX_PIN 43
+ #endif
+ #ifndef E0_SERIAL_RX_PIN
+ #define E0_SERIAL_RX_PIN 43
+ #endif
+ #ifndef E1_SERIAL_TX_PIN
+ #define E1_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E1_SERIAL_RX_PIN
+ #define E1_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E2_SERIAL_TX_PIN
+ #define E2_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E2_SERIAL_RX_PIN
+ #define E2_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E3_SERIAL_TX_PIN
+ #define E3_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E3_SERIAL_RX_PIN
+ #define E3_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E4_SERIAL_TX_PIN
+ #define E4_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E4_SERIAL_RX_PIN
+ #define E4_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E5_SERIAL_TX_PIN
+ #define E5_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E5_SERIAL_RX_PIN
+ #define E5_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E6_SERIAL_TX_PIN
+ #define E6_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E6_SERIAL_RX_PIN
+ #define E6_SERIAL_RX_PIN -1
+ #endif
+ #ifndef E7_SERIAL_TX_PIN
+ #define E7_SERIAL_TX_PIN -1
+ #endif
+ #ifndef E7_SERIAL_RX_PIN
+ #define E7_SERIAL_RX_PIN -1
+ #endif
+#endif
+
+//////////////////////////
+// LCDs and Controllers //
+//////////////////////////
+
+#if HAS_WIRED_LCD
+
+ //
+ // LCD Display output pins
+ //
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ // TO TEST
+ //#define LCD_PINS_RS 49 // CS chip select /SS chip slave select
+ //#define LCD_PINS_ENABLE 51 // SID (MOSI)
+ //#define LCD_PINS_D4 52 // SCK (CLK) clock
+
+ #elif BOTH(IS_NEWPANEL, PANEL_ONE)
+
+ // TO TEST
+ //#define LCD_PINS_RS 40
+ //#define LCD_PINS_ENABLE 42
+ //#define LCD_PINS_D4 57 // Mega/Due:65 - AGCM4:57
+ //#define LCD_PINS_D5 58 // Mega/Due:66 - AGCM4:58
+ //#define LCD_PINS_D6 44
+ //#define LCD_PINS_D7 56 // Mega/Due:64 - AGCM4:56
+
+ #else
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ // TO TEST
+ //#define LCD_PINS_RS 27
+ //#define LCD_PINS_ENABLE 29
+ //#define LCD_PINS_D4 25
+
+ #if !IS_NEWPANEL
+ // TO TEST
+ //#define BEEPER_PIN 37
+ #endif
+
+ #elif ENABLED(ZONESTAR_LCD)
+
+ // TO TEST
+ //#define LCD_PINS_RS 56 // Mega/Due:64 - AGCM4:56
+ //#define LCD_PINS_ENABLE 44
+ //#define LCD_PINS_D4 55 // Mega/Due:63 - AGCM4:55
+ //#define LCD_PINS_D5 40
+ //#define LCD_PINS_D6 42
+ //#define LCD_PINS_D7 57 // Mega/Due:65 - AGCM4:57
+
+ #else
+
+ #if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
+ // TO TEST
+ //#define LCD_PINS_DC 25 // Set as output on init
+ //#define LCD_PINS_RS 27 // Pull low for 1s to init
+ // DOGM SPI LCD Support
+ //#define DOGLCD_CS 16
+ //#define DOGLCD_MOSI 17
+ //#define DOGLCD_SCK 23
+ //#define DOGLCD_A0 LCD_PINS_DC
+ #else
+ #define LCD_PINS_RS 16
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 23
+ #define LCD_PINS_D5 25
+ #define LCD_PINS_D6 27
+ #endif
+
+ #define LCD_PINS_D7 29
+
+ #if !IS_NEWPANEL
+ #define BEEPER_PIN 33
+ #endif
+
+ #endif
+
+ #if !IS_NEWPANEL
+ // Buttons attached to a shift register
+ // Not wired yet
+ //#define SHIFT_CLK_PIN 38
+ //#define SHIFT_LD_PIN 42
+ //#define SHIFT_OUT_PIN 40
+ //#define SHIFT_EN_PIN 17
+ #endif
+
+ #endif
+
+ //
+ // LCD Display input pins
+ //
+ #if IS_NEWPANEL
+
+ #if IS_RRD_SC
+
+ #define BEEPER_PIN 37
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ // TO TEST
+ //#define BTN_EN1 17
+ //#define BTN_EN2 23
+ #else
+ #define BTN_EN1 31
+ #define BTN_EN2 33
+ #endif
+
+ #define BTN_ENC 35
+ #ifndef SD_DETECT_PIN
+ #define SD_DETECT_PIN 49
+ #endif
+ #define KILL_PIN 41
+
+ #if ENABLED(BQ_LCD_SMART_CONTROLLER)
+ // TO TEST
+ //#define LCD_BACKLIGHT_PIN 39
+ #endif
+
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ // TO TEST
+ //#define BTN_EN1 56 // Mega/Due:64 - AGCM4:56
+ //#define BTN_EN2 72 // Mega/Due:59 - AGCM4:72
+ //#define BTN_ENC 55
+ //#define SD_DETECT_PIN 42
+
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+
+ // TO TEST
+ //#define BTN_EN1 47
+ //#define BTN_EN2 43
+ //#define BTN_ENC 32
+ //#define LCD_SDSS SDSS
+ //#define KILL_PIN 41
+
+ #elif ENABLED(LCD_I2C_VIKI)
+
+ // TO TEST
+ //#define BTN_EN1 40 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42.
+ //#define BTN_EN2 42
+ //#define BTN_ENC -1
+
+ //#define LCD_SDSS SDSS
+ //#define SD_DETECT_PIN 49
+
+ #elif ANY(VIKI2, miniVIKI)
+
+ // TO TEST
+ //#define DOGLCD_CS 45
+ //#define DOGLCD_A0 44
+ //#define LCD_SCREEN_ROT_180
+
+ //#define BEEPER_PIN 33
+ //#define STAT_LED_RED_PIN 32
+ //#define STAT_LED_BLUE_PIN 35
+
+ //#define BTN_EN1 22
+ //#define BTN_EN2 7
+ //#define BTN_ENC 39
+
+ //#define SD_DETECT_PIN -1 // Pin 49 for display SD interface, 72 for easy adapter board
+ //#define KILL_PIN 31
+
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+
+ // TO TEST
+ //#define DOGLCD_CS 29
+ //#define DOGLCD_A0 27
+
+ //#define BEEPER_PIN 23
+ //#define LCD_BACKLIGHT_PIN 33
+
+ //#define BTN_EN1 35
+ //#define BTN_EN2 37
+ //#define BTN_ENC 31
+
+ //#define LCD_SDSS SDSS
+ //#define SD_DETECT_PIN 49
+ //#define KILL_PIN 41
+
+ #elif EITHER(MKS_MINI_12864, FYSETC_MINI_12864)
+
+ // TO TEST
+ //#define BEEPER_PIN 37
+ //#define BTN_ENC 35
+ //#define SD_DETECT_PIN 49
+
+ //#ifndef KILL_PIN
+ // #define KILL_PIN 41
+ //#endif
+
+ #if ENABLED(MKS_MINI_12864)
+
+ // TO TEST
+ //#define DOGLCD_A0 27
+ //#define DOGLCD_CS 25
+
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ // not connected to a pin
+ //#define LCD_BACKLIGHT_PIN 57 // backlight LED on A11/D? (Mega/Due:65 - AGCM4:57)
+
+ //#define BTN_EN1 31
+ //#define BTN_EN2 33
+
+ #elif ENABLED(FYSETC_MINI_12864)
+
+ // From https://wiki.fysetc.com/Mini12864_Panel/?fbclid=IwAR1FyjuNdVOOy9_xzky3qqo_WeM5h-4gpRnnWhQr_O1Ef3h0AFnFXmCehK8
+
+ // TO TEST
+ //#define DOGLCD_A0 16
+ //#define DOGLCD_CS 17
+
+ //#define BTN_EN1 33
+ //#define BTN_EN2 31
+
+ //#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
+ // results in LCD soft SPI mode 3, SD soft SPI mode 0
+
+ //#define LCD_RESET_PIN 23 // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ // TO TEST
+ //#define RGB_LED_R_PIN 25
+ #endif
+ #ifndef RGB_LED_G_PIN
+ // TO TEST
+ //#define RGB_LED_G_PIN 27
+ #endif
+ #ifndef RGB_LED_B_PIN
+ // TO TEST
+ //#define RGB_LED_B_PIN 29
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ // TO TEST
+ //#define NEOPIXEL_PIN 25
+ #endif
+
+ #endif
+
+ #elif ENABLED(MINIPANEL)
+
+ // TO TEST
+ //#define BEEPER_PIN 42
+ // not connected to a pin
+ //#define LCD_BACKLIGHT_PIN 57 // backlight LED on A11/D? (Mega/Due:65 - AGCM4:57)
+
+ //#define DOGLCD_A0 44
+ //#define DOGLCD_CS 58 // Mega/Due:66 - AGCM4:58
+
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ //#define BTN_EN1 40
+ //#define BTN_EN2 55 // Mega/Due:63 - AGCM4:55
+ //#define BTN_ENC 72 // Mega/Due:59 - AGCM4:72
+
+ //#define SD_DETECT_PIN 49
+ //#define KILL_PIN 56 // Mega/Due:64 - AGCM4:56
+
+ #elif ENABLED(ZONESTAR_LCD)
+
+ // TO TEST
+ //#define ADC_KEYPAD_PIN 12
+
+ #elif ENABLED(AZSMZ_12864)
+
+ // TO TEST
+
+ #else
+
+ // Beeper on AUX-4
+ //#define BEEPER_PIN 33
+
+ // Buttons are directly attached to AUX-2
+ #if IS_RRW_KEYPAD
+ // TO TEST
+ //#define SHIFT_OUT_PIN 40
+ //#define SHIFT_CLK_PIN 44
+ //#define SHIFT_LD_PIN 42
+ //#define BTN_EN1 56 // Mega/Due:64 - AGCM4:56
+ //#define BTN_EN2 72 // Mega/Due:59 - AGCM4:72
+ //#define BTN_ENC 55 // Mega/Due:63 - AGCM4:55
+ #elif ENABLED(PANEL_ONE)
+ // TO TEST
+ //#define BTN_EN1 72 // AUX2 PIN 3 (Mega/Due:59 - AGCM4:72)
+ //#define BTN_EN2 55 // AUX2 PIN 4 (Mega/Due:63 - AGCM4:55)
+ //#define BTN_ENC 49 // AUX3 PIN 7
+ #else
+ // TO TEST
+ //#define BTN_EN1 37
+ //#define BTN_EN2 35
+ //#define BTN_ENC 31
+ #endif
+
+ #if ENABLED(G3D_PANEL)
+ // TO TEST
+ //#define SD_DETECT_PIN 49
+ //#define KILL_PIN 41
+ #endif
+
+ #endif
+ #endif // IS_NEWPANEL
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Support
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+ #undef SDSS
+ #define SDSS 83
+ #undef SD_DETECT_PIN
+ #define SD_DETECT_PIN 95
+#endif
diff --git a/Marlin/src/pins/sanguino/pins_ANET_10.h b/Marlin/src/pins/sanguino/pins_ANET_10.h
new file mode 100644
index 0000000..fb1b6db
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_ANET_10.h
@@ -0,0 +1,289 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Anet V1.0 board pin assignments
+ */
+
+/**
+ * Rev B 16 JUN 2017
+ *
+ * 1) no longer uses Sanguino files to define some of the pins
+ * 2) added pointers to useable Arduino IDE extensions
+ */
+
+/**
+ * The standard Arduino IDE extension (board manager) for this board
+ * is located at https://github.com/SkyNet3D/anet-board.
+ *
+ * Installation instructions are on that page.
+ *
+ * After copying the files to the appropriate location, restart Arduino and
+ * you'll see "Anet V1.0" and "Anet V1.0 (Optiboot)" in the boards list.
+ *
+ * "Anet V1.0" uses the bootloader that was installed on the board when
+ * it shipped from the factory.
+ *
+ * "Anet V1.0 (Optiboot)" frees up another 3K of FLASH. You'll need to burn
+ * a new bootloader to the board to be able to automatically download a
+ * compiled image.
+ */
+
+/**
+ * Another usable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the Sanguino board and then select the CPU.
+ */
+
+/**
+ * To burn a new bootloader:
+ *
+ * 1. Connect your programmer to the board.
+ * 2. In the Arduino IDE select the board and then select the programmer.
+ * 3. In the Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
+ * 4. The programmer is no longer needed. Remove it.
+ */
+
+/**
+ * Additional info:
+ *
+ * Anet Schematics - https://github.com/ralf-e/ANET-3D-Board-V1.0
+ * Wiring RRDFG Smart Controller - https://www.thingiverse.com/thing:2103748
+ * SkyNet3D Anet software development - https://github.com/SkyNet3D/Marlin/
+ * Anet Users / Skynet SW on Facebook - https://www.facebook.com/skynet3ddevelopment/
+ *
+ * Many thanks to Hans Raaf (@oderwat) for developing the Anet-specific software and supporting the Anet community.
+ */
+
+#if NOT_TARGET(__AVR_ATmega1284P__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Board' and 'ATmega1284P' in 'Tools > Processor.' (For PlatformIO, use 'melzi' or 'melzi_optiboot.')"
+#endif
+
+#define BOARD_INFO_NAME "Anet 1.0"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 18
+#define Y_STOP_PIN 19
+#define Z_STOP_PIN 20
+
+//
+// Steppers
+//
+#define X_STEP_PIN 15
+#define X_DIR_PIN 21
+#define X_ENABLE_PIN 14
+
+#define Y_STEP_PIN 22
+#define Y_DIR_PIN 23
+#define Y_ENABLE_PIN 14
+
+#define Z_STEP_PIN 3
+#define Z_DIR_PIN 2
+#define Z_ENABLE_PIN 26
+
+#define E0_STEP_PIN 1
+#define E0_DIR_PIN 0
+#define E0_ENABLE_PIN 14
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 7 // Analog Input (pin 33 extruder)
+#define TEMP_BED_PIN 6 // Analog Input (pin 34 bed)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 13 // (extruder)
+#define HEATER_BED_PIN 12 // (bed)
+
+#ifndef FAN_PIN
+ #define FAN_PIN 4
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 31
+#define LED_PIN -1
+
+/**
+ * LCD / Controller
+ *
+ * Only the following displays are supported:
+ * ZONESTAR_LCD
+ * ANET_FULL_GRAPHICS_LCD(_ALT_WIRING)?
+ * REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
+ */
+
+#if HAS_WIRED_LCD
+
+ #define LCD_SDSS 28
+
+ #if HAS_ADC_BUTTONS
+
+ #define SERVO0_PIN 27 // free for BLTouch/3D-Touch
+ #define LCD_PINS_RS 28
+ #define LCD_PINS_ENABLE 29
+ #define LCD_PINS_D4 10
+ #define LCD_PINS_D5 11
+ #define LCD_PINS_D6 16
+ #define LCD_PINS_D7 17
+ #define ADC_KEYPAD_PIN 1
+
+ #elif IS_RRD_FG_SC
+
+ // Pin definitions for the Anet A6 Full Graphics display and the RepRapDiscount Full Graphics
+ // display using an adapter board // https://go.aisler.net/benlye/anet-lcd-adapter/pcb
+ // See below for alternative pin definitions for use with https://www.thingiverse.com/thing:2103748
+
+ #if ENABLED(ANET_FULL_GRAPHICS_LCD_ALT_WIRING)
+ #define SERVO0_PIN 30
+ #define BEEPER_PIN 27
+ #define LCD_PINS_RS 29
+ #define LCD_PINS_ENABLE 16
+ #define LCD_PINS_D4 11
+ #define BTN_EN1 28
+ #define BTN_EN2 10
+ #define BTN_ENC 17
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(250)
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(250)
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(250)
+ #else
+ #define SERVO0_PIN 29 // free for BLTouch/3D-Touch
+ #define BEEPER_PIN 17
+ #define LCD_PINS_RS 27
+ #define LCD_PINS_ENABLE 28
+ #define LCD_PINS_D4 30
+ #define BTN_EN1 11
+ #define BTN_EN2 10
+ #define BTN_ENC 16
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(0)
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(63)
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+
+ #endif
+
+#else
+ #define SERVO0_PIN 27
+#endif
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN SERVO0_PIN
+#endif
+
+/**
+ * ====================================================================
+ * =============== Alternative RepRapDiscount Wiring ==================
+ * ====================================================================
+ *
+ * An alternative wiring scheme for the RepRapDiscount Full Graphics Display is
+ * published by oderwat on Thingiverse at https://www.thingiverse.com/thing:2103748.
+ *
+ * Using that adapter requires changing the pin definition as follows:
+ * #define SERVO0_PIN 27 // free for BLTouch/3D-Touch
+ * #define BEEPER_PIN 28
+ * #define LCD_PINS_RS 30
+ * #define LCD_PINS_ENABLE 29
+ * #define LCD_PINS_D4 17
+ *
+ * The BLTouch pin becomes LCD:3
+ */
+
+/**
+ * ====================================================================
+ * ===================== LCD PINOUTS ==================================
+ * ====================================================================
+ *
+ * Anet V1.0 controller | ZONESTAR_LCD | ANET_FULL_ | RepRapDiscount Full | Thingiverse RepRap wiring
+ * physical logical alt | | GRAPHICS_LCD | Graphics Display Wiring | https://www.thingiverse
+ * pin pin functions | | | | .com/thing:2103748
+ *------------------------------------------------------------------------------------------------------------------------
+ * ANET-J3.1 8 *** | N/A | J3_TX *** | |
+ * ANET-J3.2 9 *** | N/A | J3_RX *** | |
+ * ANET-J3.3 6 MISO | N/A | MISO *** | EXP2.1 MISO | EXP2.1 MISO
+ * ANET-J3.4 +5V | N/A | +5V | |
+ * ANET-J3.5 7 SCK | N/A | SCK *** | EXP2.2 SCK | EXP2.2 SCK
+ * ANET-J3.6 5 MOSI | N/A | MOSI *** | EXP2.6 MOSI | EXP2.6 MOSI
+ * ANET-J3.7 !RESET | N/A | button | EXP2.8 panel button | EXP2.8 panel button
+ * ANET-J3.8 GND | N/A | GND | EXP2.9 GND | EXP2.9 GND
+ * ANET-J3.9 4 Don't use | N/A | N/C | |
+ * ANET-J3.10 +3.3V | N/A | +3.3V *** | |
+ * | | | |
+ * | | | |
+ * ANET-LCD.1 GND | GND | GND | EXP1.9 GND | EXP1.9 GND
+ * ANET-LCD.2 +5V | +5V | +5V | EXP1.10 +5V | EXP1.10 +5V
+ * ANET-LCD.3 27 A4 | N/C * | LCD_PINS_RS | EXP1.4 LCD_PINS_RS | EXP2.4 SDSS or N/C *
+ * ANET-LCD.4 10 | LCD_PINS_D4 | BTN_EN2 | EXP2.3 BTN_EN2 | EXP2.3 BTN_EN2
+ * ANET-LCD.5 28 A3 | LCD_PINS_RS | LCD_PINS_ENABLE | EXP1.3 LCD_PINS_ENABLE | EXP1.1 BEEPER_PIN
+ * ANET-LCD.6 11 | LCD_PINS_D5 | BTN_EN1 | EXP2.5 BTN_EN1 | EXP2.5 BTN_EN1
+ * ANET-LCD.7 29 A2 | LCD_PINS_ENABLE | N/C * | EXP2.4 SDSS or N/C * | EXP1.3 LCD_PINS_ENABLE
+ * ANET-LCD.8 16 SCL | LCD_PINS_D6 | BTN_ENC | EXP1.2 BTN_ENC | EXP1.2 BTN_ENC
+ * ANET-LCD.9 30 A1 | ADC_KEYPAD_PIN ** | LCD_PINS_D4 | EXP1.5 LCD_PINS_D4 | EXP1.4 LCD_PINS_RS
+ * ANET-LCD.10 17 SDA | LCD_PINS_D7 | BEEPER_PIN | EXP1.1 BEEPER_PIN | EXP1.5 LCD_PINS_D4
+ *
+ * N/C * - if not connected to the LCD can be used for BLTouch servo input
+ * ** - analog pin -WITHOUT a pullup
+ * *** - only connected to something if the Bluetooth module is populated
+ */
+
+/**
+ * REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
+ * physical pin function
+ * EXP1.1 BEEPER
+ * EXP1.2 BTN_ENC
+ * EXP1.3 LCD_PINS_ENABLE
+ * EXP1.4 LCD_PINS_RS
+ * EXP1.5 LCD_PINS_D4
+ * EXP1.6 LCD_PINS_D5 (not used)
+ * EXP1.7 LCD_PINS_D6 (not used)
+ * EXP1.8 LCD_PINS_D7 (not used)
+ * EXP1.9 GND
+ * EXP1.10 VCC
+ *
+ *
+ * EXP2.1 MISO
+ * EXP2.2 SCK
+ * EXP2.3 BTN_EN2
+ * EXP2.4 SDSS
+ * EXP2.5 BTN_EN1
+ * EXP2.6 MOSI
+ * EXP2.7 SD_DETECT_PIN
+ * EXP2.8 button
+ * EXP2.9 GND
+ * EXP2.10 NC
+ */
diff --git a/Marlin/src/pins/sanguino/pins_AZTEEG_X1.h b/Marlin/src/pins/sanguino/pins_AZTEEG_X1.h
new file mode 100644
index 0000000..c3c38eb
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_AZTEEG_X1.h
@@ -0,0 +1,30 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Azteeg X1 pin assignments
+ */
+
+#define BOARD_INFO_NAME "Azteeg X1"
+
+#include "pins_SANGUINOLOLU_12.h"
diff --git a/Marlin/src/pins/sanguino/pins_GEN3_MONOLITHIC.h b/Marlin/src/pins/sanguino/pins_GEN3_MONOLITHIC.h
new file mode 100644
index 0000000..29905c1
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_GEN3_MONOLITHIC.h
@@ -0,0 +1,99 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Gen3 Monolithic Electronics pin assignments
+ */
+
+/**
+ * Rev B 26 DEC 2016
+ *
+ * added pointer to a current Arduino IDE extension
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the Sanguino board and then select the CPU.
+ */
+
+#if NOT_TARGET(__AVR_ATmega644P__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Gen3 Monolithic"
+#define DEBUG_PIN 0
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 20
+#define Y_STOP_PIN 25
+#define Z_STOP_PIN 30
+
+//
+// Steppers
+//
+#define X_STEP_PIN 15
+#define X_DIR_PIN 18
+#define X_ENABLE_PIN 24 // actually uses Y_enable_pin
+
+#define Y_STEP_PIN 23
+#define Y_DIR_PIN 22
+#define Y_ENABLE_PIN 24 // shared with X_enable_pin
+
+#define Z_STEP_PIN 27
+#define Z_DIR_PIN 28
+#define Z_ENABLE_PIN 29
+
+#define E0_STEP_PIN 12
+#define E0_DIR_PIN 17
+#define E0_ENABLE_PIN 3
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+
+//
+// Heaters
+//
+#define HEATER_0_PIN 16
+
+//
+// Misc. Functions
+//
+#define PS_ON_PIN 14 // Alex, does this work on the card?
+
+// Alex extras from Gen3+
diff --git a/Marlin/src/pins/sanguino/pins_GEN3_PLUS.h b/Marlin/src/pins/sanguino/pins_GEN3_PLUS.h
new file mode 100644
index 0000000..33fc233
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_GEN3_PLUS.h
@@ -0,0 +1,99 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Gen3+ pin assignments
+ */
+
+/**
+ * Rev B 26 DEC 2016
+ *
+ * added pointer to a current Arduino IDE extension
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the SANGUINO board and then select the CPU.
+ */
+
+#if NOT_TARGET(__AVR_ATmega644P__, __AVR_ATmega1284P__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Boards' and 'ATmega644P' or 'ATmega1284P' in 'Tools > Processor.'"
+#endif
+
+#define BOARD_INFO_NAME "Gen3+"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 20
+#define Y_STOP_PIN 25
+#define Z_STOP_PIN 30
+
+//
+// Steppers
+//
+#define X_STEP_PIN 15
+#define X_DIR_PIN 18
+#define X_ENABLE_PIN 19
+
+#define Y_STEP_PIN 23
+#define Y_DIR_PIN 22
+#define Y_ENABLE_PIN 24
+
+#define Z_STEP_PIN 27
+#define Z_DIR_PIN 28
+#define Z_ENABLE_PIN 29
+
+#define E0_STEP_PIN 17
+#define E0_DIR_PIN 21
+#define E0_ENABLE_PIN 13
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input (pin 33 extruder)
+#define TEMP_BED_PIN 5 // Analog Input (pin 34 bed)
+
+//
+// Heaters
+//
+#define HEATER_0_PIN 12
+#define HEATER_BED_PIN 16
+
+//
+// Misc. Functions
+//
+#define SDSS 4
+#define PS_ON_PIN 14
diff --git a/Marlin/src/pins/sanguino/pins_GEN6.h b/Marlin/src/pins/sanguino/pins_GEN6.h
new file mode 100644
index 0000000..bfca8e9
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_GEN6.h
@@ -0,0 +1,121 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Gen6 pin assignments
+ */
+
+ /**
+ * Rev B 26 DEC 2016
+ *
+ * 1) added pointer to a current Arduino IDE extension
+ * 2) added support for M3, M4 & M5 spindle control commands
+ * 3) added case light pin definition
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the Sanguino board and then select the CPU.
+ */
+
+#if NOT_TARGET(__AVR_ATmega644P__, __AVR_ATmega1284P__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Boards' and 'ATmega644P' or 'ATmega1284P' in 'Tools > Processor.'"
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Gen6"
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 20
+#define Y_STOP_PIN 25
+#define Z_STOP_PIN 30
+
+//
+// Steppers
+//
+#define X_STEP_PIN 15
+#define X_DIR_PIN 18
+#define X_ENABLE_PIN 19
+
+#define Y_STEP_PIN 23
+#define Y_DIR_PIN 22
+#define Y_ENABLE_PIN 24
+
+#define Z_STEP_PIN 27
+#define Z_DIR_PIN 28
+#define Z_ENABLE_PIN 29
+
+#define E0_STEP_PIN 4 // Edited @ EJE Electronics 20100715
+#define E0_DIR_PIN 2 // Edited @ EJE Electronics 20100715
+#define E0_ENABLE_PIN 3 // Added @ EJE Electronics 20100715
+
+//
+// Temperature Sensor
+//
+#define TEMP_0_PIN 5 // Analog Input
+
+//
+// Heaters
+//
+#define HEATER_0_PIN 14 // changed @ rkoeppl 20110410
+
+#if !MB(GEN6)
+ #define HEATER_BED_PIN 1 // changed @ rkoeppl 20110410
+ #define TEMP_BED_PIN 0 // Analog Input
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 17
+#define DEBUG_PIN 0
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 16 // Hardware PWM
+#endif
+
+// RS485 pins
+#define TX_ENABLE_PIN 12
+#define RX_ENABLE_PIN 13
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_ENA_PIN 5 // Pullup or pulldown!
+#define SPINDLE_LASER_PWM_PIN 16 // Hardware PWM
+#define SPINDLE_DIR_PIN 6
diff --git a/Marlin/src/pins/sanguino/pins_GEN6_DELUXE.h b/Marlin/src/pins/sanguino/pins_GEN6_DELUXE.h
new file mode 100644
index 0000000..9c63570
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_GEN6_DELUXE.h
@@ -0,0 +1,54 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Gen6 Deluxe pin assignments
+ */
+
+/**
+ * Rev B 26 DEC 2016
+ *
+ * added pointer to a current Arduino IDE extension
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the SANGUINO board and then select the CPU.
+ */
+
+
+#define BOARD_INFO_NAME "Gen6 Deluxe"
+
+#include "pins_GEN6.h"
diff --git a/Marlin/src/pins/sanguino/pins_GEN7_12.h b/Marlin/src/pins/sanguino/pins_GEN7_12.h
new file mode 100644
index 0000000..9db7d72
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_GEN7_12.h
@@ -0,0 +1,147 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Gen7 v1.1, v1.2, v1.3 pin assignments
+ */
+
+ /**
+ * Rev B 26 DEC 2016
+ *
+ * 1) added pointer to a current Arduino IDE extension
+ * 2) added support for M3, M4 & M5 spindle control commands
+ * 3) added case light pin definition
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the Sanguino board and then select the CPU.
+ */
+
+#if NOT_TARGET(__AVR_ATmega644P__, __AVR_ATmega644__, __AVR_ATmega1284P__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Boards' and 'ATmega644', 'ATmega644P', or 'ATmega1284P' in 'Tools > Processor.'"
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Gen7 v1.1 / 1.2"
+#endif
+
+#ifndef GEN7_VERSION
+ #define GEN7_VERSION 12 // v1.x
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 7
+#define Y_MIN_PIN 5
+#define Z_MIN_PIN 1
+#define Z_MAX_PIN 0
+#define Y_MAX_PIN 2
+#define X_MAX_PIN 6
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 0
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 19
+#define X_DIR_PIN 18
+#define X_ENABLE_PIN 24
+
+#define Y_STEP_PIN 23
+#define Y_DIR_PIN 22
+#define Y_ENABLE_PIN 24
+
+#define Z_STEP_PIN 26
+#define Z_DIR_PIN 25
+#define Z_ENABLE_PIN 24
+
+#define E0_STEP_PIN 28
+#define E0_DIR_PIN 27
+#define E0_ENABLE_PIN 24
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 1 // Analog Input
+#define TEMP_BED_PIN 2 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 4
+#define HEATER_BED_PIN 3
+
+#if !defined(FAN_PIN) && GEN7_VERSION < 13 // Gen7 v1.3 removed the fan pin
+ #define FAN_PIN 31
+#endif
+
+//
+// Misc. Functions
+//
+#define PS_ON_PIN 15
+
+#if GEN7_VERSION < 13
+ #define CASE_LIGHT_PIN 16 // Hardware PWM
+#else // Gen7 v1.3 removed the I2C connector & signals so need to get PWM off the PC power supply header
+ #define CASE_LIGHT_PIN 15 // Hardware PWM
+#endif
+
+// All these generations of Gen7 supply thermistor power
+// via PS_ON, so ignore bad thermistor readings
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+#define DEBUG_PIN 0
+
+// RS485 pins
+#define TX_ENABLE_PIN 12
+#define RX_ENABLE_PIN 13
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_ENA_PIN 10 // Pullup or pulldown!
+#define SPINDLE_DIR_PIN 11
+#if GEN7_VERSION < 13
+ #define SPINDLE_LASER_PWM_PIN 16 // Hardware PWM
+#else // Gen7 v1.3 removed the I2C connector & signals so need to get PWM off the PC power supply header
+ #define SPINDLE_LASER_PWM_PIN 15 // Hardware PWM
+#endif
diff --git a/Marlin/src/pins/sanguino/pins_GEN7_13.h b/Marlin/src/pins/sanguino/pins_GEN7_13.h
new file mode 100644
index 0000000..55881aa
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_GEN7_13.h
@@ -0,0 +1,54 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Gen7 v1.3 pin assignments
+ */
+
+/**
+ * Rev B 26 DEC 2016
+ *
+ * added pointer to a current Arduino IDE extension
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the Sanguino board and then select the CPU.
+ */
+
+#define BOARD_INFO_NAME "Gen7 v1.3"
+
+#define GEN7_VERSION 13 // v1.3
+#include "pins_GEN7_12.h"
diff --git a/Marlin/src/pins/sanguino/pins_GEN7_14.h b/Marlin/src/pins/sanguino/pins_GEN7_14.h
new file mode 100644
index 0000000..66dba53
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_GEN7_14.h
@@ -0,0 +1,120 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Gen7 v1.4 pin assignments
+ */
+
+/**
+ * Rev B 26 DEC 2016
+ *
+ * 1) added pointer to a current Arduino IDE extension
+ * 2) added support for M3, M4 & M5 spindle control commands
+ * 3) added case light pin definition
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the Sanguino board and then select the CPU.
+ */
+
+#if NOT_TARGET(__AVR_ATmega644P__, __AVR_ATmega644__, __AVR_ATmega1284P__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Boards' and 'ATmega644', 'ATmega644P', or 'ATmega1284P' in 'Tools > Processor.'"
+#endif
+
+#define BOARD_INFO_NAME "Gen7 v1.4"
+
+#define GEN7_VERSION 14 // v1.4
+
+//
+// Limit switches
+//
+#define X_STOP_PIN 0
+#define Y_STOP_PIN 1
+#define Z_STOP_PIN 2
+
+//
+// Steppers
+//
+#define X_STEP_PIN 29
+#define X_DIR_PIN 28
+#define X_ENABLE_PIN 25
+
+#define Y_STEP_PIN 27
+#define Y_DIR_PIN 26
+#define Y_ENABLE_PIN 25
+
+#define Z_STEP_PIN 23
+#define Z_DIR_PIN 22
+#define Z_ENABLE_PIN 25
+
+#define E0_STEP_PIN 19
+#define E0_DIR_PIN 18
+#define E0_ENABLE_PIN 25
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 1 // Analog Input
+#define TEMP_BED_PIN 0 // Analog Input
+
+//
+// Heaters
+//
+#define HEATER_0_PIN 4
+#define HEATER_BED_PIN 3
+
+//
+// Misc. Functions
+//
+#define PS_ON_PIN 15
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 15 // Hardware PWM
+#endif
+
+// A pin for debugging
+#define DEBUG_PIN 0
+
+// RS485 pins
+#define TX_ENABLE_PIN 12
+#define RX_ENABLE_PIN 13
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_ENA_PIN 20 // Pullup or pulldown!
+#define SPINDLE_LASER_PWM_PIN 16 // Hardware PWM
+#define SPINDLE_DIR_PIN 21
diff --git a/Marlin/src/pins/sanguino/pins_GEN7_CUSTOM.h b/Marlin/src/pins/sanguino/pins_GEN7_CUSTOM.h
new file mode 100644
index 0000000..0c4871f
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_GEN7_CUSTOM.h
@@ -0,0 +1,140 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Gen7 Alfons3 board pin assignments
+ *
+ * These Pins are assigned for the modified GEN7 Board from Alfons3.
+ * Please review the pins and adjust them for your needs.
+ */
+
+/**
+ * Rev B 26 DEC 2016
+ *
+ * 1) added pointer to a current Arduino IDE extension
+ * 2) added support for M3, M4 & M5 spindle control commands
+ * 3) added case light pin definition
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the Sanguino board and then select the CPU.
+ */
+
+#if NOT_TARGET(__AVR_ATmega644P__, __AVR_ATmega644__, __AVR_ATmega1284P__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Boards' and 'ATmega644', 'ATmega644P', or 'ATmega1284P' in 'Tools > Processor.'"
+#endif
+
+#define BOARD_INFO_NAME "Gen7 Custom"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 0
+#define Y_STOP_PIN 1
+#define Z_STOP_PIN 2
+
+//
+// Steppers
+//
+#define X_STEP_PIN 21 // different from standard GEN7
+#define X_DIR_PIN 20 // different from standard GEN7
+#define X_ENABLE_PIN 24
+
+#define Y_STEP_PIN 23
+#define Y_DIR_PIN 22
+#define Y_ENABLE_PIN 24
+
+#define Z_STEP_PIN 26
+#define Z_DIR_PIN 25
+#define Z_ENABLE_PIN 24
+
+#define E0_STEP_PIN 28
+#define E0_DIR_PIN 27
+#define E0_ENABLE_PIN 24
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 2 // Analog Input
+#define TEMP_BED_PIN 1 // Analog Input (pin 34 bed)
+
+//
+// Heaters
+//
+#define HEATER_0_PIN 4
+#define HEATER_BED_PIN 3 // (bed)
+
+//
+// Misc. Functions
+//
+#define SDSS 31 // SCL pin of I2C header || CS Pin for SD Card support
+#define PS_ON_PIN 19
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 15 // Hardware PWM
+#endif
+
+// A pin for debugging
+#define DEBUG_PIN -1
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN -1
+
+// 4bit LCD Support
+#define LCD_PINS_RS 18
+#define LCD_PINS_ENABLE 17
+#define LCD_PINS_D4 16
+#define LCD_PINS_D5 15
+#define LCD_PINS_D6 13
+#define LCD_PINS_D7 14
+
+// Buttons are directly attached
+#define BTN_EN1 11
+#define BTN_EN2 10
+#define BTN_ENC 12
+
+// RS485 pins
+//#define TX_ENABLE_PIN 12
+//#define RX_ENABLE_PIN 13
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_ENA_PIN 5 // Pullup or pulldown!
+#define SPINDLE_LASER_PWM_PIN 16 // Hardware PWM
+#define SPINDLE_DIR_PIN 6
diff --git a/Marlin/src/pins/sanguino/pins_MELZI.h b/Marlin/src/pins/sanguino/pins_MELZI.h
new file mode 100644
index 0000000..887aae1
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_MELZI.h
@@ -0,0 +1,32 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Melzi pin assignments
+ */
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Melzi"
+#endif
+
+#include "pins_SANGUINOLOLU_12.h"
diff --git a/Marlin/src/pins/sanguino/pins_MELZI_CREALITY.h b/Marlin/src/pins/sanguino/pins_MELZI_CREALITY.h
new file mode 100644
index 0000000..97db36d
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_MELZI_CREALITY.h
@@ -0,0 +1,143 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Melzi (Creality) pin assignments
+ *
+ * The Creality board needs a bootloader installed before Marlin can be uploaded.
+ * If you don't have a chip programmer you can use a spare Arduino plus a few
+ * electronic components to write the bootloader.
+ *
+ * See https://www.instructables.com/id/Burn-Arduino-Bootloader-with-Arduino-MEGA/
+ *
+ * Schematic: https://bit.ly/2XOnsWb
+ */
+
+#define BOARD_INFO_NAME "Melzi (Creality)"
+
+// Alter timing for graphical display
+#if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+#endif
+
+#include "pins_MELZI.h"
+
+//
+// For the stock CR-10 enable CR10_STOCKDISPLAY in Configuration.h
+//
+#undef LCD_SDSS
+#undef LED_PIN
+#undef LCD_PINS_RS
+#undef LCD_PINS_ENABLE
+#undef LCD_PINS_D4
+#undef LCD_PINS_D5
+#undef LCD_PINS_D6
+#undef LCD_PINS_D7
+
+#define LCD_SDSS 31 // Smart Controller SD card reader (rather than the Melzi)
+#define LCD_PINS_RS 28 // ST9720 CS
+#define LCD_PINS_ENABLE 17 // ST9720 DAT
+#define LCD_PINS_D4 30 // ST9720 CLK
+
+#if ENABLED(BLTOUCH)
+ #define SERVO0_PIN 27
+ #undef BEEPER_PIN
+#elif ENABLED(FILAMENT_RUNOUT_SENSOR)
+ #ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 27
+ #endif
+ #if FIL_RUNOUT_PIN == BEEPER_PIN
+ #undef BEEPER_PIN
+ #endif
+#endif
+
+#if ENABLED(MINIPANEL)
+ #undef DOGLCD_CS
+ #define DOGLCD_CS LCD_PINS_RS
+#endif
+
+/**
+ PIN: 0 Port: B0 E0_DIR_PIN protected
+ PIN: 1 Port: B1 E0_STEP_PIN protected
+ PIN: 2 Port: B2 Z_DIR_PIN protected
+ PIN: 3 Port: B3 Z_STEP_PIN protected
+ PIN: 4 Port: B4 AVR_SS_PIN protected
+ . FAN_PIN protected
+ . SD_SS_PIN protected
+ PIN: 5 Port: B5 AVR_MOSI_PIN Output = 1
+ . SD_MOSI_PIN Output = 1
+ PIN: 6 Port: B6 AVR_MISO_PIN Input = 0 TIMER3A PWM: 0 WGM: 1 COM3A: 0 CS: 3 TCCR3A: 1 TCCR3B: 3 TIMSK3: 0
+ . SD_MISO_PIN Input = 0
+ PIN: 7 Port: B7 AVR_SCK_PIN Output = 0 TIMER3B PWM: 0 WGM: 1 COM3B: 0 CS: 3 TCCR3A: 1 TCCR3B: 3 TIMSK3: 0
+ . SD_SCK_PIN Output = 0
+ PIN: 8 Port: D0 RXD Input = 1
+ PIN: 9 Port: D1 TXD Input = 0
+ PIN: 10 Port: D2 BTN_EN2 Input = 1
+ PIN: 11 Port: D3 BTN_EN1 Input = 1
+ PIN: 12 Port: D4 HEATER_BED_PIN protected
+ PIN: 13 Port: D5 HEATER_0_PIN protected
+ PIN: 14 Port: D6 E0_ENABLE_PIN protected
+ . X_ENABLE_PIN protected
+ . Y_ENABLE_PIN protected
+ PIN: 15 Port: D7 X_STEP_PIN protected
+ PIN: 16 Port: C0 BTN_ENC Input = 1
+ . SCL Input = 1
+ PIN: 17 Port: C1 LCD_PINS_ENABLE Output = 0
+ . SDA Output = 0
+ PIN: 18 Port: C2 X_MIN_PIN protected
+ . X_STOP_PIN protected
+ PIN: 19 Port: C3 Y_MIN_PIN protected
+ . Y_STOP_PIN protected
+ PIN: 20 Port: C4 Z_MIN_PIN protected
+ . Z_STOP_PIN protected
+ PIN: 21 Port: C5 X_DIR_PIN protected
+ PIN: 22 Port: C6 Y_STEP_PIN protected
+ PIN: 23 Port: C7 Y_DIR_PIN protected
+ PIN: 24 Port: A7 TEMP_0_PIN protected
+ PIN: 25 Port: A6 TEMP_BED_PIN protected
+ PIN: 26 Port: A5 Z_ENABLE_PIN protected
+ PIN: 27 Port: A4 BEEPER_PIN Output = 0
+ PIN: 28 Port: A3 LCD_PINS_RS Output = 0
+ PIN: 29 Port: A2 <unused/unknown> Input = 0
+ PIN: 30 Port: A1 LCD_PINS_D4 Output = 1
+ PIN: 31 Port: A0 SDSS Output = 1
+*/
+
+/**
+ * EXP1 Connector EXP1 as CR10 STOCKDISPLAY
+ * _____ _____
+ * PA4 | 6 5 | PC0 BEEPER_PIN | 6 5 | BTN_ENC
+ * PD3 | 7 4 | RESET BTN_EN1 | 7 4 | RESET
+ * PD2 8 3 | PA1 BTN_EN2 8 3 | LCD_PINS_D4 (ST9720 CLK)
+ * PA3 | 9 2 | PC1 (ST9720 CS) LCD_PINS_RS | 9 2 | LCD_PINS_ENABLE (ST9720 DAT)
+ * GND |10 1 | 5V GND |10 1 | 5V
+ * ----- -----
+ */
diff --git a/Marlin/src/pins/sanguino/pins_MELZI_MAKR3D.h b/Marlin/src/pins/sanguino/pins_MELZI_MAKR3D.h
new file mode 100644
index 0000000..0e09c1f
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_MELZI_MAKR3D.h
@@ -0,0 +1,29 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Melzi with ATmega1284 (MaKr3d version) pin assignments
+ */
+
+#define BOARD_INFO_NAME "Melzi (ATmega1284)"
+#include "pins_MELZI.h"
diff --git a/Marlin/src/pins/sanguino/pins_MELZI_MALYAN.h b/Marlin/src/pins/sanguino/pins_MELZI_MALYAN.h
new file mode 100644
index 0000000..8b4faee
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_MELZI_MALYAN.h
@@ -0,0 +1,58 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Melzi (Malyan M150) pin assignments
+ */
+
+#define BOARD_INFO_NAME "Melzi (Malyan)"
+
+// Alter timing for graphical display
+#if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+#endif
+
+#include "pins_MELZI.h"
+
+#undef LCD_SDSS
+#undef LCD_PINS_RS
+#undef LCD_PINS_ENABLE
+#undef LCD_PINS_D4
+#undef BTN_EN1
+#undef BTN_EN2
+#undef BTN_ENC
+
+#define LCD_PINS_RS 17 // ST9720 CS
+#define LCD_PINS_ENABLE 16 // ST9720 DAT
+#define LCD_PINS_D4 11 // ST9720 CLK
+#define BTN_EN1 30
+#define BTN_EN2 29
+#define BTN_ENC 28
diff --git a/Marlin/src/pins/sanguino/pins_MELZI_TRONXY.h b/Marlin/src/pins/sanguino/pins_MELZI_TRONXY.h
new file mode 100644
index 0000000..f878941
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_MELZI_TRONXY.h
@@ -0,0 +1,65 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Melzi pin assignments
+ */
+
+#define BOARD_INFO_NAME "Melzi (Tronxy)"
+
+#if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(0)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(0)
+ #endif
+#endif
+
+#include "pins_MELZI.h"
+
+#undef Z_ENABLE_PIN
+#undef LCD_PINS_RS
+#undef LCD_PINS_ENABLE
+#undef LCD_PINS_D4
+#undef LCD_PINS_D5
+#undef LCD_PINS_D6
+#undef LCD_PINS_D7
+#undef BTN_EN1
+#undef BTN_EN2
+#undef BTN_ENC
+#undef LCD_SDSS
+
+#define Z_ENABLE_PIN 14
+#define LCD_PINS_RS 30
+#define LCD_PINS_ENABLE 28
+#define LCD_PINS_D4 16
+#define LCD_PINS_D5 17
+#define LCD_PINS_D6 27
+#define LCD_PINS_D7 29
+#define BTN_EN1 10
+#define BTN_EN2 11
+#define BTN_ENC 26
diff --git a/Marlin/src/pins/sanguino/pins_MELZI_V2.h b/Marlin/src/pins/sanguino/pins_MELZI_V2.h
new file mode 100644
index 0000000..275498d
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_MELZI_V2.h
@@ -0,0 +1,39 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Melzi V2.0 as found at https://www.reprap.org/wiki/Melzi
+ */
+
+#define BOARD_INFO_NAME "Melzi V2"
+
+#if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(0)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(188)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(0)
+ #endif
+#endif
+
+#include "pins_MELZI.h"
diff --git a/Marlin/src/pins/sanguino/pins_OMCA.h b/Marlin/src/pins/sanguino/pins_OMCA.h
new file mode 100644
index 0000000..7f18283
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_OMCA.h
@@ -0,0 +1,149 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Open Motion controller with enable based extruders (Final!)
+ *
+ * ATmega644
+ *
+ * +---\/---+
+ * (D 0) PB0 1| |40 PA0 (AI 0 / D31)
+ * (D 1) PB1 2| |39 PA1 (AI 1 / D30)
+ * INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29)
+ * PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28)
+ * PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27)
+ * MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26)
+ * MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25)
+ * SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24)
+ * RST 9| |32 AREF
+ * VCC 10| |31 GND
+ * GND 11| |30 AVCC
+ * XTAL2 12| |29 PC7 (D 23)
+ * XTAL1 13| |28 PC6 (D 22)
+ * RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI
+ * TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO
+ * INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS
+ * INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK
+ * PWM (D 12) PD4 18| |23 PC1 (D 17) SDA
+ * PWM (D 13) PD5 19| |22 PC0 (D 16) SCL
+ * PWM (D 14) PD6 20| |21 PD7 (D 15) PWM
+ * +--------+
+ *
+ * REF http://sanguino.wikidot.com/hardware
+ */
+
+/**
+ * Rev B 26 DEC 2016
+ *
+ * added pointer to a current Arduino IDE extension
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at http://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the Sanguino board and then select the CPU.
+ */
+
+#if NOT_TARGET(__AVR_ATmega644P__, __AVR_ATmega644__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Board' and 'ATmega644' or 'ATmega644P' in 'Tools > Processor.'"
+#endif
+
+#define BOARD_INFO_NAME "Final OMCA"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 0
+#define Y_STOP_PIN 1
+#define Z_STOP_PIN 2
+
+//
+// Steppers
+//
+#define X_STEP_PIN 26
+#define X_DIR_PIN 25
+#define X_ENABLE_PIN 10
+
+#define Y_STEP_PIN 28
+#define Y_DIR_PIN 27
+#define Y_ENABLE_PIN 10
+
+#define Z_STEP_PIN 23
+#define Z_DIR_PIN 22
+#define Z_ENABLE_PIN 10
+
+#define E0_STEP_PIN 24
+#define E0_DIR_PIN 21
+#define E0_ENABLE_PIN 10
+
+#define E1_STEP_PIN -1 // 21
+#define E1_DIR_PIN -1 // 20
+#define E1_ENABLE_PIN -1 // 19
+
+#define E2_STEP_PIN -1 // 21
+#define E2_DIR_PIN -1 // 20
+#define E2_ENABLE_PIN -1 // 18
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input
+#define TEMP_1_PIN 1 // Analog Input
+#define TEMP_BED_PIN 2 // Analog Input (1,2 or I2C)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 3 // DONE PWM on RIGHT connector
+#define HEATER_BED_PIN 4
+
+#ifndef FAN_PIN
+ #define FAN_PIN 14 // PWM on MIDDLE connector
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 11
+
+#define I2C_SCL_PIN 16
+#define I2C_SDA_PIN 17
+
+// future proofing
+#define __FS 20
+#define __FD 19
+#define __GS 18
+#define __GD 13
+
+#define UNUSED_PWM 14 // PWM on LEFT connector
diff --git a/Marlin/src/pins/sanguino/pins_OMCA_A.h b/Marlin/src/pins/sanguino/pins_OMCA_A.h
new file mode 100644
index 0000000..7707320
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_OMCA_A.h
@@ -0,0 +1,135 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Open Motion controller with enable based extruders (Alpha!)
+ *
+ * ATmega644
+ *
+ * +---\/---+
+ * (D 0) PB0 1| |40 PA0 (AI 0 / D31)
+ * (D 1) PB1 2| |39 PA1 (AI 1 / D30)
+ * INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29)
+ * PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28)
+ * PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27)
+ * MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26)
+ * MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25)
+ * SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24)
+ * RST 9| |32 AREF
+ * VCC 10| |31 GND
+ * GND 11| |30 AVCC
+ * XTAL2 12| |29 PC7 (D 23)
+ * XTAL1 13| |28 PC6 (D 22)
+ * RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI
+ * TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO
+ * INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS
+ * INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK
+ * PWM (D 12) PD4 18| |23 PC1 (D 17) SDA
+ * PWM (D 13) PD5 19| |22 PC0 (D 16) SCL
+ * PWM (D 14) PD6 20| |21 PD7 (D 15) PWM
+ * +--------+
+ */
+
+/**
+ * Rev B 26 DEC 2016
+ *
+ * added pointer to a current Arduino IDE extension
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the Sanguino board and then select the CPU.
+ */
+
+#if NOT_TARGET(__AVR_ATmega644__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Board' and ATmega644 in 'Tools > Processor.'"
+#endif
+
+#define BOARD_INFO_NAME "Alpha OMCA"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 0
+#define Y_STOP_PIN 1
+#define Z_STOP_PIN 2
+
+//
+// Steppers
+//
+#define X_STEP_PIN 21
+#define X_DIR_PIN 20
+#define X_ENABLE_PIN 24
+
+#define Y_STEP_PIN 23
+#define Y_DIR_PIN 22
+#define Y_ENABLE_PIN 24
+
+#define Z_STEP_PIN 26
+#define Z_DIR_PIN 25
+#define Z_ENABLE_PIN 24
+
+#define E0_STEP_PIN 28
+#define E0_DIR_PIN 27
+#define E0_ENABLE_PIN 24
+
+#define E1_STEP_PIN -1 // 19
+#define E1_DIR_PIN -1 // 18
+#define E1_ENABLE_PIN 24
+
+#define E2_STEP_PIN -1 // 17
+#define E2_DIR_PIN -1 // 16
+#define E2_ENABLE_PIN 24
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 0 // Analog Input (D27)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 4
+
+#ifndef FAN_PIN
+ #define FAN_PIN 3
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 11
+
+/* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */
diff --git a/Marlin/src/pins/sanguino/pins_SANGUINOLOLU_11.h b/Marlin/src/pins/sanguino/pins_SANGUINOLOLU_11.h
new file mode 100644
index 0000000..af27159
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_SANGUINOLOLU_11.h
@@ -0,0 +1,344 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Sanguinololu board pin assignments
+ */
+
+/**
+ * Rev B 26 DEC 2016
+ *
+ * 1) added pointer to a current Arduino IDE extension
+ * 2) added support for M3, M4 & M5 spindle control commands
+ * 3) added case light pin definition
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the Sanguino board and then select the CPU.
+ */
+
+#if NOT_TARGET(__AVR_ATmega644P__, __AVR_ATmega1284P__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Boards' and 'ATmega644P' or 'ATmega1284P' in 'Tools > Processor.'"
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Sanguinololu <1.2"
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 18
+#define Y_STOP_PIN 19
+#define Z_STOP_PIN 20
+
+//
+// Steppers
+//
+#define X_STEP_PIN 15
+#define X_DIR_PIN 21
+
+#define Y_STEP_PIN 22
+#define Y_DIR_PIN 23
+
+#define Z_STEP_PIN 3
+#define Z_DIR_PIN 2
+
+#define E0_STEP_PIN 1
+#define E0_DIR_PIN 0
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 7 // Analog Input (pin 33 extruder)
+#define TEMP_BED_PIN 6 // Analog Input (pin 34 bed)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 13 // (extruder)
+
+#if ENABLED(SANGUINOLOLU_V_1_2)
+
+ #define HEATER_BED_PIN 12 // (bed)
+ #define X_ENABLE_PIN 14
+ #define Y_ENABLE_PIN 14
+ #define Z_ENABLE_PIN 26
+ #define E0_ENABLE_PIN 14
+
+ #if !defined(FAN_PIN) && ENABLED(LCD_I2C_PANELOLU2)
+ #define FAN_PIN 4 // Uses Transistor1 (PWM) on Panelolu2's Sanguino Adapter Board to drive the fan
+ #endif
+
+#else
+
+ #define HEATER_BED_PIN 14 // (bed)
+ #define X_ENABLE_PIN 4
+ #define Y_ENABLE_PIN 4
+ #define Z_ENABLE_PIN 4
+ #define E0_ENABLE_PIN 4
+
+#endif
+
+#if !defined(FAN_PIN) && (MB(AZTEEG_X1, STB_11) || IS_MELZI)
+ #define FAN_PIN 4 // Works for Panelolu2 too
+#endif
+
+//
+// Misc. Functions
+//
+
+/**
+ * In some versions of the Sanguino libraries the pin
+ * definitions are wrong, with SDSS = 24 and LED_PIN = 28 (Melzi).
+ * If you encounter issues with these pins, upgrade your
+ * Sanguino libraries! See #368.
+ */
+//#define SDSS 24
+#define SDSS 31
+
+#if IS_MELZI
+ #define LED_PIN 27
+#elif MB(STB_11)
+ #define LCD_BACKLIGHT_PIN 17 // LCD backlight LED
+#endif
+
+#if NONE(SPINDLE_FEATURE, LASER_FEATURE) && ENABLED(SANGUINOLOLU_V_1_2) && !BOTH(IS_ULTRA_LCD, IS_NEWPANEL) // try to use IO Header
+ #define CASE_LIGHT_PIN 4 // Hardware PWM - see if IO Header is available
+#endif
+
+/**
+ * Sanguinololu 1.4 AUX pins:
+ *
+ * PWM TX1 RX1 SDA SCL
+ * 12V 5V D12 D11 D10 D17 D16
+ * GND GND D31 D30 D29 D28 D27
+ * A4 A3 A2 A1 A0
+ */
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #define SD_DETECT_PIN -1
+
+ #if HAS_MARLINUI_U8GLIB
+
+ #if ENABLED(LCD_FOR_MELZI)
+
+ #define LCD_PINS_RS 17
+ #define LCD_PINS_ENABLE 16
+ #define LCD_PINS_D4 11
+ #define KILL_PIN 10
+ #define BEEPER_PIN 27
+
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(0)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(188)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(0)
+ #endif
+
+ #elif ENABLED(U8GLIB_ST7920) // SPI GLCD 12864 ST7920 ( like [www.digole.com] ) For Melzi V2.0
+
+ #if IS_MELZI
+ #define LCD_PINS_RS 30 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE 29 // SID (MOSI)
+ #define LCD_PINS_D4 17 // SCK (CLK) clock
+ // Pin 27 is taken by LED_PIN, but Melzi LED does nothing with
+ // Marlin so this can be used for BEEPER_PIN. You can use this pin
+ // with M42 instead of BEEPER_PIN.
+ #define BEEPER_PIN 27
+
+ #if IS_RRD_FG_SC
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(0)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(188)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(0)
+ #endif
+ #endif
+
+ #else // Sanguinololu >=1.3
+ #define LCD_PINS_RS 4
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 30
+ #define LCD_PINS_D5 29
+ #define LCD_PINS_D6 28
+ #define LCD_PINS_D7 27
+ #endif
+
+ #else
+
+ #define DOGLCD_A0 30
+
+ #if ENABLED(MAKRPANEL)
+
+ #define BEEPER_PIN 29
+ #define DOGLCD_CS 17
+ #define LCD_BACKLIGHT_PIN 28 // PA3
+
+ #elif IS_MELZI
+
+ #define BEEPER_PIN 27
+ #define DOGLCD_CS 28
+
+ #else // !MAKRPANEL
+
+ #define DOGLCD_CS 29
+
+ #endif
+
+ #endif
+
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_0
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ #elif ENABLED(ZONESTAR_LCD) // For the Tronxy Melzi boards
+
+ #define LCD_PINS_RS 28
+ #define LCD_PINS_ENABLE 29
+ #define LCD_PINS_D4 10
+ #define LCD_PINS_D5 11
+ #define LCD_PINS_D6 16
+ #define LCD_PINS_D7 17
+
+ #else
+
+ #define LCD_PINS_RS 4
+ #define LCD_PINS_ENABLE 17
+ #define LCD_PINS_D4 30
+ #define LCD_PINS_D5 29
+ #define LCD_PINS_D6 28
+ #define LCD_PINS_D7 27
+
+ #endif
+
+ #if ENABLED(LCD_FOR_MELZI)
+
+ #define BTN_ENC 28
+ #define BTN_EN1 29
+ #define BTN_EN2 30
+
+ #elif ENABLED(ZONESTAR_LCD) // For the Tronxy Melzi boards
+
+ #define ADC_KEYPAD_PIN 1
+ #define BTN_EN1 -1
+ #define BTN_EN2 -1
+
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+
+ #if IS_MELZI
+ #define BTN_ENC 29
+ #define LCD_SDSS 30 // Panelolu2 SD card reader rather than the Melzi
+ #else
+ #define BTN_ENC 30
+ #endif
+
+ #else // !LCD_FOR_MELZI && !ZONESTAR_LCD && !LCD_I2C_PANELOLU2
+
+ #define BTN_ENC 16
+ #define LCD_SDSS 28 // Smart Controller SD card reader rather than the Melzi
+
+ #endif
+
+ #if IS_NEWPANEL && !defined(BTN_EN1)
+ #define BTN_EN1 11
+ #define BTN_EN2 10
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if HAS_CUTTER
+ #if !MB(AZTEEG_X1) && ENABLED(SANGUINOLOLU_V_1_2) && !BOTH(IS_ULTRA_LCD, IS_NEWPANEL) // try to use IO Header
+
+ #define SPINDLE_LASER_ENA_PIN 10 // Pullup or pulldown!
+ #define SPINDLE_LASER_PWM_PIN 4 // Hardware PWM
+ #define SPINDLE_DIR_PIN 11
+
+ #elif !MB(MELZI) // use X stepper motor socket
+
+ /**
+ * To control the spindle speed and have an LCD you must sacrifice
+ * the Extruder and pull some signals off the X stepper driver socket.
+ *
+ * The following assumes:
+ * - The X stepper driver socket is empty
+ * - The extruder driver socket has a driver board plugged into it
+ * - The X stepper wires are attached the the extruder connector
+ */
+
+ /**
+ * Where to get the spindle signals
+ *
+ * spindle signal socket name socket name
+ * -------
+ * /ENABLE O| |O VMOT
+ * MS1 O| |O GND
+ * MS2 O| |O 2B
+ * MS3 O| |O 2A
+ * /RESET O| |O 1A
+ * /SLEEP O| |O 1B
+ * SPINDLE_LASER_PWM_PIN STEP O| |O VDD
+ * SPINDLE_LASER_ENA_PIN DIR O| |O GND
+ * -------
+ *
+ * Note: Socket names vary from vendor to vendor.
+ */
+ #undef X_DIR_PIN
+ #undef X_ENABLE_PIN
+ #undef X_STEP_PIN
+ #define X_DIR_PIN 0
+ #define X_ENABLE_PIN 14
+ #define X_STEP_PIN 1
+ #define SPINDLE_LASER_PWM_PIN 15 // Hardware PWM
+ #define SPINDLE_LASER_ENA_PIN 21 // Pullup!
+ #define SPINDLE_DIR_PIN -1 // No pin available on the socket for the direction pin
+ #endif
+#endif
diff --git a/Marlin/src/pins/sanguino/pins_SANGUINOLOLU_12.h b/Marlin/src/pins/sanguino/pins_SANGUINOLOLU_12.h
new file mode 100644
index 0000000..c5c8b4f
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_SANGUINOLOLU_12.h
@@ -0,0 +1,42 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Sanguinololu V1.2 pin assignments
+ *
+ * Applies to the following boards:
+ *
+ * AZTEEG_X1
+ * MELZI
+ * MELZI_CREALITY
+ * MELZI_MAKR3D
+ * SANGUINOLOLU_12
+ * STB_11
+ */
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Sanguinololu 1.2"
+#endif
+
+#define SANGUINOLOLU_V_1_2
+#include "pins_SANGUINOLOLU_11.h"
diff --git a/Marlin/src/pins/sanguino/pins_SETHI.h b/Marlin/src/pins/sanguino/pins_SETHI.h
new file mode 100644
index 0000000..dc2133e
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_SETHI.h
@@ -0,0 +1,124 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Sethi 3D_1 pin assignments - www.sethi3d.com.br
+ */
+
+/**
+ * Rev B 26 DEC 2016
+ *
+ * added pointer to a current Arduino IDE extension
+ * this assumes that this board uses the Sanguino pin map
+ */
+
+/**
+ * A useable Arduino IDE extension (board manager) can be found at
+ * https://github.com/Lauszus/Sanguino
+ *
+ * This extension has been tested on Arduino 1.6.12 & 1.8.0
+ *
+ * Here's the JSON path:
+ * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
+ *
+ * When installing select 1.0.2
+ *
+ * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
+ * Just use the above JSON URL instead of Sparkfun's JSON.
+ *
+ * Once installed select the Sanguino board and then select the CPU.
+ */
+
+#if NOT_TARGET(__AVR_ATmega644P__, __AVR_ATmega644__, __AVR_ATmega1284P__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Boards' and 'ATmega644', 'ATmega644P', or 'ATmega1284P' in 'Tools > Processor.'"
+#endif
+
+#define BOARD_INFO_NAME "Sethi 3D_1"
+
+#ifndef GEN7_VERSION
+ #define GEN7_VERSION 12 // v1.x
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 2
+#define Y_STOP_PIN 0
+#define Z_MIN_PIN 1
+#define Z_MAX_PIN 0
+
+//
+// Steppers
+//
+#define X_STEP_PIN 19
+#define X_DIR_PIN 18
+#define X_ENABLE_PIN 24
+
+#define Y_STEP_PIN 23
+#define Y_DIR_PIN 22
+#define Y_ENABLE_PIN 24
+
+#define Z_STEP_PIN 26
+#define Z_DIR_PIN 25
+#define Z_ENABLE_PIN 24
+
+#define E0_STEP_PIN 28
+#define E0_DIR_PIN 27
+#define E0_ENABLE_PIN 24
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 1 // Analog Input
+#define TEMP_BED_PIN 2 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 4
+#define HEATER_BED_PIN 3
+
+#ifndef FAN_PIN
+ #if GEN7_VERSION >= 13
+ // Gen7 v1.3 removed the fan pin
+ #define FAN_PIN -1
+ #else
+ #define FAN_PIN 31
+ #endif
+#endif
+
+//
+// Misc. Functions
+//
+#define PS_ON_PIN 15
+
+// All these generations of Gen7 supply thermistor power
+// via PS_ON, so ignore bad thermistor readings
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+// our pin for debugging.
+#define DEBUG_PIN 0
+
+// our RS485 pins
+#define TX_ENABLE_PIN 12
+#define RX_ENABLE_PIN 13
diff --git a/Marlin/src/pins/sanguino/pins_STB_11.h b/Marlin/src/pins/sanguino/pins_STB_11.h
new file mode 100644
index 0000000..b10a098
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_STB_11.h
@@ -0,0 +1,30 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * STB V1.1 pin assignments
+ */
+
+#define BOARD_INFO_NAME "STB V1.1"
+
+#include "pins_SANGUINOLOLU_12.h"
diff --git a/Marlin/src/pins/sanguino/pins_ZMIB_V2.h b/Marlin/src/pins/sanguino/pins_ZMIB_V2.h
new file mode 100644
index 0000000..d064d80
--- /dev/null
+++ b/Marlin/src/pins/sanguino/pins_ZMIB_V2.h
@@ -0,0 +1,234 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__AVR_ATmega644P__, __AVR_ATmega1284P__)
+ #error "Oops! Select 'Sanguino' in 'Tools > Boards' and 'ATmega644P' or 'ATmega1284P' in 'Tools > Processor.'"
+#endif
+
+#define BOARD_INFO_NAME "Zonestar ZMIB_V2"
+#define BOARD_WEBSITE_URL "www.aliexpress.com/item/32957490744.html"
+
+#define IS_ZMIB_V2
+
+/**
+ * ZMIB pin assignments
+ *
+ * The ZMIB board needs a bootloader installed before Marlin can be uploaded.
+ * If you don't have a chip programmer you can use a spare Arduino plus a few
+ * electronic components to write the bootloader.
+ *
+ * See http://www.instructables.com/id/Burn-Arduino-Bootloader-with-Arduino-MEGA/
+ */
+
+/**
+ * PIN: 0 Port: B0 HEATER_0_PIN
+ * PIN: 1 Port: B1 HEATER_BED_PIN
+ * PIN: 2 Port: B2 EXP1_4(BTN_EN2)
+ * PIN: 3 Port: B3 V1: SD_DETECT_PIN
+ * PIN: 3 Port: B3 V2: EXP1_6
+ * PIN: 4 Port: B4 SDSS
+ * PIN: 4 Port: B4 V1: EXP1_6
+ * PIN: 5 Port: B5 AVR_MOSI_PIN
+ * . SD_MOSI_PIN
+ * PIN: 6 Port: B6 AVR_MISO_PIN
+ * . EXP1_9(SD_MISO_PIN)
+ * PIN: 7 Port: B7 AVR_SCK_PIN
+ * . EXP1_10(SD_SCK_PIN)
+ * PIN: 8 Port: D0 RXD
+ * PIN: 9 Port: D1 TXD
+ * PIN: 10 Port: D2 EXP1_8
+ * PIN: 11 Port: D3 EXP1_7
+ * PIN: 12 Port: D4 EXP1_5(BTN_EN1)
+ * PIN: 13 Port: D5 Z_MIN_PIN
+ * PIN: 14 Port: D6 E1_DIR_PIN
+ * PIN: 15 Port: D7 E1_STEP_PIN
+ * PIN: 16 Port: C0 Z_DIR_PIN
+ * PIN: 17 Port: C1 Z_STEP_PIN
+ * PIN: 18 Port: C2 Y_MIN_PIN
+ * PIN: 19 Port: C3 Y_DIR_PIN
+ * PIN: 20 Port: C4 Y_STEP_PIN
+ * PIN: 21 Port: C5 X_MIN_PIN
+ * PIN: 22 Port: C6 X_DIR_PIN
+ * PIN: 23 Port: C7 X_STEP_PIN
+ * PIN: 24 Port: A7 X_ENABLE_PIN
+ * Y_ENABLE_PIN
+ * Z_ENABLE_PIN
+ * E0_ENABLE_PIN
+ * E1_ENABLE_PIN
+ * PIN: 25 Port: A6 FIL_RUNOUT_PIN
+ * PIN: 26 Port: A5 E0_DIR_PIN
+ * PIN: 27 Port: A4 E0_STEP_PIN
+ * PIN: 28 Port: A3 FAN_PIN
+ * PIN: 29 Port: A2 EXP1_3(BTN_ENC)
+ * ADC_KEY_PIN
+ * PIN: 30 Port: A1 TEMP_0_PIN
+ * PIN: 31 Port: A0 TEMP_BED_PIN
+ */
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 21
+#define Y_MIN_PIN 18
+
+#if EITHER(Z6S_ZFAULT, Z6BS_ZFAULT)
+ #define Z_MIN_PIN 25
+#else
+ #define Z_MIN_PIN 13
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 23
+#define X_DIR_PIN 22
+#define X_ENABLE_PIN 24
+
+#define Y_STEP_PIN 20
+#define Y_DIR_PIN 19
+#define Y_ENABLE_PIN 24
+
+#if EITHER(Z6S_ZFAULT, Z6BS_ZFAULT)
+ #define Z_STEP_PIN 27
+ #define Z_DIR_PIN 26
+#else
+ #define Z_STEP_PIN 17
+ #define Z_DIR_PIN 16
+#endif
+
+#define Z_ENABLE_PIN 24
+
+#if EITHER(Z6S_ZFAULT, Z6BS_ZFAULT)
+ #define E0_STEP_PIN 15
+ #define E0_DIR_PIN 14
+#else
+ #define E0_STEP_PIN 27
+ #define E0_DIR_PIN 26
+#endif
+
+#define E0_ENABLE_PIN 24
+
+#define E1_STEP_PIN 15
+#define E1_DIR_PIN 14
+#define E1_ENABLE_PIN 24
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 1 // Analog Input
+#define TEMP_BED_PIN 0 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 0
+#define HEATER_BED_PIN 1
+#define FAN_PIN 28
+#define FAN1_PIN -1
+
+//
+//filament run out sensor
+//
+#if EITHER(Z6S_ZFAULT, Z6BS_ZFAULT)
+ #define FIL_RUNOUT_PIN 13
+#else
+ #define FIL_RUNOUT_PIN 25 // Z-MIN
+#endif
+
+//
+// SD card
+//
+#if ENABLED(SDSUPPORT)
+ #define SDSS 4
+#endif
+#define SD_DETECT_PIN -1
+
+/*===================================================
+ * ZMIB Version 1 - EXP1 Connector
+ * MOSI(D5) TX1(D11) ENA(D12) ENC(D29/A2) 5V
+ * SCK(D7) RX1(D10) SCS(D4) ENB(D2) GND
+ *===================================================
+ * ZMIB Version 2 - EXP1 Connector
+ * MOSI(D5) TX1(D11) ENA(D12) ENC(D29/A2) 5V
+ * SCK(D7) RX1(D10) SCS(D3) ENB(D2) GND
+ *===================================================
+ * LCD 128x64
+ *==================================================*/
+
+#if ENABLED(ZONESTAR_12864LCD)
+ //
+ // LCD 128x64
+ //
+ #define LCDSCREEN_NAME "ZONESTAR_12864LCD"
+ #define FORCE_SOFT_SPI
+ //#define LCD_SDSS 11
+ #define LCD_PINS_RS 11 // ST7920_CS_PIN LCD_PIN_RS (PIN4 of LCD module)
+ #ifdef IS_ZMIB_V2
+ #define LCD_PINS_ENABLE 3 // ST7920_DAT_PIN LCD_PIN_R/W (PIN5 of LCD module)
+ #else
+ #define LCD_PINS_ENABLE 4 // ST7920_DAT_PIN LCD_PIN_R/W (PIN5 of LCD module)
+ #endif
+ #define LCD_PINS_D4 10 // ST7920_CLK_PIN LCD_PIN_ENABLE (PIN6 of LCD module)
+
+ // Alter timing for graphical display
+ #define ST7920_DELAY_1 DELAY_2_NOP
+ #define ST7920_DELAY_2 DELAY_2_NOP
+ #define ST7920_DELAY_3 DELAY_2_NOP
+
+#elif EITHER(ZONESTAR_12864OLED, ZONESTAR_12864OLED_SSD1306)
+ //
+ // OLED 128x64
+ //
+ #define LCDSCREEN_NAME "ZONESTAR 12864OLED"
+ #define FORCE_SOFT_SPI
+ #ifdef IS_ZMIB_V2
+ #define LCD_PINS_RS 3 // RESET
+ #else
+ #define LCD_PINS_RS 4 // RESET
+ #endif
+ #define LCD_PINS_DC 10 // DC
+ #define DOGLCD_CS 11 // CS
+ #if ENABLED(OLED_HW_IIC)
+ #error "Oops! can't choose HW IIC for ZMIB board!!"
+ #elif ENABLED(OLED_HW_SPI)
+ // HW SPI
+ #define DOGLCD_A0 LCD_PINS_DC // A0 = DC
+ #else
+ // SW SPI
+ #define DOGLCD_A0 LCD_PINS_DC // A0 = DC
+ #define DOGLCD_MOSI AVR_MOSI_PIN // SDA
+ #define DOGLCD_SCK AVR_SCK_PIN // SCK
+ #endif
+
+#endif
+
+//
+// All the above are also RRDSC with rotary encoder
+//
+#if IS_RRD_SC
+ #define BTN_EN1 2
+ #define BTN_EN2 12
+ #define BTN_ENC 29
+ #define BEEPER_PIN -1
+ #define KILL_PIN -1
+#endif
diff --git a/Marlin/src/pins/sensitive_pins.h b/Marlin/src/pins/sensitive_pins.h
new file mode 100644
index 0000000..d7eb187
--- /dev/null
+++ b/Marlin/src/pins/sensitive_pins.h
@@ -0,0 +1,689 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+//
+// Prepare a list of protected pins for M42/M43
+//
+
+#if PIN_EXISTS(X_MIN)
+ #define _X_MIN X_MIN_PIN,
+#else
+ #define _X_MIN
+#endif
+#if PIN_EXISTS(X_MAX)
+ #define _X_MAX X_MAX_PIN,
+#else
+ #define _X_MAX
+#endif
+#if PIN_EXISTS(X_CS) && AXIS_HAS_SPI(X)
+ #define _X_CS X_CS_PIN,
+#else
+ #define _X_CS
+#endif
+#if PIN_EXISTS(X_MS1)
+ #define _X_MS1 X_MS1_PIN,
+#else
+ #define _X_MS1
+#endif
+#if PIN_EXISTS(X_MS2)
+ #define _X_MS2 X_MS2_PIN,
+#else
+ #define _X_MS2
+#endif
+#if PIN_EXISTS(X_MS3)
+ #define _X_MS3 X_MS3_PIN,
+#else
+ #define _X_MS3
+#endif
+
+#define _X_PINS X_STEP_PIN, X_DIR_PIN, X_ENABLE_PIN, _X_MIN _X_MAX _X_MS1 _X_MS2 _X_MS3 _X_CS
+
+#if PIN_EXISTS(Y_MIN)
+ #define _Y_MIN Y_MIN_PIN,
+#else
+ #define _Y_MIN
+#endif
+#if PIN_EXISTS(Y_MAX)
+ #define _Y_MAX Y_MAX_PIN,
+#else
+ #define _Y_MAX
+#endif
+#if PIN_EXISTS(Y_CS) && AXIS_HAS_SPI(Y)
+ #define _Y_CS Y_CS_PIN,
+#else
+ #define _Y_CS
+#endif
+#if PIN_EXISTS(Y_MS1)
+ #define _Y_MS1 Y_MS1_PIN,
+#else
+ #define _Y_MS1
+#endif
+#if PIN_EXISTS(Y_MS2)
+ #define _Y_MS2 Y_MS2_PIN,
+#else
+ #define _Y_MS2
+#endif
+#if PIN_EXISTS(Y_MS3)
+ #define _Y_MS3 Y_MS3_PIN,
+#else
+ #define _Y_MS3
+#endif
+
+#define _Y_PINS Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, _Y_MIN _Y_MAX _Y_MS1 _Y_MS2 _Y_MS3 _Y_CS
+
+#if PIN_EXISTS(Z_MIN)
+ #define _Z_MIN Z_MIN_PIN,
+#else
+ #define _Z_MIN
+#endif
+#if PIN_EXISTS(Z_MAX)
+ #define _Z_MAX Z_MAX_PIN,
+#else
+ #define _Z_MAX
+#endif
+#if PIN_EXISTS(Z_CS) && AXIS_HAS_SPI(Z)
+ #define _Z_CS Z_CS_PIN,
+#else
+ #define _Z_CS
+#endif
+#if PIN_EXISTS(Z_MS1)
+ #define _Z_MS1 Z_MS1_PIN,
+#else
+ #define _Z_MS1
+#endif
+#if PIN_EXISTS(Z_MS2)
+ #define _Z_MS2 Z_MS2_PIN,
+#else
+ #define _Z_MS2
+#endif
+#if PIN_EXISTS(Z_MS3)
+ #define _Z_MS3 Z_MS3_PIN,
+#else
+ #define _Z_MS3
+#endif
+
+#define _Z_PINS Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, _Z_MIN _Z_MAX _Z_MS1 _Z_MS2 _Z_MS3 _Z_CS
+
+//
+// Extruder Chip Select, Digital Micro-steps
+//
+
+// Mixing stepper, Switching stepper, or regular stepper
+#define E_NEEDED(N) (ENABLED(MIXING_EXTRUDER) && MIXING_STEPPERS > N) \
+ || (ENABLED(SWITCHING_EXTRUDER) && E_STEPPERS > N) \
+ || (NONE(SWITCHING_EXTRUDER, MIXING_EXTRUDER) && EXTRUDERS > N)
+
+#define _E0_CS
+#define _E0_MS1
+#define _E0_MS2
+#define _E0_MS3
+
+#if E_NEEDED(0)
+ #if PIN_EXISTS(E0_CS) && AXIS_HAS_SPI(E0)
+ #undef _E0_CS
+ #define _E0_CS E0_CS_PIN,
+ #endif
+ #if PIN_EXISTS(E0_MS1)
+ #undef _E0_MS1
+ #define _E0_MS1 E0_MS1_PIN,
+ #endif
+ #if PIN_EXISTS(E0_MS2)
+ #undef _E0_MS2
+ #define _E0_MS2 E0_MS2_PIN,
+ #endif
+ #if PIN_EXISTS(E0_MS3)
+ #undef _E0_MS3
+ #define _E0_MS3 E0_MS3_PIN,
+ #endif
+#endif
+
+#define _E1_CS
+#define _E1_MS1
+#define _E1_MS2
+#define _E1_MS3
+
+#if E_NEEDED(1)
+ #if PIN_EXISTS(E1_CS) && AXIS_HAS_SPI(E1)
+ #undef _E1_CS
+ #define _E1_CS E1_CS_PIN,
+ #endif
+ #if PIN_EXISTS(E1_MS1)
+ #undef _E1_MS1
+ #define _E1_MS1 E1_MS1_PIN,
+ #endif
+ #if PIN_EXISTS(E1_MS2)
+ #undef _E1_MS2
+ #define _E1_MS2 E1_MS2_PIN,
+ #endif
+ #if PIN_EXISTS(E1_MS3)
+ #undef _E1_MS3
+ #define _E1_MS3 E1_MS3_PIN,
+ #endif
+#endif
+
+#define _E2_CS
+#define _E2_MS1
+#define _E2_MS2
+#define _E2_MS3
+
+#if E_NEEDED(2)
+ #if PIN_EXISTS(E2_CS) && AXIS_HAS_SPI(E2)
+ #undef _E2_CS
+ #define _E2_CS E2_CS_PIN,
+ #endif
+ #if PIN_EXISTS(E2_MS1)
+ #undef _E2_MS1
+ #define _E2_MS1 E2_MS1_PIN,
+ #endif
+ #if PIN_EXISTS(E2_MS2)
+ #undef _E2_MS2
+ #define _E2_MS2 E2_MS2_PIN,
+ #endif
+ #if PIN_EXISTS(E2_MS3)
+ #undef _E2_MS3
+ #define _E2_MS3 E2_MS3_PIN,
+ #endif
+#endif
+
+#define _E3_CS
+#define _E3_MS1
+#define _E3_MS2
+#define _E3_MS3
+
+#if E_NEEDED(3)
+ #if PIN_EXISTS(E3_CS) && AXIS_HAS_SPI(E3)
+ #undef _E3_CS
+ #define _E3_CS E3_CS_PIN,
+ #endif
+ #if PIN_EXISTS(E3_MS1)
+ #undef _E3_MS1
+ #define _E3_MS1 E3_MS1_PIN,
+ #endif
+ #if PIN_EXISTS(E3_MS2)
+ #undef _E3_MS2
+ #define _E3_MS2 E3_MS2_PIN,
+ #endif
+ #if PIN_EXISTS(E3_MS3)
+ #undef _E3_MS3
+ #define _E3_MS3 E3_MS3_PIN,
+ #endif
+#endif
+
+#define _E4_CS
+#define _E4_MS1
+#define _E4_MS2
+#define _E4_MS3
+
+#if E_NEEDED(4)
+ #if PIN_EXISTS(E4_CS) && AXIS_HAS_SPI(E4)
+ #undef _E4_CS
+ #define _E4_CS E4_CS_PIN,
+ #endif
+ #if PIN_EXISTS(E4_MS1)
+ #undef _E4_MS1
+ #define _E4_MS1 E4_MS1_PIN,
+ #endif
+ #if PIN_EXISTS(E4_MS2)
+ #undef _E4_MS2
+ #define _E4_MS2 E4_MS2_PIN,
+ #endif
+ #if PIN_EXISTS(E4_MS3)
+ #undef _E4_MS3
+ #define _E4_MS3 E4_MS3_PIN,
+ #endif
+#endif
+
+#define _E5_CS
+#define _E5_MS1
+#define _E5_MS2
+#define _E5_MS3
+
+#if E_NEEDED(5)
+ #if PIN_EXISTS(E5_CS) && AXIS_HAS_SPI(E5)
+ #undef _E5_CS
+ #define _E5_CS E5_CS_PIN,
+ #endif
+ #if PIN_EXISTS(E5_MS1)
+ #undef _E5_MS1
+ #define _E5_MS1 E5_MS1_PIN,
+ #endif
+ #if PIN_EXISTS(E5_MS2)
+ #undef _E5_MS2
+ #define _E5_MS2 E5_MS2_PIN,
+ #endif
+ #if PIN_EXISTS(E5_MS3)
+ #undef _E5_MS3
+ #define _E5_MS3 E5_MS3_PIN,
+ #endif
+#endif
+
+#define _E6_CS
+#define _E6_MS1
+#define _E6_MS2
+#define _E6_MS3
+
+#if E_NEEDED(6)
+ #if PIN_EXISTS(E6_CS) && AXIS_HAS_SPI(E6)
+ #undef _E6_CS
+ #define _E6_CS E6_CS_PIN,
+ #endif
+ #if PIN_EXISTS(E6_MS2)
+ #undef _E6_MS2
+ #define _E6_MS2 E6_MS2_PIN,
+ #endif
+ #if PIN_EXISTS(E6_MS3)
+ #undef _E6_MS3
+ #define _E6_MS3 E6_MS3_PIN,
+ #endif
+ #if PIN_EXISTS(E6_MS4)
+ #undef _E6_MS4
+ #define _E6_MS4 E6_MS4_PIN,
+ #endif
+#endif
+
+#define _E7_CS
+#define _E7_MS1
+#define _E7_MS2
+#define _E7_MS3
+
+#if E_NEEDED(7)
+ #if PIN_EXISTS(E7_CS) && AXIS_HAS_SPI(E7)
+ #undef _E7_CS
+ #define _E7_CS E7_CS_PIN,
+ #endif
+ #if PIN_EXISTS(E7_MS3)
+ #undef _E7_MS3
+ #define _E7_MS3 E7_MS3_PIN,
+ #endif
+ #if PIN_EXISTS(E7_MS4)
+ #undef _E7_MS4
+ #define _E7_MS4 E7_MS4_PIN,
+ #endif
+ #if PIN_EXISTS(E7_MS5)
+ #undef _E7_MS5
+ #define _E7_MS5 E7_MS5_PIN,
+ #endif
+#endif
+
+//
+// E Steppers
+//
+
+#define _E0_PINS
+#define _E1_PINS
+#define _E2_PINS
+#define _E3_PINS
+#define _E4_PINS
+#define _E5_PINS
+#define _E6_PINS
+#define _E7_PINS
+
+#if EXTRUDERS
+ #undef _E0_PINS
+ #define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, _E0_CS _E0_MS1 _E0_MS2 _E0_MS3
+#endif
+
+#if ENABLED(SWITCHING_EXTRUDER)
+ // Tools 0 and 1 use E0
+ #if EXTRUDERS > 2 // Tools 2 and 3 use E1
+ #undef _E1_PINS
+ #define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, _E1_CS _E1_MS1 _E1_MS2 _E1_MS3
+ #if EXTRUDERS > 4 // Tools 4 and 5 use E2
+ #undef _E2_PINS
+ #define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN, _E2_CS _E2_MS1 _E2_MS2 _E2_MS3
+ #endif
+ #endif
+
+#elif EITHER(HAS_MULTI_EXTRUDER, MIXING_EXTRUDER)
+
+ #undef _E1_PINS
+ #define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, _E1_CS _E1_MS1 _E1_MS2 _E1_MS3
+ #if EXTRUDERS > 2 || (ENABLED(MIXING_EXTRUDER) && MIXING_STEPPERS > 2)
+ #undef _E2_PINS
+ #define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN, _E2_CS _E2_MS1 _E2_MS2 _E2_MS3
+ #if EXTRUDERS > 3 || (ENABLED(MIXING_EXTRUDER) && MIXING_STEPPERS > 3)
+ #undef _E3_PINS
+ #define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN, _E3_CS _E3_MS1 _E3_MS2 _E3_MS3
+ #if EXTRUDERS > 4 || (ENABLED(MIXING_EXTRUDER) && MIXING_STEPPERS > 4)
+ #undef _E4_PINS
+ #define _E4_PINS E4_STEP_PIN, E4_DIR_PIN, E4_ENABLE_PIN, _E4_CS _E4_MS1 _E4_MS2 _E4_MS3
+ #if EXTRUDERS > 5 || (ENABLED(MIXING_EXTRUDER) && MIXING_STEPPERS > 5)
+ #undef _E5_PINS
+ #define _E5_PINS E5_STEP_PIN, E5_DIR_PIN, E5_ENABLE_PIN, _E5_CS _E5_MS1 _E5_MS2 _E5_MS3
+ #if EXTRUDERS > 6 || (ENABLED(MIXING_EXTRUDER) && MIXING_STEPPERS > 6)
+ #undef _E6_PINS
+ #define _E6_PINS E6_STEP_PIN, E6_DIR_PIN, E6_ENABLE_PIN, _E6_CS _E6_MS1 _E6_MS2 _E6_MS3
+ #if EXTRUDERS > 7 || (ENABLED(MIXING_EXTRUDER) && MIXING_STEPPERS > 7)
+ #undef _E7_PINS
+ #define _E7_PINS E7_STEP_PIN, E7_DIR_PIN, E7_ENABLE_PIN, _E7_CS _E7_MS1 _E7_MS2 _E7_MS3
+ #endif // EXTRUDERS > 7 || MIXING_EXTRUDER > 7
+ #endif // EXTRUDERS > 6 || MIXING_EXTRUDER > 6
+ #endif // EXTRUDERS > 5 || MIXING_EXTRUDER > 5
+ #endif // EXTRUDERS > 4 || MIXING_EXTRUDER > 4
+ #endif // EXTRUDERS > 3 || MIXING_EXTRUDER > 3
+ #endif // EXTRUDERS > 2 || MIXING_EXTRUDER > 2
+
+#endif // HAS_MULTI_EXTRUDER || MIXING_EXTRUDER
+
+//
+// Heaters, Fans, Temp Sensors
+//
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN -1
+#endif
+#ifndef E1_AUTO_FAN_PIN
+ #define E1_AUTO_FAN_PIN -1
+#endif
+#ifndef E2_AUTO_FAN_PIN
+ #define E2_AUTO_FAN_PIN -1
+#endif
+#ifndef E3_AUTO_FAN_PIN
+ #define E3_AUTO_FAN_PIN -1
+#endif
+#ifndef E4_AUTO_FAN_PIN
+ #define E4_AUTO_FAN_PIN -1
+#endif
+#ifndef E5_AUTO_FAN_PIN
+ #define E5_AUTO_FAN_PIN -1
+#endif
+#ifndef E6_AUTO_FAN_PIN
+ #define E6_AUTO_FAN_PIN -1
+#endif
+#ifndef E7_AUTO_FAN_PIN
+ #define E7_AUTO_FAN_PIN -1
+#endif
+
+#define _H0_PINS
+#define _H1_PINS
+#define _H2_PINS
+#define _H3_PINS
+#define _H4_PINS
+#define _H5_PINS
+#define _H6_PINS
+#define _H7_PINS
+
+#if HAS_HOTEND
+ #undef _H0_PINS
+ #define _H0_PINS HEATER_0_PIN, E0_AUTO_FAN_PIN, analogInputToDigitalPin(TEMP_0_PIN),
+ #if HAS_MULTI_HOTEND
+ #undef _H1_PINS
+ #define _H1_PINS HEATER_1_PIN, E1_AUTO_FAN_PIN, analogInputToDigitalPin(TEMP_1_PIN),
+ #if HOTENDS > 2
+ #undef _H2_PINS
+ #define _H2_PINS HEATER_2_PIN, E2_AUTO_FAN_PIN, analogInputToDigitalPin(TEMP_2_PIN),
+ #if HOTENDS > 3
+ #undef _H3_PINS
+ #define _H3_PINS HEATER_3_PIN, E3_AUTO_FAN_PIN, analogInputToDigitalPin(TEMP_3_PIN),
+ #if HOTENDS > 4
+ #undef _H4_PINS
+ #define _H4_PINS HEATER_4_PIN, E4_AUTO_FAN_PIN, analogInputToDigitalPin(TEMP_4_PIN),
+ #if HOTENDS > 5
+ #undef _H5_PINS
+ #define _H5_PINS HEATER_5_PIN, E5_AUTO_FAN_PIN, analogInputToDigitalPin(TEMP_5_PIN),
+ #if HOTENDS > 6
+ #undef _H6_PINS
+ #define _H6_PINS HEATER_6_PIN, E6_AUTO_FAN_PIN, analogInputToDigitalPin(TEMP_6_PIN),
+ #if HOTENDS > 7
+ #undef _H7_PINS
+ #define _H7_PINS HEATER_7_PIN, E7_AUTO_FAN_PIN, analogInputToDigitalPin(TEMP_7_PIN),
+ #endif // HOTENDS > 7
+ #endif // HOTENDS > 6
+ #endif // HOTENDS > 5
+ #endif // HOTENDS > 4
+ #endif // HOTENDS > 3
+ #endif // HOTENDS > 2
+ #endif // HAS_MULTI_HOTEND
+#endif // HOTENDS
+
+//
+// Dual X, Dual Y, Multi-Z
+// Chip Select and Digital Micro-stepping
+//
+
+#if EITHER(DUAL_X_CARRIAGE, X_DUAL_STEPPER_DRIVERS)
+ #if PIN_EXISTS(X2_CS) && AXIS_HAS_SPI(X2)
+ #define _X2_CS X2_CS_PIN,
+ #else
+ #define _X2_CS
+ #endif
+ #if PIN_EXISTS(X2_MS1)
+ #define _X2_MS1 X2_MS1_PIN,
+ #else
+ #define _X2_MS1
+ #endif
+ #if PIN_EXISTS(X2_MS2)
+ #define _X2_MS2 X2_MS2_PIN,
+ #else
+ #define _X2_MS2
+ #endif
+ #if PIN_EXISTS(X2_MS3)
+ #define _X2_MS3 X2_MS3_PIN,
+ #else
+ #define _X2_MS3
+ #endif
+ #define _X2_PINS X2_STEP_PIN, X2_DIR_PIN, X2_ENABLE_PIN, _X2_CS _X2_MS1 _X2_MS2 _X2_MS3
+#else
+ #define _X2_PINS
+#endif
+
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
+ #if PIN_EXISTS(Y2_CS) && AXIS_HAS_SPI(Y2)
+ #define _Y2_CS Y2_CS_PIN,
+ #else
+ #define _Y2_CS
+ #endif
+ #if PIN_EXISTS(Y2_MS1)
+ #define _Y2_MS1 Y2_MS1_PIN,
+ #else
+ #define _Y2_MS1
+ #endif
+ #if PIN_EXISTS(Y2_MS2)
+ #define _Y2_MS2 Y2_MS2_PIN,
+ #else
+ #define _Y2_MS2
+ #endif
+ #if PIN_EXISTS(Y2_MS3)
+ #define _Y2_MS3 Y2_MS3_PIN,
+ #else
+ #define _Y2_MS3
+ #endif
+ #define _Y2_PINS Y2_STEP_PIN, Y2_DIR_PIN, Y2_ENABLE_PIN, _Y2_CS _Y2_MS1 _Y2_MS2 _Y2_MS3
+#else
+ #define _Y2_PINS
+#endif
+
+#if NUM_Z_STEPPER_DRIVERS >= 2
+ #if PIN_EXISTS(Z2_CS) && AXIS_HAS_SPI(Z2)
+ #define _Z2_CS Z2_CS_PIN,
+ #else
+ #define _Z2_CS
+ #endif
+ #if PIN_EXISTS(Z2_MS1)
+ #define _Z2_MS1 Z2_MS1_PIN,
+ #else
+ #define _Z2_MS1
+ #endif
+ #if PIN_EXISTS(Z2_MS2)
+ #define _Z2_MS2 Z2_MS2_PIN,
+ #else
+ #define _Z2_MS2
+ #endif
+ #if PIN_EXISTS(Z2_MS3)
+ #define _Z2_MS3 Z2_MS3_PIN,
+ #else
+ #define _Z2_MS3
+ #endif
+ #define _Z2_PINS Z2_STEP_PIN, Z2_DIR_PIN, Z2_ENABLE_PIN, _Z2_CS _Z2_MS1 _Z2_MS2 _Z2_MS3
+#else
+ #define _Z2_PINS
+#endif
+
+#if NUM_Z_STEPPER_DRIVERS >= 3
+ #if PIN_EXISTS(Z3_CS) && AXIS_HAS_SPI(Z3)
+ #define _Z3_CS Z3_CS_PIN,
+ #else
+ #define _Z3_CS
+ #endif
+ #if PIN_EXISTS(Z3_MS1)
+ #define _Z3_MS1 Z3_MS1_PIN,
+ #else
+ #define _Z3_MS1
+ #endif
+ #if PIN_EXISTS(Z3_MS2)
+ #define _Z3_MS2 Z3_MS2_PIN,
+ #else
+ #define _Z3_MS2
+ #endif
+ #if PIN_EXISTS(Z3_MS3)
+ #define _Z3_MS3 Z3_MS3_PIN,
+ #else
+ #define _Z3_MS3
+ #endif
+ #define _Z3_PINS Z3_STEP_PIN, Z3_DIR_PIN, Z3_ENABLE_PIN, _Z3_CS _Z3_MS1 _Z3_MS2 _Z3_MS3
+#else
+ #define _Z3_PINS
+#endif
+
+#if NUM_Z_STEPPER_DRIVERS >= 4
+ #if PIN_EXISTS(Z4_CS) && AXIS_HAS_SPI(Z4)
+ #define _Z4_CS Z4_CS_PIN,
+ #else
+ #define _Z4_CS
+ #endif
+ #if PIN_EXISTS(Z4_MS1)
+ #define _Z4_MS1 Z4_MS1_PIN,
+ #else
+ #define _Z4_MS1
+ #endif
+ #if PIN_EXISTS(Z4_MS2)
+ #define _Z4_MS2 Z4_MS2_PIN,
+ #else
+ #define _Z4_MS2
+ #endif
+ #if PIN_EXISTS(Z4_MS3)
+ #define _Z4_MS3 Z4_MS3_PIN,
+ #else
+ #define _Z4_MS3
+ #endif
+ #define _Z4_PINS Z4_STEP_PIN, Z4_DIR_PIN, Z4_ENABLE_PIN, _Z4_CS _Z4_MS1 _Z4_MS2 _Z4_MS3
+#else
+ #define _Z4_PINS
+#endif
+
+//
+// Generate the final Sensitive Pins array,
+// keeping the array as small as possible.
+//
+
+#if PIN_EXISTS(PS_ON)
+ #define _PS_ON PS_ON_PIN,
+#else
+ #define _PS_ON
+#endif
+
+#if HAS_BED_PROBE && PIN_EXISTS(Z_MIN_PROBE)
+ #define _Z_PROBE Z_MIN_PROBE_PIN,
+#else
+ #define _Z_PROBE
+#endif
+
+#if PIN_EXISTS(FAN)
+ #define _FAN0 FAN_PIN,
+#else
+ #define _FAN0
+#endif
+#if PIN_EXISTS(FAN1)
+ #define _FAN1 FAN1_PIN,
+#else
+ #define _FAN1
+#endif
+#if PIN_EXISTS(FAN2)
+ #define _FAN2 FAN2_PIN,
+#else
+ #define _FAN2
+#endif
+#if PIN_EXISTS(FAN3)
+ #define _FAN3 FAN3_PIN,
+#else
+ #define _FAN3
+#endif
+#if PIN_EXISTS(FAN4)
+ #define _FAN4 FAN4_PIN,
+#else
+ #define _FAN4
+#endif
+#if PIN_EXISTS(FAN5)
+ #define _FAN5 FAN5_PIN,
+#else
+ #define _FAN5
+#endif
+#if PIN_EXISTS(FAN6)
+ #define _FAN6 FAN6_PIN,
+#else
+ #define _FAN6
+#endif
+#if PIN_EXISTS(FAN7)
+ #define _FAN7 FAN7_PIN,
+#else
+ #define _FAN7
+#endif
+#if PIN_EXISTS(CONTROLLER_FAN)
+ #define _FANC CONTROLLER_FAN_PIN,
+#else
+ #define _FANC
+#endif
+
+#if TEMP_SENSOR_BED && PINS_EXIST(TEMP_BED, HEATER_BED)
+ #define _BED_PINS HEATER_BED_PIN, analogInputToDigitalPin(TEMP_BED_PIN),
+#else
+ #define _BED_PINS
+#endif
+
+#if TEMP_SENSOR_CHAMBER && PIN_EXISTS(TEMP_CHAMBER)
+ #define _CHAMBER_TEMP analogInputToDigitalPin(TEMP_CHAMBER_PIN),
+#else
+ #define _CHAMBER_TEMP
+#endif
+#if TEMP_SENSOR_CHAMBER && PINS_EXIST(TEMP_CHAMBER, HEATER_CHAMBER)
+ #define _CHAMBER_HEATER HEATER_CHAMBER_PIN,
+#else
+ #define _CHAMBER_HEATER
+#endif
+#if TEMP_SENSOR_CHAMBER && PINS_EXIST(TEMP_CHAMBER, CHAMBER_AUTO_FAN)
+ #define _CHAMBER_FAN CHAMBER_AUTO_FAN_PIN,
+#else
+ #define _CHAMBER_FAN
+#endif
+
+#ifndef HAL_SENSITIVE_PINS
+ #define HAL_SENSITIVE_PINS
+#endif
+
+#define SENSITIVE_PINS { \
+ _X_PINS _Y_PINS _Z_PINS _X2_PINS _Y2_PINS _Z2_PINS _Z3_PINS _Z4_PINS _Z_PROBE \
+ _E0_PINS _E1_PINS _E2_PINS _E3_PINS _E4_PINS _E5_PINS _E6_PINS _E7_PINS \
+ _H0_PINS _H1_PINS _H2_PINS _H3_PINS _H4_PINS _H5_PINS _H6_PINS _H7_PINS \
+ _PS_ON _FAN0 _FAN1 _FAN2 _FAN3 _FAN4 _FAN5 _FAN6 _FAN7 _FANC \
+ _BED_PINS _CHAMBER_TEMP _CHAMBER_HEATER _CHAMBER_FAN HAL_SENSITIVE_PINS \
+}
diff --git a/Marlin/src/pins/stm32f0/pins_MALYAN_M200_V2.h b/Marlin/src/pins/stm32f0/pins_MALYAN_M200_V2.h
new file mode 100644
index 0000000..abdd088
--- /dev/null
+++ b/Marlin/src/pins/stm32f0/pins_MALYAN_M200_V2.h
@@ -0,0 +1,31 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+#pragma once
+
+#if NOT_TARGET(STM32F0xx)
+ #error "Oops! Select an STM32F0 board in your IDE."
+#endif
+
+#define BOARD_INFO_NAME "Malyan M200 V2"
+
+#include "../stm32f1/pins_MALYAN_M200.h"
diff --git a/Marlin/src/pins/stm32f0/pins_MALYAN_M300.h b/Marlin/src/pins/stm32f0/pins_MALYAN_M300.h
new file mode 100644
index 0000000..2717439
--- /dev/null
+++ b/Marlin/src/pins/stm32f0/pins_MALYAN_M300.h
@@ -0,0 +1,91 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+#pragma once
+
+#if NOT_TARGET(__STM32F1__, STM32F1xx, STM32F0xx)
+ #error "Oops! Select a 'Malyan M300' board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Malyan M300"
+
+//
+// EEPROM Emulation
+//
+#if NO_EEPROM_SELECTED
+ #define FLASH_EEPROM_EMULATION
+ #ifndef MARLIN_EEPROM_SIZE
+ #define MARLIN_EEPROM_SIZE 0x800U // 2KB
+ #endif
+#endif
+
+//
+// SD CARD SPI
+//
+#define SDSS SD_SS_PIN
+
+//
+// Timers
+//
+#define STEP_TIMER 6
+#define TEMP_TIMER 7
+
+//
+// Limit Switches
+//
+#define X_MAX_PIN PC13
+#define Y_MAX_PIN PC14
+#define Z_MAX_PIN PC15
+#define Z_MIN_PIN PB7
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB14
+#define X_DIR_PIN PB13
+#define X_ENABLE_PIN PB10
+
+#define Y_STEP_PIN PB12
+#define Y_DIR_PIN PB11
+#define Y_ENABLE_PIN PB10
+
+#define Z_STEP_PIN PB2
+#define Z_DIR_PIN PB1
+#define Z_ENABLE_PIN PB10
+
+#define E0_STEP_PIN PA7
+#define E0_DIR_PIN PA6
+#define E0_ENABLE_PIN PB0
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // Analog Input (HOTEND0 thermistor)
+#define TEMP_BED_PIN PA4 // Analog Input (BED thermistor)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA1 // HOTEND0 MOSFET
+#define HEATER_BED_PIN PA5 // BED MOSFET
+
+#define AUTO_FAN_PIN PA8
diff --git a/Marlin/src/pins/stm32f1/pins_BEAST.h b/Marlin/src/pins/stm32f1/pins_BEAST.h
new file mode 100644
index 0000000..bf2cf64
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BEAST.h
@@ -0,0 +1,159 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 21017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "Beast STM32"
+#define DEFAULT_MACHINE_NAME "STM32F103RET6"
+
+// Enable I2C_EEPROM for testing
+#define I2C_EEPROM
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Steppers
+//
+#define X_STEP_PIN PE0
+#define X_DIR_PIN PE1
+#define X_ENABLE_PIN PC0
+#define X_MIN_PIN PD5
+#define X_MAX_PIN -1
+
+#define Y_STEP_PIN PE2
+#define Y_DIR_PIN PE3
+#define Y_ENABLE_PIN PC1
+#define Y_MIN_PIN PD6
+#define Y_MAX_PIN
+
+#define Z_STEP_PIN PE4
+#define Z_DIR_PIN PE5
+#define Z_ENABLE_PIN PC2
+#define Z_MIN_PIN PD7
+#define Z_MAX_PIN -1
+
+#define Y2_STEP_PIN -1
+#define Y2_DIR_PIN -1
+#define Y2_ENABLE_PIN -1
+
+#define Z2_STEP_PIN -1
+#define Z2_DIR_PIN -1
+#define Z2_ENABLE_PIN -1
+
+#define E0_STEP_PIN PE6
+#define E0_DIR_PIN PE7
+#define E0_ENABLE_PIN PC3
+
+/**
+ * TODO: Currently using same Enable pin to all steppers.
+ */
+
+#define E1_STEP_PIN PE8
+#define E1_DIR_PIN PE9
+#define E1_ENABLE_PIN PC4
+
+#define E2_STEP_PIN PE10
+#define E2_DIR_PIN PE11
+#define E2_ENABLE_PIN PC5
+
+//
+// Misc. Functions
+//
+#define SDSS PA15
+#define LED_PIN PB2
+
+#define PS_ON_PIN -1
+#define KILL_PIN -1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PD12 // EXTRUDER 1
+#define HEATER_1_PIN PD13
+#define HEATER_2_PIN PD14
+
+#define HEATER_BED_PIN PB9 // BED
+#define HEATER_BED2_PIN -1 // BED2
+#define HEATER_BED3_PIN -1 // BED3
+
+#ifndef FAN_PIN
+ #define FAN_PIN PB10
+#endif
+
+#define FAN_SOFT_PWM
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA0 // Analog Input
+#define TEMP_0_PIN PA1 // Analog Input
+#define TEMP_1_PIN PA2 // Analog Input
+#define TEMP_2_PIN PA3 // Analog Input
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #else
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PD2
+ #define LCD_PINS_D4 PB12
+ #define LCD_PINS_D5 PB13
+ #define LCD_PINS_D6 PB14
+ #define LCD_PINS_D7 PB15
+ #if !IS_NEWPANEL
+ #error "Non-NEWPANEL LCD is not supported."
+ #endif
+ #endif
+
+ #if IS_NEWPANEL
+ #if IS_RRD_SC
+ #error "RRD Smart Controller is not supported."
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+ #error "LCD_I2C_PANELOLU2 is not supported."
+ #elif ENABLED(LCD_I2C_VIKI)
+ #error "LCD_I2C_VIKI is not supported."
+ #elif ANY(VIKI2, miniVIKI)
+ #error "VIKI2 / miniVIKI is not supported."
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+ #error "ELB_FULL_GRAPHIC_CONTROLLER is not supported."
+ #elif ENABLED(MINIPANEL)
+ #error "MINIPANEL is not supported."
+ #else
+ #error "Other generic NEWPANEL LCD is not supported."
+ #endif
+ #endif // IS_NEWPANEL
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_CR6.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_CR6.h
new file mode 100644
index 0000000..73a18fa
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_CR6.h
@@ -0,0 +1,183 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * BigTreeTech SKR CR-6 (STM32F103RET6) board pin assignments
+ */
+
+#define DEFAULT_MACHINE_NAME "Creality3D"
+#define BOARD_INFO_NAME "BTT SKR CR-6"
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+//
+// Release PB4 (Z_STEP_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// USB connect control
+//
+#define USB_CONNECT_PIN PA14
+#define USB_CONNECT_INVERTING false
+
+//
+// EEPROM
+//
+
+#if NO_EEPROM_SELECTED
+ #define I2C_EEPROM
+#endif
+
+/* I2C */
+#if ENABLED(I2C_EEPROM)
+ #define IIC_EEPROM_SDA PB7
+ #define IIC_EEPROM_SCL PB6
+
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#elif ENABLED(SDCARD_EEPROM_EMULATION)
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+#define E2END (MARLIN_EEPROM_SIZE - 1) // 2KB
+
+//
+// Limit Switches
+//
+
+#define X_STOP_PIN PC0
+#define Y_STOP_PIN PC1
+#define Z_STOP_PIN PC14 // Endtop or Probe
+
+#define FIL_RUNOUT_PIN PC15
+
+//
+// Probe
+//
+#define PROBE_TARE_PIN PA1
+#define PROBE_ACTIVATION_SWITCH_PIN PC2 // Optoswitch to Enable Z Probe
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PB14
+#define X_STEP_PIN PB13
+#define X_DIR_PIN PB12
+
+#define Y_ENABLE_PIN PB11
+#define Y_STEP_PIN PB10
+#define Y_DIR_PIN PB2
+
+#define Z_ENABLE_PIN PB1
+#define Z_STEP_PIN PB0
+#define Z_DIR_PIN PC5
+
+#define E0_ENABLE_PIN PD2
+#define E0_STEP_PIN PB3
+#define E0_DIR_PIN PB4
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // TH1
+#define TEMP_BED_PIN PC3 // TB1
+
+//
+// Heaters / Fans
+//
+
+#define HEATER_0_PIN PC8 // HEATER1
+#define HEATER_BED_PIN PC9 // HOT BED
+
+#define FAN_PIN PC6 // FAN
+#define FAN_SOFT_PWM
+
+#define CONTROLLER_FAN_PIN PC7
+
+//
+// LCD / Controller
+//
+#if ENABLED(CR10_STOCKDISPLAY)
+ #define BTN_ENC PA15
+ #define BTN_EN1 PA9
+ #define BTN_EN2 PA10
+
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PB15
+ #define LCD_PINS_D4 PB9
+
+ #define BEEPER_PIN PB5
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2209 stepper drivers
+ * Hardware serial communication ports.
+ */
+ #define X_HARDWARE_SERIAL MSerial4
+ #define Y_HARDWARE_SERIAL MSerial4
+ #define Z_HARDWARE_SERIAL MSerial4
+ #define E0_HARDWARE_SERIAL MSerial4
+
+ // Default TMC slave addresses
+ #ifndef X_SLAVE_ADDRESS
+ #define X_SLAVE_ADDRESS 0
+ #endif
+ #ifndef Y_SLAVE_ADDRESS
+ #define Y_SLAVE_ADDRESS 1
+ #endif
+ #ifndef Z_SLAVE_ADDRESS
+ #define Z_SLAVE_ADDRESS 2
+ #endif
+ #ifndef E0_SLAVE_ADDRESS
+ #define E0_SLAVE_ADDRESS 3
+ #endif
+#endif
+
+//
+// SD Card
+//
+
+#define HAS_ONBOARD_SD
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN PC4
+
+ #define ON_BOARD_SPI_DEVICE 1 // SPI1
+ #define ONBOARD_SD_CS_PIN PA4 // Chip select for "System" SD card
+#endif
+
+//
+// Misc. Functions
+//
+#define LED_CONTROL_PIN PA13
+
+#ifndef NEOPIXEL_PIN
+ #define NEOPIXEL_PIN PA8
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h
new file mode 100644
index 0000000..0426e80
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h
@@ -0,0 +1,289 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(TARGET_STM32F1)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "BTT SKR E3 DIP V1.x"
+
+// Release PB3/PB4 (TMC_SW Pins) from JTAG pins
+#define DISABLE_JTAG
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PA1 // SERVOS
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC1 // X-STOP
+#define Y_STOP_PIN PC0 // Y-STOP
+#define Z_STOP_PIN PC15 // Z-STOP
+
+//
+// Z Probe must be this pin
+//
+#define Z_MIN_PROBE_PIN PC14 // PROBE
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PC2 // E0-STOP
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC7
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PB15
+#ifndef X_CS_PIN
+ #define X_CS_PIN PC10
+#endif
+
+#define Y_ENABLE_PIN PB14
+#define Y_STEP_PIN PB13
+#define Y_DIR_PIN PB12
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PC11
+#endif
+
+#define Z_ENABLE_PIN PB11
+#define Z_STEP_PIN PB10
+#define Z_DIR_PIN PB2
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PC12
+#endif
+
+#define E0_ENABLE_PIN PB1
+#define E0_STEP_PIN PB0
+#define E0_DIR_PIN PC5
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PD2
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB5
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB4
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB3
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL MSerial1
+ //#define Y_HARDWARE_SERIAL MSerial1
+ //#define Z_HARDWARE_SERIAL MSerial1
+ //#define E0_HARDWARE_SERIAL MSerial1
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PC10
+ #define X_SERIAL_RX_PIN PC10
+
+ #define Y_SERIAL_TX_PIN PC11
+ #define Y_SERIAL_RX_PIN PC11
+
+ #define Z_SERIAL_TX_PIN PC12
+ #define Z_SERIAL_RX_PIN PC12
+
+ #define E0_SERIAL_TX_PIN PD2
+ #define E0_SERIAL_RX_PIN PD2
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // Analog Input "TH0"
+#define TEMP_BED_PIN PC3 // Analog Input "TB0"
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC8 // "HE"
+#define HEATER_BED_PIN PC9 // "HB"
+#define FAN_PIN PA8 // "FAN0"
+
+//
+// USB connect control
+//
+#define USB_CONNECT_PIN PC13
+#define USB_CONNECT_INVERTING false
+
+/**
+ * _____
+ * 5V | 1 2 | GND
+ * (LCD_EN) PB7 | 3 4 | PB8 (LCD_RS)
+ * (LCD_D4) PB9 | 5 6 PA10 (BTN_EN2)
+ * RESET | 7 8 | PA9 (BTN_EN1)
+ * (BTN_ENC) PB6 | 9 10| PA15 (BEEPER)
+ * -----
+ * EXP1
+ */
+
+#if HAS_WIRED_LCD
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define BEEPER_PIN PA15
+
+ #define BTN_ENC PB6
+ #define BTN_EN1 PA9
+ #define BTN_EN2 PA10
+
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PB7
+ #define LCD_PINS_D4 PB9
+
+ #elif ENABLED(ZONESTAR_LCD) // ANET A8 LCD Controller - Must convert to 3.3V - CONNECTING TO 5V WILL DAMAGE THE BOARD!
+
+ #error "CAUTION! ZONESTAR_LCD requires wiring modifications. See 'pins_BTT_SKR_MINI_E3_common.h' for details. Comment out this line to continue."
+
+ #define LCD_PINS_RS PB9
+ #define LCD_PINS_ENABLE PB6
+ #define LCD_PINS_D4 PB8
+ #define LCD_PINS_D5 PA10
+ #define LCD_PINS_D6 PA9
+ #define LCD_PINS_D7 PA15
+ #define ADC_KEYPAD_PIN PA1 // Repurpose servo pin for ADC - CONNECTING TO 5V WILL DAMAGE THE BOARD!
+
+ #elif EITHER(MKS_MINI_12864, ENDER2_STOCKDISPLAY)
+
+ /** Creality Ender-2 display pinout
+ * _____
+ * 5V | 1 2 | GND
+ * (MOSI) PB7 | 3 4 | PB8 (LCD_RS)
+ * (LCD_A0) PB9 | 5 6 PA10 (BTN_EN2)
+ * RESET | 7 8 | PA9 (BTN_EN1)
+ * (BTN_ENC) PB6 | 9 10| PA15 (SCK)
+ * -----
+ * EXP1
+ */
+
+ #define BTN_ENC PB6
+ #define BTN_EN1 PA9
+ #define BTN_EN2 PA10
+
+ #define DOGLCD_CS PB8
+ #define DOGLCD_A0 PB9
+ #define DOGLCD_SCK PA15
+ #define DOGLCD_MOSI PB7
+ #define FORCE_SOFT_SPI
+ #define LCD_BACKLIGHT_PIN -1
+
+ #else
+ #error "Only CR10_STOCKDISPLAY, ZONESTAR_LCD, ENDER2_STOCKDISPLAY, MKS_MINI_12864, and MKS_LCD12864 are currently supported on the BIGTREE_SKR_E3_DIP."
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+#if BOTH(TOUCH_UI_FTDI_EVE, LCD_FYSETC_TFT81050)
+
+ #error "CAUTION! LCD_FYSETC_TFT81050 requires wiring modifications. See 'pins_BTT_SKR_E3_DIP.h' for details. Comment out this line to continue."
+
+ /** FYSETC TFT TFT81050 display pinout
+ *
+ * Board Display
+ * _____ _____
+ * 5V | 1 2 | GND (SPI1-MISO) MISO | 1 2 | SCK (SPI1-SCK)
+ * (FREE) PB7 | 3 4 | PB8 (LCD_CS) (PA9) MOD_RESET | 3 4 | SD_CS (PA10)
+ * (FREE) PB9 | 5 6 PA10 (SD_CS) (PB8) LCD_CS | 5 6 MOSI (SPI1-MOSI)
+ * RESET | 7 8 | PA9 (MOD_RESET) (PA15) SD_DET | 7 8 | RESET
+ * (BEEPER) PB6 | 9 10| PA15 (SD_DET) GND | 9 10| 5V
+ * ----- -----
+ * EXP1 EXP1
+ *
+ * Needs custom cable:
+ *
+ * Board Adapter Display
+ * _________
+ * EXP1-1 ----------- EXP1-10
+ * EXP1-2 ----------- EXP1-9
+ * SPI1-4 ----------- EXP1-6
+ * EXP1-4 ----------- EXP1-5
+ * SP11-3 ----------- EXP1-2
+ * EXP1-6 ----------- EXP1-4
+ * EXP1-7 ----------- EXP1-8
+ * EXP1-8 ----------- EXP1-3
+ * SPI1-1 ----------- EXP1-1
+ * EXP1-10 ----------- EXP1-7
+ */
+
+ #define CLCD_SPI_BUS 1 // SPI1 connector
+
+ #define BEEPER_PIN PB6
+
+ #define CLCD_MOD_RESET PA9
+ #define CLCD_SPI_CS PB8
+
+#endif // TOUCH_UI_FTDI_EVE && LCD_FYSETC_TFT81050
+
+//
+// SD Support
+//
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN PC4
+#elif SD_CONNECTION_IS(LCD) && BOTH(TOUCH_UI_FTDI_EVE, LCD_FYSETC_TFT81050)
+ #define SD_DETECT_PIN PA15
+ #define SD_SS_PIN PA10
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "SD CUSTOM_CABLE is not compatible with SKR E3 DIP."
+#endif
+
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PA4 // Chip select for "System" SD card
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_0.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_0.h
new file mode 100644
index 0000000..a09da02
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_0.h
@@ -0,0 +1,51 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#include "pins_BTT_SKR_MINI_E3_common.h"
+
+#define BOARD_INFO_NAME "BTT SKR Mini E3 V1.0"
+
+/**
+ * TMC220x stepper drivers
+ * Hardware serial communication ports.
+ */
+#if HAS_TMC_UART
+ #define X_HARDWARE_SERIAL MSerial4
+ #define Y_HARDWARE_SERIAL MSerial4
+ #define Z_HARDWARE_SERIAL MSerial4
+ #define E0_HARDWARE_SERIAL MSerial4
+
+ // Default TMC slave addresses
+ #ifndef X_SLAVE_ADDRESS
+ #define X_SLAVE_ADDRESS 0
+ #endif
+ #ifndef Y_SLAVE_ADDRESS
+ #define Y_SLAVE_ADDRESS 2
+ #endif
+ #ifndef Z_SLAVE_ADDRESS
+ #define Z_SLAVE_ADDRESS 1
+ #endif
+ #ifndef E0_SLAVE_ADDRESS
+ #define E0_SLAVE_ADDRESS 3
+ #endif
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h
new file mode 100644
index 0000000..4951d69
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h
@@ -0,0 +1,53 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#include "pins_BTT_SKR_MINI_E3_common.h"
+
+#define BOARD_INFO_NAME "BTT SKR Mini E3 V1.2"
+
+#ifndef NEOPIXEL_PIN
+ #define NEOPIXEL_PIN PC7 // LED driving pin
+#endif
+
+/**
+ * TMC2208/TMC2209 stepper drivers
+ */
+#if HAS_TMC_UART
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PB15
+ #define X_SERIAL_RX_PIN PB15
+
+ #define Y_SERIAL_TX_PIN PC6
+ #define Y_SERIAL_RX_PIN PC6
+
+ #define Z_SERIAL_TX_PIN PC10
+ #define Z_SERIAL_RX_PIN PC10
+
+ #define E0_SERIAL_TX_PIN PC11
+ #define E0_SERIAL_RX_PIN PC11
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V2_0.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V2_0.h
new file mode 100644
index 0000000..af2821f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V2_0.h
@@ -0,0 +1,79 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#define SKR_MINI_E3_V2
+
+// Onboard I2C EEPROM
+#if NO_EEPROM_SELECTED
+ #define I2C_EEPROM
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+ #undef NO_EEPROM_SELECTED
+#endif
+
+#include "pins_BTT_SKR_MINI_E3_common.h"
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "BTT SKR Mini E3 V2.0"
+#endif
+
+// Release PA13/PA14 (led, usb control) from SWD pins
+#define DISABLE_DEBUG
+
+#ifndef NEOPIXEL_PIN
+ #define NEOPIXEL_PIN PA8 // LED driving pin
+#endif
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN PC13 // Power Supply Control
+#endif
+
+#define FAN1_PIN PC7
+
+#ifndef CONTROLLER_FAN_PIN
+ #define CONTROLLER_FAN_PIN FAN1_PIN
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC220x stepper drivers
+ * Hardware serial communication ports
+ */
+ #define X_HARDWARE_SERIAL MSerial4
+ #define Y_HARDWARE_SERIAL MSerial4
+ #define Z_HARDWARE_SERIAL MSerial4
+ #define E0_HARDWARE_SERIAL MSerial4
+
+ // Default TMC slave addresses
+ #ifndef X_SLAVE_ADDRESS
+ #define X_SLAVE_ADDRESS 0
+ #endif
+ #ifndef Y_SLAVE_ADDRESS
+ #define Y_SLAVE_ADDRESS 2
+ #endif
+ #ifndef Z_SLAVE_ADDRESS
+ #define Z_SLAVE_ADDRESS 1
+ #endif
+ #ifndef E0_SLAVE_ADDRESS
+ #define E0_SLAVE_ADDRESS 3
+ #endif
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h
new file mode 100644
index 0000000..bab662d
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h
@@ -0,0 +1,283 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(TARGET_STM32F1)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+// Release PB3/PB4 (E0 STP/DIR) from JTAG pins
+#define DISABLE_JTAG
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PA1 // SERVOS
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC0 // X-STOP
+#define Y_STOP_PIN PC1 // Y-STOP
+#define Z_STOP_PIN PC2 // Z-STOP
+
+//
+// Z Probe must be this pin
+//
+#define Z_MIN_PROBE_PIN PC14 // PROBE
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PC15 // E0-STOP
+#endif
+
+//
+// Power-loss Detection
+//
+#ifndef POWER_LOSS_PIN
+ #define POWER_LOSS_PIN PC12 // Power Loss Detection: PWR-DET
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PB14
+#define X_STEP_PIN PB13
+#define X_DIR_PIN PB12
+
+#define Y_ENABLE_PIN PB11
+#define Y_STEP_PIN PB10
+#define Y_DIR_PIN PB2
+
+#define Z_ENABLE_PIN PB1
+#define Z_STEP_PIN PB0
+#define Z_DIR_PIN PC5
+
+#define E0_ENABLE_PIN PD2
+#define E0_STEP_PIN PB3
+#define E0_DIR_PIN PB4
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // Analog Input "TH0"
+#define TEMP_BED_PIN PC3 // Analog Input "TB0"
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC8 // "HE"
+#define HEATER_BED_PIN PC9 // "HB"
+
+#ifdef SKR_MINI_E3_V2
+ #define FAN_PIN PC6
+#else
+ #define FAN_PIN PA8 // "FAN0"
+#endif
+
+//
+// USB connect control
+//
+#ifdef SKR_MINI_E3_V2
+ #define USB_CONNECT_PIN PA14
+#else
+ #define USB_CONNECT_PIN PC13
+#endif
+
+#define USB_CONNECT_INVERTING false
+
+/**
+ * SKR Mini E3 V1.0, V1.2 SKR Mini E3 V2.0
+ * _____ _____
+ * 5V | 1 2 | GND 5V | 1 2 | GND
+ * (LCD_EN) PB7 | 3 4 | PB8 (LCD_RS) (LCD_EN) PB15 | 3 4 | PB8 (LCD_RS)
+ * (LCD_D4) PB9 | 5 6 PA10 (BTN_EN2) (LCD_D4) PB9 | 5 6 PA10 (BTN_EN2)
+ * RESET | 7 8 | PA9 (BTN_EN1) RESET | 7 8 | PA9 (BTN_EN1)
+ * (BTN_ENC) PB6 | 9 10| PB5 (BEEPER) (BTN_ENC) PA15 | 9 10| PB5 (BEEPER)
+ * ----- -----
+ * EXP1 EXP1
+ */
+#ifdef SKR_MINI_E3_V2
+ #define EXP1_9 PA15
+ #define EXP1_3 PB15
+#else
+ #define EXP1_9 PB6
+ #define EXP1_3 PB7
+#endif
+
+#if HAS_WIRED_LCD
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define BEEPER_PIN PB5
+ #define BTN_ENC EXP1_9
+
+ #define BTN_EN1 PA9
+ #define BTN_EN2 PA10
+
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE EXP1_3
+ #define LCD_PINS_D4 PB9
+
+ #elif ENABLED(ZONESTAR_LCD) // ANET A8 LCD Controller - Must convert to 3.3V - CONNECTING TO 5V WILL DAMAGE THE BOARD!
+
+ #error "CAUTION! ZONESTAR_LCD requires wiring modifications. See 'pins_BTT_SKR_MINI_E3_common.h' for details. Comment out this line to continue."
+
+ #define LCD_PINS_RS PB9
+ #define LCD_PINS_ENABLE EXP1_9
+ #define LCD_PINS_D4 PB8
+ #define LCD_PINS_D5 PA10
+ #define LCD_PINS_D6 PA9
+ #define LCD_PINS_D7 PB5
+ #define ADC_KEYPAD_PIN PA1 // Repurpose servo pin for ADC - CONNECTING TO 5V WILL DAMAGE THE BOARD!
+
+ #elif EITHER(MKS_MINI_12864, ENDER2_STOCKDISPLAY)
+
+ #define BTN_ENC EXP1_9
+ #define BTN_EN1 PA9
+ #define BTN_EN2 PA10
+
+ #define DOGLCD_CS PB8
+ #define DOGLCD_A0 PB9
+ #define DOGLCD_SCK PB5
+ #define DOGLCD_MOSI EXP1_3
+
+ #define FORCE_SOFT_SPI
+ #define LCD_BACKLIGHT_PIN -1
+
+ #elif IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+
+ #error "CAUTION! TFTGLCD_PANEL_SPI requires wiring modifications. See 'pins_BTT_SKR_MINI_E3_common.h' for details. Comment out this line to continue."
+
+ /**
+ * TFTGLCD_PANEL_SPI display pinout
+ *
+ * Board Display
+ * _____ _____
+ * 5V | 1 2 | GND (SPI1-MISO) MISO | 1 2 | SCK (SPI1-SCK)
+ * (FREE) PB7 | 3 4 | PB8 (LCD_CS) (PA9) LCD_CS | 3 4 | SD_CS (PA10)
+ * (FREE) PB9 | 5 6 | PA10 (SD_CS) (FREE) | 5 6 | MOSI (SPI1-MOSI)
+ * RESET | 7 8 | PA9 (MOD_RESET) (PB5) SD_DET | 7 8 | (FREE)
+ * (BEEPER) PB6 | 9 10| PB5 (SD_DET) GND | 9 10| 5V
+ * ----- -----
+ * EXP1 EXP1
+ *
+ * Needs custom cable:
+ *
+ * Board Adapter Display
+ * _________
+ * EXP1-1 ----------- EXP1-10
+ * EXP1-2 ----------- EXP1-9
+ * SPI1-4 ----------- EXP1-6
+ * EXP1-4 ----------- FREE
+ * SPI1-3 ----------- EXP1-2
+ * EXP1-6 ----------- EXP1-4
+ * EXP1-7 ----------- FREE
+ * EXP1-8 ----------- EXP1-3
+ * SPI1-1 ----------- EXP1-1
+ * EXP1-10 ----------- EXP1-7
+ */
+
+ #define TFTGLCD_CS PA9
+
+ #endif
+
+ #else
+ #error "Only CR10_STOCKDISPLAY, ZONESTAR_LCD, ENDER2_STOCKDISPLAY, MKS_MINI_12864, and TFTGLCD_PANEL_(SPI|I2C) are currently supported on the BIGTREE_SKR_MINI_E3."
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+#if BOTH(TOUCH_UI_FTDI_EVE, LCD_FYSETC_TFT81050)
+
+ #error "CAUTION! LCD_FYSETC_TFT81050 requires wiring modifications. See 'pins_BTT_SKR_MINI_E3_common.h' for details. Comment out this line to continue."
+
+ /** FYSETC TFT TFT81050 display pinout
+ *
+ * Board Display
+ * _____ _____
+ * 5V | 1 2 | GND (SPI1-MISO) MISO | 1 2 | SCK (SPI1-SCK)
+ * (FREE) PB7 | 3 4 | PB8 (LCD_CS) (PA9) MOD_RESET | 3 4 | SD_CS (PA10)
+ * (FREE) PB9 | 5 6 | PA10 (SD_CS) (PB8) LCD_CS | 5 6 | MOSI (SPI1-MOSI)
+ * RESET | 7 8 | PA9 (MOD_RESET) (PB5) SD_DET | 7 8 | RESET
+ * (BEEPER) PB6 | 9 10| PB5 (SD_DET) GND | 9 10| 5V
+ * ----- -----
+ * EXP1 EXP1
+ *
+ * Needs custom cable:
+ *
+ * Board Adapter Display
+ * _________
+ * EXP1-1 ----------- EXP1-10
+ * EXP1-2 ----------- EXP1-9
+ * SPI1-4 ----------- EXP1-6
+ * EXP1-4 ----------- EXP1-5
+ * SPI1-3 ----------- EXP1-2
+ * EXP1-6 ----------- EXP1-4
+ * EXP1-7 ----------- EXP1-8
+ * EXP1-8 ----------- EXP1-3
+ * SPI1-1 ----------- EXP1-1
+ * EXP1-10 ----------- EXP1-7
+ */
+
+ #define CLCD_SPI_BUS 1 // SPI1 connector
+
+ #define BEEPER_PIN EXP1_9
+
+ #define CLCD_MOD_RESET PA9
+ #define CLCD_SPI_CS PB8
+
+#endif // TOUCH_UI_FTDI_EVE && LCD_FYSETC_TFT81050
+
+//
+// SD Support
+//
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN PC4
+#elif SD_CONNECTION_IS(LCD) && (BOTH(TOUCH_UI_FTDI_EVE, LCD_FYSETC_TFT81050) || IS_TFTGLCD_PANEL)
+ #define SD_DETECT_PIN PB5
+ #define SD_SS_PIN PA10
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "SD CUSTOM_CABLE is not compatible with SKR Mini E3."
+#endif
+
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PA4 // Chip select for "System" SD card
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_MZ_V1_0.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_MZ_V1_0.h
new file mode 100644
index 0000000..96420cf
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_MZ_V1_0.h
@@ -0,0 +1,26 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#define BOARD_INFO_NAME "BTT SKR Mini MZ V1.0"
+
+#include "pins_BTT_SKR_MINI_E3_V2_0.h"
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h
new file mode 100644
index 0000000..8668e1d
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h
@@ -0,0 +1,232 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(TARGET_STM32F1)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "BTT SKR Mini V1.1"
+
+//#define DISABLE_DEBUG
+#define DISABLE_JTAG
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PC2
+#define X_MAX_PIN PA2
+#define Y_MIN_PIN PC1
+#define Y_MAX_PIN PA1
+#define Z_MIN_PIN PC0
+#define Z_MAX_PIN PC3
+
+//
+// Steppers
+//
+
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PC7
+#define X_ENABLE_PIN PB15
+
+#define Y_STEP_PIN PB13
+#define Y_DIR_PIN PB14
+#define Y_ENABLE_PIN PB12
+
+#define Z_STEP_PIN PB10
+#define Z_DIR_PIN PB11
+#define Z_ENABLE_PIN PB2
+
+#define E0_STEP_PIN PC5
+#define E0_DIR_PIN PB0
+#define E0_ENABLE_PIN PC4
+
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB3
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB4
+ #endif
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB5
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA8
+#define FAN_PIN PC8
+#define HEATER_BED_PIN PC9
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PB1 // Analog Input
+#define TEMP_0_PIN PA0 // Analog Input
+
+//
+// LCD Pins
+//
+
+/**
+ * _____ _____
+ * NC | · · | GND 5V | · · | GND
+ * RESET | · · | PB9 (SD_DETECT) (LCD_D7) PC14 | · · | PC15 (LCD_D6)
+ * (MOSI) PB5 | · · | PB8 (BTN_EN2) (LCD_D5) PB7 | · · | PC13 (LCD_D4)
+ * (SD_SS) PA15 | · · | PD2 (BTN_EN1) (LCD_RS) PC12 | · · | PB6 (LCD_EN)
+ * (SCK) PB3 | · · | PB4 (MISO) (BTN_ENC) PC11 | · · | PC10 (BEEPER)
+ * ----- -----
+ * EXP2 EXP1
+ */
+
+#if HAS_WIRED_LCD
+ #define BEEPER_PIN PC10
+ #define BTN_ENC PC11
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ #define LCD_PINS_RS PC15
+
+ #define BTN_EN1 PB6
+ #define BTN_EN2 PC13
+
+ #define LCD_PINS_ENABLE PC14
+ #define LCD_PINS_D4 PB7
+
+ #elif IS_TFTGLCD_PANEL
+
+ #undef BEEPER_PIN
+ #undef BTN_ENC
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS PD2
+ #endif
+
+ #define SD_DETECT_PIN PB9
+
+ #else
+
+ #define LCD_PINS_RS PC12
+
+ #define BTN_EN1 PD2
+ #define BTN_EN2 PB8
+
+ #define LCD_PINS_ENABLE PB6
+
+ #if ENABLED(FYSETC_MINI_12864)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN PC13
+ #define DOGLCD_A0 PC12
+ #define DOGLCD_CS PB6
+ #define DOGLCD_SCK PB3
+ #define DOGLCD_MOSI PB5
+
+ #define FORCE_SOFT_SPI // SPI MODE3
+
+ #define LED_PIN PB7 // red pwm
+ //#define LED_PIN PC15 // green
+ //#define LED_PIN PC14 // blue
+
+ //#if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ // #ifndef RGB_LED_R_PIN
+ // #define RGB_LED_R_PIN PB7
+ // #endif
+ // #ifndef RGB_LED_G_PIN
+ // #define RGB_LED_G_PIN PC15
+ // #endif
+ // #ifndef RGB_LED_B_PIN
+ // #define RGB_LED_B_PIN PC14
+ // #endif
+ //#elif ENABLED(FYSETC_MINI_12864_2_1)
+ // #define NEOPIXEL_PIN PB7
+ //#endif
+
+ #else // !FYSETC_MINI_12864
+
+ #define LCD_PINS_D4 PC13
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PB7
+ #define LCD_PINS_D6 PC15
+ #define LCD_PINS_D7 PC14
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !FYSETC_MINI_12864
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+ #endif
+
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Card
+//
+
+// By default the onboard SD is enabled.
+// Change SDCARD_CONNECTION from 'ONBOARD' to 'LCD' for an external (LCD module) SD
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(LCD)
+ #define SPI_DEVICE 3
+ #define SD_DETECT_PIN PB9
+ #define SD_SCK_PIN PB3
+ #define SD_MISO_PIN PB4
+ #define SD_MOSI_PIN PB5
+ #define SD_SS_PIN PA15
+#elif SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN PA3
+ #define SD_SCK_PIN PA5
+ #define SD_MISO_PIN PA6
+ #define SD_MOSI_PIN PA7
+ #define SD_SS_PIN PA4
+#endif
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PA4 // Chip select for "System" SD card
diff --git a/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h b/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h
new file mode 100644
index 0000000..43dfdec
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h
@@ -0,0 +1,178 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(TARGET_STM32F1)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "CCROBOT-ONLINE MEEB_3DP only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+// https://github.com/ccrobot-online/MEEB_3DP
+// Pin assignments for 32-bit MEEB_3DP
+#define BOARD_INFO_NAME "CCROBOT-ONLINE MEEB_3DP"
+#define DEFAULT_MACHINE_NAME "STM32F103RCT6"
+#define BOARD_WEBSITE_URL "ccrobot-online.com"
+
+//
+// Release PB4 from JTAG NRST role
+//
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE 0x800U // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PA1
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC0
+#define Y_STOP_PIN PC1
+#define Z_STOP_PIN PC2
+
+//
+// Z Probe must be this pin
+//
+#define Z_MIN_PROBE_PIN PC15 // "PROBE"
+
+//
+// TMC2208 stepper drivers
+//
+#define X_ENABLE_PIN PB4
+#define X_STEP_PIN PC12
+#define X_DIR_PIN PC11
+
+#define Y_ENABLE_PIN PC10
+#define Y_STEP_PIN PB14
+#define Y_DIR_PIN PB13
+
+#define Z_ENABLE_PIN PB12
+#define Z_STEP_PIN PB2
+#define Z_DIR_PIN PB1
+
+#define E0_ENABLE_PIN PB0
+#define E0_STEP_PIN PA6
+#define E0_DIR_PIN PA5
+
+// Stepper drivers Serial UART
+#define X_SERIAL_TX_PIN PB3
+#define X_SERIAL_RX_PIN PD2
+#define Y_SERIAL_TX_PIN PA15
+#define Y_SERIAL_RX_PIN PC6
+#define Z_SERIAL_TX_PIN PB11
+#define Z_SERIAL_RX_PIN PB10
+#define E0_SERIAL_TX_PIN PC5
+#define E0_SERIAL_RX_PIN PC4
+
+// Reduce baud rate to improve software serial reliability
+#define TMC_BAUD_RATE 19200
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // TH0
+#define TEMP_BED_PIN PC3 // THB
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC8 // HEATER0
+#define HEATER_BED_PIN PC9 // HOT BED
+
+#define FAN_PIN PA7 // FAN (fan2 on board) model cool fan
+#define FAN1_PIN PA8 // FAN (fan0 on board) e0 cool fan
+#define FAN2_PIN PB9 // FAN (fan1 on board) controller cool fan
+
+// One NeoPixel onboard and a connector for other NeoPixels
+#define NEOPIXEL_PIN PC7 // The NEOPIXEL LED driving pin
+
+/**
+ * 1 _____ 2
+ * PB5 | · · | PB6
+ * PA2 | · · | RESET
+ * PA3 | · · | PB8
+ * PB7 | · · | PA4
+ * GND | · · | VCC5
+ * 9 ----- 10
+ * LCD EXP
+ */
+
+//
+// LCD / Controller
+//
+#if ENABLED(CR10_STOCKDISPLAY)
+ #define BEEPER_PIN PB5
+ #define BTN_EN1 PA2
+ #define BTN_EN2 PA3
+ #define BTN_ENC PB6
+
+ #define LCD_PINS_RS PB7 // CS -- SOFT SPI for ENDER3 LCD
+ #define LCD_PINS_D4 PB8 // SCLK
+ #define LCD_PINS_ENABLE PA4 // DATA MOSI
+#endif
+
+// Alter timing for graphical display
+#if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+#endif
+
+//
+// Camera
+//
+#define CHDK_PIN PB15
+
+#if 0
+
+//
+// SD-NAND
+//
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN -1
+ #define SD_SCK_PIN PA5
+ #define SD_MISO_PIN PA6
+ #define SD_MOSI_PIN PA7
+ #define SD_SS_PIN PA4
+#endif
+
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PA4 // Chip select for SD-NAND
+
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D.h b/Marlin/src/pins/stm32f1/pins_CHITU3D.h
new file mode 100644
index 0000000..bb6f571
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CHITU3D.h
@@ -0,0 +1,290 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 2017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "Chitu3D"
+#define DEFAULT_MACHINE_NAME "STM32F103RET6"
+
+#define BOARD_NO_NATIVE_USB
+
+// Enable I2C_EEPROM for testing
+//#define I2C_EEPROM
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Steppers
+//
+#define X_STEP_PIN PE5
+#define X_DIR_PIN PE6
+#define X_ENABLE_PIN PC13
+#define X_MIN_PIN PG10
+#define X_MAX_PIN -1
+
+#define Y_STEP_PIN PE2
+#define Y_DIR_PIN PE3
+#define Y_ENABLE_PIN PE4
+#define Y_MIN_PIN PA12
+#define Y_MAX_PIN
+
+#define Z_STEP_PIN PB9
+#define Z_DIR_PIN PE0
+#define Z_ENABLE_PIN PE1
+#define Z_MIN_PIN PA14
+#define Z_MAX_PIN -1
+
+#define Y2_STEP_PIN -1
+#define Y2_DIR_PIN -1
+#define Y2_ENABLE_PIN -1
+
+#define Z2_STEP_PIN -1
+#define Z2_DIR_PIN -1
+#define Z2_ENABLE_PIN -1
+
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB5
+#define E0_ENABLE_PIN PB8
+
+#define E1_STEP_PIN -1
+#define E1_DIR_PIN -1
+#define E1_ENABLE_PIN -1
+
+#define E2_STEP_PIN -1
+#define E2_DIR_PIN -1
+#define E2_ENABLE_PIN -1
+
+//
+// Misc. Functions
+//
+#define SDSS -1
+#define LED_PIN -1
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN PA8 // 8
+#endif
+
+#define PS_ON_PIN -1
+#define KILL_PIN PD6 // LED strip 24v
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PD12 // HOT-END
+#define HEATER_1_PIN -1
+#define HEATER_2_PIN -1
+
+#define HEATER_BED_PIN PG11 // HOT-BED
+#define HEATER_BED2_PIN -1 // BED2
+#define HEATER_BED3_PIN -1 // BED3
+
+#ifndef FAN_PIN
+ #define FAN_PIN PG14 // MAIN BOARD FAN
+#endif
+
+#define FAN_SOFT_PWM
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA0 // Analog Input
+#define TEMP_0_PIN PA1 // Analog Input
+#define TEMP_1_PIN -1 // Analog Input
+#define TEMP_2_PIN -1 // Analog Input
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #define LCD_PINS_RS PD1 // 49 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE PD3 // 51 // SID (MOSI)
+ #define LCD_PINS_D4 PD4 // 52 // SCK (CLK) clock
+ #elif BOTH(IS_NEWPANEL, PANEL_ONE)
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PD2
+ #define LCD_PINS_D4 PB12
+ #define LCD_PINS_D5 PB13
+ #define LCD_PINS_D6 PB14
+ #define LCD_PINS_D7 PB15
+ #else
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PD2
+ #define LCD_PINS_D4 PB12
+ #define LCD_PINS_D5 PB13
+ #define LCD_PINS_D6 PB14
+ #define LCD_PINS_D7 PB15
+ #if !IS_NEWPANEL
+ #define BEEPER_PIN PC1 // 33
+ // Buttons attached to a shift register
+ // Not wired yet
+ //#define SHIFT_CLK_PIN PC6 // 38
+ //#define SHIFT_LD_PIN PC10 // 42
+ //#define SHIFT_OUT_PIN PC8 // 40
+ //#define SHIFT_EN_PIN PA1 // 17
+ #endif
+ #endif
+
+ #if IS_NEWPANEL
+
+ #if IS_RRD_SC
+
+ #define BEEPER_PIN PC5
+
+ #define BTN_EN1 PB15 // 31
+ #define BTN_EN2 PC1 // 33
+ #define BTN_ENC PC3 // 35
+
+ #define SD_DETECT_PIN PD1 // 49
+ #define KILL_PIN PC9 // 41
+
+ #if ENABLED(BQ_LCD_SMART_CONTROLLER)
+ #define LCD_BACKLIGHT_PIN PC7 // 39
+ #endif
+
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #define BTN_EN1 PE0 // 64
+ #define BTN_EN2 PD11 // 59
+ #define BTN_ENC PD15 // 63
+ #define SD_DETECT_PIN PC10 // 42
+
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+
+ #define BTN_EN1 PC15 // 47
+ #define BTN_EN2 PC11 // 43
+ #define BTN_ENC PC0 // 32
+ #define LCD_SDSS PD5 // 53
+ #define SD_DETECT_PIN -1
+ #define KILL_PIN PC9 // 41
+
+ #elif ENABLED(LCD_I2C_VIKI)
+
+ #define BTN_EN1 PB6 // 22 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42.
+ #define BTN_EN2 PA7 // 7 // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13.
+
+ #define BTN_ENC -1
+ #define LCD_SDSS PD5 // 53
+ #define SD_DETECT_PIN PD1 // 49
+
+ #elif ANY(VIKI2, miniVIKI)
+
+ #define BEEPER_PIN PC1 // 33
+
+ // Pins for DOGM SPI LCD Support
+ #define DOGLCD_A0 PC12 // 44
+ #define DOGLCD_CS PC13 // 45
+ #define LCD_SCREEN_ROT_180
+
+ #define BTN_EN1 PB6 // 22
+ #define BTN_EN2 PA7 // 7
+ #define BTN_ENC PC7 // 39
+
+ #define SDSS PD5 // 53
+ #define SD_DETECT_PIN -1 // Pin 49 for display sd interface, 72 for easy adapter board
+
+ #define KILL_PIN PB15 // 31
+
+ #define STAT_LED_RED_PIN PC0 // 32
+ #define STAT_LED_BLUE_PIN PC3 // 35
+
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+ #define BTN_EN1 PC3 // 35
+ #define BTN_EN2 PC5 // 37
+ #define BTN_ENC PB15 // 31
+ #define SD_DETECT_PIN PD1 // 49
+ #define LCD_SDSS PD5 // 53
+ #define KILL_PIN PC9 // 41
+ #define BEEPER_PIN PB7 // 23
+ #define DOGLCD_CS PB13 // 29
+ #define DOGLCD_A0 PB11 // 27
+ #define LCD_BACKLIGHT_PIN PC1 // 33
+
+ #elif ENABLED(MINIPANEL)
+
+ #define BEEPER_PIN PC10 // 42
+ // Pins for DOGM SPI LCD Support
+ #define DOGLCD_A0 PC12 // 44
+ #define DOGLCD_CS PE2 // 66
+ #define LCD_BACKLIGHT_PIN PE1 // 65 // backlight LED on A11/D65
+ #define SDSS PD5 // 53
+
+ #define KILL_PIN PE0 // 64
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+ // The encoder and click button
+ #define BTN_EN1 PC8 // 40
+ #define BTN_EN2 PD15 // 63
+ #define BTN_ENC PD11 // 59
+ // not connected to a pin
+ #define SD_DETECT_PIN PD1 // 49
+
+ #else
+
+ // Beeper on AUX-4
+ #define BEEPER_PIN PC1 // 33
+
+ // Buttons directly attached to AUX-2
+ #if IS_RRW_KEYPAD
+ #define BTN_EN1 PE0 // 64
+ #define BTN_EN2 PD11 // 59
+ #define BTN_ENC PD15 // 63
+ #define SHIFT_OUT_PIN PC8 // 40
+ #define SHIFT_CLK_PIN PC12 // 44
+ #define SHIFT_LD_PIN PC10 // 42
+ #elif ENABLED(PANEL_ONE)
+ #define BTN_EN1 PD11 // 59 // AUX2 PIN 3
+ #define BTN_EN2 PD15 // 63 // AUX2 PIN 4
+ #define BTN_ENC PD1 // 49 // AUX3 PIN 7
+ #else
+ #define BTN_EN1 PC5 // 37
+ #define BTN_EN2 PC3 // 35
+ #define BTN_ENC PB15 // 31
+ #endif
+
+ #if ENABLED(G3D_PANEL)
+ #define SD_DETECT_PIN PD1 // 49
+ #define KILL_PIN PC9 // 41
+ #else
+ //#define SD_DETECT_PIN -1 // Ramps doesn't use this
+ #endif
+
+ #endif
+ #endif // IS_NEWPANEL
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h
new file mode 100644
index 0000000..c90ae84
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h
@@ -0,0 +1,189 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 2017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "Chitu3D V5"
+#define DEFAULT_MACHINE_NAME "STM32F103ZET6"
+
+#define BOARD_NO_NATIVE_USB
+
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // SoC Flash (framework-arduinoststm32-maple/STM32F1/libraries/EEPROM/EEPROM.h)
+ #define EEPROM_START_ADDRESS (0x8000000UL + (512 * 1024) - 2 * EEPROM_PAGE_SIZE)
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB, but will use 2x more (4KB)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE
+#else
+ #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PG10
+#define Y_STOP_PIN PA12
+#define Z_STOP_PIN PA14
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC13
+#define X_STEP_PIN PE5
+#define X_DIR_PIN PE6
+
+#define Y_ENABLE_PIN PE4
+#define Y_STEP_PIN PE2
+#define Y_DIR_PIN PE3
+
+#define Z_ENABLE_PIN PE1
+#define Z_STEP_PIN PB9
+#define Z_DIR_PIN PE0
+
+#define E0_ENABLE_PIN PB8
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB5
+
+#define E1_ENABLE_PIN PG8
+#define E1_STEP_PIN PC7
+#define E1_DIR_PIN PC6
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA1 // TH1
+#define TEMP_BED_PIN PA0 // TB1
+
+//
+// Heaters
+//
+#define HEATER_0_PIN PG12 // HEATER1
+#define HEATER_BED_PIN PG11 // HOT BED
+
+//
+// Fans
+//
+#define CONTROLLER_FAN_PIN PD6 // BOARD FAN
+#define FAN_PIN PG13 // FAN
+#define FAN2_PIN PG14
+
+//
+// Misc
+//
+#define BEEPER_PIN PB0
+//#define LED_PIN -1
+//#define POWER_LOSS_PIN -1
+#define FIL_RUNOUT_PIN PA15
+
+// SPI Flash
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x200000 // 2MB
+#endif
+
+// SPI 2
+#define W25QXX_CS_PIN PB12
+#define W25QXX_MOSI_PIN PB15
+#define W25QXX_MISO_PIN PB14
+#define W25QXX_SCK_PIN PB13
+
+//
+// TronXY TFT Support
+//
+
+#if HAS_FSMC_TFT
+
+ // Shared FSMC
+
+ #define TOUCH_CS_PIN PB7 // SPI1_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI1_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI1_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
+
+ #define TFT_RESET_PIN PF11
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_CS_PIN PD7
+ #define FSMC_RS_PIN PD11
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+#endif
+
+#if ENABLED(TFT_LVGL_UI)
+ // LVGL
+ #define HAS_SPI_FLASH_FONT 1
+ #define HAS_GCODE_PREVIEW 1
+ #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0
+ #define HAS_LANG_SELECT_SCREEN 1
+ #define HAS_BAK_VIEW_IN_FLASH 0
+ #define HAS_LOGO_IN_FLASH 0
+#elif ENABLED(TFT_COLOR_UI)
+ // Color UI
+ #define TFT_DRIVER ILI9488
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+// XPT2046 Touch Screen calibration
+#if ANY(TFT_LVGL_UI, TFT_COLOR_UI, TFT_CLASSIC_UI)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X -17181
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y 11434
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X 501
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y -9
+ #endif
+#endif
+
+// SPI1(PA7)=LCD & SPI3(PB5)=STUFF, are not available
+// Needs to use SPI2
+#define SPI_DEVICE 2
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN PB14
+#define SD_MOSI_PIN PB15
+#define SD_SS_PIN PB12
+
+//
+// SD Card
+//
+#define SDIO_SUPPORT
+#define SD_DETECT_PIN -1 // PF0, but it isn't connected
+#define SDIO_CLOCK 4500000
+#define SDIO_READ_RETRIES 16
diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h
new file mode 100644
index 0000000..96cf366
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h
@@ -0,0 +1,204 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 2017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "Chitu3D"
+#define DEFAULT_MACHINE_NAME "STM32F103ZET6"
+
+#define BOARD_NO_NATIVE_USB
+
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+
+#if NO_EEPROM_SELECTED
+ #define FLASH_EEPROM_EMULATION
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // SoC Flash (framework-arduinoststm32-maple/STM32F1/libraries/EEPROM/EEPROM.h)
+ #define EEPROM_START_ADDRESS (0x8000000UL + (512 * 1024) - 2 * EEPROM_PAGE_SIZE)
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB, but will use 2x more (4KB)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE
+#else
+ #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PG10
+#define Y_STOP_PIN PA12
+#define Z_STOP_PIN PG9
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC13
+#define X_STEP_PIN PE5
+#define X_DIR_PIN PE6
+
+#define Y_ENABLE_PIN PE4
+#define Y_STEP_PIN PE2
+#define Y_DIR_PIN PE3
+
+#define Z_ENABLE_PIN PE1
+#define Z_STEP_PIN PB9
+#define Z_DIR_PIN PE0
+
+#define Z2_ENABLE_PIN PF3
+#define Z2_STEP_PIN PF5
+#define Z2_DIR_PIN PF1
+
+#define E0_ENABLE_PIN PB8
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB5
+
+#define E1_ENABLE_PIN PG8
+#define E1_STEP_PIN PC7
+#define E1_DIR_PIN PC6
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA1 // TH1
+#define TEMP_BED_PIN PA0 // TB1
+
+//
+// Heaters
+//
+#define HEATER_0_PIN PG12 // HEATER1
+#define HEATER_BED_PIN PG11 // HOT BED
+//#define HEATER_BED_INVERTING true
+
+//
+// Fans
+//
+#define CONTROLLER_FAN_PIN PD6 // BOARD FAN
+#define FAN_PIN PG13 // FAN
+#define FAN2_PIN PG14
+
+//
+// Misc
+//
+#define BEEPER_PIN PB0
+//#define LED_PIN PD3
+//#define POWER_LOSS_PIN PG2 // PG4 PW_DET
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA15 // MT_DET
+#endif
+#ifndef FIL_RUNOUT2_PIN
+ #define FIL_RUNOUT2_PIN PF13
+#endif
+
+// SPI Flash
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x200000 // 2MB
+#endif
+
+// SPI 2
+#define W25QXX_CS_PIN PB12
+#define W25QXX_MOSI_PIN PB15
+#define W25QXX_MISO_PIN PB14
+#define W25QXX_SCK_PIN PB13
+
+//
+// TronXY TFT Support
+//
+
+#if HAS_FSMC_TFT
+
+ // Shared FSMC
+
+ #define TOUCH_CS_PIN PB7 // SPI1_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI1_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI1_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
+
+ #define TFT_RESET_PIN PF11
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_CS_PIN PD7
+ #define FSMC_RS_PIN PD11
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+#endif
+
+#if ENABLED(TFT_LVGL_UI)
+ // LVGL
+ #define HAS_SPI_FLASH_FONT 1
+ #define HAS_GCODE_PREVIEW 1
+ #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0
+ #define HAS_LANG_SELECT_SCREEN 1
+ #define HAS_BAK_VIEW_IN_FLASH 0
+ #define HAS_LOGO_IN_FLASH 0
+#elif ENABLED(TFT_COLOR_UI)
+ // Color UI
+ #define TFT_DRIVER ILI9488
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+// XPT2046 Touch Screen calibration
+#if ANY(TFT_LVGL_UI, TFT_COLOR_UI, TFT_CLASSIC_UI)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X -17181
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y 11434
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X 501
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y -9
+ #endif
+#endif
+
+// SPI1(PA7)=LCD & SPI3(PB5)=STUFF, are not available
+// so SPI2 is required.
+#define SPI_DEVICE 2
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN PB14
+#define SD_MOSI_PIN PB15
+#define SD_SS_PIN PB12
+
+//
+// SD Card
+//
+#define SDIO_SUPPORT
+#define SD_DETECT_PIN -1 // PF0, but it isn't connected
+#define SDIO_CLOCK 4500000
+#define SDIO_READ_RETRIES 16
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h
new file mode 100644
index 0000000..8b5b856
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h
@@ -0,0 +1,200 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Creality 4.2.x (STM32F103RET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "Creality V4 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Creality V4"
+#endif
+#ifndef DEFAULT_MACHINE_NAME
+ #define DEFAULT_MACHINE_NAME "Ender 3 V2"
+#endif
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// EEPROM
+//
+#if NO_EEPROM_SELECTED
+ #define IIC_BL24CXX_EEPROM // EEPROM on I2C-0
+ //#define SDCARD_EEPROM_EMULATION
+#endif
+
+#if ENABLED(IIC_BL24CXX_EEPROM)
+ #define IIC_EEPROM_SDA PA11
+ #define IIC_EEPROM_SCL PA12
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb (24C16)
+#elif ENABLED(SDCARD_EEPROM_EMULATION)
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb
+#endif
+
+//
+// Servos
+//
+#ifndef HAS_PIN_27_BOARD
+ #define SERVO0_PIN PB0 // BLTouch OUT
+#else
+ #define SERVO0_PIN PC6
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA5
+#define Y_STOP_PIN PA6
+#define Z_STOP_PIN PA7
+
+#define Z_MIN_PROBE_PIN PB1 // BLTouch IN
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA4 // "Pulled-high"
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC3
+#ifndef X_STEP_PIN
+ #define X_STEP_PIN PC2
+#endif
+#ifndef X_DIR_PIN
+ #define X_DIR_PIN PB9
+#endif
+
+#define Y_ENABLE_PIN PC3
+#ifndef Y_STEP_PIN
+ #define Y_STEP_PIN PB8
+#endif
+#ifndef Y_DIR_PIN
+ #define Y_DIR_PIN PB7
+#endif
+
+#define Z_ENABLE_PIN PC3
+#ifndef Z_STEP_PIN
+ #define Z_STEP_PIN PB6
+#endif
+#ifndef Z_DIR_PIN
+ #define Z_DIR_PIN PB5
+#endif
+
+#define E0_ENABLE_PIN PC3
+#ifndef E0_STEP_PIN
+ #define E0_STEP_PIN PB4
+#endif
+#ifndef E0_DIR_PIN
+ #define E0_DIR_PIN PB3
+#endif
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC5 // TH1
+#define TEMP_BED_PIN PC4 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA1 // HEATER1
+#define HEATER_BED_PIN PA2 // HOT BED
+
+#define FAN_PIN PA0 // FAN
+#define FAN_SOFT_PWM
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PC7
+#define SDCARD_CONNECTION ONBOARD
+#define ONBOARD_SPI_DEVICE 1
+#define ONBOARD_SD_CS_PIN PA4 // SDSS
+#define SDIO_SUPPORT
+#define NO_SD_HOST_DRIVE // This board's SD is only seen by the printer
+
+#if ENABLED(CR10_STOCKDISPLAY) && NONE(RET6_12864_LCD, VET6_12864_LCD)
+ #error "Define RET6_12864_LCD or VET6_12864_LCD to select pins for CR10_STOCKDISPLAY with the Creality V4 controller."
+#endif
+
+#if ENABLED(RET6_12864_LCD)
+
+ // RET6 12864 LCD
+ #define LCD_PINS_RS PB12
+ #define LCD_PINS_ENABLE PB15
+ #define LCD_PINS_D4 PB13
+
+ #define BTN_ENC PB2
+ #define BTN_EN1 PB10
+ #define BTN_EN2 PB14
+
+ #ifndef HAS_PIN_27_BOARD
+ #define BEEPER_PIN PC6
+ #endif
+
+#elif ENABLED(VET6_12864_LCD)
+
+ // VET6 12864 LCD
+ #define LCD_PINS_RS PA4
+ #define LCD_PINS_ENABLE PA7
+ #define LCD_PINS_D4 PA5
+
+ #define BTN_ENC PC5
+ #define BTN_EN1 PB10
+ #define BTN_EN2 PA6
+
+#elif ENABLED(DWIN_CREALITY_LCD)
+
+ // RET6 DWIN ENCODER LCD
+ #define BTN_ENC PB14
+ #define BTN_EN1 PB15
+ #define BTN_EN2 PB12
+
+ //#define LCD_LED_PIN PB2
+ #ifndef BEEPER_PIN
+ #define BEEPER_PIN PB13
+ #undef SPEAKER
+ #endif
+
+#elif ENABLED(DWIN_VET6_CREALITY_LCD)
+
+ // VET6 DWIN ENCODER LCD
+ #define BTN_ENC PA6
+ #define BTN_EN1 PA7
+ #define BTN_EN2 PA4
+
+ #define BEEPER_PIN PA5
+
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V4210.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V4210.h
new file mode 100644
index 0000000..025e68d
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V4210.h
@@ -0,0 +1,208 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * CREALITY 4.2.10 (STM32F103) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "CREALITY supports up to 1 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Creality V4.2.10"
+#endif
+#ifndef DEFAULT_MACHINE_NAME
+ #define DEFAULT_MACHINE_NAME "3DPrintMill"
+#endif
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// EEPROM
+//
+#if NO_EEPROM_SELECTED
+ // FLASH
+ //#define FLASH_EEPROM_EMULATION
+
+ // I2C
+ #define IIC_BL24CXX_EEPROM // EEPROM on I2C-0 used only for display settings
+ #if ENABLED(IIC_BL24CXX_EEPROM)
+ #define IIC_EEPROM_SDA PA11
+ #define IIC_EEPROM_SCL PA12
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb (24C16)
+ #else
+ #define SDCARD_EEPROM_EMULATION // SD EEPROM until all EEPROM is BL24CXX
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb
+ #endif
+
+ // SPI
+ //#define SPI_EEPROM // EEPROM on SPI-0
+ //#define SPI_CHAN_EEPROM1 ?
+ //#define SPI_EEPROM1_CS ?
+
+ // 2K EEPROM
+ //#define SPI_EEPROM2_CS ?
+
+ // 32Mb FLASH
+ //#define SPI_FLASH_CS ?
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PB0 // BLTouch OUT
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA3
+#define Y_STOP_PIN PA7
+#define Z_STOP_PIN PA5
+
+#define Z_MIN_PROBE_PIN PA5 // BLTouch IN
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA6 // "Pulled-high"
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC3
+#ifndef X_STEP_PIN
+ #define X_STEP_PIN PC2
+#endif
+#ifndef X_DIR_PIN
+ #define X_DIR_PIN PB9
+#endif
+
+#define Y_ENABLE_PIN PC3
+#ifndef Y_STEP_PIN
+ #define Y_STEP_PIN PB8
+#endif
+#ifndef Y_DIR_PIN
+ #define Y_DIR_PIN PB7
+#endif
+
+#define Z_ENABLE_PIN PC3
+#ifndef Z_STEP_PIN
+ #define Z_STEP_PIN PB6
+#endif
+#ifndef Z_DIR_PIN
+ #define Z_DIR_PIN PB5
+#endif
+
+#define E0_ENABLE_PIN PC3
+#ifndef E0_STEP_PIN
+ #define E0_STEP_PIN PB4
+#endif
+#ifndef E0_DIR_PIN
+ #define E0_DIR_PIN PB3
+#endif
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC5 // TH1
+#define TEMP_BED_PIN PC4 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA0 // HEATER1
+#define HEATER_BED_PIN PA1 // HOT BED
+
+#define FAN_PIN PA2 // FAN
+#define FAN_SOFT_PWM
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PC7
+#define SDCARD_CONNECTION ONBOARD
+#define ONBOARD_SPI_DEVICE 1
+#define ONBOARD_SD_CS_PIN PA4 // SDSS
+#define SDIO_SUPPORT
+#define NO_SD_HOST_DRIVE // This board's SD is only seen by the printer
+
+#if ENABLED(CR10_STOCKDISPLAY) && NONE(RET6_12864_LCD, VET6_12864_LCD)
+ #error "Define RET6_12864_LCD or VET6_12864_LCD to select pins for CR10_STOCKDISPLAY with the Creality V4 controller."
+#endif
+
+#if ENABLED(RET6_12864_LCD)
+
+ // RET6 12864 LCD
+ #define LCD_PINS_RS PB12
+ #define LCD_PINS_ENABLE PB15
+ #define LCD_PINS_D4 PB13
+
+ #define BTN_ENC PB2
+ #define BTN_EN1 PB10
+ #define BTN_EN2 PB14
+
+ #define BEEPER_PIN PC6
+
+#elif ENABLED(VET6_12864_LCD)
+
+ // VET6 12864 LCD
+ #define LCD_PINS_RS PA4
+ #define LCD_PINS_ENABLE PA7
+ #define LCD_PINS_D4 PA5
+
+ #define BTN_ENC PC5
+ #define BTN_EN1 PB10
+ #define BTN_EN2 PA6
+
+#elif ENABLED(DWIN_CREALITY_LCD)
+
+ // RET6 DWIN ENCODER LCD
+ #define BTN_ENC PB14
+ #define BTN_EN1 PB15
+ #define BTN_EN2 PB12
+
+ //#define LCD_LED_PIN PB2
+ #ifndef BEEPER_PIN
+ #define BEEPER_PIN PB13
+ #undef SPEAKER
+ #endif
+
+#elif ENABLED(DWIN_VET6_CREALITY_LCD)
+
+ // VET6 DWIN ENCODER LCD
+ #define BTN_ENC PA6
+ #define BTN_EN1 PA7
+ #define BTN_EN2 PA4
+
+ #define BEEPER_PIN PA5
+
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V427.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V427.h
new file mode 100644
index 0000000..64ef046
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V427.h
@@ -0,0 +1,44 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * CREALITY v4.2.7 (STM32F103) board pin assignments
+ */
+
+#define BOARD_INFO_NAME "Creality v4.2.7"
+#define DEFAULT_MACHINE_NAME "Creality3D"
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB9
+#define X_DIR_PIN PC2
+#define Y_STEP_PIN PB7
+
+#define Y_DIR_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB6
+
+#define E0_STEP_PIN PB3
+#define E0_DIR_PIN PB4
+
+#include "pins_CREALITY_V4.h"
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V431.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V431.h
new file mode 100644
index 0000000..ff9f760
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V431.h
@@ -0,0 +1,39 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * CREALITY v4.3.1 (STM32F103) board pin assignments
+ */
+
+#define BOARD_INFO_NAME "Creality v4.3.1"
+#define DEFAULT_MACHINE_NAME "Creality3D"
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB8
+#define X_DIR_PIN PB7
+
+#define Y_STEP_PIN PC2
+#define Y_DIR_PIN PB9
+
+#include "pins_CREALITY_V4.h"
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V452.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V452.h
new file mode 100644
index 0000000..9acbb42
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V452.h
@@ -0,0 +1,38 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Creality v4.5.2 (STM32F103RET6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "Creality v4.5.2 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_NAME "Creality v4.5.2"
+
+#define HEATER_0_PIN PA1 // HEATER1
+#define HEATER_BED_PIN PA2 // HOT BED
+#define FAN_PIN PA0 // FAN
+#define PROBE_ACTIVATION_SWITCH_PIN PC6 // Optoswitch to Enable Z Probe
+
+#include "pins_CREALITY_V45x.h"
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V453.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V453.h
new file mode 100644
index 0000000..f990b2f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V453.h
@@ -0,0 +1,38 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Creality v4.5.3 (STM32F103RET6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "Creality v4.5.3 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_NAME "Creality v4.5.3"
+
+#define HEATER_0_PIN PB14 // HEATER1
+#define HEATER_BED_PIN PB13 // HOT BED
+#define FAN_PIN PB15 // FAN
+#define PROBE_ACTIVATION_SWITCH_PIN PB2 // Optoswitch to Enable Z Probe
+
+#include "pins_CREALITY_V45x.h"
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V45x.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V45x.h
new file mode 100644
index 0000000..f2be289
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V45x.h
@@ -0,0 +1,113 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Creality v4.5.2 and v4.5.3 (STM32F103RET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define DEFAULT_MACHINE_NAME "Creality3D"
+
+//
+// Release PB4 (Z_STEP_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// EEPROM
+//
+#if NO_EEPROM_SELECTED
+ #define IIC_BL24CXX_EEPROM // EEPROM on I2C-0
+ //#define SDCARD_EEPROM_EMULATION
+#endif
+
+#if ENABLED(IIC_BL24CXX_EEPROM)
+ #define IIC_EEPROM_SDA PA11
+ #define IIC_EEPROM_SCL PA12
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb (24C16)
+#elif ENABLED(SDCARD_EEPROM_EMULATION)
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC4
+#define Y_STOP_PIN PC5
+#define Z_STOP_PIN PA4
+
+#define FIL_RUNOUT_PIN PA7
+
+//
+// Probe
+//
+#define PROBE_TARE_PIN PA5
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC3
+#define X_STEP_PIN PB8
+#define X_DIR_PIN PB7
+
+#define Y_ENABLE_PIN PC3
+#define Y_STEP_PIN PB6
+#define Y_DIR_PIN PB5
+
+#define Z_ENABLE_PIN PC3
+#define Z_STEP_PIN PB4
+#define Z_DIR_PIN PB3
+
+#define E0_ENABLE_PIN PC3
+#define E0_STEP_PIN PC2
+#define E0_DIR_PIN PB9
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PB1 // TH1
+#define TEMP_BED_PIN PB0 // TB1
+
+//
+// Heaters / Fans
+//
+
+#define FAN_SOFT_PWM
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PC7
+#define NO_SD_HOST_DRIVE // SD is only seen by the printer
+
+#define SDIO_SUPPORT // Extra added by Creality
+#define SDIO_CLOCK 6000000 // In original source code overridden by Creality in sdio.h
+
+//
+// Misc. Functions
+//
+#define CASE_LIGHT_PIN PA6
diff --git a/Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h b/Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h
new file mode 100644
index 0000000..c49c31e
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h
@@ -0,0 +1,318 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * FLSUN HiSpeed V1 (STM32F103VET6) board pin assignments
+ * FLSun Hispeed (clone MKS_Robin_miniV2) board.
+ *
+ * MKS Robin Mini USB uses UART3 (PB10-TX, PB11-RX)
+ * #define SERIAL_PORT_2 3
+ */
+
+#if NOT_TARGET(__STM32F1__, STM32F1xx)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "FLSUN HiSpeedV1 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "FLSun HiSpeedV1"
+#define BOARD_WEBSITE_URL "github.com/Foxies-CSTL"
+
+#define BOARD_NO_NATIVE_USB
+
+// Avoid conflict with TIMER_SERVO when using the STM32 HAL
+#define TEMP_TIMER 5
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// EEPROM
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// SPI
+// Note: FLSun Hispeed (clone MKS_Robin_miniV2) board is using SPI2 interface.
+//
+#define SD_SCK_PIN PB13 // SPI2
+#define SD_MISO_PIN PB14 // SPI2
+#define SD_MOSI_PIN PB15 // SPI2
+#define SPI_DEVICE 2
+
+// SPI Flash
+#define HAS_SPI_FLASH 1
+#define SPI_FLASH_SIZE 0x1000000 // 16MB
+
+#if HAS_SPI_FLASH
+ // SPI 2
+ #define W25QXX_CS_PIN PB12 // SPI2_NSS / Flash chip-select
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
+
+//
+// Servos
+//
+//#define SERVO0_PIN PA8 // use IO0 to enable BLTOUCH support/remove Mks_Wifi
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA15 // -X
+#define Y_STOP_PIN PA12 // -Y
+#define Z_MIN_PIN PA11 // -Z
+#define Z_MAX_PIN PC4 // +Z
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN MT_DET_1_PIN
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4 // X_EN
+#define X_STEP_PIN PE3 // X_STEP
+#define X_DIR_PIN PE2 // X_DIR
+
+#define Y_ENABLE_PIN PE1 // Y_EN
+#define Y_STEP_PIN PE0 // Y_STEP
+#define Y_DIR_PIN PB9 // Y_DIR
+
+#define Z_ENABLE_PIN PB8 // Z_EN
+#define Z_STEP_PIN PB5 // Z_STEP
+#define Z_DIR_PIN PB4 // Z_DIR
+
+#define E0_ENABLE_PIN PB3 // E0_EN
+#define E0_STEP_PIN PD6 // E0_STEP
+#define E0_DIR_PIN PD3 // E0_DIR
+
+/**
+ * FLSUN Hi-Speed has no hard-wired UART pins for TMC drivers.
+ * Several wiring options are provided below, defaulting to
+ * to the most compatible.
+ */
+#if HAS_TMC_UART
+ // SoftwareSerial with one pin per driver
+ // Compatible with TMC2208 and TMC2209 drivers
+ #define X_SERIAL_TX_PIN PA10 // RXD1
+ #define X_SERIAL_RX_PIN PA10 // RXD1
+ #define Y_SERIAL_TX_PIN PA9 // TXD1
+ #define Y_SERIAL_RX_PIN PA9 // TXD1
+ #define Z_SERIAL_TX_PIN PC7 // IO1
+ #define Z_SERIAL_RX_PIN PC7 // IO1
+ #define TMC_BAUD_RATE 19200
+#else
+ // Motor current PWM pins
+ #define MOTOR_CURRENT_PWM_XY_PIN PA6 // VREF2/3 CONTROL XY
+ #define MOTOR_CURRENT_PWM_Z_PIN PA7 // VREF4 CONTROL Z
+ #define MOTOR_CURRENT_PWM_RANGE 1500 // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp
+ #ifndef DEFAULT_PWM_MOTOR_CURRENT
+ #define DEFAULT_PWM_MOTOR_CURRENT { 800, 800, 800 }
+ #endif
+
+ /**
+ * MKS Robin_Wifi or another ESP8266 module
+ *
+ * __ESP(M1)__ -J1-
+ * GND| 15 | | 08 |+3v3 (22) RXD1 (PA10)
+ * | 16 | | 07 |MOSI (21) TXD1 (PA9) Active LOW, probably OK to leave floating
+ * IO2| 17 | | 06 |MISO (19) IO1 (PC7) Leave as unused (ESP3D software configures this with a pullup so OK to leave as floating)
+ * IO0| 18 | | 05 |CLK (18) IO0 (PA8) Must be HIGH (ESP3D software configures this with a pullup so OK to leave as floating)
+ * IO1| 19 | | 03 |EN (03) WIFI_EN Must be HIGH for module to run
+ * | nc | | nc | (01) WIFI_CTRL (PA5)
+ * RX| 21 | | nc |
+ * TX| 22 | | 01 |RST
+ *  ̄ ̄ AE ̄ ̄
+ */
+ // Module ESP-WIFI
+ #define ESP_WIFI_MODULE_COM 2 // Must also set either SERIAL_PORT or SERIAL_PORT_2 to this
+ #define ESP_WIFI_MODULE_BAUDRATE BAUDRATE // Must use same BAUDRATE as SERIAL_PORT & SERIAL_PORT_2
+ #define ESP_WIFI_MODULE_RESET_PIN PA5 // WIFI CTRL/RST
+ #define ESP_WIFI_MODULE_ENABLE_PIN -1
+ #define ESP_WIFI_MODULE_TXD_PIN PA9 // MKS or ESP WIFI RX PIN
+ #define ESP_WIFI_MODULE_RXD_PIN PA10 // MKS or ESP WIFI TX PIN
+#endif
+
+//
+// EXTRUDER
+//
+#if AXIS_DRIVER_TYPE_E0(TMC2208) || AXIS_DRIVER_TYPE_E0(TMC2209)
+ #define E0_SERIAL_TX_PIN PA8 // IO0
+ #define E0_SERIAL_RX_PIN PA8 // IO0
+ #define TMC_BAUD_RATE 19200
+#else
+ // Motor current PWM pins
+ #define MOTOR_CURRENT_PWM_E_PIN PB0 // VREF1 CONTROL E
+ #define MOTOR_CURRENT_PWM_RANGE 1500 // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp
+ #ifndef DEFAULT_PWM_MOTOR_CURRENT
+ #define DEFAULT_PWM_MOTOR_CURRENT { 800, 800, 800 }
+ #endif
+#endif
+
+//
+// Temperature Sensors (THM)
+//
+#define TEMP_0_PIN PC1 // TEMP_E0
+#define TEMP_BED_PIN PC0 // TEMP_BED
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC3 // HEATER_E0
+#define HEATER_BED_PIN PA0 // HEATER_BED-WKUP
+
+#define FAN_PIN PB1 // E_FAN
+
+//
+// Misc. Functions
+//
+//#define POWER_LOSS_PIN PA1 // PW_SO
+#if ENABLED(BACKUP_POWER_SUPPLY)
+ #define POWER_LOSS_PIN PA2 // PW_DET (UPS) MKSPWC
+#endif
+
+/**
+ * Connector J2
+ * -------
+ * DIO O|1 2|O 3v3
+ * CSK O|3 5|O GND
+ * RST O|5 6|O GND
+ * -------
+ */
+//#define SW_DIO PA13
+//#define SW_CLK PA14
+//#define SW_RST NRST // (14)
+
+//
+// Power Supply Control
+//
+#if ENABLED(PSU_CONTROL)
+ #define KILL_PIN PA2 // PW_DET
+ #define KILL_PIN_INVERTING true
+ //#define PS_ON_PIN PA3 // PW_CN /PW_OFF
+#endif
+
+#define MT_DET_1_PIN PA4 // MT_DET
+#define MT_DET_2_PIN PE6 // FALA_CRTL
+#define MT_DET_PIN_INVERTING false
+
+//
+// LED / NEOPixel
+//
+//#define LED_PIN PB2 // BOOT1
+
+#if ENABLED(NEOPIXEL_LED)
+ #define LED_PWM PC7 // IO1
+ #ifndef NEOPIXEL_PIN
+ #define NEOPIXEL_PIN LED_PWM // USED WIFI IO0/IO1 PIN
+ #endif
+#endif
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+// Use the on-board card socket labeled SD_Extender
+#if SD_CONNECTION_IS(CUSTOM_CABLE)
+ #define SD_SCK_PIN PC12
+ #define SD_MISO_PIN PC8
+ #define SD_MOSI_PIN PD2
+ #define SD_SS_PIN -1
+ #define SD_DETECT_PIN PD12 // SD_CD (if -1 no detection)
+#else
+ #define SDIO_SUPPORT
+ #define SDIO_CLOCK 4500000 // 4.5 MHz
+ #define SDIO_READ_RETRIES 16
+ #define ONBOARD_SPI_DEVICE 1 // SPI1
+ #define ONBOARD_SD_CS_PIN PC11
+ #define SD_DETECT_PIN -1 // SD_CD (-1 active refresh)
+#endif
+
+//
+// LCD / Controller
+//
+#ifndef BEEPER_PIN
+ #define BEEPER_PIN PC5
+#endif
+
+#if ENABLED(SPEAKER) && BEEPER_PIN == PC5
+ #error "FLSun HiSpeed default BEEPER_PIN is not a SPEAKER."
+#endif
+
+#if HAS_FSMC_TFT || HAS_GRAPHICAL_TFT
+ #define TFT_CS_PIN PD7 // NE4
+ #define TFT_RS_PIN PD11 // A0
+#endif
+
+#if HAS_FSMC_TFT
+ /**
+ * Note: MKS Robin TFT screens use various TFT controllers
+ * Supported screens are based on the ILI9341, ST7789V and ILI9328 (320x240)
+ * ILI9488 is not supported
+ * Define init sequences for other screens in u8g_dev_tft_320x240_upscale_from_128x64.cpp
+ *
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ *
+ * Setting an 'LCD_RESET_PIN' may cause a flicker when entering the LCD menu
+ * because Marlin uses the reset as a failsafe to revive a glitchy LCD.
+ */
+ //#define TFT_RESET_PIN PC6 // FSMC_RST
+ #define TFT_BACKLIGHT_PIN PD13
+ #define FSMC_CS_PIN TFT_CS_PIN // NE4
+ #define FSMC_RS_PIN TFT_RS_PIN // A0
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+ #ifdef TFT_CLASSIC_UI
+ #define TFT_MARLINBG_COLOR 0x3186 // Grey
+ #define TFT_MARLINUI_COLOR 0xC7B6 // Green
+ #define TFT_BTARROWS_COLOR 0xDEE6 // Yellow
+ #define TFT_BTOKMENU_COLOR 0x145F // Cyan
+ #endif
+ #define TFT_BUFFER_SIZE 14400
+#elif HAS_GRAPHICAL_TFT
+ #define TFT_RESET_PIN PC6
+ #define TFT_BACKLIGHT_PIN PD13
+#endif
+
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PC2 // SPI2_NSS
+ #define TOUCH_SCK_PIN PB13 // SPI2_SCK
+ #define TOUCH_MISO_PIN PB14 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
+ #define TOUCH_INT_PIN -1
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_FLY_MINI.h b/Marlin/src/pins/stm32f1/pins_FLY_MINI.h
new file mode 100644
index 0000000..2278d55
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_FLY_MINI.h
@@ -0,0 +1,176 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "FLY_MINI"
+#define BOARD_WEBSITE_URL "github.com/FLYmaker"
+#define DISABLE_JTAG
+
+//
+// Flash EEPROM Emulation
+//
+#define FLASH_EEPROM_EMULATION
+#define EEPROM_PAGE_SIZE 0x800 // 2KB
+#define EEPROM_START_ADDRESS (0x8000000 + 256 * 1024 - 2 * EEPROM_PAGE_SIZE) // 256K firmware space
+#define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PC12
+#define X_MAX_PIN PC11
+#define Y_MIN_PIN PC10
+#define Y_MAX_PIN PA15
+#define Z_MIN_PIN PA14
+#define Z_MAX_PIN PA13
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB1
+#define X_DIR_PIN PB2
+#define X_ENABLE_PIN PB10
+#ifndef X_CS_PIN
+ #define X_CS_PIN PB0
+#endif
+
+#define Y_STEP_PIN PA2
+#define Y_DIR_PIN PC4
+#define Y_ENABLE_PIN PC5
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PA7
+#endif
+
+#define Z_STEP_PIN PA3
+#define Z_DIR_PIN PA5
+#define Z_ENABLE_PIN PA6
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PA4
+#endif
+
+#define E0_STEP_PIN PA1
+#define E0_DIR_PIN PC3
+#define E0_ENABLE_PIN PA0
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PC2
+#endif
+
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB15
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB14
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB13
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PB0
+ #define X_SERIAL_RX_PIN PB0
+ #define Y_SERIAL_TX_PIN PA7
+ #define Y_SERIAL_RX_PIN PA7
+ #define Z_SERIAL_TX_PIN PA4
+ #define Z_SERIAL_RX_PIN PA4
+ #define E0_SERIAL_TX_PIN PC2
+ #define E0_SERIAL_RX_PIN PC2
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC6
+#define HEATER_BED_PIN PC7
+#ifndef FAN_PIN
+ #define FAN_PIN PC8
+#endif
+#define FAN1_PIN PC9
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PC0 // Analog Input
+#define TEMP_0_PIN PC1 // Analog Input
+
+//
+// LCD Pins
+//
+
+//
+// LCD / Controller
+//
+#define SPI_DEVICE 2
+#define SD_SS_PIN PB12
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN PB14
+#define SD_MOSI_PIN PB15
+
+#define SDSS SD_SS_PIN
+#define SD_DETECT_PIN PB11
+
+#define BEEPER_PIN PC14
+
+#define LCD_PINS_RS PB8
+#define LCD_PINS_ENABLE PB9
+#define LCD_PINS_D4 PB7
+#define LCD_PINS_D5 PB6
+#define LCD_PINS_D6 PB5
+#define LCD_PINS_D7 PB4
+
+#define BTN_EN1 PD2
+#define BTN_EN2 PB3
+#define BTN_ENC PC13
+
+#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+#endif
+
+//
+// Filament runout
+//
+
+//
+// ST7920 Delays
+//
+#ifndef ST7920_DELAY_1
+ #define ST7920_DELAY_1 DELAY_NS(96)
+#endif
+#ifndef ST7920_DELAY_2
+ #define ST7920_DELAY_2 DELAY_NS(48)
+#endif
+#ifndef ST7920_DELAY_3
+ #define ST7920_DELAY_3 DELAY_NS(715)
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h b/Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h
new file mode 100644
index 0000000..3919723
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h
@@ -0,0 +1,211 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "FYSETC AIO II"
+#define BOARD_WEBSITE_URL "fysetc.com"
+
+#define BOARD_NO_NATIVE_USB
+
+#define DISABLE_JTAG
+
+#define pins_v2_20190128 // new pins define
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Flash EEPROM Emulation
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA1
+#define Y_STOP_PIN PA0
+#define Z_STOP_PIN PB14
+
+//
+// Filament runout
+//
+#ifdef pins_v2_20190128
+ #define FIL_RUNOUT_PIN PB15
+#else
+ #define FIL_RUNOUT_PIN PB5
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB8
+#define X_DIR_PIN PB9
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PB2
+#ifdef pins_v2_20190128
+ #define Y_DIR_PIN PB3
+#else
+ #define Y_DIR_PIN PB0
+#endif
+#define Y_ENABLE_PIN PB1
+
+#define Z_STEP_PIN PC0
+#define Z_DIR_PIN PC1
+#define Z_ENABLE_PIN PC2
+
+#define E0_STEP_PIN PC15
+#define E0_DIR_PIN PC14
+#define E0_ENABLE_PIN PC13
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ */
+
+ // Hardware serial with switch
+ #define X_HARDWARE_SERIAL MSerial2
+ #define Y_HARDWARE_SERIAL MSerial2
+ #define Z_HARDWARE_SERIAL MSerial2
+ #define E0_HARDWARE_SERIAL MSerial2
+
+ // Default TMC slave addresses
+ #ifndef X_SLAVE_ADDRESS
+ #define X_SLAVE_ADDRESS 0
+ #endif
+ #ifndef Y_SLAVE_ADDRESS
+ #define Y_SLAVE_ADDRESS 1
+ #endif
+ #ifndef Z_SLAVE_ADDRESS
+ #define Z_SLAVE_ADDRESS 2
+ #endif
+ #ifndef E0_SLAVE_ADDRESS
+ #define E0_SLAVE_ADDRESS 3
+ #endif
+
+ // The 4xTMC2209 module doesn't have a serial multiplexer and
+ // needs to set *_SLAVE_ADDRESS in Configuration_adv.h for X,Y,Z,E0
+ #if HAS_DRIVER(TMC2208)
+ #define TMC_SERIAL_MULTIPLEXER
+ #define SERIAL_MUL_PIN1 PB13
+ #define SERIAL_MUL_PIN2 PB12
+ #endif
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Stepper current PWM
+//
+#ifndef MOTOR_CURRENT_PWM_RANGE
+ #define MOTOR_CURRENT_PWM_RANGE 1500 // origin:2000
+#endif
+#define DEFAULT_PWM_MOTOR_CURRENT { 500, 500, 400 } // origin: {1300,1300,1250}
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC7
+#define HEATER_BED_PIN PC6
+#ifndef FAN_PIN
+ #define FAN_PIN PC8
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PC5 // Analog Input
+#define TEMP_0_PIN PC4 // Analog Input
+
+//
+// Misc. Functions
+//
+#define SDSS PA4
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN PC9
+
+ #if HAS_MARLINUI_U8GLIB
+
+ #define DOGLCD_A0 PA15
+ #ifdef pins_v2_20190128
+ #define DOGLCD_CS PB5
+ #else
+ #define DOGLCD_CS PB7
+ #endif
+
+ //#define LCD_CONTRAST_INIT 190
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ #endif
+
+ // not connected to a pin
+ #define SD_DETECT_PIN PC3
+
+ #if IS_NEWPANEL
+ // The encoder and click button
+ #define BTN_EN1 PC10
+ #define BTN_EN2 PC11
+ #define BTN_ENC PC12
+ #endif
+
+ #ifdef pins_v2_20190128
+ #define LCD_RESET_PIN PB4
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PB0
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PB6
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PB7
+ #endif
+ #else
+ #define LCD_RESET_PIN PB6
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PB3
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PB4
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PB5
+ #endif
+ #endif
+
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h
new file mode 100644
index 0000000..c978092
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h
@@ -0,0 +1,194 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define DEFAULT_MACHINE_NAME "3D Printer"
+
+#define BOARD_INFO_NAME "FYSETC Cheetah"
+#define BOARD_WEBSITE_URL "fysetc.com"
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+#define BOARD_NO_NATIVE_USB
+
+#define DISABLE_JTAG
+
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PA0
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA1
+#define Y_STOP_PIN PB4
+#define Z_STOP_PIN PA15
+
+//
+// Filament runout
+//
+#define FIL_RUNOUT_PIN PB5
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB8
+#define X_DIR_PIN PB9
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PB2
+#define Y_DIR_PIN PB3
+#define Y_ENABLE_PIN PB1
+
+#define Z_STEP_PIN PC0
+#define Z_DIR_PIN PC1
+#define Z_ENABLE_PIN PC2
+
+#define E0_STEP_PIN PC15
+#define E0_DIR_PIN PC14
+#define E0_ENABLE_PIN PC13
+
+#if HAS_TMC_UART
+ #define X_HARDWARE_SERIAL MSerial2
+ #define Y_HARDWARE_SERIAL MSerial2
+ #define Z_HARDWARE_SERIAL MSerial2
+ #define E0_HARDWARE_SERIAL MSerial2
+
+ // Default TMC slave addresses
+ #ifndef X_SLAVE_ADDRESS
+ #define X_SLAVE_ADDRESS 0
+ #endif
+ #ifndef Y_SLAVE_ADDRESS
+ #define Y_SLAVE_ADDRESS 1
+ #endif
+ #ifndef Z_SLAVE_ADDRESS
+ #define Z_SLAVE_ADDRESS 2
+ #endif
+ #ifndef E0_SLAVE_ADDRESS
+ #define E0_SLAVE_ADDRESS 3
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC6
+#define HEATER_BED_PIN PC7
+#ifndef FAN_PIN
+ #define FAN_PIN PC8
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PC5 // Analog Input
+#define TEMP_0_PIN PC4 // Analog Input
+
+//
+// Misc. Functions
+//
+#define SDSS PA4
+#define SD_DETECT_PIN PC3
+
+#ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PB0
+#endif
+#ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PB7
+#endif
+#ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PB6
+#endif
+
+/*
+* EXP1 pinout for the LCD according to Fysetcs schematic for the Cheetah board
+* _____
+* (Beeper) PC9 | 1 2 | PC12 (BTN_ENC)
+* (BTN_EN2) PC11 | 3 4 | PB14 (LCD_RS / MISO)
+* (BTN_EN1) PC10 5 6 | PB13 (SCK)
+* (LCD_EN) PB12 | 7 8 | PB15 (MOSI)
+* GND | 9 10| 5V
+* -----
+* EXP1
+* Note: The pin-numbers match the connector correctly and are not in reverse order like on the Ender-3 board.
+* Note: Functionally the pins are assigned in the same order as on the Ender-3 board.
+* Note: Pin 4 on the Cheetah board is assigned to an I/O, it is assigned to RESET on the Ender-3 board.
+*/
+
+#if HAS_WIRED_LCD
+ #define BEEPER_PIN PC9
+
+ #if HAS_MARLINUI_U8GLIB
+ #define DOGLCD_A0 PB14
+ #define DOGLCD_CS PB12
+ #define DOGLCD_SCK PB13
+ #define DOGLCD_MOSI PB15
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ #if EITHER(FYSETC_MINI_12864, U8GLIB_ST7920)
+ #define FORCE_SOFT_SPI
+ #endif
+ #endif
+
+ #define LCD_PINS_RS PB12 // CS -- SOFT SPI for ENDER3 LCD
+ #define LCD_PINS_D4 PB13 // SCLK
+ #define LCD_PINS_ENABLE PB15 // DATA MOSI
+
+ //#define LCD_CONTRAST_INIT 190
+
+ #if IS_NEWPANEL
+ #define BTN_EN1 PC10
+ #define BTN_EN2 PC11
+ #define BTN_ENC PC12
+ #endif
+#endif
+
+#if ENABLED(TOUCH_UI_FTDI_EVE)
+ #define BEEPER_PIN PC9
+ #define CLCD_MOD_RESET PC11
+ #define CLCD_SPI_CS PB12
+
+ //#define CLCD_USE_SOFT_SPI // the Cheetah can use hardware-SPI so we do not really need this
+
+ #if ENABLED(CLCD_USE_SOFT_SPI)
+ #define CLCD_SOFT_SPI_MOSI PB15
+ #define CLCD_SOFT_SPI_MISO PB14
+ #define CLCD_SOFT_SPI_SCLK PB13
+ #else
+ #define CLCD_SPI_BUS 2
+ #endif
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h
new file mode 100644
index 0000000..65b1675
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h
@@ -0,0 +1,64 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#include "pins_FYSETC_CHEETAH.h"
+
+#undef X_HARDWARE_SERIAL
+#undef Y_HARDWARE_SERIAL
+#undef Z_HARDWARE_SERIAL
+#undef E0_HARDWARE_SERIAL
+
+#undef RGB_LED_R_PIN
+#undef RGB_LED_G_PIN
+#undef RGB_LED_B_PIN
+
+#define FAN1_PIN PB0 // Fan1
+
+#if HAS_TMC_UART
+
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ */
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PA11
+ #define X_SERIAL_RX_PIN PA12
+
+ #define Y_SERIAL_TX_PIN PB6
+ #define Y_SERIAL_RX_PIN PB7
+
+ #define Z_SERIAL_TX_PIN PB10
+ #define Z_SERIAL_RX_PIN PB11
+
+ #define E0_SERIAL_TX_PIN PA2
+ #define E0_SERIAL_RX_PIN PA3
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_MINI.h b/Marlin/src/pins/stm32f1/pins_GTM32_MINI.h
new file mode 100644
index 0000000..5b97e7f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_GTM32_MINI.h
@@ -0,0 +1,243 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * 24 May 2018 - @chepo for STM32F103VET6
+ * Schematic: https://github.com/chepo92/Smartto/blob/master/circuit_diagram/Rostock301/Hardware_GTM32_PRO_VB.pdf
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "GTM32 Pro VB"
+#define DEFAULT_MACHINE_NAME "STM32F103VET6"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+
+//
+// It is required to disable JTAG function because its pins are
+// used as GPIO to drive the Y axis stepper.
+// DO NOT ENABLE!
+//
+#define DISABLE_JTAG
+
+//
+// If you don't need the SWDIO functionality (any more), you may
+// disable SWD here to regain PA13/PA14 pins for other use.
+//
+//#define DISABLE_JTAGSWD
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+// Enable EEPROM Emulation for this board as it doesn't have EEPROM
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PE5 // ENDSTOPS 15,17
+#define X_MAX_PIN PE4 // ENDSTOPS 16,18
+#define Y_MIN_PIN PE3 // ENDSTOPS 9,11
+#define Y_MAX_PIN PE2 // ENDSTOPS 10,12
+#define Z_MIN_PIN PE1 // ENDSTOPS 3,5
+#define Z_MAX_PIN PE0 // ENDSTOPS 4,6
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PD13
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PA12
+#define Y_DIR_PIN PA11
+#define Y_ENABLE_PIN PA15
+
+#define Z_STEP_PIN PD6
+#define Z_DIR_PIN PD3
+#define Z_ENABLE_PIN PB3
+
+// Extruder stepper pins
+// NOTE: Numbering here is made according to EXT connector numbers,
+// the FANx_PWM line numbering in the schematics is reverse.
+// That is, E0_*_PIN are the E2_* lines connected to E2_A1 step
+// stick that drives the EXT0 output on the board.
+//
+#define E0_STEP_PIN PC14
+#define E0_DIR_PIN PC13
+#define E0_ENABLE_PIN PC15
+
+#define E1_STEP_PIN PA0
+#define E1_DIR_PIN PB6
+#define E1_ENABLE_PIN PA1
+
+#define E2_STEP_PIN PB2
+#define E2_DIR_PIN PB11
+#define E2_ENABLE_PIN PC4
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB0 // EXT0 port
+#define HEATER_1_PIN PB5 // EXT1 port
+#define HEATER_2_PIN PB4 // EXT2 port
+#define HEATER_BED_PIN PB1 // CON2X3 hotbed port
+
+//
+// These are FAN PWM pins on EXT0..EXT2 connectors.
+//
+//#define FAN_PIN PB9 // EXT0 port
+#define FAN1_PIN PB8 // EXT1 port
+#define FAN2_PIN PB7 // EXT2 port
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PB9 // EXT0 port, used as main extruder fan
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC2 // EXT0 port
+#define TEMP_1_PIN PC1 // EXT1 port
+#define TEMP_2_PIN PC0 // EXT2 port
+#define TEMP_BED_PIN PC3 // CON2X3 hotbed port
+
+//
+// Misc. Functions
+//
+#define LED_PWM PD12 // External LED, pin 2 on LED labeled connector
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if IS_RRD_SC
+ //
+ // LCD display on J2 FFC40
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ //
+ #define LCD_PINS_RS PE6 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE PE14 // SID (MOSI)
+ #define LCD_PINS_D4 PD8 // SCK (CLK) clock
+ #define LCD_PINS_D5 PD9
+ #define LCD_PINS_D6 PD10
+ #define LCD_PINS_D7 PE15
+
+ #else
+ //
+ // Serial LCDs can be implemented in ExtUI
+ //
+ //#define LCD_UART_TX PD8
+ //#define LCD_UART_RX PD9
+ #endif
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(715)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+#if IS_RRD_SC
+ //
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ // connected with a flat wire to J2 connector on the board.
+ //
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE9
+ #define BTN_ENC PE13
+
+ #define GTM32_PRO_VB_USE_LCD_BEEPER
+ #define GTM32_PRO_VB_USE_EXT_SDCARD
+#endif
+
+//
+// Beeper
+//
+#ifdef GTM32_PRO_VB_USE_LCD_BEEPER
+ // This is pin 32 on J2 FFC40 and pin, goes to the beeper
+ // on Geeetech's version of RepRapDiscount Smart Controller
+ // (e.g. on Rostock 301)
+ #define BEEPER_PIN PE12
+#else
+ // This is the beeper on the board itself
+ #define BEEPER_PIN PB10
+#endif
+
+/**
+ * The on-board TF_CARD_SOCKET microSD card socket has no SD Detect pin wired.
+ *
+ * The FFC10 (SD_CARD) connector has the same pins as those routed to the FFC40 (J2)
+ * connector, which usually go to the SD Card slot on the Geeetech version of the
+ * RepRapDiscount Smart Controller. Both connectors have the card detect signal.
+ *
+ * The on-board SD card and the external card (on either SD_CARD or J2) are two
+ * separate devices and can work simultaneously. Unfortunately, Marlin only supports
+ * a single SPI Flash device (as of 2019-07-05) so only one is enabled here.
+ */
+#if ENABLED(GTM32_PRO_VB_USE_EXT_SDCARD)
+ //
+ // SD Card on RepRapDiscount Smart Controller (J2) or on SD_CARD connector
+ //
+ #define SD_SS_PIN PC11
+ #define SD_SCK_PIN PC12
+ #define SD_MOSI_PIN PD2
+ #define SD_MISO_PIN PC8
+ #define SD_DETECT_PIN PC7
+#else
+ //
+ // Use the on-board card socket labeled TF_CARD_SOCKET
+ //
+ #define SD_SS_PIN PA4
+ #define SD_SCK_PIN PA5
+ #define SD_MOSI_PIN PA7
+ #define SD_MISO_PIN PA6
+ #define SD_DETECT_PIN -1 // Card detect is not connected
+#endif
+
+#define SDSS SD_SS_PIN
+
+//
+// ESP WiFi can be soldered to J9 connector which is wired to USART2.
+// Must define WIFISUPPORT in Configuration.h for the printer.
+//
+#define ESP_WIFI_MODULE_COM 2
+#define ESP_WIFI_MODULE_BAUDRATE 115200
+#define ESP_WIFI_MODULE_RESET_PIN -1
diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h b/Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h
new file mode 100644
index 0000000..173eb67
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h
@@ -0,0 +1,237 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * 24 May 2018 - @chepo for STM32F103VET6
+ * Schematic: https://github.com/chepo92/Smartto/blob/master/circuit_diagram/Rostock301/Hardware_GTM32_PRO_VB.pdf
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "GTM32 Pro VB"
+#define DEFAULT_MACHINE_NAME "STM32F103VET6"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+
+//
+// It is required to disable JTAG function because its pins are
+// used as GPIO to drive the Y axis stepper.
+// DO NOT ENABLE!
+//
+#define DISABLE_JTAG
+
+//
+// If you don't need the SWDIO functionality (any more), you may
+// disable SWD here to regain PA13/PA14 pins for other use.
+//
+//#define DISABLE_JTAGSWD
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+// Enable EEPROM Emulation for this board as it doesn't have EEPROM
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PE5 // ENDSTOPS 15,17
+#define X_MAX_PIN PE4 // ENDSTOPS 16,18
+#define Y_MIN_PIN PE3 // ENDSTOPS 9,11
+#define Y_MAX_PIN PE2 // ENDSTOPS 10,12
+#define Z_MIN_PIN PE0 // ENDSTOPS 3,5
+#define Z_MAX_PIN PE1 // ENDSTOPS 4,6
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PD13
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PA12
+#define Y_DIR_PIN PA11
+#define Y_ENABLE_PIN PA15
+
+#define Z_STEP_PIN PD6
+#define Z_DIR_PIN PD3
+#define Z_ENABLE_PIN PB3
+
+// Extruder stepper pins
+// NOTE: Numbering here is made according to EXT connector numbers,
+// the FANx_PWM line numbering in the schematics is reverse.
+// That is, E0_*_PIN are the E2_* lines connected to E2_A1 step
+// stick that drives the EXT0 output on the board.
+//
+#define E0_STEP_PIN PC14
+#define E0_DIR_PIN PC13
+#define E0_ENABLE_PIN PC15
+
+#define E1_STEP_PIN PA0
+#define E1_DIR_PIN PB6
+#define E1_ENABLE_PIN PA1
+
+#define E2_STEP_PIN PB2
+#define E2_DIR_PIN PB11
+#define E2_ENABLE_PIN PC4
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB0 // EXT0 port
+#define HEATER_1_PIN PB5 // EXT1 port
+#define HEATER_2_PIN PB4 // EXT2 port
+#define HEATER_BED_PIN PB1 // CON2X3 hotbed port
+
+//
+// These are FAN PWM pins on EXT0..EXT2 connectors.
+//
+//#define FAN_PIN PB9 // EXT0 port
+#define FAN1_PIN PB8 // EXT1 port
+#define FAN2_PIN PB7 // EXT2 port
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PB9 // EXT0 port, used as main extruder fan
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC2 // EXT0 port
+#define TEMP_1_PIN PC1 // EXT1 port
+#define TEMP_2_PIN PC0 // EXT2 port
+#define TEMP_BED_PIN PC3 // CON2X3 hotbed port
+
+//
+// Misc. Functions
+//
+#define LED_PWM PD12 // External LED, pin 2 on LED labeled connector
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if IS_RRD_SC
+ //
+ // LCD display on J2 FFC40
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ // connected with a flat wire to J2 connector on the board.
+ //
+ #define LCD_PINS_RS PE6 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE PE14 // SID (MOSI)
+ #define LCD_PINS_D4 PD8 // SCK (CLK) clock
+ #define LCD_PINS_D5 PD9
+ #define LCD_PINS_D6 PD10
+ #define LCD_PINS_D7 PE15
+
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE9
+ #define BTN_ENC PE13
+
+ #define GTM32_PRO_VB_USE_LCD_BEEPER
+ #define GTM32_PRO_VB_USE_EXT_SDCARD
+
+ #else
+ //
+ // Serial LCDs can be implemented in ExtUI
+ //
+ //#define LCD_UART_TX PD8
+ //#define LCD_UART_RX PD9
+ #endif
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(715)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// Beeper
+//
+#ifdef GTM32_PRO_VB_USE_LCD_BEEPER
+ // This is pin 32 on J2 FFC40 and pin, goes to the beeper
+ // on Geeetech's version of RepRapDiscount Smart Controller
+ // (e.g. on Rostock 301)
+ #define BEEPER_PIN PE12
+#else
+ // This is the beeper on the board itself
+ #define BEEPER_PIN PB10
+#endif
+
+/**
+ * The on-board TF_CARD_SOCKET microSD card socket has no SD Detect pin wired.
+ *
+ * The FFC10 (SD_CARD) connector has the same pins as those routed to the FFC40 (J2)
+ * connector, which usually go to the SD Card slot on the Geeetech version of the
+ * RepRapDiscount Smart Controller. Both connectors have the card detect signal.
+ *
+ * The on-board SD card and the external card (on either SD_CARD or J2) are two
+ * separate devices and can work simultaneously. Unfortunately, Marlin only supports
+ * a single SPI Flash device (as of 2019-07-05) so only one is enabled here.
+ */
+#if ENABLED(GTM32_PRO_VB_USE_EXT_SDCARD)
+ //
+ // SD Card on RepRapDiscount Smart Controller (J2) or on SD_CARD connector
+ //
+ #define SD_SS_PIN PC11
+ #define SD_SCK_PIN PC12
+ #define SD_MOSI_PIN PD2
+ #define SD_MISO_PIN PC8
+ #define SD_DETECT_PIN PC7
+#else
+ //
+ // Use the on-board card socket labeled TF_CARD_SOCKET
+ //
+ #define SD_SS_PIN PA4
+ #define SD_SCK_PIN PA5
+ #define SD_MOSI_PIN PA7
+ #define SD_MISO_PIN PA6
+ #define SD_DETECT_PIN -1 // Card detect is not connected
+#endif
+
+#define SDSS SD_SS_PIN
+
+//
+// ESP WiFi can be soldered to J9 connector which is wired to USART2.
+// Must define WIFISUPPORT in Configuration.h for the printer.
+//
+#define ESP_WIFI_MODULE_COM 2
+#define ESP_WIFI_MODULE_BAUDRATE 115200
+#define ESP_WIFI_MODULE_RESET_PIN -1
diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h b/Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h
new file mode 100644
index 0000000..5b97e7f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h
@@ -0,0 +1,243 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * 24 May 2018 - @chepo for STM32F103VET6
+ * Schematic: https://github.com/chepo92/Smartto/blob/master/circuit_diagram/Rostock301/Hardware_GTM32_PRO_VB.pdf
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "GTM32 Pro VB"
+#define DEFAULT_MACHINE_NAME "STM32F103VET6"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+
+//
+// It is required to disable JTAG function because its pins are
+// used as GPIO to drive the Y axis stepper.
+// DO NOT ENABLE!
+//
+#define DISABLE_JTAG
+
+//
+// If you don't need the SWDIO functionality (any more), you may
+// disable SWD here to regain PA13/PA14 pins for other use.
+//
+//#define DISABLE_JTAGSWD
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+// Enable EEPROM Emulation for this board as it doesn't have EEPROM
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PE5 // ENDSTOPS 15,17
+#define X_MAX_PIN PE4 // ENDSTOPS 16,18
+#define Y_MIN_PIN PE3 // ENDSTOPS 9,11
+#define Y_MAX_PIN PE2 // ENDSTOPS 10,12
+#define Z_MIN_PIN PE1 // ENDSTOPS 3,5
+#define Z_MAX_PIN PE0 // ENDSTOPS 4,6
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PD13
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PA12
+#define Y_DIR_PIN PA11
+#define Y_ENABLE_PIN PA15
+
+#define Z_STEP_PIN PD6
+#define Z_DIR_PIN PD3
+#define Z_ENABLE_PIN PB3
+
+// Extruder stepper pins
+// NOTE: Numbering here is made according to EXT connector numbers,
+// the FANx_PWM line numbering in the schematics is reverse.
+// That is, E0_*_PIN are the E2_* lines connected to E2_A1 step
+// stick that drives the EXT0 output on the board.
+//
+#define E0_STEP_PIN PC14
+#define E0_DIR_PIN PC13
+#define E0_ENABLE_PIN PC15
+
+#define E1_STEP_PIN PA0
+#define E1_DIR_PIN PB6
+#define E1_ENABLE_PIN PA1
+
+#define E2_STEP_PIN PB2
+#define E2_DIR_PIN PB11
+#define E2_ENABLE_PIN PC4
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB0 // EXT0 port
+#define HEATER_1_PIN PB5 // EXT1 port
+#define HEATER_2_PIN PB4 // EXT2 port
+#define HEATER_BED_PIN PB1 // CON2X3 hotbed port
+
+//
+// These are FAN PWM pins on EXT0..EXT2 connectors.
+//
+//#define FAN_PIN PB9 // EXT0 port
+#define FAN1_PIN PB8 // EXT1 port
+#define FAN2_PIN PB7 // EXT2 port
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PB9 // EXT0 port, used as main extruder fan
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC2 // EXT0 port
+#define TEMP_1_PIN PC1 // EXT1 port
+#define TEMP_2_PIN PC0 // EXT2 port
+#define TEMP_BED_PIN PC3 // CON2X3 hotbed port
+
+//
+// Misc. Functions
+//
+#define LED_PWM PD12 // External LED, pin 2 on LED labeled connector
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if IS_RRD_SC
+ //
+ // LCD display on J2 FFC40
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ //
+ #define LCD_PINS_RS PE6 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE PE14 // SID (MOSI)
+ #define LCD_PINS_D4 PD8 // SCK (CLK) clock
+ #define LCD_PINS_D5 PD9
+ #define LCD_PINS_D6 PD10
+ #define LCD_PINS_D7 PE15
+
+ #else
+ //
+ // Serial LCDs can be implemented in ExtUI
+ //
+ //#define LCD_UART_TX PD8
+ //#define LCD_UART_RX PD9
+ #endif
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(715)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+#if IS_RRD_SC
+ //
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ // connected with a flat wire to J2 connector on the board.
+ //
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE9
+ #define BTN_ENC PE13
+
+ #define GTM32_PRO_VB_USE_LCD_BEEPER
+ #define GTM32_PRO_VB_USE_EXT_SDCARD
+#endif
+
+//
+// Beeper
+//
+#ifdef GTM32_PRO_VB_USE_LCD_BEEPER
+ // This is pin 32 on J2 FFC40 and pin, goes to the beeper
+ // on Geeetech's version of RepRapDiscount Smart Controller
+ // (e.g. on Rostock 301)
+ #define BEEPER_PIN PE12
+#else
+ // This is the beeper on the board itself
+ #define BEEPER_PIN PB10
+#endif
+
+/**
+ * The on-board TF_CARD_SOCKET microSD card socket has no SD Detect pin wired.
+ *
+ * The FFC10 (SD_CARD) connector has the same pins as those routed to the FFC40 (J2)
+ * connector, which usually go to the SD Card slot on the Geeetech version of the
+ * RepRapDiscount Smart Controller. Both connectors have the card detect signal.
+ *
+ * The on-board SD card and the external card (on either SD_CARD or J2) are two
+ * separate devices and can work simultaneously. Unfortunately, Marlin only supports
+ * a single SPI Flash device (as of 2019-07-05) so only one is enabled here.
+ */
+#if ENABLED(GTM32_PRO_VB_USE_EXT_SDCARD)
+ //
+ // SD Card on RepRapDiscount Smart Controller (J2) or on SD_CARD connector
+ //
+ #define SD_SS_PIN PC11
+ #define SD_SCK_PIN PC12
+ #define SD_MOSI_PIN PD2
+ #define SD_MISO_PIN PC8
+ #define SD_DETECT_PIN PC7
+#else
+ //
+ // Use the on-board card socket labeled TF_CARD_SOCKET
+ //
+ #define SD_SS_PIN PA4
+ #define SD_SCK_PIN PA5
+ #define SD_MOSI_PIN PA7
+ #define SD_MISO_PIN PA6
+ #define SD_DETECT_PIN -1 // Card detect is not connected
+#endif
+
+#define SDSS SD_SS_PIN
+
+//
+// ESP WiFi can be soldered to J9 connector which is wired to USART2.
+// Must define WIFISUPPORT in Configuration.h for the printer.
+//
+#define ESP_WIFI_MODULE_COM 2
+#define ESP_WIFI_MODULE_BAUDRATE 115200
+#define ESP_WIFI_MODULE_RESET_PIN -1
diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h b/Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h
new file mode 100644
index 0000000..b4a34a4
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h
@@ -0,0 +1,240 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * 24 May 2018 - @chepo for STM32F103VET6
+ * Schematic: https://github.com/chepo92/Smartto/blob/master/circuit_diagram/Rostock301/Hardware_GTM32_PRO_VB.pdf
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "GTM32 Pro VB"
+#define DEFAULT_MACHINE_NAME "M201"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+
+//
+// It is required to disable JTAG function because its pins are
+// used as GPIO to drive the Y axis stepper.
+// DO NOT ENABLE!
+//
+#define DISABLE_JTAG
+
+//
+// If you don't need the SWDIO functionality (any more), you may
+// disable SWD here to regain PA13/PA14 pins for other use.
+//
+//#define DISABLE_JTAGSWD
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+// Enable EEPROM Emulation for this board as it doesn't have EEPROM
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PE5 // ENDSTOPS 15,17
+#define X_MAX_PIN PE4 // ENDSTOPS 16,18
+#define Y_MIN_PIN PE3 // ENDSTOPS 9,11
+#define Y_MAX_PIN PE2 // ENDSTOPS 10,12
+#define Z_MIN_PIN PE1 // ENDSTOPS 3,5
+#define Z_MAX_PIN PE0 // ENDSTOPS 4,6
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PD13
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PA12
+#define Y_DIR_PIN PA11
+#define Y_ENABLE_PIN PA15
+
+#define Z_STEP_PIN PD6
+#define Z_DIR_PIN PD3
+#define Z_ENABLE_PIN PB3
+
+// Extruder stepper pins
+// NOTE: Numbering here is made according to EXT connector numbers,
+// the FANx_PWM line numbering in the schematics is reverse.
+// That is, E0_*_PIN are the E2_* lines connected to E2_A1 step
+// stick that drives the EXT0 output on the board.
+//
+#define E0_STEP_PIN PC14
+#define E0_DIR_PIN PC13
+#define E0_ENABLE_PIN PC15
+
+#define E1_STEP_PIN PA0
+#define E1_DIR_PIN PB6
+#define E1_ENABLE_PIN PA1
+
+#define E2_STEP_PIN PB2
+#define E2_DIR_PIN PB11
+#define E2_ENABLE_PIN PC4
+
+//
+// Heaters / Fans - INFO: Extruders ports are in reverse order. Pin numbers here differ from schematic. Original firmware assumes heater, fan and temp sensor on port EXT0 PB0, PB9, PC2.
+//
+#define HEATER_0_PIN PB0 // EXT0 port.
+#define HEATER_1_PIN PB5 // EXT1 port
+#define HEATER_2_PIN PB4 // EXT2 port
+#define HEATER_BED_PIN PB1 // CON2X3 hotbed port
+
+//
+// These are FAN PWM pins on EXT0..EXT2 connectors.
+//
+//#define FAN_PIN PB9 // EXT0 port
+#define FAN1_PIN PB8 // EXT1 port
+#define FAN2_PIN PB7 // EXT2 port
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PB9 // EXT0 port, used as main extruder fan
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC2 // EXT0 port
+#define TEMP_1_PIN PC1 // EXT1 port
+#define TEMP_2_PIN PC0 // EXT2 port
+#define TEMP_BED_PIN PC3 // CON2X3 hotbed port
+
+//
+// Misc. Functions
+//
+#define LED_PWM PD12 // External LED, pin 2 on LED labeled connector
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if IS_RRD_SC
+
+ //
+ // LCD display on J2 FFC40
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ // connected with a flat wire to J2 connector on the board.
+ //
+ #define LCD_PINS_RS PA12 // CS chip select /SS chip slave select
+ // RW is hardwired to VSS
+ #define LCD_PINS_ENABLE PC7 // SID (MOSI)
+ #define LCD_PINS_D4 PD1 // SCK (CLK) clock
+ #define LCD_PINS_D5 PD4
+ #define LCD_PINS_D6 PD5
+ #define LCD_PINS_D7 PD7
+
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE9
+ #define BTN_ENC PE13
+
+ //#define GTM32_PRO_VB_USE_LCD_BEEPER
+ #define GTM32_PRO_VB_USE_EXT_SDCARD
+
+ #else
+ //
+ // Serial LCDs can be implemented in ExtUI
+ //
+ //#define LCD_UART_TX PD8
+ //#define LCD_UART_RX PD9
+ #endif
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(715)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// Beeper
+//
+#ifdef GTM32_PRO_VB_USE_LCD_BEEPER
+ // This is pin 32 on J2 FFC40 and pin, goes to the beeper
+ // on Geeetech's version of RepRapDiscount Smart Controller
+ // (e.g. on Rostock 301)
+ #define BEEPER_PIN PE12
+#else
+ // This is the beeper on the board itself
+ #define BEEPER_PIN PB10
+#endif
+
+/**
+ * The on-board TF_CARD_SOCKET microSD card socket has no SD Detect pin wired.
+ *
+ * The FFC10 (SD_CARD) connector has the same pins as those routed to the FFC40 (J2)
+ * connector, which usually go to the SD Card slot on the Geeetech version of the
+ * RepRapDiscount Smart Controller. Both connectors have the card detect signal.
+ *
+ * The on-board SD card and the external card (on either SD_CARD or J2) are two
+ * separate devices and can work simultaneously. Unfortunately, Marlin only supports
+ * a single SPI Flash device (as of 2019-07-05) so only one is enabled here.
+ */
+#if ENABLED(GTM32_PRO_VB_USE_EXT_SDCARD)
+ //
+ // SD Card on RepRapDiscount Smart Controller (J2) or on SD_CARD connector
+ //
+ #define SD_SS_PIN PB12 // PC11
+ #define SD_SCK_PIN PB13 // PC12 // PC1
+ #define SD_MOSI_PIN PB15 // PD2 // PD2
+ #define SD_MISO_PIN PB14 // PC8
+ #define SD_DETECT_PIN PC7
+
+#else
+ //
+ // Use the on-board card socket labeled TF_CARD_SOCKET
+ //
+ #define SD_SS_PIN PA4
+ #define SD_SCK_PIN PA5
+ #define SD_MOSI_PIN PA7
+ #define SD_MISO_PIN PA6 // PA6
+ #define SD_DETECT_PIN -1 // Card detect is not connected
+#endif
+
+#define SDSS SD_SS_PIN
+
+//
+// ESP WiFi can be soldered to J9 connector which is wired to USART2.
+// Must define WIFISUPPORT in Configuration.h for the printer.
+//
+#define ESP_WIFI_MODULE_COM 2
+#define ESP_WIFI_MODULE_BAUDRATE 115200
+#define ESP_WIFI_MODULE_RESET_PIN -1
diff --git a/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h b/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h
new file mode 100644
index 0000000..4f02b0e
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h
@@ -0,0 +1,132 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+ /**
+ * ╦╔═╗╔═╗┬ ┬┬─┐┌─┐┬─┐┌─┐╔═╗┌─┐┬─┐┬ ┬┌┬┐ ┌─┐┌─┐┌┬┐
+ * ║║ ╦╠═╣│ │├┬┘│ │├┬┘├─┤╠╣ │ │├┬┘│ ││││ │ │ ││││
+ * ╚╝╚═╝╩ ╩└─┘┴└─└─┘┴└─┴ ┴╚ └─┘┴└─└─┘┴ ┴o└─┘└─┘┴ ┴
+ * Pin assignments for 32-bit JGAurora A5S & A1
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "JGAurora A5S A1 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "JGAurora A5S A1"
+
+#define BOARD_NO_NATIVE_USB
+
+#ifndef STM32_XL_DENSITY
+ #define STM32_XL_DENSITY
+#endif
+
+//#define MCU_STM32F103ZE // not yet required
+// Enable EEPROM Emulation for this board, so that we don't overwrite factory data
+
+//#define I2C_EEPROM // AT24C64
+//#define MARLIN_EEPROM_SIZE 0x8000UL // 64KB
+
+//#define FLASH_EEPROM_EMULATION
+//#define MARLIN_EEPROM_SIZE 0x1000UL // 4KB
+//#define MARLIN_EEPROM_SIZE (EEPROM_START_ADDRESS + (EEPROM_PAGE_SIZE) * 2UL)
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC6
+#define Y_STOP_PIN PG8
+#define Z_STOP_PIN PG7
+//#define X_MAX_PIN PC5
+//#define Y_MAX_PIN PC4
+//#define Z_MAX_PIN PB0
+
+//
+// Steppers
+//
+#define X_STEP_PIN PD6
+#define X_DIR_PIN PD3
+#define X_ENABLE_PIN PG9
+
+#define Y_STEP_PIN PG12
+#define Y_DIR_PIN PG11
+#define Y_ENABLE_PIN PG13
+
+#define Z_STEP_PIN PG15
+#define Z_DIR_PIN PG14
+#define Z_ENABLE_PIN PB8
+
+#define E0_STEP_PIN PE2
+#define E0_DIR_PIN PB9
+#define E0_ENABLE_PIN PE3
+
+#define E1_STEP_PIN PE5
+#define E1_DIR_PIN PE4
+#define E1_ENABLE_PIN PE6
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC2
+#define TEMP_BED_PIN PC1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA2
+#define HEATER_BED_PIN PA3
+
+#define FAN_PIN PA1
+
+#define FIL_RUNOUT_PIN PC7
+
+//
+// LCD
+//
+#define LCD_BACKLIGHT_PIN PF11
+#define FSMC_CS_PIN PD7
+#define FSMC_RS_PIN PG0
+
+#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+#define FSMC_DMA_DEV DMA2
+#define FSMC_DMA_CHANNEL DMA_CH5
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PF10
+
+//
+// Misc.
+//
+#define BEEPER_PIN PC3 // use PB7 to shut up if desired
+#define LED_PIN PC13
+
+//
+// Touch support
+//
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PA4
+ #define TOUCH_INT_PIN PC4
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h
new file mode 100644
index 0000000..33f995d
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h
@@ -0,0 +1,164 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Longer3D LK1/LK2 & Alfawise U20/U30 (STM32F103VET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__, STM32F1xx)
+ #error "Oops! Select a STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "Longer3D only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Longer3D"
+#define ALFAWISE_UX0 // Common to all Longer3D STM32F1 boards (used for Open drain mosfets)
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG // We still want to debug with STLINK...
+#define DISABLE_JTAG // We free the jtag pins (PA15) but keep STLINK
+ // Release PB4 (STEP_X_PIN) from JTAG NRST role.
+//
+// Limit Switches
+//
+#define X_MIN_PIN PC1 // pin 16
+#define X_MAX_PIN PC0 // pin 15 (Filament sensor on Alfawise setup)
+#define Y_MIN_PIN PC15 // pin 9
+#define Y_MAX_PIN PC14 // pin 8 (Unused in stock Alfawise setup)
+#define Z_MIN_PIN PE6 // pin 5 Standard Endstop or Z_Probe endstop function
+#define Z_MAX_PIN PE5 // pin 4 (Unused in stock Alfawise setup)
+ // May be used for BLTouch Servo function on older variants (<= V08)
+#define ONBOARD_ENDSTOPPULLUPS
+
+//
+// Filament Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PC0 // XMAX plug on PCB used as filament runout sensor on Alfawise boards (inverting true)
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PB5 // pin 91
+#define X_STEP_PIN PB4 // pin 90
+#define X_DIR_PIN PB3 // pin 89
+
+#define Y_ENABLE_PIN PB8 // pin 95
+#define Y_STEP_PIN PB7 // pin 93
+#define Y_DIR_PIN PB6 // pin 92
+
+#define Z_ENABLE_PIN PE1 // pin 98
+#define Z_STEP_PIN PE0 // pin 97
+#define Z_DIR_PIN PB9 // pin 96
+
+#define E0_ENABLE_PIN PE4 // pin 3
+#define E0_STEP_PIN PE3 // pin 2
+#define E0_DIR_PIN PE2 // pin 1
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // pin 23 (Nozzle 100K/3950 thermistor)
+#define TEMP_BED_PIN PA1 // pin 24 (Hot Bed 100K/3950 thermistor)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PD3 // pin 84 (Nozzle Heat Mosfet)
+#define HEATER_BED_PIN PA8 // pin 67 (Hot Bed Mosfet)
+
+#define FAN_PIN PA15 // pin 77 (4cm Fan)
+#define FAN_SOFT_PWM // Required to avoid issues with heating or STLink
+#define FAN_MIN_PWM 35 // Fan will not start in 1-30 range
+#define FAN_MAX_PWM 255
+
+//#define BEEPER_PIN PD13 // pin 60 (Servo PWM output 5V/GND on Board V0G+) made for BL-Touch sensor
+ // Can drive a PC Buzzer, if connected between PWM and 5V pins
+
+#define LED_PIN PC2 // pin 17
+
+//
+// PWM for a servo probe
+// Other servo devices are not supported on this board!
+//
+#if HAS_Z_SERVO_PROBE
+ #define SERVO0_PIN PD13 // Open drain PWM pin on the V0G (GND or floating 5V)
+ #define SERVO0_PWM_OD // Comment this if using PE5
+
+ //#define SERVO0_PIN PE5 // Pulled up PWM pin on the V08 (3.3V or 0)
+ //#undef Z_MAX_PIN // Uncomment if using ZMAX connector (PE5)
+#endif
+
+#define TFT_RESET_PIN PC4 // pin 33
+#define TFT_BACKLIGHT_PIN PD12 // pin 59
+#define FSMC_CS_PIN PD7 // pin 88 = FSMC_NE1
+#define FSMC_RS_PIN PD11 // pin 58 A16 Register. Only one address needed
+
+#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+#define FSMC_DMA_DEV DMA2
+#define FSMC_DMA_CHANNEL DMA_CH5
+
+#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h
+#define DOGLCD_SCK -1
+
+// Buffer for Color UI
+#define TFT_BUFFER_SIZE 3200
+
+/**
+ * Note: Alfawise U20/U30 boards DON'T use SPI2, as the hardware designer
+ * mixed up MOSI and MISO pins. SPI is managed in SW, and needs pins
+ * declared below.
+ */
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PB12 // pin 51 SPI2_NSS
+ #define TOUCH_SCK_PIN PB13 // pin 52
+ #define TOUCH_MOSI_PIN PB14 // pin 53
+ #define TOUCH_MISO_PIN PB15 // pin 54
+ #define TOUCH_INT_PIN PC6 // pin 63 (PenIRQ coming from ADS7843)
+#endif
+
+//
+// Persistent Storage
+// If no option is selected below the SD Card will be used
+//
+#if NO_EEPROM_SELECTED
+ //#define SPI_EEPROM
+ #define FLASH_EEPROM_EMULATION
+#endif
+
+#if ENABLED(SPI_EEPROM)
+ // SPI1 EEPROM Winbond W25Q64 (8MB/64Mbits)
+ #define SPI_CHAN_EEPROM1 1
+ #define SPI_EEPROM1_CS PC5 // pin 34
+ #define EEPROM_SCK BOARD_SPI1_SCK_PIN // PA5 pin 30
+ #define EEPROM_MISO BOARD_SPI1_MISO_PIN // PA6 pin 31
+ #define EEPROM_MOSI BOARD_SPI1_MOSI_PIN // PA7 pin 32
+ #define EEPROM_PAGE_SIZE 0x1000U // 4KB (from datasheet)
+ #define MARLIN_EEPROM_SIZE 16UL * (EEPROM_PAGE_SIZE) // Limit to 64KB for now...
+#elif ENABLED(FLASH_EEPROM_EMULATION)
+ // SoC Flash (framework-arduinoststm32-maple/STM32F1/libraries/EEPROM/EEPROM.h)
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE (EEPROM_PAGE_SIZE)
+#else
+ #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MALYAN_M200.h b/Marlin/src/pins/stm32f1/pins_MALYAN_M200.h
new file mode 100644
index 0000000..e33e029
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MALYAN_M200.h
@@ -0,0 +1,95 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MALYAN M200 pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__, STM32F1xx, STM32F0xx)
+ #error "Oops! Select an STM32 board in your IDE."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Malyan M200"
+#endif
+
+// Prevents hanging from an extra watchdog init
+#define DISABLE_WATCHDOG_INIT
+
+// Assume Flash EEPROM
+#if NO_EEPROM_SELECTED
+ #define FLASH_EEPROM_EMULATION
+#endif
+
+#define SDSS SD_SS_PIN
+
+// Based on PWM timer usage, we have to use these timers and soft PWM for the fans
+// On STM32F103:
+// PB3, PB6, PB7, and PB8 can be used with pwm, which rules out TIM2 and TIM4.
+// On STM32F070, 16 and 17 are in use, but 1 and 3 are available.
+#define STEP_TIMER 1
+#define TEMP_TIMER 3
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PB4
+#define Y_MIN_PIN PA15
+#define Z_MIN_PIN PB5
+
+//
+// Steppers
+//
+// X & Y enable are the same
+#define X_STEP_PIN PB14
+#define X_DIR_PIN PB15
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PB12
+#define Y_DIR_PIN PB13
+#define Y_ENABLE_PIN PA8
+
+#define Z_STEP_PIN PB10
+#define Z_DIR_PIN PB2
+#define Z_ENABLE_PIN PB11
+
+#define E0_STEP_PIN PB0
+#define E0_DIR_PIN PC13
+#define E0_ENABLE_PIN PB1
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // Analog Input (HOTEND0 thermistor)
+#define TEMP_BED_PIN PA1 // Analog Input (BED thermistor)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB6 // HOTEND0 MOSFET
+#define HEATER_BED_PIN PB7 // BED MOSFET
+
+#define MALYAN_FAN1_PIN PB8 // FAN1 header on board - PRINT FAN
+#define MALYAN_FAN2_PIN PB3 // FAN2 header on board - CONTROLLER FAN
+
+#define FAN1_PIN MALYAN_FAN2_PIN
diff --git a/Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h b/Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h
new file mode 100644
index 0000000..429cf14
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h
@@ -0,0 +1,176 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin mini (STM32F130VET6) board pin assignments
+ */
+
+#if NOT_TARGET(STM32F1, STM32F1xx)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Mingda MPX_ARM_MINI"
+
+#define BOARD_NO_NATIVE_USB
+#define DISABLE_DEBUG
+
+//
+// EEPROM
+//
+
+/*
+//Mingda used an unknown EEPROM chip ATMLH753, so I turned on the emulation below.
+//It is connected to EEPROM PB6 PB7
+
+#define I2C_EEPROM
+#undef NO_EEPROM_SELECTED
+#define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#define USE_SHARED_EEPROM 1 // Use Platform-independent Arduino functions for I2C EEPROM
+#define E2END 0xFFFF // EEPROM end address AT24C256 (32kB)
+*/
+
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE 0x800U // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+#define SPI_DEVICE 2
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PD6
+#define X_MAX_PIN PG15
+#define Y_MIN_PIN PG9
+#define Y_MAX_PIN PG14
+#define Z_MIN_PIN PG10
+#define Z_MAX_PIN PG13
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PG11
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PD13
+#define X_STEP_PIN PD12
+#define X_DIR_PIN PD11
+
+#define Y_ENABLE_PIN PG4
+#define Y_STEP_PIN PG3
+#define Y_DIR_PIN PG2
+
+#define Z_ENABLE_PIN PG7
+#define Z_STEP_PIN PG6
+#define Z_DIR_PIN PG5
+
+#define E0_ENABLE_PIN PC7
+#define E0_STEP_PIN PC6
+#define E0_DIR_PIN PG8
+
+//
+// Temperature Sensors
+//
+//#define TEMP_0_PIN PF6 // THERM_E0
+//#define TEMP_0_PIN PB3 // E0 K+
+#define TEMP_BED_PIN PF7 // THERM_BED
+
+#define MAX6675_SS_PIN PB5
+#define MAX6675_SCK_PIN PB3
+#define MAX6675_DO_PIN PB4
+#define MAX6675_MOSI_PIN PA14
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB0
+#define HEATER_BED_PIN PB1
+
+#define FAN_PIN PA0 // FAN
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4500000 // 4.5 MHz
+#define SDIO_READ_RETRIES 16
+
+#define SD_DETECT_PIN PC5
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PC10
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN PE4
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+#if HAS_FSMC_TFT
+ /**
+ * Note: MKS Robin TFT screens use various TFT controllers
+ * Supported screens are based on the ILI9341, ST7789V and ILI9328 (320x240)
+ * ILI9488 is not supported
+ * Define init sequences for other screens in u8g_dev_tft_320x240_upscale_from_128x64.cpp
+ *
+ * If the screen stays white, disable 'TFT_RESET_PIN'
+ * to let the bootloader init the screen.
+ *
+ * Setting an 'TFT_RESET_PIN' may cause a flicker when entering the LCD menu
+ * because Marlin uses the reset as a failsafe to revive a glitchy LCD.
+ */
+ #define TFT_CS_PIN PD7 // NE4
+ #define TFT_RS_PIN PG0 // A0
+
+ #define FSMC_CS_PIN TFT_CS_PIN
+ #define FSMC_RS_PIN TFT_RS_PIN
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+ #define TFT_RESET_PIN PF15
+ #define TFT_BACKLIGHT_PIN PF11
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 1
+#endif
+
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PA4 // SPI2_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI2_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI2_MOSI
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h
new file mode 100644
index 0000000..99e0f0b
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h
@@ -0,0 +1,283 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin (STM32F130ZET6) board pin assignments
+ * https://github.com/makerbase-mks/MKS-Robin/tree/master/MKS%20Robin/Hardware
+ */
+
+#if NOT_TARGET(STM32F1, STM32F1xx)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin"
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#if NO_EEPROM_SELECTED
+ #ifdef ARDUINO_ARCH_STM32
+ #define FLASH_EEPROM_EMULATION
+ #else
+ #define SDCARD_EEPROM_EMULATION
+ #endif
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE (EEPROM_PAGE_SIZE)
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PC3 // XS1 - 5
+#define SERVO1_PIN PA1 // XS1 - 6
+#define SERVO2_PIN PF9 // XS2 - 5
+#define SERVO3_PIN PF8 // XS2 - 6
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PB12
+#define X_MAX_PIN PB0
+#define Y_MIN_PIN PC5
+#define Y_MAX_PIN PC4
+#define Z_MIN_PIN PA4
+#define Z_MAX_PIN PF7
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PB9
+#define X_STEP_PIN PB8
+#define X_DIR_PIN PB5
+
+#define Y_ENABLE_PIN PB4
+#define Y_STEP_PIN PG15
+#define Y_DIR_PIN PG10
+
+#define Z_ENABLE_PIN PD7
+#define Z_STEP_PIN PD3
+#define Z_DIR_PIN PG14
+
+#define E0_ENABLE_PIN PG13
+#define E0_STEP_PIN PG8
+#define E0_DIR_PIN PA15
+
+#define E1_ENABLE_PIN PA12
+#define E1_STEP_PIN PA11
+#define E1_DIR_PIN PA8
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_1_PIN PC2 // TH2
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters
+//
+#define HEATER_0_PIN PC7 // HEATER1
+#define HEATER_1_PIN PA6 // HEATER2
+#define HEATER_BED_PIN PC6 // HOT BED
+
+//
+// Fan
+//
+#define FAN_PIN PA7 // FAN
+
+//
+// Thermocouples
+//
+//#define MAX6675_SS_PIN PE5 // TC1 - CS1
+//#define MAX6675_SS_PIN PE6 // TC2 - CS2
+
+//
+// Filament runout sensor
+//
+#define FIL_RUNOUT_PIN PF11 // MT_DET
+
+//
+// Power loss detection
+//
+#define POWER_LOSS_PIN PA2 // PW_DET
+
+//
+// Power supply control
+//
+#define PS_ON_PIN PA3 // PW_OFF
+
+//
+// Piezzoelectric speaker
+//
+#define BEEPER_PIN PC13
+
+//
+// Activity LED
+//
+#define LED_PIN PB2
+
+//
+// ESP12-S Wi-Fi module
+//
+#define WIFI_IO0_PIN PG1
+
+//
+// LCD screen
+//
+#if HAS_FSMC_TFT
+ /**
+ * Note: MKS Robin TFT screens use various TFT controllers
+ * Supported screens are based on the ILI9341, ST7789V and ILI9328 (320x240)
+ * ILI9488 is not supported
+ * Define init sequences for other screens in u8g_dev_tft_320x240_upscale_from_128x64.cpp
+ *
+ * If the screen stays white, disable 'TFT_RESET_PIN'
+ * to let the bootloader init the screen.
+ *
+ * Setting an 'TFT_RESET_PIN' may cause a flicker when entering the LCD menu
+ * because Marlin uses the reset as a failsafe to revive a glitchy LCD.
+ */
+ #define TFT_CS_PIN PG12 // NE4
+ #define TFT_RS_PIN PF0 // A0
+
+ #define FSMC_CS_PIN TFT_CS_PIN
+ #define FSMC_RS_PIN TFT_RS_PIN
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+ #define TFT_RESET_PIN PF6
+ #define TFT_BACKLIGHT_PIN PG11
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 2
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PB1 // SPI2_NSS
+ #define TOUCH_SCK_PIN PB13 // SPI2_SCK
+ #define TOUCH_MISO_PIN PB14 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
+ #define TOUCH_INT_PIN -1
+#endif
+
+// SPI2 is shared by LCD touch driver and flash
+// SPI1(PA7) & SPI3(PB5) not available
+#define SPI_DEVICE 2
+
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4500000
+#define SDIO_READ_RETRIES 16
+#if ENABLED(SDIO_SUPPORT)
+ #define SD_SCK_PIN PB13 // SPI2
+ #define SD_MISO_PIN PB14 // SPI2
+ #define SD_MOSI_PIN PB15 // SPI2
+ /**
+ * MKS Robin has a few hardware revisions
+ * https://github.com/makerbase-mks/MKS-Robin/tree/master/MKS%20Robin/Hardware
+ *
+ * MKS Robin <= V2.3 have no SD_DETECT_PIN.
+ * MKS Robin >= V2.4 have SD_DETECT_PIN on PF12.
+ *
+ * Uncomment here or add SD_DETECT_PIN to Configuration.h.
+ */
+ //#define SD_DETECT_PIN -1
+ //#define SD_DETECT_PIN PF12 // SD_CD
+#else
+ // SD as custom software SPI (SDIO pins)
+ #define SD_SCK_PIN PC12
+ #define SD_MISO_PIN PC8
+ #define SD_MOSI_PIN PD2
+ #define SD_SS_PIN -1
+ #define ONBOARD_SD_CS_PIN PC11
+ #define SDSS PD2
+ #define SD_DETECT_PIN -1
+#endif
+
+//
+// Trinamic TMC2208/2209 UART
+//
+#if HAS_TMC_UART
+ /**
+ * This board does not have dedicated TMC UART pins. Custom wiring is needed.
+ * You may uncomment one of the options below, or add it to your Configuration.h.
+ *
+ * When using up to four TMC2209 drivers, hardware serial is recommented on
+ * MSerial0 or MSerial1.
+ *
+ * When using TMC2208 or more than four drivers, SoftwareSerial will be needed,
+ * to provide dedicated pins for each drier.
+ */
+
+ //#define TMC_HARDWARE_SERIAL
+ #if ENABLED(TMC_HARDWARE_SERIAL)
+ #define X_HARDWARE_SERIAL MSerial0
+ #define X2_HARDWARE_SERIAL MSerial0
+ #define Y_HARDWARE_SERIAL MSerial0
+ #define Y2_HARDWARE_SERIAL MSerial0
+ #define Z_HARDWARE_SERIAL MSerial0
+ #define Z2_HARDWARE_SERIAL MSerial0
+ #define E0_HARDWARE_SERIAL MSerial0
+ #define E1_HARDWARE_SERIAL MSerial0
+ #endif
+
+ //#define TMC_SOFTWARE_SERIAL
+ #if ENABLED(TMC_SOFTWARE_SERIAL)
+ #define X_SERIAL_TX_PIN PF8 // SERVO3_PIN -- XS2 - 6
+ #define Y_SERIAL_TX_PIN PF9 // SERVO2_PIN -- XS2 - 5
+ #define Z_SERIAL_TX_PIN PA1 // SERVO1_PIN -- XS1 - 6
+ #define E0_SERIAL_TX_PIN PC3 // SERVO0_PIN -- XS1 - 5
+ #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN
+ #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN
+ #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN
+ #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN
+ #define TMC_BAUD_RATE 19200
+ #endif
+#endif
+
+//
+// W25Q64 64Mb (8MB) SPI flash
+//
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x800000 // 8MB
+ #define W25QXX_CS_PIN PG9
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3.h
new file mode 100644
index 0000000..89ace34
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3.h
@@ -0,0 +1,36 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin E3 (STM32F103RCT6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin E3 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin E3"
+#endif
+
+#include "pins_MKS_ROBIN_E3_common.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D.h
new file mode 100644
index 0000000..a629bce
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D.h
@@ -0,0 +1,67 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin E3D (STM32F103RCT6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin E3D only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin E3D"
+#endif
+
+//
+// Steppers
+//
+#ifndef X_CS_PIN
+ #define X_CS_PIN PC7
+#endif
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PD2
+#endif
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PC12
+#endif
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PC11
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB15
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB14
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB13
+ #endif
+#endif
+
+#include "pins_MKS_ROBIN_E3_common.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D_V1_1.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D_V1_1.h
new file mode 100644
index 0000000..0d927cf
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D_V1_1.h
@@ -0,0 +1,67 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin E3D v1.1 (STM32F103RCT6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin E3D v1.1 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin E3D V1.1"
+#endif
+
+//
+// Steppers
+//
+#ifndef X_CS_PIN
+ #define X_CS_PIN PC7
+#endif
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PD2
+#endif
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PC12
+#endif
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PC11
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB15
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB14
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB13
+ #endif
+#endif
+
+#include "pins_MKS_ROBIN_E3_V1_1_common.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h
new file mode 100644
index 0000000..3118a52
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h
@@ -0,0 +1,346 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin nano (STM32F130VET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin E3P only supports one hotend / E-stepper. Comment out this line to continue."
+#elif HAS_FSMC_TFT
+ #error "MKS Robin E3P doesn't support FSMC-based TFT displays."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin E3P"
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// EEPROM
+//
+//#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
+#if EITHER(NO_EEPROM_SELECTED, I2C_EEPROM)
+ #define I2C_EEPROM // EEPROM on I2C-0
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Note: MKS Robin board is using SPI2 interface.
+//
+#define SPI_DEVICE 2
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8 // Enable BLTOUCH
+
+//
+// Limit Switches
+//
+#define X_DIAG_PIN PA15
+#define Y_DIAG_PIN PA12
+#define Z_DIAG_PIN PA11
+#define E0_DIAG_PIN PC4
+
+#define X_STOP_PIN PA15
+#define Y_STOP_PIN PA12
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+#ifndef X_CS_PIN
+ #define X_CS_PIN PD5
+#endif
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PD7
+#endif
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PD4
+#endif
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PD9
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PD14
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PD1
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PD0
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+
+ #define X_SERIAL_TX_PIN PD5
+ #define X_SERIAL_RX_PIN PD5
+
+ #define Y_SERIAL_TX_PIN PD7
+ #define Y_SERIAL_RX_PIN PD7
+
+ #define Z_SERIAL_TX_PIN PD4
+ #define Z_SERIAL_RX_PIN PD4
+
+ #define E0_SERIAL_TX_PIN PD9
+ #define E0_SERIAL_RX_PIN PD9
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif // HAS_TMC_UART
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC3 // HEATER1
+#define HEATER_BED_PIN PA0 // HOT BED
+
+#define FAN_PIN PB1 // FAN
+
+//
+// Misc. Functions
+//
+#if HAS_TFT_LVGL_UI
+ //#define MKSPWC
+ #ifdef MKSPWC
+ #define SUICIDE_PIN PB2 // Enable MKSPWC SUICIDE PIN
+ #define SUICIDE_PIN_INVERTING false // Enable MKSPWC PIN STATE
+ #define KILL_PIN PA2 // Enable MKSPWC DET PIN
+ #define KILL_PIN_STATE true // Enable MKSPWC PIN STATE
+ #endif
+
+ #define MT_DET_1_PIN PA4 // LVGL UI FILAMENT RUNOUT1 PIN
+ #define MT_DET_PIN_INVERTING false // LVGL UI filament RUNOUT PIN STATE
+
+ #define WIFI_IO0_PIN PC13 // MKS ESP WIFI IO0 PIN
+ #define WIFI_IO1_PIN PC7 // MKS ESP WIFI IO1 PIN
+ #define WIFI_RESET_PIN PE9 // MKS ESP WIFI RESET PIN
+
+ #if ENABLED(MKS_TEST)
+ #define MKS_TEST_POWER_LOSS_PIN PA2 // PW_DET
+ #define MKS_TEST_PS_ON_PIN PB0 // PW_OFF
+ #endif
+#else
+ //#define POWER_LOSS_PIN PA2 // PW_DET
+ //#define PS_ON_PIN PB2 // PW_OFF
+ #define FIL_RUNOUT_PIN PA4
+#endif
+
+//#define LED_PIN PB2
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4500000 // 4.5 MHz
+#define SD_DETECT_PIN PD12
+#define ONBOARD_SD_CS_PIN PC11
+
+//
+// LCD / Controller
+//
+#ifndef BEEPER_PIN
+ #define BEEPER_PIN PC5
+#endif
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+
+#if HAS_SPI_TFT
+
+ // Shared SPI TFT
+
+ #define LCD_BACKLIGHT_PIN PD13
+
+ #define TOUCH_CS_PIN PE14 // SPI1_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI1_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI1_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
+
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+ #define BTN_ENC PE13
+
+ #define TFT_CS_PIN PD11
+ #define TFT_SCK_PIN PA5
+ #define TFT_MISO_PIN PA6
+ #define TFT_MOSI_PIN PA7
+ #define TFT_DC_PIN PD10
+ #define TFT_RST_PIN PC6
+ #define TFT_A0_PIN TFT_DC_PIN
+
+ #define TFT_RESET_PIN PC6
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 1
+
+ #ifndef TFT_WIDTH
+ #define TFT_WIDTH 480
+ #endif
+ #ifndef TFT_HEIGHT
+ #define TFT_HEIGHT 320
+ #endif
+
+ #define LCD_READ_ID 0xD3
+ #define LCD_USE_DMA_SPI
+
+#endif
+
+#if HAS_SPI_GRAPHICAL_TFT
+ // Emulated DOGM SPI
+ #define LCD_PINS_ENABLE PD13
+ #define LCD_PINS_RS PC6
+ #define BTN_ENC PE13
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+#elif ENABLED(TFT_480x320_SPI)
+ #define TFT_DRIVER ST7796
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+#if HAS_WIRED_LCD && !HAS_SPI_TFT
+
+ // NON TFT Displays
+
+ #if ENABLED(MKS_MINI_12864)
+
+ // MKS MINI12864 and MKS LCD12864B
+ // If using MKS LCD12864A (Need to remove RPK2 resistor)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PD11
+ #define DOGLCD_CS PE15
+ #define DOGLCD_SCK PA5
+ #define DOGLCD_MOSI PA7
+
+ // Required for MKS_MINI_12864 with this board
+ #define MKS_LCD12864B
+ #undef SHOW_BOOTSCREEN
+
+ #else // !MKS_MINI_12864
+
+ #define LCD_PINS_D4 PE14
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PE15
+ #define LCD_PINS_D6 PD11
+ #define LCD_PINS_D7 PD10
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+
+ #endif // !MKS_MINI_12864
+
+#endif // HAS_WIRED_LCD && !HAS_SPI_TFT
+
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x1000000 // 16MB
+ #define W25QXX_CS_PIN PB12
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
+
+#if ENABLED(SPEAKER) && BEEPER_PIN == PC5
+ #error "MKS Robin nano default BEEPER_PIN is not a SPEAKER."
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1.h
new file mode 100644
index 0000000..002c35f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1.h
@@ -0,0 +1,36 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin E3 v1.1 (STM32F103RCT6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin E3 v1.1 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin E3 V1.1"
+#endif
+
+#include "pins_MKS_ROBIN_E3_V1_1_common.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1_common.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1_common.h
new file mode 100644
index 0000000..4eaf2e9
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1_common.h
@@ -0,0 +1,39 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+//
+// EEPROM
+//
+// Onboard I2C EEPROM
+#if NO_EEPROM_SELECTED
+ #define I2C_EEPROM
+ #define MARLIN_EEPROM_SIZE 0x1000// 4KB
+ #undef NO_EEPROM_SELECTED
+#endif
+
+#define Z_STEP_PIN PC14
+#define Z_DIR_PIN PC15
+
+#define BTN_ENC_EN -1
+
+#include "pins_MKS_ROBIN_E3_common.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h
new file mode 100644
index 0000000..c4a7e9f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h
@@ -0,0 +1,196 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin E3 & E3D (STM32F103RCT6) common board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_NO_NATIVE_USB
+
+#define BOARD_WEBSITE_URL "github.com/makerbase-mks"
+
+//#define DISABLE_DEBUG
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PA3
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA12
+#define Y_STOP_PIN PA11
+#define Z_MIN_PIN PC6
+#define Z_MAX_PIN PB1
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC0
+#define X_DIR_PIN PB2
+#define X_ENABLE_PIN PC13
+
+#define Y_STEP_PIN PC2
+#define Y_DIR_PIN PB9
+#define Y_ENABLE_PIN PB12
+
+#ifndef Z_STEP_PIN
+ #define Z_STEP_PIN PB7
+#endif
+#ifndef Z_DIR_PIN
+ #define Z_DIR_PIN PB6
+#endif
+#define Z_ENABLE_PIN PB8
+
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB3
+#define E0_ENABLE_PIN PB5
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL MSerial1
+ //#define Y_HARDWARE_SERIAL MSerial1
+ //#define Z_HARDWARE_SERIAL MSerial1
+ //#define E0_HARDWARE_SERIAL MSerial1
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PC7
+ #define X_SERIAL_RX_PIN PC7
+
+ #define Y_SERIAL_TX_PIN PD2
+ #define Y_SERIAL_RX_PIN PD2
+
+ #define Z_SERIAL_TX_PIN PC12
+ #define Z_SERIAL_RX_PIN PC12
+
+ #define E0_SERIAL_TX_PIN PC11
+ #define E0_SERIAL_RX_PIN PC11
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Heaters 0,1 / Fans / Bed
+//
+#define HEATER_0_PIN PC9
+#define FAN_PIN PA8
+#define HEATER_BED_PIN PC8
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA1 // TB
+#define TEMP_0_PIN PA0 // TH1
+
+#define FIL_RUNOUT_PIN PB10 // MT_DET
+
+/**
+ * _____ _____ _____
+ * (BEEPER) PC1 | 1 2 | PC3 (BTN_ENC) (MISO) PB14 | 1 2 | PB13 (SD_SCK) 5V | 1 2 | GND
+ * (LCD_EN) PA4 | 3 4 | PA5 (LCD_RS) (BTN_EN1) PB11 | 3 4 | PA15 (SD_SS) (LCD_EN) PA4 | 3 4 | PA5 (LCD_RS)
+ * (LCD_D4) PA6 | 5 6 PA7 (LCD_D5) (BTN_EN2) PB0 | 5 6 PB15 (SD_MOSI) (LCD_D4) PA6 | 5 6 PB0 (BTN_EN2)
+ * (LCD_D6) PC4 | 7 8 | PC5 (LCD_D7) (SD_DETECT) PC10 | 7 8 | RESET RESET | 7 8 | PB11 (BTN_EN1)
+ * GND | 9 10| 5V GND | 9 10| NC (BTN_ENC) PC3 | 9 10| PC1 (BEEPER)
+ * ----- ----- -----
+ * EXP1 EXP2 EXP3
+ */
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN PC1
+ #define BTN_ENC PC3
+ #define LCD_PINS_ENABLE PA4
+ #define LCD_PINS_RS PA5
+ #define BTN_EN1 PB11
+ #define BTN_EN2 PB0
+
+ // MKS MINI12864 and MKS LCD12864B; If using MKS LCD12864A (Need to remove RPK2 resistor)
+ #if ENABLED(MKS_MINI_12864)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PC4
+ #define DOGLCD_CS PA7
+ #define DOGLCD_SCK PB13
+ #define DOGLCD_MOSI PB15
+
+ #else
+
+ #define LCD_PINS_D4 PA6
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PA7
+ #define LCD_PINS_D6 PC4
+ #define LCD_PINS_D7 PC5
+
+ #if !defined(BTN_ENC_EN) && ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !MKS_MINI_12864
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Card
+//
+#define SPI_DEVICE 2
+#define SD_DETECT_PIN PC10
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN PB14
+#define SD_MOSI_PIN PB15
+#define SD_SS_PIN PA15
+
+#ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+#endif
+#ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+#endif
+#ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE.h
new file mode 100644
index 0000000..13c2d41
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE.h
@@ -0,0 +1,148 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin Lite only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin Lite"
+#endif
+#define BOARD_WEBSITE_URL "github.com/makerbase-mks"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+#define DISABLE_JTAG
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC13
+#define Y_STOP_PIN PC0
+#define Z_MIN_PIN PC12
+#define Z_MAX_PIN PB9
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PB12
+#define X_ENABLE_PIN PB10
+
+#define Y_STEP_PIN PB11
+#define Y_DIR_PIN PB2
+#define Y_ENABLE_PIN PB10
+
+#define Z_STEP_PIN PB1
+#define Z_DIR_PIN PC5
+#define Z_ENABLE_PIN PB10
+
+#define E0_STEP_PIN PC4
+#define E0_DIR_PIN PA5
+#define E0_ENABLE_PIN PA4
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC9
+#define FAN_PIN PA8
+#define HEATER_BED_PIN PC8
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA1
+#define TEMP_0_PIN PA0
+
+#define FIL_RUNOUT_PIN PB8 // MT_DET
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+ #define BEEPER_PIN PD2
+ #define BTN_ENC PB3
+ #define LCD_PINS_RS PC3
+
+ #define BTN_EN1 PB5
+ #define BTN_EN2 PB4
+
+ #define LCD_PINS_ENABLE PC2
+
+ #if ENABLED(MKS_MINI_12864)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PC1
+ #define DOGLCD_CS PC2
+ #define DOGLCD_SCK PB13
+ #define DOGLCD_MOSI PB15
+
+ #else // !MKS_MINI_12864
+
+ #define LCD_PINS_D4 PC1
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 -1
+ #define LCD_PINS_D6 -1
+ #define LCD_PINS_D7 -1
+ #endif
+
+ #endif // !MKS_MINI_12864
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+// Motor current PWM pins
+#define MOTOR_CURRENT_PWM_XY_PIN PB0
+#define MOTOR_CURRENT_PWM_Z_PIN PA7
+#define MOTOR_CURRENT_PWM_E_PIN PA6
+#define MOTOR_CURRENT_PWM_RANGE (65535/10/3.3) // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp
+#define DEFAULT_PWM_MOTOR_CURRENT { 1000, 1000, 1000 } // 1.05Amp per driver, here is XY, Z and E. This values determined empirically.
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PC10
+
+//
+// SPI
+//
+#define SPI_DEVICE 2
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN P1B4
+#define SD_MOSI_PIN P1B5
+#define SD_SS_PIN PA15
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE3.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE3.h
new file mode 100644
index 0000000..f814052
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE3.h
@@ -0,0 +1,159 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin Lite 3 (STM32F103RCT6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin Lite3 supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin Lite3"
+#endif
+#define BOARD_WEBSITE_URL "github.com/makerbase-mks"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+#define DISABLE_JTAG
+
+//
+// Servos
+//
+#define SERVO0_PIN PA3
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA12
+#define Y_STOP_PIN PA11
+#define Z_MIN_PIN PC6
+#define Z_MAX_PIN PB1
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC0
+#define X_DIR_PIN PB2
+#define X_ENABLE_PIN PC13
+
+#define Y_STEP_PIN PC2
+#define Y_DIR_PIN PB9
+#define Y_ENABLE_PIN PB12
+
+#define Z_STEP_PIN PB7
+#define Z_DIR_PIN PB6
+#define Z_ENABLE_PIN PB8
+
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB3
+#define E0_ENABLE_PIN PB5
+
+#define E1_STEP_PIN PC12
+#define E1_DIR_PIN PC11
+#define E1_ENABLE_PIN PD2
+
+//
+// Heaters 0,1 / Fans / Bed
+//
+#define HEATER_0_PIN PC9
+#define HEATER_1_PIN PC7
+#define FAN_PIN PA8
+#define HEATER_BED_PIN PC8
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA1 // TB
+#define TEMP_0_PIN PA0 // TH1
+#define TEMP_1_PIN PA2 // TH2
+
+#define FIL_RUNOUT_PIN PB10 // MT_DET
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN PC1
+ #define BTN_ENC PC3
+ #define LCD_PINS_ENABLE PA4
+ #define LCD_PINS_RS PA5
+ #define BTN_EN1 PB11
+ #define BTN_EN2 PB0
+
+ // MKS MINI12864 and MKS LCD12864B; If using MKS LCD12864A (Need to remove RPK2 resistor)
+ #if ENABLED(MKS_MINI_12864)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PC4
+ #define DOGLCD_CS PA7
+ #define DOGLCD_SCK PB13
+ #define DOGLCD_MOSI PB15
+
+ #elif IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS PB11
+ #endif
+
+ #else // !MKS_MINI_12864
+
+ #define LCD_PINS_D4 PA6
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PA7
+ #define LCD_PINS_D6 PC4
+ #define LCD_PINS_D7 PC5
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !MKS_MINI_12864
+
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PC10
+
+//
+// SPI
+//
+#define SPI_DEVICE 2
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN PB14
+#define SD_MOSI_PIN PB15
+#define SD_SS_PIN PA15
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h
new file mode 100644
index 0000000..b3cfe5b
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h
@@ -0,0 +1,201 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin mini (STM32F130VET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin mini only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin Mini"
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// EEPROM
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+#define SPI_DEVICE 2
+
+//
+// Servos
+//
+#ifndef SERVO0_PIN
+ #define SERVO0_PIN PA8 // Enable BLTOUCH support on IO0 (WIFI connector)
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA15
+#define Y_STOP_PIN PA12
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA4 // MT_DET
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+
+// Motor current PWM pins
+#define MOTOR_CURRENT_PWM_XY_PIN PA6
+#define MOTOR_CURRENT_PWM_Z_PIN PA7
+#define MOTOR_CURRENT_PWM_E_PIN PB0
+#define MOTOR_CURRENT_PWM_RANGE 1500 // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp
+#ifndef DEFAULT_PWM_MOTOR_CURRENT
+ #define DEFAULT_PWM_MOTOR_CURRENT { 800, 800, 800 }
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC3
+#define HEATER_BED_PIN PA0
+
+#define FAN_PIN PB1 // FAN
+
+//
+// Misc. Functions
+//
+#define POWER_LOSS_PIN PA2 // PW_DET
+#define PS_ON_PIN PA3 // PW_OFF
+
+#define MT_DET_1_PIN PA4
+#define MT_DET_PIN_INVERTING false
+
+#define WIFI_IO0_PIN PC13
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4500000 // 4.5 MHz
+#define SD_DETECT_PIN PD12
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PC11
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN PC5
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+#if EITHER(HAS_FSMC_GRAPHICAL_TFT, TFT_320x240)
+ #define FSMC_CS_PIN PD7 // NE4
+ #define FSMC_RS_PIN PD11 // A0
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+ #define LCD_RESET_PIN PC6 // FSMC_RST
+ #define LCD_BACKLIGHT_PIN PD13
+#endif
+
+#if BOTH(NEED_TOUCH_PINS, HAS_FSMC_GRAPHICAL_TFT) || ENABLED(TFT_320x240)
+ #define TOUCH_CS_PIN PC2 // SPI2_NSS
+ #define TOUCH_SCK_PIN PB13 // SPI2_SCK
+ #define TOUCH_MISO_PIN PB14 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
+#endif
+
+#if ENABLED(TFT_320x240) // TFT32/28
+ #define TFT_DRIVER ILI9341
+ #define TFT_BUFFER_SIZE 14400
+ #define ILI9341_COLOR_RGB
+ // YV for normal screen mounting
+ #define ILI9341_ORIENTATION ILI9341_MADCTL_MY | ILI9341_MADCTL_MV
+ // XV for 180° rotated screen mounting
+ //#define ILI9341_ORIENTATION ILI9341_MADCTL_MX | ILI9341_MADCTL_MV
+#endif
+
+#if ENABLED(TOUCH_SCREEN)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X 12033
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y -9047
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X -30
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y 254
+ #endif
+#endif
+
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x1000000 // 16MB
+ #define W25QXX_CS_PIN PB12 // Flash chip-select
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h
new file mode 100644
index 0000000..36ae696
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h
@@ -0,0 +1,345 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin nano (STM32F130VET6) board pin assignments
+ * https://github.com/makerbase-mks/MKS-Robin-Nano-V1.X/tree/master/hardware
+ */
+
+#if NOT_TARGET(STM32F1, STM32F1xx)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin nano supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin Nano"
+
+#define BOARD_NO_NATIVE_USB
+
+// Avoid conflict with TIMER_SERVO when using the STM32 HAL
+#define TEMP_TIMER 5
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+#define SPI_DEVICE 2
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8 // Enable BLTOUCH
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA15
+#define Y_STOP_PIN PA12
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+//
+//TMC UART RX / TX Pins Hardware/Software Serial
+//
+#if HAS_TMC220x
+ /**
+ * TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ *
+ * Four TMC2209 drivers can use the same HW/SW serial port with hardware configured addresses.
+ * Set the address using jumpers on pins MS1 and MS2.
+ * Address | MS1 | MS2
+ * 0 | LOW | LOW
+ * 1 | HIGH | LOW
+ * 2 | LOW | HIGH
+ * 3 | HIGH | HIGH
+ */
+
+ // Set Hardware Serial UART only für TCM 2209
+ //#define HARDWARE_SERIAL
+ // Set Software Serial UART for TMC 2208 / TMC 2209
+ #define SOFTWARE_SERIAL
+
+ #if ENABLED(HARDWARE_SERIAL)
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ #define X_SLAVE_ADDRESS 3 // | | :
+ #define Y_SLAVE_ADDRESS 2 // : | :
+ #define Z_SLAVE_ADDRESS 1 // | : :
+ #define E0_SLAVE_ADDRESS 0 // : : :
+
+ #ifdef E1_DRIVER_TYPE
+ #define E1_SLAVE_ADDRESS 0 // : : :
+ #endif
+ #ifdef Z2_DRIVER_TYPE
+ #define Z2_SLAVE_ADDRESS 0 // : : :
+ #endif
+
+ #define X_SERIAL_TX_PIN PA9
+ #define X_SERIAL_RX_PIN PA9
+
+ #define Y_SERIAL_TX_PIN PA9
+ #define Y_SERIAL_RX_PIN PA9
+
+ #define Z_SERIAL_TX_PIN PA9
+ #define Z_SERIAL_RX_PIN PA9
+
+ #define E0_SERIAL_TX_PIN PA5
+ #define E0_SERIAL_RX_PIN PA5
+
+ #ifdef E1_DRIVER_TYPE
+ #define E1_SERIAL_TX_PIN PA9
+ #define E1_SERIAL_RX_PIN PA9
+ #endif
+
+ #ifdef Z2_DRIVER_TYPE
+ #define E1_SERIAL_TX_PIN PA9
+ #define E1_SERIAL_RX_PIN PA9
+ #endif
+
+ #elif ENABLED (SOFTWARE_SERIAL)
+
+ //Set *_SERIAL_TX_PIN and *_SERIAL_RX_PIN to match for all drivers on the same PIN to the same Slave Address.
+ #define X_SLAVE_ADDRESS 0
+ #define Y_SLAVE_ADDRESS 0
+ #define Z_SLAVE_ADDRESS 0
+ #define E0_SLAVE_ADDRESS 0
+ #ifdef E1_DRIVER_TYPE
+ #define E1_SLAVE_ADDRESS 0
+ #endif
+ #ifdef Z2_DRIVER_TYPE
+ #define Z2_SLAVE_ADDRESS 0
+ #endif
+
+ #define X_SERIAL_TX_PIN PA3
+ #define X_SERIAL_RX_PIN PA3
+
+ #define Y_SERIAL_TX_PIN PA6
+ #define Y_SERIAL_RX_PIN PA6
+
+ #define Z_SERIAL_TX_PIN PA1
+ #define Z_SERIAL_RX_PIN PA1
+
+ #define E0_SERIAL_TX_PIN PE5
+ #define E0_SERIAL_RX_PIN PE5
+
+ #ifdef E1_DRIVER_TYPE
+ #define E1_SERIAL_TX_PIN PA9
+ #define E1_SERIAL_RX_PIN PA9
+ #endif
+
+ #ifdef Z2_DRIVER_TYPE
+ #define E1_SERIAL_TX_PIN PA9
+ #define E1_SERIAL_RX_PIN PA9
+ #endif
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+ #endif
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+
+#define E1_ENABLE_PIN PA3
+#define E1_STEP_PIN PA6
+#define E1_DIR_PIN PA1
+#if ENABLED(SOFTWARE_SERIAL)
+ //#define E1_ENABLE_PIN PA3 // USED BY UART X Don't change
+ //#define E1_STEP_PIN PA6 // USED BY UART Y Don't change
+ //#define E1_DIR_PIN PA1 // USED BY UART Z Don't change
+ #else
+ #define E1_ENABLE_PIN PA3
+ #define E1_STEP_PIN PA6
+ #define E1_DIR_PIN PA1
+ #endif
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_1_PIN PC2 // TH2
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#ifndef HEATER_0_PIN
+ #define HEATER_0_PIN PC3
+#endif
+#if HOTENDS == 1
+ #ifndef FAN1_PIN
+ #define FAN1_PIN PB0
+ #endif
+#else
+ #ifndef HEATER_1_PIN
+ #define HEATER_1_PIN PB0
+ #endif
+#endif
+#ifndef FAN_PIN
+ #define FAN_PIN PB1 // FAN
+#endif
+#ifndef HEATER_BED_PIN
+ #define HEATER_BED_PIN PA0
+#endif
+
+//
+// Thermocouples
+//
+//#define MAX6675_SS_PIN PE5 // TC1 - CS1
+//#define MAX6675_SS_PIN PE6 // TC2 - CS2
+
+//
+// Misc. Functions
+//
+#if HAS_TFT_LVGL_UI
+ // LVGL
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X 17880
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y -12234
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X -45
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y 349
+ #endif
+ #ifndef TOUCH_ORIENTATION
+ #define TOUCH_ORIENTATION TOUCH_LANDSCAPE
+ #endif
+
+ //#define MKSPWC
+ #ifdef MKSPWC
+ #define SUICIDE_PIN PB2 // Enable MKSPWC SUICIDE PIN
+ #define SUICIDE_PIN_INVERTING false // Enable MKSPWC PIN STATE
+ #define KILL_PIN PA2 // Enable MKSPWC DET PIN
+ #define KILL_PIN_STATE true // Enable MKSPWC PIN STATE
+ #endif
+
+ #define MT_DET_1_PIN PA4 // LVGL UI FILAMENT RUNOUT1 PIN
+ #define MT_DET_2_PIN PE6 // LVGL UI FILAMENT RUNOUT2 PIN
+ #define MT_DET_PIN_INVERTING false // LVGL UI filament RUNOUT PIN STATE
+
+ #define WIFI_IO0_PIN PC13 // MKS ESP WIFI IO0 PIN
+ #define WIFI_IO1_PIN PC7 // MKS ESP WIFI IO1 PIN
+ #define WIFI_RESET_PIN PA5 // MKS ESP WIFI RESET PIN
+#else
+ //#define POWER_LOSS_PIN PA2 // PW_DET
+ //#define PS_ON_PIN PB2 // PW_OFF
+ #define FIL_RUNOUT_PIN PA4
+ #define FIL_RUNOUT2_PIN PE6
+#endif
+
+//#define LED_PIN PB2
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4500000 // 4.5 MHz
+#define SD_DETECT_PIN PD12
+#define ONBOARD_SD_CS_PIN PC11
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN PC5
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'TFT_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+// Shared FSMC Configs
+#if HAS_FSMC_TFT
+ #define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h
+ #define DOGLCD_SCK -1
+
+ #define TOUCH_CS_PIN PA7 // SPI2_NSS
+ #define TOUCH_SCK_PIN PB13 // SPI2_SCK
+ #define TOUCH_MISO_PIN PB14 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
+
+ #define TFT_RESET_PIN PC6 // FSMC_RST
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_CS_PIN PD7
+ #define FSMC_RS_PIN PD11
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+ #define TFT_CS_PIN FSMC_CS_PIN
+ #define TFT_RS_PIN FSMC_RS_PIN
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 2
+
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x1000000 // 16MB
+ #define W25QXX_CS_PIN PB12
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h
new file mode 100644
index 0000000..5bc499f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h
@@ -0,0 +1,406 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin nano (STM32F130VET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__, STM32F1)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin nano supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#elif HAS_FSMC_TFT
+ #error "MKS Robin nano v2 doesn't support FSMC-based TFT displays."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin nano V2.0"
+
+#define BOARD_NO_NATIVE_USB
+
+// Avoid conflict with TIMER_SERVO when using the STM32 HAL
+#define TEMP_TIMER 5
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// EEPROM
+//
+//#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
+#if EITHER(NO_EEPROM_SELECTED, I2C_EEPROM)
+ #define I2C_EEPROM // EEPROM on I2C-0
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Note: MKS Robin board is using SPI2 interface.
+//
+#define SPI_DEVICE 2
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8 // Enable BLTOUCH
+
+//
+// Limit Switches
+//
+#define X_DIAG_PIN PA15
+#define Y_DIAG_PIN PA12
+#define Z_DIAG_PIN PA11
+#define E0_DIAG_PIN PC4
+#define E1_DIAG_PIN PE7
+
+#define X_STOP_PIN PA15
+#define Y_STOP_PIN PA12
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+#ifndef X_CS_PIN
+ #define X_CS_PIN PD5
+#endif
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PD7
+#endif
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PD4
+#endif
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PD9
+#endif
+
+#define E1_ENABLE_PIN PA3
+#define E1_STEP_PIN PD15
+#define E1_DIR_PIN PA1
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN PD8
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PD14
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PD1
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PD0
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL MSerial1
+ //#define Y_HARDWARE_SERIAL MSerial1
+ //#define Z_HARDWARE_SERIAL MSerial1
+ //#define E0_HARDWARE_SERIAL MSerial1
+ //#define E1_HARDWARE_SERIAL MSerial1
+
+ //
+ // Software serial
+ //
+
+ #define X_SERIAL_TX_PIN PD5
+ #define X_SERIAL_RX_PIN PD5
+
+ #define Y_SERIAL_TX_PIN PD7
+ #define Y_SERIAL_RX_PIN PD7
+
+ #define Z_SERIAL_TX_PIN PD4
+ #define Z_SERIAL_RX_PIN PD4
+
+ #define E0_SERIAL_TX_PIN PD9
+ #define E0_SERIAL_RX_PIN PD9
+
+ #define E1_SERIAL_TX_PIN PD8
+ #define E1_SERIAL_RX_PIN PD8
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif // HAS_TMC_UART
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_1_PIN PC2 // TH2
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC3 // HEATER1
+#define HEATER_1_PIN PB0 // HEATER2
+#define HEATER_BED_PIN PA0 // HOT BED
+
+#define FAN_PIN PB1 // FAN
+
+//
+// Thermocouples
+//
+//#define MAX6675_SS_PIN PE5 // TC1 - CS1
+//#define MAX6675_SS_PIN PE6 // TC2 - CS2
+
+//
+// Misc. Functions
+//
+
+//#define MKSPWC
+#ifdef MKSPWC
+ #define SUICIDE_PIN PB2 // Enable MKSPWC SUICIDE PIN
+ #define SUICIDE_PIN_INVERTING false // Enable MKSPWC PIN STATE
+ #define KILL_PIN PA2 // Enable MKSPWC DET PIN
+ #define KILL_PIN_STATE true // Enable MKSPWC PIN STATE
+#endif
+
+#if HAS_TFT_LVGL_UI
+ // LVGL
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X -17253
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y 11579
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X 514
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y -24
+ #endif
+ #ifndef TOUCH_ORIENTATION
+ #define TOUCH_ORIENTATION TOUCH_LANDSCAPE
+ #endif
+
+ #define MT_DET_1_PIN PA4 // LVGL UI FILAMENT RUNOUT1 PIN
+ #define MT_DET_2_PIN PE6 // LVGL UI FILAMENT RUNOUT2 PIN
+ #define MT_DET_PIN_INVERTING false // LVGL UI filament RUNOUT PIN STATE
+
+ #define WIFI_IO0_PIN PC13 // MKS ESP WIFI IO0 PIN
+ #define WIFI_IO1_PIN PC7 // MKS ESP WIFI IO1 PIN
+ #define WIFI_RESET_PIN PE9 // MKS ESP WIFI RESET PIN
+
+ #if ENABLED(MKS_TEST)
+ #define MKS_TEST_POWER_LOSS_PIN PA2 // PW_DET
+ #define MKS_TEST_PS_ON_PIN PB2 // PW_OFF
+ #endif
+#else
+ //#define POWER_LOSS_PIN PA2 // PW_DET
+ //#define PS_ON_PIN PB2 // PW_OFF
+ #define FIL_RUNOUT_PIN PA4
+ #define FIL_RUNOUT2_PIN PE6
+#endif
+
+//#define LED_PIN PB2
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(LCD)
+ #define ENABLE_SPI1
+ #define SD_DETECT_PIN PE12
+ #define SCK_PIN PA5
+ #define MISO_PIN PA6
+ #define MOSI_PIN PA7
+ #define SS_PIN PE10
+#elif SD_CONNECTION_IS(ONBOARD)
+ #define SDIO_SUPPORT
+ #define SDIO_CLOCK 4500000 // 4.5 MHz
+ #define SD_DETECT_PIN PD12
+ #define ONBOARD_SD_CS_PIN PC11
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "No custom SD drive cable defined for this board."
+#endif
+
+//
+// LCD / Controller
+//
+#ifndef BEEPER_PIN
+ #define BEEPER_PIN PC5
+#endif
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+
+#if HAS_SPI_TFT
+
+ // Shared SPI TFT
+
+ #define LCD_BACKLIGHT_PIN PD13
+
+ #define TOUCH_CS_PIN PE14 // SPI1_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI1_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI1_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
+
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+ #define BTN_ENC PE13
+
+ #define TFT_CS_PIN PD11
+ #define TFT_SCK_PIN PA5
+ #define TFT_MISO_PIN PA6
+ #define TFT_MOSI_PIN PA7
+ #define TFT_DC_PIN PD10
+ #define TFT_RST_PIN PC6
+ #define TFT_A0_PIN TFT_DC_PIN
+
+ #define TFT_RESET_PIN PC6
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 1
+
+ #define LCD_USE_DMA_SPI
+
+#endif
+
+#if ENABLED(TFT_CLASSIC_UI)
+ // Emulated DOGM SPI
+ #define LCD_PINS_ENABLE PD13
+ #define LCD_PINS_RS PC6
+ #define BTN_ENC PE13
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+#elif ENABLED(TFT_COLOR_UI)
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+#if HAS_WIRED_LCD && !HAS_SPI_TFT
+
+ // NON TFT Displays
+
+ #if ENABLED(MKS_MINI_12864)
+
+ // MKS MINI12864 and MKS LCD12864B
+ // If using MKS LCD12864A (Need to remove RPK2 resistor)
+
+ #define BTN_ENC PE13
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PD11
+ #define DOGLCD_CS PE15
+ #define DOGLCD_SCK PA5
+ #define DOGLCD_MOSI PA7
+
+ #elif IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define PIN_SPI_SCK PA5
+ #define PIN_TFT_MISO PA6
+ #define PIN_TFT_MOSI PA7
+ #define TFTGLCD_CS PE8
+ #endif
+
+ #ifndef BEEPER_PIN
+ #define BEEPER_PIN -1
+ #endif
+
+ #else // !MKS_MINI_12864
+
+ #define BTN_ENC PE13
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+
+ #define LCD_PINS_ENABLE PD13
+ #define LCD_PINS_RS PC6
+ #define LCD_PINS_D4 PE14
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PE15
+ #define LCD_PINS_D6 PD11
+ #define LCD_PINS_D7 PD10
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+
+ #endif // !MKS_MINI_12864
+
+#endif // HAS_WIRED_LCD && !HAS_SPI_TFT
+
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x1000000 // 16MB
+ #define W25QXX_CS_PIN PB12
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
+
+#ifndef BEEPER_PIN
+ #define BEEPER_PIN PC5
+#endif
+
+#if ENABLED(SPEAKER) && BEEPER_PIN == PC5
+ #error "MKS Robin nano default BEEPER_PIN is not a SPEAKER."
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h
new file mode 100644
index 0000000..39676bf
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h
@@ -0,0 +1,280 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin pro (STM32F103ZET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 3 || E_STEPPERS > 3
+ #error "MKS Robin pro supports up to 3 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin pro"
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// Note: MKS Robin board is using SPI2 interface.
+//
+#define SPI_DEVICE 2
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8 // Enable BLTOUCH
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PA15
+#define X_MAX_PIN PG7
+#define Y_MIN_PIN PA12
+#define Y_MAX_PIN PG8
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+#ifndef X_CS_PIN
+ #define X_CS_PIN PF8
+#endif
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PF3
+#endif
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PF6
+#endif
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PG15
+#endif
+
+#define E1_ENABLE_PIN PA3
+#define E1_STEP_PIN PA6
+#define E1_DIR_PIN PA1
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN PG10
+#endif
+
+#define E2_ENABLE_PIN PF0
+#define E2_STEP_PIN PF2
+#define E2_DIR_PIN PF1
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN PG9
+#endif
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB15
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB14
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB13
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL MSerial1
+ //#define Y_HARDWARE_SERIAL MSerial1
+ //#define Z_HARDWARE_SERIAL MSerial1
+ //#define E0_HARDWARE_SERIAL MSerial1
+ //#define E1_HARDWARE_SERIAL MSerial1
+ //#define E2_HARDWARE_SERIAL MSerial1
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PF7
+ #define X_SERIAL_RX_PIN PF8
+
+ #define Y_SERIAL_TX_PIN PF4
+ #define Y_SERIAL_RX_PIN PF3
+
+ #define Z_SERIAL_TX_PIN PF5
+ #define Z_SERIAL_RX_PIN PF6
+
+ #define E0_SERIAL_TX_PIN PG13
+ #define E0_SERIAL_RX_PIN PG15
+
+ #define E1_SERIAL_TX_PIN PG12
+ #define E1_SERIAL_RX_PIN PG10
+
+ #define E2_SERIAL_TX_PIN PC13
+ #define E2_SERIAL_RX_PIN PG9
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_1_PIN PC2 // TH2
+#define TEMP_2_PIN PC3 // TH3
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PF10 // +HE0-
+#define HEATER_1_PIN PB0 // +HE1-
+#define HEATER_2_PIN PF9 // +HE2-
+#define HEATER_BED_PIN PA0 // +HOT-BED-
+#define FAN_PIN PB1 // +FAN-
+
+/**
+ * Note: MKS Robin Pro board is using SPI2 interface. Make sure your stm32duino library is configured accordingly
+ */
+//#define MAX6675_SS_PIN PE5 // TC1 - CS1
+//#define MAX6675_SS_PIN PF11 // TC2 - CS2
+
+#define POWER_LOSS_PIN PA2 // PW_DET
+#define PS_ON_PIN PG11 // PW_OFF
+#define FIL_RUNOUT_PIN PA4 // MT_DET1
+//#define FIL_RUNOUT_PIN PE6 // MT_DET2
+//#define FIL_RUNOUT_PIN PG14 // MT_DET3
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(LCD)
+ #define SD_DETECT_PIN PG3
+ #define SD_SCK_PIN PB13
+ #define SD_MISO_PIN PB14
+ #define SD_MOSI_PIN PB15
+ #define SD_SS_PIN PG6
+#elif SD_CONNECTION_IS(ONBOARD)
+ #define SDIO_SUPPORT
+ #define SD_DETECT_PIN PD12
+ #define ONBOARD_SD_CS_PIN PC11
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "No custom SD drive cable defined for this board."
+#endif
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+#if HAS_FSMC_GRAPHICAL_TFT
+ #define FSMC_CS_PIN PD7 // NE4
+ #define FSMC_RS_PIN PD11 // A0
+
+ #define LCD_RESET_PIN PF6
+ #define LCD_BACKLIGHT_PIN PD13
+
+ #if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PA7
+ #else
+ #define BEEPER_PIN PC5
+ #define BTN_ENC PG2
+ #define BTN_EN1 PG5
+ #define BTN_EN2 PG4
+ #endif
+
+#elif IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS PG5
+ #endif
+
+#elif HAS_WIRED_LCD
+
+ #define BEEPER_PIN PC5
+ #define BTN_ENC PG2
+ #define LCD_PINS_ENABLE PG0
+ #define LCD_PINS_RS PG1
+ #define BTN_EN1 PG5
+ #define BTN_EN2 PG4
+
+ // MKS MINI12864 and MKS LCD12864B. If using MKS LCD12864A (Need to remove RPK2 resistor)
+ #if ENABLED(MKS_MINI_12864)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PF12
+ #define DOGLCD_CS PF15
+ #define DOGLCD_SCK PB13
+ #define DOGLCD_MOSI PB15
+
+ #else // !MKS_MINI_12864 && !ENDER2_STOCKDISPLAY
+
+ #define LCD_PINS_D4 PF14
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PF15
+ #define LCD_PINS_D6 PF12
+ #define LCD_PINS_D7 PF13
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !MKS_MINI_12864 && !ENDER2_STOCKDISPLAY
+
+#endif
+
+#ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+#endif
+#ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+#endif
+#ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MORPHEUS.h b/Marlin/src/pins/stm32f1/pins_MORPHEUS.h
new file mode 100644
index 0000000..05e02c9
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MORPHEUS.h
@@ -0,0 +1,93 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+ /**
+ * 2017 Victor Perez Marlin for stm32f1 test
+ * 2018 Modified by Pablo Crespo for Morpheus Board (https://github.com/pscrespo/Morpheus-STM32)
+ */
+
+/**
+ * MORPHEUS Board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__, STM32F1xx)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Bluepill based board"
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PB14
+#define Y_MIN_PIN PB13
+#define Z_MIN_PIN PB12
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN PB9
+#endif
+
+//
+// Steppers
+//
+// X & Y enable are the same
+#define X_STEP_PIN PB7
+#define X_DIR_PIN PB6
+#define X_ENABLE_PIN PB8
+
+#define Y_STEP_PIN PB5
+#define Y_DIR_PIN PB4
+#define Y_ENABLE_PIN PB8
+
+#define Z_STEP_PIN PA15
+#define Z_DIR_PIN PA10
+#define Z_ENABLE_PIN PB3
+
+#define E0_STEP_PIN PA8
+#define E0_DIR_PIN PB15
+#define E0_ENABLE_PIN PA9
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PB1 // Analog Input (HOTEND thermistor)
+#define TEMP_BED_PIN PB0 // Analog Input (BED thermistor)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA2 // HOTEND MOSFET
+#define HEATER_BED_PIN PA0 // BED MOSFET
+
+#define FAN_PIN PA1 // FAN1 header on board - PRINT FAN
+
+//
+// Misc.
+//
+#define LED_PIN PC13
+#define SDSS PA3
+#define TFTGLCD_CS PA4
+#define SD_DETECT_PIN PC14
diff --git a/Marlin/src/pins/stm32f1/pins_STM32F1R.h b/Marlin/src/pins/stm32f1/pins_STM32F1R.h
new file mode 100644
index 0000000..d666755
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_STM32F1R.h
@@ -0,0 +1,140 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 21017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "Misc. STM32F1R"
+#define DEFAULT_MACHINE_NAME "STM32F103RET6"
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PB3
+#define Y_STOP_PIN PB4
+#define Z_STOP_PIN PB5
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC0
+#define X_DIR_PIN PC1
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PC2
+#define Y_DIR_PIN PC3
+#define Y_ENABLE_PIN PA8
+
+#define Z_STEP_PIN PC4
+#define Z_DIR_PIN PC5
+#define Z_ENABLE_PIN PA8
+
+#define E0_STEP_PIN PC6
+#define E0_DIR_PIN PC7
+#define E0_ENABLE_PIN PA8
+
+/**
+ * TODO: Currently using same Enable pin to all steppers.
+ */
+
+#define E1_STEP_PIN PC8
+#define E1_DIR_PIN PC9
+#define E1_ENABLE_PIN PA8
+
+#define E2_STEP_PIN PC10
+#define E2_DIR_PIN PC11
+#define E2_ENABLE_PIN PA8
+
+//
+// Misc. Functions
+//
+#define SDSS PA4
+#define LED_PIN PD2
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB0 // EXTRUDER 1
+#define HEATER_1_PIN PB1
+
+#define HEATER_BED_PIN PA3 // BED
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA0 // Analog Input
+#define TEMP_0_PIN PA1 // Analog Input
+#define TEMP_1_PIN PA2 // Analog Input
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #else
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PD2
+ #define LCD_PINS_D4 PB12
+ #define LCD_PINS_D5 PB13
+ #define LCD_PINS_D6 PB14
+ #define LCD_PINS_D7 PB15
+ #if !IS_NEWPANEL
+ #error "Non-NEWPANEL LCD is not supported."
+ #endif
+ #endif
+
+ #if IS_NEWPANEL
+ #if IS_RRD_SC
+ #error "RRD Smart Controller is not supported."
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+ #error "LCD_I2C_PANELOLU2 is not supported."
+ #elif ENABLED(LCD_I2C_VIKI)
+ #error "LCD_I2C_VIKI is not supported."
+ #elif ANY(VIKI2, miniVIKI)
+ #error "VIKI2 / miniVIKI is not supported."
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+ #error "ELB_FULL_GRAPHIC_CONTROLLER is not supported."
+ #elif ENABLED(MINIPANEL)
+ #error "MINIPANEL is not supported."
+ #else
+ #error "Other generic NEWPANEL LCD is not supported."
+ #endif
+ #endif
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h b/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h
new file mode 100644
index 0000000..4f8183c
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h
@@ -0,0 +1,161 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 21017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "STM3R Mini"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+// Enable I2C_EEPROM for testing
+#define I2C_EEPROM
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PD0
+#define Y_STOP_PIN PD1
+#define Z_STOP_PIN PD4
+
+//
+// Steppers
+//
+#define X_STEP_PIN PE1
+#define X_DIR_PIN PE0
+#define X_ENABLE_PIN PC0
+
+#define Y_STEP_PIN PE3
+#define Y_DIR_PIN PE2
+#define Y_ENABLE_PIN PC1
+
+#define Z_STEP_PIN PE5
+#define Z_DIR_PIN PE4
+#define Z_ENABLE_PIN PC2
+
+#define E0_STEP_PIN PE7
+#define E0_DIR_PIN PE6
+#define E0_ENABLE_PIN PC3
+
+#define E1_STEP_PIN PE9
+#define E1_DIR_PIN PE8
+#define E1_ENABLE_PIN PC4
+
+#define E2_STEP_PIN PE11
+#define E2_DIR_PIN PE10
+#define E2_ENABLE_PIN PC5
+
+//
+// Misc. Functions
+//
+#define SDSS PA15
+#define LED_PIN PB2
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PD12 // EXTRUDER 1
+//#define HEATER_1_PIN PD13
+
+#define HEATER_BED_PIN PB9 // BED
+//#define HEATER_BED2_PIN -1 // BED2
+//#define HEATER_BED3_PIN -1 // BED3
+
+#ifndef FAN_PIN
+ #define FAN_PIN PD14
+#endif
+#define FAN1_PIN PD13
+
+#define FAN_SOFT_PWM
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA0
+#define TEMP_0_PIN PA1
+#define TEMP_1_PIN PA2
+#define TEMP_2_PIN PA3
+
+// Laser control
+#if HAS_CUTTER
+ #define SPINDLE_LASER_PWM_PIN PB8
+ #define SPINDLE_LASER_ENA_PIN PD5
+#endif
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #else
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PD2
+ #define LCD_PINS_D4 PB12
+ #define LCD_PINS_D5 PB13
+ #define LCD_PINS_D6 PB14
+ #define LCD_PINS_D7 PB15
+ #if !IS_NEWPANEL
+ #error "Non-NEWPANEL LCD is not supported."
+ #endif
+ #endif
+
+ #if NEED_TOUCH_PINS
+
+ #define TOUCH_CS_PIN PB12 // SPI2_NSS
+ #define TOUCH_SCK_PIN PB13
+ #define TOUCH_MOSI_PIN PB14
+ #define TOUCH_MISO_PIN PB15
+ #define TOUCH_INT_PIN PC6 // (PenIRQ coming from ADS7843)
+
+ #elif IS_NEWPANEL
+
+ #if IS_RRD_SC
+ #error "RRD Smart Controller is not supported."
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+ #error "LCD_I2C_PANELOLU2 is not supported."
+ #elif ENABLED(LCD_I2C_VIKI)
+ #error "LCD_I2C_VIKI is not supported."
+ #elif ANY(VIKI2, miniVIKI)
+ #error "VIKI2 / miniVIKI is not supported."
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+ #error "ELB_FULL_GRAPHIC_CONTROLLER is not supported."
+ #elif ENABLED(MINIPANEL)
+ #error "MINIPANEL is not supported."
+ #else
+ #error "Other generic NEWPANEL LCD is not supported."
+ #endif
+
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h b/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h
new file mode 100644
index 0000000..e09bbff
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h
@@ -0,0 +1,183 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * ANYCUBIC Trigorilla Pro (STM32F130ZET6) board pin assignments.
+ * It is the same used by the Tronxy X5SA thanks to ftoz1 for sharing it
+ * https://github.com/MarlinFirmware/Marlin/issues/14655
+ * https://github.com/MarlinFirmware/Marlin/files/3401484/x5sa-main_board-2.pdf
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "Trigorilla Pro supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Trigorilla Pro"
+
+#define BOARD_NO_NATIVE_USB
+
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // SoC Flash (framework-arduinoststm32-maple/STM32F1/libraries/EEPROM/EEPROM.h)
+ #define EEPROM_START_ADDRESS (0x8000000UL + (512 * 1024) - 2 * EEPROM_PAGE_SIZE)
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB, but will use 2x more (4KB)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE
+#else
+ #define MARLIN_EEPROM_SIZE (0x800U) // On SD, Limit to 2KB, require this amount of RAM
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PG10
+#define Y_STOP_PIN PA12
+#define Z_MAX_PIN PA14
+#define Z_MIN_PIN PA13
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC13
+#define X_STEP_PIN PE5
+#define X_DIR_PIN PE6
+
+#define Y_ENABLE_PIN PE4
+#define Y_STEP_PIN PE2
+#define Y_DIR_PIN PE3
+
+#define Z_ENABLE_PIN PE1
+#define Z_STEP_PIN PB9
+#define Z_DIR_PIN PE0
+
+#define E0_ENABLE_PIN PB8
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB5
+
+#define E1_ENABLE_PIN PG8
+#define E1_STEP_PIN PC7
+#define E1_DIR_PIN PC6
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA1 // TH1
+#define TEMP_BED_PIN PA0 // TB1
+
+//
+// Heaters
+//
+#define HEATER_0_PIN PG12 // HEATER1
+#define HEATER_BED_PIN PG11 // HOT BED
+#define HEATER_BED_INVERTING true
+
+//
+// Fans
+//
+#define CONTROLLER_FAN_PIN PD6 // FAN
+#define FAN_PIN PG13 // FAN
+#define FAN1_PIN PG14 // FAN
+
+//
+// Misc
+//
+#define BEEPER_PIN PB0
+#define LED_PIN PD3
+//#define POWER_LOSS_PIN PG2 // PG4 PW_DET
+#define FIL_RUNOUT_PIN PA15 // MT_DET
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers
+ * Supported screens are based on the ILI9341, ST7789V and ILI9328 (320x240)
+ * ILI9488 is not supported.
+ * Define init sequences for other screens in u8g_dev_tft_320x240_upscale_from_128x64.cpp
+ *
+ * If the screen stays white, disable 'LCD_RESET_PIN' to let the bootloader init the screen.
+ *
+ * Setting an 'LCD_RESET_PIN' may cause a flicker when entering the LCD menu
+ * because Marlin uses the reset as a failsafe to revive a glitchy LCD.
+ */
+#if HAS_FSMC_TFT
+ #define TFT_RESET_PIN PF11
+ #define TFT_BACKLIGHT_PIN PD13
+ #define FSMC_CS_PIN PD7 // NE4
+ #define FSMC_RS_PIN PD11 // A0
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+ #define ANYCUBIC_TFT35
+#else
+ #define LCD_RESET_PIN PF11
+ #define LCD_BACKLIGHT_PIN PD13
+#endif
+
+// XPT2046 Touch Screen calibration
+#if ANY(TFT_COLOR_UI, TFT_LVGL_UI, TFT_CLASSIC_UI)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X -17181
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y 11434
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X 501
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y -9
+ #endif
+#endif
+
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PB7 // SPI2_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI2_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI2_MOSI
+#endif
+
+// SPI1(PA7) & SPI3(PB5) not available
+#define SPI_DEVICE 2
+
+#if ENABLED(SDIO_SUPPORT)
+ #define SD_SCK_PIN PB13 // SPI2 ok
+ #define SD_MISO_PIN PB14 // SPI2 ok
+ #define SD_MOSI_PIN PB15 // SPI2 ok
+ #define SD_SS_PIN PC11 // PB12 is X- ok
+ #define SD_DETECT_PIN -1 // SD_CD ok
+#else
+ // SD as custom software SPI (SDIO pins)
+ #define SD_SCK_PIN PC12
+ #define SD_MISO_PIN PC8
+ #define SD_MOSI_PIN PD2
+ #define SD_SS_PIN -1
+ #define ONBOARD_SD_CS_PIN PC11
+ #define SDSS PD2
+ #define SD_DETECT_PIN -1
+#endif
diff --git a/Marlin/src/pins/stm32f1/workspace.code-workspace b/Marlin/src/pins/stm32f1/workspace.code-workspace
new file mode 100644
index 0000000..b28d485
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/workspace.code-workspace
@@ -0,0 +1,8 @@
+{
+ "folders": [
+ {
+ "path": "..\\..\\..\\..\\.."
+ }
+ ],
+ "settings": {}
+} \ No newline at end of file
diff --git a/Marlin/src/pins/stm32f4/pins_ANET_ET4.h b/Marlin/src/pins/stm32f4/pins_ANET_ET4.h
new file mode 100644
index 0000000..487080f
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_ANET_ET4.h
@@ -0,0 +1,222 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+#pragma once
+
+#if NOT_TARGET(STM32F4)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "Anet ET4 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Anet ET4 1.x"
+#endif
+
+//
+// EEPROM
+//
+
+// Use one of these or SDCard-based Emulation will be used
+#if NO_EEPROM_SELECTED
+ //#define SRAM_EEPROM_EMULATION // Use BackSRAM-based EEPROM emulation
+ #define FLASH_EEPROM_EMULATION // Use Flash-based EEPROM emulation
+ //#define IIC_BL24CXX_EEPROM // Use I2C EEPROM onboard IC (AT24C04C, Size 4KB, PageSize 16B)
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // Decrease delays and flash wear by spreading writes across the
+ // 128 kB sector allocated for EEPROM emulation.
+ #define FLASH_EEPROM_LEVELING
+#elif ENABLED(IIC_BL24CXX_EEPROM)
+ #define IIC_EEPROM_SDA PB11
+ #define IIC_EEPROM_SCL PB10
+ #define EEPROM_DEVICE_ADDRESS 0xA0
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC13
+#define Y_STOP_PIN PE12
+#define Z_STOP_PIN PE11
+
+//
+// Z Probe
+//
+#if ENABLED(BLTOUCH)
+ #error "You will need to use 24V to 5V converter and remove one resistor and capacitor from the motherboard. See https://github.com/davidtgbe/Marlin/blob/bugfix-2.0.x/docs/Tutorials/bltouch-en.md for more information. Comment out this line to proceed at your own risk."
+ #define SERVO0_PIN PC3
+#elif !defined(Z_MIN_PROBE_PIN)
+ #define Z_MIN_PROBE_PIN PC3
+#endif
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA2
+#endif
+
+//
+// Power Loss Detection
+//
+#ifndef POWER_LOSS_PIN
+ #define POWER_LOSS_PIN PA8
+#endif
+
+//
+// LED PIN
+//
+#define LED_PIN PD12
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB6
+#define X_DIR_PIN PB5
+#define X_ENABLE_PIN PB7
+
+#define Y_STEP_PIN PB3
+#define Y_DIR_PIN PD6
+#define Y_ENABLE_PIN PB4
+
+#define Z_STEP_PIN PA12
+#define Z_DIR_PIN PA11
+#define Z_ENABLE_PIN PA15
+
+#define E0_STEP_PIN PB9
+#define E0_DIR_PIN PB8
+#define E0_ENABLE_PIN PE0
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA1
+#define TEMP_BED_PIN PA4
+
+//
+// Heaters
+//
+#define HEATER_0_PIN PA0
+#define HEATER_BED_PIN PE2
+
+//
+// Fans
+//
+#define FAN_PIN PE3 // Layer fan
+#define FAN1_PIN PE1 // Hotend fan
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN FAN1_PIN
+#endif
+
+//
+// LCD / Controller
+//
+#define TFT_RESET_PIN PE6
+#define TFT_CS_PIN PD7
+#define TFT_RS_PIN PD13
+#define TFT_INTERFACE_FSMC_8BIT
+
+#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+#define FSMC_CS_PIN TFT_CS_PIN
+#define FSMC_RS_PIN TFT_RS_PIN
+
+//
+// Touch Screen
+// https://ldm-systems.ru/f/doc/catalog/HY-TFT-2,8/XPT2046.pdf
+//
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PB2
+ #define TOUCH_SCK_PIN PB0
+ #define TOUCH_MOSI_PIN PE5
+ #define TOUCH_MISO_PIN PE4
+ #define TOUCH_INT_PIN PB1
+#endif
+
+#if ENABLED(ANET_ET5_TFT35)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X 17125
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y -11307
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X -26
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y 337
+ #endif
+ #ifndef TOUCH_ORIENTATION
+ #define TOUCH_ORIENTATION TOUCH_PORTRAIT
+ #endif
+#elif ENABLED(ANET_ET4_TFT28)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X -11838
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y 8776
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X 333
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y -17
+ #endif
+ #ifndef TOUCH_ORIENTATION
+ #define TOUCH_ORIENTATION TOUCH_PORTRAIT
+ #endif
+#endif
+
+//
+// SD Card
+//
+//#define SDIO_SUPPORT
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION CUSTOM_CABLE
+#endif
+
+#if ENABLED(SDSUPPORT)
+
+ #define SDIO_D0_PIN PC8
+ #define SDIO_D1_PIN PC9
+ #define SDIO_D2_PIN PC10
+ #define SDIO_D3_PIN PC11
+ #define SDIO_CK_PIN PC12
+ #define SDIO_CMD_PIN PD2
+
+ #if DISABLED(SDIO_SUPPORT)
+ #define SOFTWARE_SPI
+ #define SDSS SDIO_D3_PIN
+ #define SD_SCK_PIN SDIO_CK_PIN
+ #define SD_MISO_PIN SDIO_D0_PIN
+ #define SD_MOSI_PIN SDIO_CMD_PIN
+ #endif
+
+ #ifndef SD_DETECT_PIN
+ #define SD_DETECT_PIN PD3
+ #endif
+
+#endif
diff --git a/Marlin/src/pins/stm32f4/pins_ANET_ET4P.h b/Marlin/src/pins/stm32f4/pins_ANET_ET4P.h
new file mode 100644
index 0000000..f5ebf82
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_ANET_ET4P.h
@@ -0,0 +1,34 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+#pragma once
+
+#define BOARD_INFO_NAME "Anet ET4P 1.x"
+
+//
+// TMC2208 Configuration_adv defaults for Anet ET4P-MB_V1.x
+//
+#if !AXIS_DRIVER_TYPE_X(TMC2208_STANDALONE) || !AXIS_DRIVER_TYPE_Y(TMC2208_STANDALONE) || !AXIS_DRIVER_TYPE_Z(TMC2208_STANDALONE) || !AXIS_DRIVER_TYPE_E0(TMC2208_STANDALONE)
+ #error "ANET_ET4P requires ([XYZ]|E0)_DRIVER_TYPE set to TMC2208_STANDALONE."
+#endif
+
+#include "pins_ANET_ET4.h"
diff --git a/Marlin/src/pins/stm32f4/pins_ARMED.h b/Marlin/src/pins/stm32f4/pins_ARMED.h
new file mode 100644
index 0000000..db57db1
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_ARMED.h
@@ -0,0 +1,229 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+// https://github.com/ktand/Armed
+
+#pragma once
+
+#if NOT_TARGET(STM32F4)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "Arm'ed supports up to 2 hotends / E-steppers."
+#endif
+
+#ifndef ARMED_V1_0
+ #define ARMED_V1_1
+#endif
+
+#undef BOARD_INFO_NAME // Defined on the command line by Arduino Core STM32
+#define BOARD_INFO_NAME "Arm'ed"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+#define I2C_EEPROM
+#define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PE0
+#define Y_STOP_PIN PE1
+#define Z_STOP_PIN PE14
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+//#ifndef Z_MIN_PROBE_PIN
+// #define Z_MIN_PROBE_PIN PA4
+//#endif
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA3
+#endif
+
+//
+// Steppers
+//
+
+#ifdef ARMED_SWAP_X_E1
+ #define X_STEP_PIN PE4
+ #define X_DIR_PIN PE2
+ #define X_ENABLE_PIN PE3
+ #define X_CS_PIN PE5
+#else
+ #define X_STEP_PIN PD3
+ #define X_DIR_PIN PD2
+ #define X_ENABLE_PIN PD0
+ #define X_CS_PIN PD1
+#endif
+
+#define Y_STEP_PIN PE11
+#define Y_DIR_PIN PE10
+#define Y_ENABLE_PIN PE13
+#define Y_CS_PIN PE12
+
+#define Z_STEP_PIN PD6
+#define Z_DIR_PIN PD7
+#define Z_ENABLE_PIN PD4
+#define Z_CS_PIN PD5
+
+#define E0_STEP_PIN PB5
+#define E0_DIR_PIN PB6
+#ifdef ARMED_V1_1
+ #define E0_ENABLE_PIN PC12
+#else
+ #define E0_ENABLE_PIN PB3
+#endif
+#define E0_CS_PIN PB4
+
+#ifdef ARMED_SWAP_X_E1
+ #define E1_STEP_PIN PD3
+ #define E1_DIR_PIN PD2
+ #define E1_ENABLE_PIN PD0
+ #define E1_CS_PIN PD1
+#else
+ #define E1_STEP_PIN PE4
+ #define E1_DIR_PIN PE2
+ #define E1_ENABLE_PIN PE3
+ #define E1_CS_PIN PE5
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC0 // Analog Input
+#define TEMP_1_PIN PC1 // Analog Input
+#define TEMP_BED_PIN PC2 // Analog Input
+
+#if HOTENDS == 1 && TEMP_SENSOR_PROBE
+ #define TEMP_PROBE_PIN PC1
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA1 // Hardware PWM
+#define HEATER_1_PIN PA2 // Hardware PWM
+#define HEATER_BED_PIN PA0 // Hardware PWM
+
+#define FAN_PIN PC6 // Hardware PWM, Part cooling fan
+#define FAN1_PIN PC7 // Hardware PWM, Extruder fan
+#define FAN2_PIN PC8 // Hardware PWM, Controller fan
+
+//
+// Misc functions
+//
+#define SDSS PE7
+#define LED_PIN PB7 // Heart beat
+#define PS_ON_PIN PA10
+#define KILL_PIN PA8
+#define PWR_LOSS PA4 // Power loss / nAC_FAULT
+
+//
+// LCD / Controller
+//
+#define SD_DETECT_PIN PA15
+#define BEEPER_PIN PC9
+
+#if ENABLED(FYSETC_MINI_12864)
+ //
+ // See https://wiki.fysetc.com/Mini12864_Panel/?fbclid=IwAR1FyjuNdVOOy9_xzky3qqo_WeM5h-4gpRnnWhQr_O1Ef3h0AFnFXmCehK8
+ //
+ #define DOGLCD_A0 PE9
+ #define DOGLCD_CS PE8
+
+ #define LCD_BACKLIGHT_PIN -1
+
+ #define LCD_RESET_PIN PB12 // Must be high or open for LCD to operate normally.
+
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PB13
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PB14
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PB15
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN PB13
+ #endif
+#else
+ #define LCD_PINS_RS PE9
+ #define LCD_PINS_ENABLE PE8
+ #define LCD_PINS_D4 PB12
+ #define LCD_PINS_D5 PB13
+ #define LCD_PINS_D6 PB14
+ #define LCD_PINS_D7 PB15
+
+ #if ENABLED(MKS_MINI_12864)
+ #define DOGLCD_CS PB13
+ #define DOGLCD_A0 PB14
+ #endif
+#endif
+
+#define BTN_EN1 PC4
+#define BTN_EN2 PC5
+#define BTN_ENC PC3
+
+//
+// Extension pins
+//
+#define EXT0_PIN PB0
+#define EXT1_PIN PB1
+#define EXT2_PIN PB2
+#define EXT3_PIN PD8
+#define EXT4_PIN PD9
+#define EXT5_PIN PD10
+#define EXT6_PIN PD11
+#define EXT7_PIN PD12
+#define EXT8_PIN PB10
+#define EXT9_PIN PB11
+
+#if HAS_TMC_UART
+ // TMC2208/TMC2209 stepper drivers
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN EXT0_PIN
+ #define X_SERIAL_RX_PIN EXT0_PIN
+
+ #define Y_SERIAL_TX_PIN EXT1_PIN
+ #define Y_SERIAL_RX_PIN EXT1_PIN
+
+ #define Z_SERIAL_TX_PIN EXT2_PIN
+ #define Z_SERIAL_RX_PIN EXT2_PIN
+
+ #define E0_SERIAL_TX_PIN EXT3_PIN
+ #define E0_SERIAL_RX_PIN EXT3_PIN
+
+ #define E1_SERIAL_RX_PIN EXT4_PIN
+ #define E1_SERIAL_TX_PIN EXT4_PIN
+
+ #define Z2_SERIAL_RX_PIN EXT4_PIN
+ #define Z2_SERIAL_TX_PIN EXT4_PIN
+
+ #define TMC_BAUD_RATE 19200
+#endif
diff --git a/Marlin/src/pins/stm32f4/pins_BLACK_STM32F407VE.h b/Marlin/src/pins/stm32f4/pins_BLACK_STM32F407VE.h
new file mode 100644
index 0000000..c2ad907
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_BLACK_STM32F407VE.h
@@ -0,0 +1,163 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * STM32F407VET6 with RAMPS-like shield
+ * 'Black' STM32F407VET6 board - https://www.stm32duino.com/viewtopic.php?t=485
+ * Shield - https://github.com/jmz52/Hardware
+ */
+
+#if NOT_TARGET(STM32F4, STM32F4xx)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "Black STM32F4VET6 supports up to 2 hotends / E-steppers."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Black STM32F4VET6"
+#endif
+
+#define DEFAULT_MACHINE_NAME "STM32F407VET6"
+
+//#define I2C_EEPROM
+#define SRAM_EEPROM_EMULATION
+#define MARLIN_EEPROM_SIZE 0x2000 // 8KB
+
+//
+// Servos
+//
+#define SERVO0_PIN PC6
+#define SERVO1_PIN PC7
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PC13
+#define X_MAX_PIN PA15
+#define Y_MIN_PIN PA5
+#define Y_MAX_PIN PD12
+#define Z_MIN_PIN PD14
+#define Z_MAX_PIN PD15
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC4
+#define X_DIR_PIN PA4
+#define X_ENABLE_PIN PE7
+
+#define Y_STEP_PIN PE5
+#define Y_DIR_PIN PE2
+#define Y_ENABLE_PIN PE6
+
+#define Z_STEP_PIN PD5
+#define Z_DIR_PIN PD3
+#define Z_ENABLE_PIN PD6
+
+#define E0_STEP_PIN PD7
+#define E0_DIR_PIN PD0
+#define E0_ENABLE_PIN PB9
+
+#define E1_STEP_PIN PE0
+#define E1_DIR_PIN PE1
+#define E1_ENABLE_PIN PB8
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC0 // T0
+#define TEMP_1_PIN PC1 // T1
+#define TEMP_BED_PIN PC2 // TB
+
+#ifndef TEMP_CHAMBER_PIN
+ #define TEMP_CHAMBER_PIN PC3 // TC
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA2 // Heater0
+#define HEATER_1_PIN PA3 // Heater1
+#define HEATER_BED_PIN PA1 // Hotbed
+
+#define FAN_PIN PE9 // Fan0
+#define FAN1_PIN PE11 // Fan1
+#define FAN2_PIN PE13 // Fan2
+#define FAN3_PIN PE14 // Fan3
+
+//
+// Misc. Functions
+//
+#define LED_PIN PA6
+//#define LED_PIN PA7
+#define KILL_PIN PB1
+
+//
+// LCD / Controller
+//
+//#define SD_DETECT_PIN PC5
+//#define SD_DETECT_PIN PA8 // SDIO SD_DETECT_PIN, external SDIO card reader only
+
+#define BEEPER_PIN PD10
+#define LCD_PINS_RS PE15
+#define LCD_PINS_ENABLE PD8
+#define LCD_PINS_D4 PE10
+#define LCD_PINS_D5 PE12
+#define LCD_PINS_D6 PD1
+#define LCD_PINS_D7 PE8
+#define BTN_ENC PD9
+#define BTN_EN1 PD4
+#define BTN_EN2 PD13
+
+#define DOGLCD_CS LCD_PINS_D5
+#define DOGLCD_A0 LCD_PINS_D6
+
+#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+#endif
+
+//
+// Onboard SD support
+//
+#define SDIO_D0_PIN PC8
+#define SDIO_D1_PIN PC9
+#define SDIO_D2_PIN PC10
+#define SDIO_D3_PIN PC11
+#define SDIO_CK_PIN PC12
+#define SDIO_CMD_PIN PD2
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SDIO_SUPPORT // Use SDIO for onboard SD
+
+ #ifndef SDIO_SUPPORT
+ #define SOFTWARE_SPI // Use soft SPI for onboard SD
+ #define SDSS SDIO_D3_PIN
+ #define SD_SCK_PIN SDIO_CK_PIN
+ #define SD_MISO_PIN SDIO_D0_PIN
+ #define SD_MOSI_PIN SDIO_CMD_PIN
+ #endif
+#endif
diff --git a/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h b/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h
new file mode 100644
index 0000000..939bc1e
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h
@@ -0,0 +1,273 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "BIGTREE BTT002 V1.0 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "BTT BTT002 V1.0"
+
+// Use one of these or SDCard-based Emulation will be used
+#if NO_EEPROM_SELECTED
+ //#define SRAM_EEPROM_EMULATION // Use BackSRAM-based EEPROM emulation
+ #define FLASH_EEPROM_EMULATION // Use Flash-based EEPROM emulation
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // Decrease delays and flash wear by spreading writes across the
+ // 128 kB sector allocated for EEPROM emulation.
+ #define FLASH_EEPROM_LEVELING
+#endif
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PD3
+#define Y_STOP_PIN PD2
+#define Z_STOP_PIN PD1 // Shares J4 connector with PC3
+
+//
+// Z Probe must be this pin
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN PD1
+#endif
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA15
+#endif
+
+//
+// Power Loss Detection
+//
+#ifndef POWER_LOSS_PIN
+ #define POWER_LOSS_PIN PD4
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN PA9
+#define X_DIR_PIN PA10
+#define X_ENABLE_PIN PA8
+#ifndef X_CS_PIN
+ #define X_CS_PIN PE2
+#endif
+
+#define Y_STEP_PIN PC8
+#define Y_DIR_PIN PC9
+#define Y_ENABLE_PIN PC7
+ #ifndef Y_CS_PIN
+ #define Y_CS_PIN PE3
+#endif
+
+#define Z_STEP_PIN PD15
+#define Z_DIR_PIN PC6
+#define Z_ENABLE_PIN PD14
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PE4
+#endif
+
+#define E0_STEP_PIN PD12
+#define E0_DIR_PIN PD13
+#define E0_ENABLE_PIN PD11
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PD7
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB15
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB14
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB13
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial ##
+ //
+ #define X_SERIAL_TX_PIN PE2
+ #define X_SERIAL_RX_PIN PE2
+
+ #define Y_SERIAL_TX_PIN PE3
+ #define Y_SERIAL_RX_PIN PE3
+
+ #define Z_SERIAL_TX_PIN PE4
+ #define Z_SERIAL_RX_PIN PE4
+
+ #define E0_SERIAL_TX_PIN PD7
+ #define E0_SERIAL_RX_PIN PD7
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA2 // T0 <-> E0
+#define TEMP_1_PIN PA0 // T1 <-> E1
+#define TEMP_BED_PIN PA1 // T2 <-> Bed
+#define TEMP_PROBE_PIN PC3 // Shares J4 connector with PD1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PE6 // Heater0
+#define HEATER_BED_PIN PE5 // Hotbed
+#define FAN_PIN PB8 // Fan1
+#define FAN1_PIN PB9 // Fan0
+
+// HAL SPI1 pins
+#define CUSTOM_SPI_PINS
+#if ENABLED(CUSTOM_SPI_PINS)
+ #define SD_SCK_PIN PA5 // SPI1 SCLK
+ #define SD_SS_PIN PA4 // SPI1 SSEL
+ #define SD_MISO_PIN PA6 // SPI1 MISO
+ #define SD_MOSI_PIN PA7 // SPI1 MOSI
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS PA4
+
+/**
+ * -------------------------------------BTT002 V1.0--------------------------------------------
+ * ----- ----- |
+ * PA3 | · · | GND 5V | · · | GND |
+ * NRESET | · · | PC4(SD_DET) (LCD_D7) PE13 | · · | PE12 (LCD_D6) |
+ * (MOSI)PA7 | · · | PB0(BTN_EN2) (LCD_D5) PE11 | · · | PE10 (LCD_D4) |
+ * (SD_SS)PA4 | · · | PC5(BTN_EN1) (LCD_RS) PE8 | · · | PE9 (LCD_EN) |
+ * (SCK)PA5 | · · | PA6(MISO) (BTN_ENC) PB1 | · · | PE7 (BEEPER) |
+ * ----- ----- |
+ * EXP2 EXP1 |
+ * --------------------------------------------------------------------------------------------
+ */
+
+//
+// LCDs and Controllers
+//
+#if HAS_WIRED_LCD
+ #define BEEPER_PIN PE7
+ #define BTN_ENC PB1
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ #define LCD_PINS_RS PE12
+
+ #define BTN_EN1 PE9
+ #define BTN_EN2 PE10
+
+ #define LCD_PINS_ENABLE PE13
+ #define LCD_PINS_D4 PE11
+
+ #else
+
+ #define LCD_PINS_RS PE8
+
+ #define BTN_EN1 PC5
+ #define BTN_EN2 PB0
+ #define SD_DETECT_PIN PC4
+
+ #define LCD_SDSS PA4
+
+ #define LCD_PINS_ENABLE PE9
+ #define LCD_PINS_D4 PE10
+
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PE11
+ #define LCD_PINS_D6 PE12
+ #define LCD_PINS_D7 PE13
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif
+
+ // Alter timing for graphical display
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(600)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// RGB LEDs
+//
+#ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PB5
+#endif
+#ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PB4
+#endif
+#ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PB3
+#endif
+#ifndef RGB_LED_W_PIN
+ #define RGB_LED_W_PIN -1
+#endif
diff --git a/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h b/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h
new file mode 100644
index 0000000..cd9d60d
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h
@@ -0,0 +1,474 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 8 || E_STEPPERS > 8
+ #error "BIGTREE GTR V1.0 supports up to 8 hotends / E-steppers."
+#elif HOTENDS > MAX_E_STEPPERS || E_STEPPERS > MAX_E_STEPPERS
+ #error "Marlin extruder/hotends limit! Increase MAX_E_STEPPERS to continue."
+#endif
+
+#define BOARD_INFO_NAME "BTT GTR V1.0"
+
+// Onboard I2C EEPROM
+#define I2C_EEPROM
+#define MARLIN_EEPROM_SIZE 0x2000 // 8KB (24C64 ... 64Kb = 8KB)
+
+// USB Flash Drive support
+#define HAS_OTG_USB_HOST_SUPPORT
+
+#define TP // Enable to define servo and probe pins
+#define M5_EXTENDER // The M5 extender is attached
+
+//
+// Servos
+//
+#if ENABLED(TP)
+ #define SERVO0_PIN PB11
+#endif
+
+#define PS_ON_PIN PH6
+
+//
+// Trinamic Stallguard pins
+//
+#define X_DIAG_PIN PF2 // X-
+#define Y_DIAG_PIN PC13 // Y-
+#define Z_DIAG_PIN PE0 // Z-
+#define E0_DIAG_PIN PG14 // X+
+#define E1_DIAG_PIN PG9 // Y+
+#define E2_DIAG_PIN PD3 // Z+
+
+//
+// Limit Switches
+//
+#ifdef X_STALL_SENSITIVITY
+ #define X_STOP_PIN X_DIAG_PIN
+ #if X_HOME_DIR < 0
+ #define X_MAX_PIN E0_DIAG_PIN // X+
+ #else
+ #define X_MIN_PIN E0_DIAG_PIN // X+
+ #endif
+#else
+ #define X_MIN_PIN X_DIAG_PIN // X-
+ #define X_MAX_PIN E0_DIAG_PIN // X+
+#endif
+
+#ifdef Y_STALL_SENSITIVITY
+ #define Y_STOP_PIN Y_DIAG_PIN
+ #if Y_HOME_DIR < 0
+ #define Y_MAX_PIN E1_DIAG_PIN // Y+
+ #else
+ #define Y_MIN_PIN E1_DIAG_PIN // Y+
+ #endif
+#else
+ #define Y_MIN_PIN Y_DIAG_PIN // Y-
+ #define Y_MAX_PIN E1_DIAG_PIN // Y+
+#endif
+
+#ifdef Z_STALL_SENSITIVITY
+ #define Z_STOP_PIN Z_DIAG_PIN
+ #if Z_HOME_DIR < 0
+ #define Z_MAX_PIN E2_DIAG_PIN // Z+
+ #else
+ #define Z_MIN_PIN E2_DIAG_PIN // Z+
+ #endif
+#else
+ #define Z_MIN_PIN Z_DIAG_PIN // Z-
+ #define Z_MAX_PIN E2_DIAG_PIN // Z+
+#endif
+
+//
+// Pins on the extender
+//
+#if ENABLED(M5_EXTENDER)
+ #define X2_STOP_PIN PI4 // M5 M1_STOP
+ #define Y2_STOP_PIN PF12 // M5 M5_STOP
+ #define Z2_STOP_PIN PF4 // M5 M2_STOP
+ #define Z3_STOP_PIN PI7 // M5 M4_STOP
+ #define Z4_STOP_PIN PF6 // M5 M3_STOP
+#endif
+
+#if ENABLED(TP) && !defined(Z_MIN_PROBE_PIN)
+ #define Z_MIN_PROBE_PIN PH11 // Z Probe must be PH11
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC15
+#define X_DIR_PIN PF0
+#define X_ENABLE_PIN PF1
+#ifndef X_CS_PIN
+ #define X_CS_PIN PC14
+#endif
+
+#define Y_STEP_PIN PE3
+#define Y_DIR_PIN PE2
+#define Y_ENABLE_PIN PE4
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PE1
+#endif
+
+#define Z_STEP_PIN PB8
+#define Z_DIR_PIN PB7 // PB7
+#define Z_ENABLE_PIN PB9
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PB5
+#endif
+
+#define E0_STEP_PIN PG12
+#define E0_DIR_PIN PG11
+#define E0_ENABLE_PIN PG13
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PG10
+#endif
+
+#define E1_STEP_PIN PD6
+#define E1_DIR_PIN PD5
+#define E1_ENABLE_PIN PD7
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN PD4
+#endif
+
+#define E2_STEP_PIN PD1
+#define E2_DIR_PIN PD0
+#define E2_ENABLE_PIN PD2
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN PC12
+#endif
+
+#if ENABLED(M5_EXTENDER)
+
+ #define E3_STEP_PIN PF3
+ #define E3_DIR_PIN PG3
+ #define E3_ENABLE_PIN PF8
+ #ifndef E3_CS_PIN
+ #define E3_CS_PIN PG4
+ #endif
+
+ #define E4_STEP_PIN PD14
+ #define E4_DIR_PIN PD11
+ #define E4_ENABLE_PIN PG2
+ #ifndef E4_CS_PIN
+ #define E4_CS_PIN PE15
+ #endif
+
+ #define E5_STEP_PIN PE12
+ #define E5_DIR_PIN PE10
+ #define E5_ENABLE_PIN PF14
+ #ifndef E5_CS_PIN
+ #define E5_CS_PIN PE7
+ #endif
+
+ #define E6_STEP_PIN PG0
+ #define E6_DIR_PIN PG1
+ #define E6_ENABLE_PIN PE8
+ #ifndef E6_CS_PIN
+ #define E6_CS_PIN PF15
+ #endif
+
+ #define E7_STEP_PIN PH12
+ #define E7_DIR_PIN PH15
+ #define E7_ENABLE_PIN PI0
+ #ifndef E7_CS_PIN
+ #define E7_CS_PIN PH14
+ #endif
+
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PG15
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB6
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB3
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1 // M5 MOTOR 1
+ //#define E4_HARDWARE_SERIAL Serial1 // M5 MOTOR 2
+ //#define E5_HARDWARE_SERIAL Serial1 // M5 MOTOR 3
+ //#define E6_HARDWARE_SERIAL Serial1 // M5 MOTOR 4
+ //#define E7_HARDWARE_SERIAL Serial1 // M5 MOTOR 5
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PC14
+ #define X_SERIAL_RX_PIN PC14
+
+ #define Y_SERIAL_TX_PIN PE1
+ #define Y_SERIAL_RX_PIN PE1
+
+ #define Z_SERIAL_TX_PIN PB5
+ #define Z_SERIAL_RX_PIN PB5
+
+ #define E0_SERIAL_TX_PIN PG10
+ #define E0_SERIAL_RX_PIN PG10
+
+ #define E1_SERIAL_TX_PIN PD4
+ #define E1_SERIAL_RX_PIN PD4
+
+ #define E2_SERIAL_TX_PIN PC12
+ #define E2_SERIAL_RX_PIN PC12
+
+ #if ENABLED(M5_EXTENDER)
+ #define E3_SERIAL_TX_PIN PG4
+ #define E3_SERIAL_RX_PIN PG4
+
+ #define E4_SERIAL_TX_PIN PE15
+ #define E4_SERIAL_RX_PIN PE15
+
+ #define E5_SERIAL_TX_PIN PE7
+ #define E5_SERIAL_RX_PIN PE7
+
+ #define E6_SERIAL_TX_PIN PF15
+ #define E6_SERIAL_RX_PIN PF15
+
+ #define E7_SERIAL_TX_PIN PH14
+ #define E7_SERIAL_RX_PIN PH14
+ #endif
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // T1 <-> E0
+#define TEMP_1_PIN PC2 // T2 <-> E1
+#define TEMP_2_PIN PC3 // T3 <-> E2
+
+#if ENABLED(M5_EXTENDER)
+ #define TEMP_3_PIN PA3 // M5 TEMP1
+ #define TEMP_4_PIN PF9 // M5 TEMP2
+ #define TEMP_5_PIN PF10 // M5 TEMP3
+ #define TEMP_6_PIN PF7 // M5 TEMP4
+ #define TEMP_7_PIN PF5 // M5 TEMP5
+#endif
+
+#define TEMP_BED_PIN PC0 // T0 <-> Bed
+
+// SPI for Max6675 or Max31855 Thermocouple
+// Uses a separate SPI bus
+// If you have a two-way thermocouple, you can customize two THERMO_CSx_PIN pins (x:1~2)
+
+#define THERMO_SCK_PIN PI1 // SCK
+#define THERMO_DO_PIN PI2 // MISO
+#define THERMO_CS1_PIN PH9 // GTR K-TEMP
+#define THERMO_CS2_PIN PH2 // M5 K-TEMP
+
+#define MAX6675_SS_PIN THERMO_CS1_PIN
+#define MAX6675_SS2_PIN THERMO_CS2_PIN
+#define MAX6675_SCK_PIN THERMO_SCK_PIN
+#define MAX6675_DO_PIN THERMO_DO_PIN
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB1 // Heater0
+#define HEATER_1_PIN PA1 // Heater1
+#define HEATER_2_PIN PB0 // Heater2
+
+#if ENABLED(M5_EXTENDER)
+ #define HEATER_3_PIN PD15 // M5 HEAT1
+ #define HEATER_4_PIN PD13 // M5 HEAT2
+ #define HEATER_5_PIN PD12 // M5 HEAT3
+ #define HEATER_6_PIN PE13 // M5 HEAT4
+ #define HEATER_7_PIN PI6 // M5 HEAT5
+#endif
+
+#define HEATER_BED_PIN PA2 // Hotbed
+
+#define FAN_PIN PE5 // Fan0
+#define FAN1_PIN PE6 // Fan1
+#define FAN2_PIN PC8 // Fan2
+
+#if ENABLED(M5_EXTENDER)
+ #define FAN3_PIN PI5 // M5 FAN1
+ #define FAN4_PIN PE9 // M5 FAN2
+ #define FAN5_PIN PE11 // M5 FAN3
+ //#define FAN6_PIN PC9 // M5 FAN4
+ //#define FAN7_PIN PE14 // M5 FAN5
+#endif
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+//
+// By default the LCD SD (SPI2) is enabled
+// Onboard SD is on a completely separate SPI bus, and requires
+// overriding pins to access.
+//
+#if SD_CONNECTION_IS(LCD)
+
+ #define SD_DETECT_PIN PB10
+ #define SDSS PB12
+
+#elif SD_CONNECTION_IS(ONBOARD)
+
+ // Instruct the STM32 HAL to override the default SPI pins from the variant.h file
+ #define CUSTOM_SPI_PINS
+ #define SDSS PA4
+ #define SD_SS_PIN SDSS
+ #define SD_SCK_PIN PA5
+ #define SD_MISO_PIN PA6
+ #define SD_MOSI_PIN PA7
+ #define SD_DETECT_PIN PC4
+
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "CUSTOM_CABLE is not a supported SDCARD_CONNECTION for this board"
+#endif
+
+/**
+ * ----- -----
+ * NC | · · | GND 5V | · · | GND
+ * RESET | · · | PB10(SD_DETECT) (LCD_D7) PG5 | · · | PG6 (LCD_D6)
+ * (MOSI)PB15 | · · | PH10(BTN_EN2) (LCD_D5) PG7 | · · | PG8 (LCD_D4)
+ * (SD_SS)PB12 | · · | PD10(BTN_EN1) (LCD_RS) PA8 | · · | PC10 (LCD_EN)
+ * (SCK)PB13 | · · | PB14(MISO) (BTN_ENC) PA15 | · · | PC11 (BEEPER)
+ * ----- -----
+ * EXP2 EXP1
+ */
+
+//
+// LCDs and Controllers
+//
+#if HAS_WIRED_LCD
+ #define BEEPER_PIN PC11
+ #define BTN_ENC PA15
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ #define LCD_PINS_RS PG6
+
+ #define BTN_EN1 PC10
+ #define BTN_EN2 PG8
+
+ #define LCD_PINS_ENABLE PG5
+ #define LCD_PINS_D4 PG7
+
+ // CR10_STOCKDISPLAY default timing is too fast
+ #undef BOARD_ST7920_DELAY_1
+ #undef BOARD_ST7920_DELAY_2
+ #undef BOARD_ST7920_DELAY_3
+
+ #elif ENABLED(MKS_MINI_12864)
+ #define DOGLCD_A0 PG6
+ #define DOGLCD_CS PG7
+ #define BTN_EN1 PD10
+ #define BTN_EN2 PH10
+
+ #if SD_CONNECTION_IS(ONBOARD)
+ #define SOFTWARE_SPI
+ #endif
+ #else
+
+ #define LCD_PINS_RS PA8
+
+ #define BTN_EN1 PD10
+ #define BTN_EN2 PH10
+
+ #define LCD_PINS_ENABLE PC10
+ #define LCD_PINS_D4 PG8
+
+ #if ENABLED(FYSETC_MINI_12864)
+ #define DOGLCD_CS PC10
+ #define DOGLCD_A0 PA8
+
+ #if SD_CONNECTION_IS(ONBOARD)
+ #define SOFTWARE_SPI
+ #endif
+
+ //#define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN PG8 // Must be high or open for LCD to operate normally.
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PG7
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PG6
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PG5
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN PG7
+ #endif
+ #endif // !FYSETC_MINI_12864
+
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PG7
+ #define LCD_PINS_D6 PG6
+ #define LCD_PINS_D7 PG5
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif
+
+ // Alter timing for graphical display
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(600)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+#undef TP
+#undef M5_EXTENDER
diff --git a/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_V1_1.h b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_V1_1.h
new file mode 100644
index 0000000..fb4b17b
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_V1_1.h
@@ -0,0 +1,30 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if HOTENDS > 3 || E_STEPPERS > 3
+ #error "BIGTREE SKR Pro V1.1 supports up to 3 hotends / E-steppers."
+#endif
+
+#define BOARD_INFO_NAME "BTT SKR Pro V1.1"
+
+#include "pins_BTT_SKR_PRO_common.h"
diff --git a/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_V1_2.h b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_V1_2.h
new file mode 100644
index 0000000..615751b
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_V1_2.h
@@ -0,0 +1,30 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if HOTENDS > 3 || E_STEPPERS > 3
+ #error "BIGTREE SKR Pro V1.2 supports up to 3 hotends / E-steppers."
+#endif
+
+#define BOARD_INFO_NAME "BTT SKR Pro V1.2"
+
+#include "pins_BTT_SKR_PRO_common.h"
diff --git a/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h
new file mode 100644
index 0000000..54153be
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h
@@ -0,0 +1,474 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#endif
+
+// BigTreeTech driver expansion module https://bit.ly/3ptRRoj
+//#define BTT_MOTOR_EXPANSION
+
+#if BOTH(HAS_WIRED_LCD, BTT_MOTOR_EXPANSION)
+ #error "It's not possible to have both LCD and motor expansion module on EXP1/EXP2."
+#endif
+
+// Use one of these or SDCard-based Emulation will be used
+#if NO_EEPROM_SELECTED
+ //#define SRAM_EEPROM_EMULATION // Use BackSRAM-based EEPROM emulation
+ #define FLASH_EEPROM_EMULATION // Use Flash-based EEPROM emulation
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // Decrease delays and flash wear by spreading writes across the
+ // 128 kB sector allocated for EEPROM emulation.
+ #define FLASH_EEPROM_LEVELING
+#endif
+
+// USB Flash Drive support
+#define HAS_OTG_USB_HOST_SUPPORT
+
+//
+// Servos
+//
+#define SERVO0_PIN PA1
+#define SERVO1_PIN PC9
+
+//
+// Trinamic Stallguard pins
+//
+#define X_DIAG_PIN PB10 // X-
+#define Y_DIAG_PIN PE12 // Y-
+#define Z_DIAG_PIN PG8 // Z-
+#define E0_DIAG_PIN PE15 // E0
+#define E1_DIAG_PIN PE10 // E1
+#define E2_DIAG_PIN PG5 // E2
+
+//
+// Limit Switches
+//
+#ifdef X_STALL_SENSITIVITY
+ #define X_STOP_PIN X_DIAG_PIN
+ #if X_HOME_DIR < 0
+ #define X_MAX_PIN PE15 // E0
+ #else
+ #define X_MIN_PIN PE15 // E0
+ #endif
+#else
+ #define X_MIN_PIN PB10 // X-
+ #define X_MAX_PIN PE15 // E0
+#endif
+
+#ifdef Y_STALL_SENSITIVITY
+ #define Y_STOP_PIN Y_DIAG_PIN
+ #if Y_HOME_DIR < 0
+ #define Y_MAX_PIN PE10 // E1
+ #else
+ #define Y_MIN_PIN PE10 // E1
+ #endif
+#else
+ #define Y_MIN_PIN PE12 // Y-
+ #define Y_MAX_PIN PE10 // E1
+#endif
+
+#ifdef Z_STALL_SENSITIVITY
+ #define Z_STOP_PIN Z_DIAG_PIN
+ #if Z_HOME_DIR < 0
+ #define Z_MAX_PIN PG5 // E2
+ #else
+ #define Z_MIN_PIN PG5 // E2
+ #endif
+#else
+ #define Z_MIN_PIN PG8 // Z-
+ #define Z_MAX_PIN PG5 // E2
+#endif
+
+//
+// Z Probe must be this pin
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN PA2
+#endif
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PE15
+#endif
+#ifndef FIL_RUNOUT2_PIN
+ #define FIL_RUNOUT2_PIN PE10
+#endif
+#ifndef FIL_RUNOUT3_PIN
+ #define FIL_RUNOUT3_PIN PG5
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN PE9
+#define X_DIR_PIN PF1
+#define X_ENABLE_PIN PF2
+#ifndef X_CS_PIN
+ #define X_CS_PIN PA15
+#endif
+
+#define Y_STEP_PIN PE11
+#define Y_DIR_PIN PE8
+#define Y_ENABLE_PIN PD7
+ #ifndef Y_CS_PIN
+ #define Y_CS_PIN PB8
+#endif
+
+#define Z_STEP_PIN PE13
+#define Z_DIR_PIN PC2
+#define Z_ENABLE_PIN PC0
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PB9
+#endif
+
+#define E0_STEP_PIN PE14
+#define E0_DIR_PIN PA0
+#define E0_ENABLE_PIN PC3
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PB3
+#endif
+
+#define E1_STEP_PIN PD15
+#define E1_DIR_PIN PE7
+#define E1_ENABLE_PIN PA3
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN PG15
+#endif
+
+#define E2_STEP_PIN PD13
+#define E2_DIR_PIN PG9
+#define E2_ENABLE_PIN PF0
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN PG12
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PC12
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PC11
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PC10
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PC13
+ #define X_SERIAL_RX_PIN PC13
+
+ #define Y_SERIAL_TX_PIN PE3
+ #define Y_SERIAL_RX_PIN PE3
+
+ #define Z_SERIAL_TX_PIN PE1
+ #define Z_SERIAL_RX_PIN PE1
+
+ #define E0_SERIAL_TX_PIN PD4
+ #define E0_SERIAL_RX_PIN PD4
+
+ #define E1_SERIAL_TX_PIN PD1
+ #define E1_SERIAL_RX_PIN PD1
+
+ #define E2_SERIAL_TX_PIN PD6
+ #define E2_SERIAL_RX_PIN PD6
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PF4 // T1 <-> E0
+#define TEMP_1_PIN PF5 // T2 <-> E1
+#define TEMP_2_PIN PF6 // T3 <-> E2
+#define TEMP_BED_PIN PF3 // T0 <-> Bed
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB1 // Heater0
+#define HEATER_1_PIN PD14 // Heater1
+#define HEATER_2_PIN PB0 // Heater1
+#define HEATER_BED_PIN PD12 // Hotbed
+#define FAN_PIN PC8 // Fan0
+#define FAN1_PIN PE5 // Fan1
+#define FAN2_PIN PE6
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN FAN1_PIN
+#endif
+
+//
+// Misc. Functions
+//
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION LCD
+#endif
+
+/**
+ * ----- -----
+ * NC | 1 2 | GND 5V | 1 2 | GND
+ * RESET | 3 4 | PF12(SD_DETECT) (LCD_D7) PG7 | 3 4 | PG6 (LCD_D6)
+ * (MOSI)PB15 | 5 6 PF11(BTN_EN2) (LCD_D5) PG3 | 5 6 PG2 (LCD_D4)
+ * (SD_SS)PB12 | 7 8 | PG10(BTN_EN1) (LCD_RS) PD10 | 7 8 | PD11 (LCD_EN)
+ * (SCK)PB13 | 9 10| PB14(MISO) (BTN_ENC) PA8 | 9 10| PG4 (BEEPER)
+ * ----- -----
+ * EXP2 EXP1
+ */
+
+#define EXPA1_03_PIN PG7
+#define EXPA1_04_PIN PG6
+#define EXPA1_05_PIN PG3
+#define EXPA1_06_PIN PG2
+#define EXPA1_07_PIN PD10
+#define EXPA1_08_PIN PD11
+#define EXPA1_09_PIN PA8
+#define EXPA1_10_PIN PG4
+
+#define EXPA2_03_PIN -1
+#define EXPA2_04_PIN PF12
+#define EXPA2_05_PIN PB15
+#define EXPA2_06_PIN PF11
+#define EXPA2_07_PIN PB12
+#define EXPA2_08_PIN PG10
+#define EXPA2_09_PIN PB13
+#define EXPA2_10_PIN PB14
+
+//
+// Onboard SD card
+// Must use soft SPI because Marlin's default hardware SPI is tied to LCD's EXP2
+//
+#if SD_CONNECTION_IS(LCD)
+
+ #define SD_DETECT_PIN EXPA2_04_PIN
+ #define SDSS EXPA2_07_PIN
+
+#elif SD_CONNECTION_IS(ONBOARD)
+
+ // The SKR Pro's ONBOARD SD interface is on SPI1.
+ // Due to a pull resistor on the clock line, it needs to use SPI Data Mode 3 to
+ // function with Hardware SPI. This is not currently configurable in the HAL,
+ // so force Software SPI to work around this issue.
+ #define SOFTWARE_SPI
+ #define SDSS PA4
+ #define SD_SCK_PIN PA5
+ #define SD_MISO_PIN PA6
+ #define SD_MOSI_PIN PB5
+ #define SD_DETECT_PIN PB11
+
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "CUSTOM_CABLE is not a supported SDCARD_CONNECTION for this board"
+#endif
+
+#if ENABLED(BTT_MOTOR_EXPANSION)
+ /**
+ * _____ _____
+ * NC | · · | GND NC | · · | GND
+ * NC | · · | PF12 (M1EN) (M2EN) PG7 | · · | PG6 (M3EN)
+ * (M1STP) PB15 | · · PF11 (M1DIR) (M1RX) PG3 | · · PG2 (M1DIAG)
+ * (M2DIR) PB12 | · · | PG10 (M2STP) (M2RX) PD10 | · · | PD11 (M2DIAG)
+ * (M3DIR) PB13 | · · | PB14 (M3STP) (M3RX) PA8 | · · | PG4 (M3DIAG)
+ * ----- -----
+ * EXP2 EXP1
+ */
+
+ // M1 on Driver Expansion Module
+ #define E3_STEP_PIN EXPA2_05_PIN
+ #define E3_DIR_PIN EXPA2_06_PIN
+ #define E3_ENABLE_PIN EXPA2_04_PIN
+ #define E3_DIAG_PIN EXPA1_06_PIN
+ #define E3_CS_PIN EXPA1_05_PIN
+ #if HAS_TMC_UART
+ #define E3_SERIAL_TX_PIN EXPA1_05_PIN
+ #define E3_SERIAL_RX_PIN EXPA1_05_PIN
+ #endif
+
+ // M2 on Driver Expansion Module
+ #define E4_STEP_PIN EXPA2_08_PIN
+ #define E4_DIR_PIN EXPA2_07_PIN
+ #define E4_ENABLE_PIN EXPA1_03_PIN
+ #define E4_DIAG_PIN EXPA1_08_PIN
+ #define E4_CS_PIN EXPA1_07_PIN
+ #if HAS_TMC_UART
+ #define E4_SERIAL_TX_PIN EXPA1_07_PIN
+ #define E4_SERIAL_RX_PIN EXPA1_07_PIN
+ #endif
+
+ // M3 on Driver Expansion Module
+ #define E5_STEP_PIN EXPA2_10_PIN
+ #define E5_DIR_PIN EXPA2_09_PIN
+ #define E5_ENABLE_PIN EXPA1_04_PIN
+ #define E5_DIAG_PIN EXPA1_10_PIN
+ #define E5_CS_PIN EXPA1_09_PIN
+ #if HAS_TMC_UART
+ #define E5_SERIAL_TX_PIN EXPA1_09_PIN
+ #define E5_SERIAL_RX_PIN EXPA1_09_PIN
+ #endif
+
+#endif // BTT_MOTOR_EXPANSION
+
+//
+// LCDs and Controllers
+//
+#if IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS EXPA2_08_PIN
+ #endif
+
+#elif HAS_WIRED_LCD
+
+ #define BEEPER_PIN EXPA1_10_PIN
+ #define BTN_ENC EXPA1_09_PIN
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define LCD_PINS_RS EXPA1_04_PIN
+
+ #define BTN_EN1 EXPA1_08_PIN
+ #define BTN_EN2 EXPA1_06_PIN
+
+ #define LCD_PINS_ENABLE EXPA1_03_PIN
+ #define LCD_PINS_D4 EXPA1_05_PIN
+
+ // CR10_STOCKDISPLAY default timing is too fast
+ #undef BOARD_ST7920_DELAY_1
+ #undef BOARD_ST7920_DELAY_2
+ #undef BOARD_ST7920_DELAY_3
+
+ #elif ENABLED(MKS_MINI_12864)
+
+ #define DOGLCD_A0 EXPA1_04_PIN
+ #define DOGLCD_CS EXPA1_05_PIN
+ #define BTN_EN1 EXPA2_08_PIN
+ #define BTN_EN2 EXPA2_06_PIN
+
+ #else
+
+ #define LCD_PINS_RS EXPA1_07_PIN
+
+ #define BTN_EN1 EXPA2_08_PIN
+ #define BTN_EN2 EXPA2_06_PIN
+
+ #define LCD_PINS_ENABLE EXPA1_08_PIN
+ #define LCD_PINS_D4 EXPA1_06_PIN
+
+ #if ENABLED(FYSETC_MINI_12864)
+ #define DOGLCD_CS EXPA1_08_PIN
+ #define DOGLCD_A0 EXPA1_07_PIN
+ //#define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN EXPA1_06_PIN // Must be high or open for LCD to operate normally.
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN EXPA1_05_PIN
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN EXPA1_04_PIN
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN EXPA1_03_PIN
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN EXPA1_05_PIN
+ #endif
+ #endif // !FYSETC_MINI_12864
+
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 EXPA1_05_PIN
+ #define LCD_PINS_D6 EXPA1_04_PIN
+ #define LCD_PINS_D7 EXPA1_03_PIN
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+// Alter timing for graphical display
+#if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(600)
+ #endif
+#endif
+
+//
+// WIFI
+//
+
+/**
+ * -----
+ * TX | 1 2 | GND Enable PG1 // Must be high for module to run
+ * Enable | 3 4 | GPIO2 Reset PG0 // active low, probably OK to leave floating
+ * Reset | 5 6 | GPIO0 GPIO2 PF15 // must be high (ESP3D software configures this with a pullup so OK to leave as floating)
+ * 3.3V | 7 8 | RX GPIO0 PF14 // Leave as unused (ESP3D software configures this with a pullup so OK to leave as floating)
+ * -----
+ * W1
+ */
+#define ESP_WIFI_MODULE_COM 6 // Must also set either SERIAL_PORT or SERIAL_PORT_2 to this
+#define ESP_WIFI_MODULE_BAUDRATE BAUDRATE // Must use same BAUDRATE as SERIAL_PORT & SERIAL_PORT_2
+#define ESP_WIFI_MODULE_RESET_PIN PG0
+#define ESP_WIFI_MODULE_ENABLE_PIN PG1
+#define ESP_WIFI_MODULE_GPIO0_PIN PF14
+#define ESP_WIFI_MODULE_GPIO2_PIN PF15
diff --git a/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h b/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h
new file mode 100644
index 0000000..7965d26
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h
@@ -0,0 +1,296 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4, STM32F4xx)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 6 || E_STEPPERS > 6
+ #error "FLYF407ZG supports up to 6 hotends / E-steppers."
+#endif
+
+#define BOARD_INFO_NAME "FLYF407ZG"
+#define BOARD_WEBSITE_URL "github.com/FLYmaker/FLYF407ZG"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+// Avoid conflict with fans and TIMER_TONE
+#define TEMP_TIMER 3
+#define STEP_TIMER 5
+
+//
+// EEPROM Emulation
+//
+#if NO_EEPROM_SELECTED
+ #define FLASH_EEPROM_EMULATION
+ //#define SRAM_EEPROM_EMULATION
+ //#define I2C_EEPROM
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // Decrease delays and flash wear by spreading writes across
+ // the 128kB sector allocated for EEPROM emulation.
+ #define FLASH_EEPROM_LEVELING
+#elif ENABLED(I2C_EEPROM)
+ #define MARLIN_EEPROM_SIZE 0x2000 // 8KB
+#endif
+
+#ifndef MARLIN_EEPROM_SIZE
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PE11
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PC3
+#define X_MAX_PIN PC2
+#define Y_MIN_PIN PF2
+#define Y_MAX_PIN PF1
+#define Z_MIN_PIN PF0
+#define Z_MAX_PIN PC15
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#define Z_MIN_PROBE_PIN PC14 // Z3_PIN
+
+//
+// Steppers
+//
+
+#define X_STEP_PIN PB9
+#define X_DIR_PIN PE0
+#define X_ENABLE_PIN PE1
+#ifndef X_CS_PIN
+ #define X_CS_PIN PG13
+#endif
+
+#define Y_STEP_PIN PB8
+#define Y_DIR_PIN PG11
+#define Y_ENABLE_PIN PG12
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PG10
+#endif
+
+#define Z_STEP_PIN PA8
+#define Z_DIR_PIN PD6
+#define Z_ENABLE_PIN PD7
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PD5
+#endif
+
+#define E0_STEP_PIN PC7
+#define E0_DIR_PIN PD3
+#define E0_ENABLE_PIN PD4
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PD1
+#endif
+
+#define E1_STEP_PIN PC6
+#define E1_DIR_PIN PA15
+#define E1_ENABLE_PIN PD0
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN PA14
+#endif
+
+#define E2_STEP_PIN PD15
+#define E2_DIR_PIN PG7
+#define E2_ENABLE_PIN PG8
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN PG6
+#endif
+
+#define E3_STEP_PIN PD14
+#define E3_DIR_PIN PG4
+#define E3_ENABLE_PIN PG5
+#ifndef E3_CS_PIN
+ #define E3_CS_PIN PG3
+#endif
+
+#define E4_STEP_PIN PD13
+#define E4_DIR_PIN PD11
+#define E4_ENABLE_PIN PG2
+#ifndef E4_CS_PIN
+ #define E4_CS_PIN PD10
+#endif
+
+#define E5_STEP_PIN PD12
+#define E5_DIR_PIN PD8
+#define E5_ENABLE_PIN PD9
+#ifndef E5_CS_PIN
+ #define E5_CS_PIN PB12
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // Analog Input
+#define TEMP_1_PIN PC1 // Analog Input
+#define TEMP_2_PIN PC0 // Analog Input
+#define TEMP_3_PIN PF10 // Analog Input
+#define TEMP_4_PIN PF5 // Analog Input
+#define TEMP_5_PIN PF4 // Analog Input
+#define TEMP_BED_PIN PF3 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PF7
+#define HEATER_1_PIN PF6
+#define HEATER_2_PIN PE6
+#define HEATER_3_PIN PE5
+#define HEATER_4_PIN PE4
+#define HEATER_5_PIN PE3
+#define HEATER_BED_PIN PE2
+
+#ifndef FAN_PIN
+ #define FAN_PIN PF8
+#endif
+#define FAN1_PIN PF9
+#define FAN2_PIN PA2
+#define FAN3_PIN PA1
+#define FAN4_PIN PE13
+#define FAN5_PIN PB11
+
+//
+// Onboard SD support
+//
+
+#define SDIO_D0_PIN PC8
+#define SDIO_D1_PIN PC9
+//#define SD_CARD_DETECT_PIN PC13
+#define SDIO_D2_PIN PC10
+#define SDIO_D3_PIN PC11
+#define SDIO_CK_PIN PC12
+#define SDIO_CMD_PIN PD2
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+
+ #define SDIO_SUPPORT // Use SDIO for onboard SD
+ #ifndef SDIO_SUPPORT
+ #define SOFTWARE_SPI // Use soft SPI for onboard SD
+ #define SDSS SDIO_D3_PIN
+ #define SD_SCK_PIN SDIO_CK_PIN
+ #define SD_MISO_PIN SDIO_D0_PIN
+ #define SD_MOSI_PIN SDIO_CMD_PIN
+ #endif
+
+#elif SD_CONNECTION_IS(LCD)
+
+ #define SD_SCK_PIN PB13
+ #define SD_MISO_PIN PB14
+ #define SD_MOSI_PIN PB15
+ #define SDSS PF11
+ #define SD_DETECT_PIN PB2
+
+#endif
+
+//
+// Trinamic Software SPI
+//
+
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB15
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB14
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB13
+ #endif
+#endif
+
+//
+// Trinamic Software Serial
+//
+
+#if HAS_TMC_UART
+ #define X_SERIAL_TX_PIN PG13
+ #define X_SERIAL_RX_PIN PG13
+
+ #define Y_SERIAL_TX_PIN PG10
+ #define Y_SERIAL_RX_PIN PG10
+
+ #define Z_SERIAL_TX_PIN PD5
+ #define Z_SERIAL_RX_PIN PD5
+
+ #define E0_SERIAL_TX_PIN PD1
+ #define E0_SERIAL_RX_PIN PD1
+
+ #define E1_SERIAL_TX_PIN PA14
+ #define E1_SERIAL_RX_PIN PA14
+
+ #define E2_SERIAL_TX_PIN PG6
+ #define E2_SERIAL_RX_PIN PG6
+
+ #define E3_SERIAL_TX_PIN PG3
+ #define E3_SERIAL_RX_PIN PG3
+
+ #define E4_SERIAL_TX_PIN PD10
+ #define E4_SERIAL_RX_PIN PD10
+
+ #define E5_SERIAL_TX_PIN PB12
+ #define E5_SERIAL_RX_PIN PB12
+
+#endif
+
+//
+// LCD / Controller
+//
+
+#define BEEPER_PIN PB10
+#define LCD_PINS_RS PE12
+#define LCD_PINS_ENABLE PE14
+#define LCD_PINS_D4 PE10
+#define LCD_PINS_D5 PE9
+#define LCD_PINS_D6 PE8
+#define LCD_PINS_D7 PE7
+#define BTN_EN1 PC4
+#define BTN_EN2 PC5
+#define BTN_ENC PE15
+
+//
+// Filament runout
+//
+
+#define FIL_RUNOUT_PIN PA3
+
+//
+// ST7920 Delays
+//
+#ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+#endif
+#ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+#endif
+#ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(715)
+#endif
diff --git a/Marlin/src/pins/stm32f4/pins_FYSETC_CHEETAH_V20.h b/Marlin/src/pins/stm32f4/pins_FYSETC_CHEETAH_V20.h
new file mode 100644
index 0000000..18e689d
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_FYSETC_CHEETAH_V20.h
@@ -0,0 +1,271 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#endif
+
+#define DEFAULT_MACHINE_NAME "3D Printer"
+
+#define BOARD_INFO_NAME "FYSETC Cheetah V2.0"
+#define BOARD_WEBSITE_URL "fysetc.com"
+
+// USB Flash Drive support
+//#define HAS_OTG_USB_HOST_SUPPORT
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define FLASH_EEPROM_LEVELING
+
+ #define FLASH_SECTOR 2
+ #define FLASH_UNIT_SIZE 0x4000 // 16k
+ #define FLASH_ADDRESS_START 0x8008000
+#endif
+
+//
+// Z Probe
+//
+#if ENABLED(BLTOUCH)
+ #error "You need to set jumper to 5v for Bltouch, then comment out this line to proceed."
+ #define SERVO0_PIN PA0
+#elif !defined(Z_MIN_PROBE_PIN)
+ #define Z_MIN_PROBE_PIN PA0
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PB4
+#define Y_STOP_PIN PB3
+#define Z_STOP_PIN PB1
+
+//
+// Filament runout
+//
+#define FIL_RUNOUT_PIN PB5
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC0
+#define X_DIR_PIN PC1
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PC14
+#define Y_DIR_PIN PC13
+#define Y_ENABLE_PIN PC15
+
+#define Z_STEP_PIN PB9
+#define Z_DIR_PIN PB8
+#define Z_ENABLE_PIN PC2
+
+#define E0_STEP_PIN PB2
+#define E0_DIR_PIN PA15
+#define E0_ENABLE_PIN PD2
+
+#if HAS_TMC_UART
+ #define X_HARDWARE_SERIAL Serial2
+ #define Y_HARDWARE_SERIAL Serial2
+ #define Z_HARDWARE_SERIAL Serial2
+ #define E0_HARDWARE_SERIAL Serial2
+
+ // Default TMC slave addresses
+ #ifndef X_SLAVE_ADDRESS
+ #define X_SLAVE_ADDRESS 0
+ #endif
+ #ifndef Y_SLAVE_ADDRESS
+ #define Y_SLAVE_ADDRESS 2
+ #endif
+ #ifndef Z_SLAVE_ADDRESS
+ #define Z_SLAVE_ADDRESS 1
+ #endif
+ #ifndef E0_SLAVE_ADDRESS
+ #define E0_SLAVE_ADDRESS 3
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC6
+#define HEATER_BED_PIN PC7
+#ifndef FAN_PIN
+ #define FAN_PIN PA1
+#endif
+#define FAN1_PIN PC8
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PC5 // Analog Input
+#define TEMP_0_PIN PC4 // Analog Input
+
+//
+// Misc. Functions
+//
+#define SDSS PA4
+#define SD_DETECT_PIN PC3
+
+#ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PB0
+#endif
+#ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PB7
+#endif
+#ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PB6
+#endif
+
+/**
+ * _____ _____
+ * 5V | 1 2 | GND 5V | 1 2 | GND
+ * RESET | 3 4 | PC3 (SD_DETECT) (LCD_D7) PB7 | 3 4 | PB6 (LCD_D6)
+ * (SD_MOSI) PA7 5 6 | PC11 (BTN_EN2) (LCD_D5) PB14 5 6 | PB13 (LCD_D4)
+ * (SD_SS) PA4 | 7 8 | PC10 (BTN_EN1) (LCD_RS) PB12 | 7 8 | PB15 (LCD_EN)
+ * (SD_SCK) PA5 | 9 10| PA6 (SD_MISO) (BTN_ENC) PC12 | 9 10| PC9 (BEEPER)
+ * ----- -----
+ * EXP2 EXP1
+ */
+
+/**
+* _____
+* (BEEPER) PC9 | 1 2 | PC12 (BTN_ENC)
+* (BTN_EN1) PC10 | 3 4 | PB14 (LCD_D5/MISO)
+* (BTN_EN2) PC11 5 6 | PB13 (LCD_D4/SCK)
+* (LCD_RS) PB12 | 7 8 | PB15 (LCD_EN/MOSI)
+* GND | 9 10| 5V
+* -----
+* EXP3
+*/
+
+#define EXPA1_03_PIN PB7
+#define EXPA1_04_PIN PB6
+#define EXPA1_05_PIN PB14
+#define EXPA1_06_PIN PB13
+#define EXPA1_07_PIN PB12
+#define EXPA1_08_PIN PB15
+#define EXPA1_09_PIN PC12
+#define EXPA1_10_PIN PC9
+
+#define EXPA2_03_PIN -1
+#define EXPA2_04_PIN PC3
+#define EXPA2_05_PIN PA7
+#define EXPA2_06_PIN PC11
+#define EXPA2_07_PIN PA4
+#define EXPA2_08_PIN PC10
+#define EXPA2_09_PIN PA5
+#define EXPA2_10_PIN PA6
+
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN EXPA1_10_PIN
+ #define BTN_ENC EXPA1_09_PIN
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define LCD_PINS_RS EXPA1_07_PIN
+
+ #define BTN_EN1 EXPA2_08_PIN
+ #define BTN_EN2 EXPA2_06_PIN
+
+ #define LCD_PINS_ENABLE EXPA1_08_PIN
+ #define LCD_PINS_D4 EXPA1_06_PIN
+
+ // CR10_STOCKDISPLAY default timing is too fast
+ #undef BOARD_ST7920_DELAY_1
+ #undef BOARD_ST7920_DELAY_2
+ #undef BOARD_ST7920_DELAY_3
+
+ #elif ENABLED(MKS_MINI_12864)
+
+ #define DOGLCD_A0 EXPA1_04_PIN
+ #define DOGLCD_CS EXPA1_05_PIN
+ #define BTN_EN1 EXPA2_08_PIN
+ #define BTN_EN2 EXPA2_06_PIN
+
+ #else
+
+ #define LCD_PINS_RS EXPA1_07_PIN
+
+ #define BTN_EN1 EXPA2_06_PIN
+ #define BTN_EN2 EXPA2_08_PIN
+
+ #define LCD_PINS_ENABLE EXPA1_08_PIN
+ #define LCD_PINS_D4 EXPA1_06_PIN
+
+ #if ENABLED(FYSETC_MINI_12864)
+ #define DOGLCD_CS EXPA1_08_PIN
+ #define DOGLCD_A0 EXPA1_07_PIN
+ //#define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN EXPA1_06_PIN // Must be high or open for LCD to operate normally.
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN EXPA1_05_PIN
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN EXPA1_04_PIN
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN EXPA1_03_PIN
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN EXPA1_05_PIN
+ #endif
+ #endif // !FYSETC_MINI_12864
+
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 EXPA1_05_PIN
+ #define LCD_PINS_D6 EXPA1_04_PIN
+ #define LCD_PINS_D7 EXPA1_03_PIN
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+// Alter timing for graphical display
+#if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(600)
+ #endif
+#endif
+
+#if ENABLED(TOUCH_UI_FTDI_EVE)
+ #define BEEPER_PIN EXPA1_10_PIN
+ #define CLCD_MOD_RESET EXPA2_08_PIN
+ #define CLCD_SPI_CS EXPA2_06_PIN
+#endif
diff --git a/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h b/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h
new file mode 100644
index 0000000..a280775
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h
@@ -0,0 +1,306 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 3 || E_STEPPERS > 3
+ #error "RUMBA32 supports up to 3 hotends / E-steppers."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "FYSETC S6"
+#endif
+#ifndef DEFAULT_MACHINE_NAME
+ #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+#endif
+
+// Avoid conflict with TIMER_TONE defined in variant
+#define STEP_TIMER 10
+
+//
+// EEPROM Emulation
+//
+#if NO_EEPROM_SELECTED
+ #define FLASH_EEPROM_EMULATION
+ //#define I2C_EEPROM
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // Decrease delays and flash wear by spreading writes across the
+ // 128 kB sector allocated for EEPROM emulation.
+ #define FLASH_EEPROM_LEVELING
+#elif ENABLED(I2C_EEPROM)
+ #define MARLIN_EEPROM_SIZE 0x0800 // 2KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PA3
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PB14
+#define X_MAX_PIN PA1
+#define Y_MIN_PIN PB13
+#define Y_MAX_PIN PA2
+#define Z_MIN_PIN PA0
+#define Z_MAX_PIN PA3
+
+//
+// Filament Sensor
+// share with X_MAX_PIN
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA1
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN PE11
+#define X_DIR_PIN PE10
+#ifndef X_ENABLE_PIN
+ #define X_ENABLE_PIN PE12
+#endif
+#define X_CS_PIN PE7
+
+#define Y_STEP_PIN PD8
+#define Y_DIR_PIN PB12
+#define Y_ENABLE_PIN PD9
+#define Y_CS_PIN PE15
+
+#define Z_STEP_PIN PD14
+#define Z_DIR_PIN PD13
+#define Z_ENABLE_PIN PD15
+#define Z_CS_PIN PD10
+
+#define E0_STEP_PIN PD5
+#define E0_DIR_PIN PD6
+#define E0_ENABLE_PIN PD4
+#define E0_CS_PIN PD7
+
+#define E1_STEP_PIN PE6
+#define E1_DIR_PIN PC13
+#define E1_ENABLE_PIN PE5
+#define E1_CS_PIN PC14
+
+#define E2_STEP_PIN PE2
+#define E2_DIR_PIN PE4
+#define E2_ENABLE_PIN PE3
+#define E2_CS_PIN PC15
+
+#if HAS_TMC_UART
+ //
+ // TMC2208/TMC2209 stepper drivers
+ //
+
+ //
+ // Software serial
+ //
+ #ifndef X_SERIAL_TX_PIN
+ #define X_SERIAL_TX_PIN PE9
+ #endif
+ #ifndef X_SERIAL_RX_PIN
+ #define X_SERIAL_RX_PIN PE8
+ #endif
+ #ifndef Y_SERIAL_TX_PIN
+ #define Y_SERIAL_TX_PIN PE14
+ #endif
+ #ifndef Y_SERIAL_RX_PIN
+ #define Y_SERIAL_RX_PIN PE13
+ #endif
+ #ifndef Z_SERIAL_TX_PIN
+ #define Z_SERIAL_TX_PIN PD11
+ #endif
+ #ifndef Z_SERIAL_RX_PIN
+ #define Z_SERIAL_RX_PIN PD12
+ #endif
+ #ifndef E0_SERIAL_TX_PIN
+ #define E0_SERIAL_TX_PIN PD3
+ #endif
+ #ifndef E0_SERIAL_RX_PIN
+ #define E0_SERIAL_RX_PIN PA15
+ #endif
+ #ifndef E1_SERIAL_TX_PIN
+ #define E1_SERIAL_TX_PIN PC4
+ #endif
+ #ifndef E1_SERIAL_RX_PIN
+ #define E1_SERIAL_RX_PIN PC5
+ #endif
+ #ifndef E2_SERIAL_TX_PIN
+ #define E2_SERIAL_TX_PIN PE1
+ #endif
+ #ifndef E2_SERIAL_RX_PIN
+ #define E2_SERIAL_RX_PIN PE0
+ #endif
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC0
+#define TEMP_1_PIN PC1
+#define TEMP_2_PIN PC2
+#define TEMP_BED_PIN PC3
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB3
+#define HEATER_1_PIN PB4
+#define HEATER_2_PIN PB15
+#define HEATER_BED_PIN PC8
+
+#define FAN_PIN PB0
+#define FAN1_PIN PB1
+#define FAN2_PIN PB2
+
+//
+// SPI
+//
+#define SD_SCK_PIN PA5
+#define SD_MISO_PIN PA6
+#define SD_MOSI_PIN PA7
+
+//
+// Misc. Functions
+//
+//#define LED_PIN PB14
+//#define BTN_PIN PC10
+//#define PS_ON_PIN PE11
+//#define KILL_PIN PC5
+
+#define SDSS PA4
+#define SD_DETECT_PIN PB10
+
+//
+// LCD / Controller
+//
+#if ENABLED(FYSETC_242_OLED_12864)
+
+ #define BTN_EN1 PC9
+ #define BTN_EN2 PD1
+ #define BTN_ENC PA8
+
+ #define BEEPER_PIN PC6
+
+ #define LCD_PINS_DC PC12
+ #define LCD_PINS_RS PC7 // LCD_RST
+ #define DOGLCD_CS PD2
+ #define DOGLCD_MOSI PC10
+ #define DOGLCD_SCK PC11
+ #define DOGLCD_A0 LCD_PINS_DC
+ #define FORCE_SOFT_SPI
+
+ #define KILL_PIN -1 // NC
+ #define NEOPIXEL_PIN PD0
+
+#elif HAS_WIRED_LCD
+
+ #define BEEPER_PIN PC9
+ #define BTN_ENC PA8
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ #define LCD_PINS_RS PD0
+
+ #define BTN_EN1 PC11
+ #define BTN_EN2 PC10
+
+ #define LCD_PINS_ENABLE PD1
+ #define LCD_PINS_D4 PC12
+
+ #else
+
+ #define LCD_PINS_RS PD2
+
+ #define BTN_EN1 PC6
+ #define BTN_EN2 PC7
+
+ #define LCD_SDSS PA4
+
+ #define LCD_PINS_ENABLE PC11
+ #define LCD_PINS_D4 PC10
+
+ #if ENABLED(FYSETC_MINI_12864)
+ // See https://wiki.fysetc.com/Mini12864_Panel
+ #define DOGLCD_CS PC11
+ #define DOGLCD_A0 PD2
+ #if ENABLED(FYSETC_GENERIC_12864_1_1)
+ #define LCD_BACKLIGHT_PIN PD0
+ #endif
+ #define LCD_RESET_PIN PC10 // Must be high or open for LCD to operate normally.
+ #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PC12
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PD0
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PD1
+ #endif
+ #elif ENABLED(FYSETC_MINI_12864_2_1)
+ #define NEOPIXEL_PIN PC12
+ #endif
+ #endif
+
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PC12
+ #define LCD_PINS_D6 PD0
+ #define LCD_PINS_D7 PD1
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+ #endif
+
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+// Alter timing for graphical display
+#if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(640)
+ #endif
+#endif
+
+#ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PB6
+#endif
+#ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PB5
+#endif
+#ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PB7
+#endif
+#ifndef RGB_LED_W_PIN
+ #define RGB_LED_W_PIN -1
+#endif
diff --git a/Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h b/Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h
new file mode 100644
index 0000000..641805d
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h
@@ -0,0 +1,66 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#define BOARD_INFO_NAME "FYSETC S6 2.0"
+
+//
+// EEPROM Emulation
+//
+#if NO_EEPROM_SELECTED
+ #undef NO_EEPROM_SELECTED
+ //#define FLASH_EEPROM_EMULATION
+ #define I2C_EEPROM
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE9
+
+#if HAS_TMC_UART
+ #define X_SERIAL_TX_PIN PE8
+ #define Y_SERIAL_TX_PIN PC4
+ #define Y_SERIAL_RX_PIN PC4
+ #define Z_SERIAL_TX_PIN PD12
+ #define E0_SERIAL_TX_PIN PA15
+ #define E1_SERIAL_TX_PIN PC5
+ #define E2_SERIAL_TX_PIN PE0
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#define TMC_USE_SW_SPI
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PE14
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PE13
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PE12
+ #endif
+#endif
+
+#include "pins_FYSETC_S6.h"
diff --git a/Marlin/src/pins/stm32f4/pins_LERDGE_K.h b/Marlin/src/pins/stm32f4/pins_LERDGE_K.h
new file mode 100644
index 0000000..bf6df03
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_LERDGE_K.h
@@ -0,0 +1,184 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4, STM32F4xx)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "LERDGE K supports up to 2 hotends / E-steppers."
+#endif
+
+#define BOARD_INFO_NAME "Lerdge K"
+#define DEFAULT_MACHINE_NAME "LERDGE"
+
+#define I2C_EEPROM
+
+// USB Flash Drive support
+#define HAS_OTG_USB_HOST_SUPPORT
+
+//
+// Servos
+//
+//#define SERVO0_PIN PB11
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PG3
+#define Y_STOP_PIN PG4
+#define Z_STOP_PIN PG5
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+//#ifndef Z_MIN_PROBE_PIN
+// #define Z_MIN_PROBE_PIN PG6
+//#endif
+
+//
+// Filament runout
+//
+#define FIL_RUNOUT_PIN PE5
+#define FIL_RUNOUT2_PIN PE6
+
+//
+// Steppers
+//
+#define X_STEP_PIN PG1
+#define X_DIR_PIN PB10
+#define X_ENABLE_PIN PG0
+//#ifndef X_CS_PIN
+// #define X_CS_PIN PE0
+//#endif
+
+#define Y_STEP_PIN PF14
+#define Y_DIR_PIN PF15
+#define Y_ENABLE_PIN PF13
+//#ifndef Y_CS_PIN
+// #define Y_CS_PIN PE1
+//#endif
+
+#define Z_STEP_PIN PF11
+#define Z_DIR_PIN PF12
+#define Z_ENABLE_PIN PC5
+//#ifndef Z_CS_PIN
+// #define Z_CS_PIN PE2
+//#endif
+
+#define E0_STEP_PIN PC14
+#define E0_DIR_PIN PC13
+#define E0_ENABLE_PIN PC15
+//#ifndef E0_CS_PIN
+// #define E0_CS_PIN PE3
+//#endif
+
+#define E1_STEP_PIN PF1
+#define E1_DIR_PIN PF0
+#define E1_ENABLE_PIN PF2
+//#ifndef E1_CS_PIN
+// #define E1_CS_PIN PE4
+//#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // Analog Input
+#define TEMP_1_PIN PC2 // Analog Input
+#define TEMP_BED_PIN PC0 // Analog Input
+
+// Lergde-K can choose thermocouple/thermistor mode in software.
+// For use with thermistors, these pins must be OUT/LOW.
+// This is done automatically.
+#define TEMP_0_TR_ENABLE_PIN PF10
+#define TEMP_1_TR_ENABLE_PIN PF9
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA1
+#define HEATER_1_PIN PA0
+#define HEATER_BED_PIN PA2
+
+#ifndef FAN_PIN
+ #define FAN_PIN PF7
+#endif
+#define FAN1_PIN PF6
+#define FAN2_PIN PF8
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PF6
+#endif
+
+//
+// LED / Lighting
+//
+//#define CASE_LIGHT_PIN_CI -1
+//#define CASE_LIGHT_PIN_DO -1
+//#define NEOPIXEL_PIN -1
+#ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PB7
+#endif
+#ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PB8
+#endif
+#ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PB9
+#endif
+
+//
+// SD support
+//
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4800000
+
+//
+// Misc. Functions
+//
+#define SDSS PC11
+#define LED_PIN PA15 // Alive
+#define PS_ON_PIN -1
+#define KILL_PIN -1
+#define POWER_LOSS_PIN PA4 // Power-loss / nAC_FAULT
+
+#define SD_SCK_PIN PC12
+#define SD_MISO_PIN PC8
+#define SD_MOSI_PIN PD2
+#define SD_SS_PIN PC11
+
+#define SD_DETECT_PIN PA8
+#define BEEPER_PIN PC7
+
+//
+// LCD / Controller
+//
+
+#define TFT_RESET_PIN PD6
+#define TFT_BACKLIGHT_PIN PD3
+
+#define TFT_CS_PIN PD7
+#define TFT_RS_PIN PD11
+
+#define TOUCH_CS_PIN PG15
+#define TOUCH_SCK_PIN PB3
+#define TOUCH_MOSI_PIN PB5
+#define TOUCH_MISO_PIN PB4
+
+#define BTN_EN1 PG10
+#define BTN_EN2 PG11
+#define BTN_ENC PG9
diff --git a/Marlin/src/pins/stm32f4/pins_LERDGE_S.h b/Marlin/src/pins/stm32f4/pins_LERDGE_S.h
new file mode 100644
index 0000000..c6cfa98
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_LERDGE_S.h
@@ -0,0 +1,212 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4, STM32F4xx)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "LERDGE S supports up to 2 hotends / E-steppers."
+#endif
+
+#define BOARD_INFO_NAME "Lerdge S"
+#define DEFAULT_MACHINE_NAME "LERDGE"
+
+#define STEP_TIMER 4
+#define TEMP_TIMER 2
+
+//#define I2C_EEPROM
+
+// USB Flash Drive support
+#define HAS_OTG_USB_HOST_SUPPORT
+
+//
+// Servos
+//
+#define SERVO0_PIN PD12
+//#define SERVO1_PIN -1
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PG9
+#define Y_MIN_PIN PG10
+#define Z_MIN_PIN PG11
+
+#define X_MAX_PIN PG12
+#define Y_MAX_PIN PG13
+#define Z_MAX_PIN PG14
+
+//
+// Filament runout
+//
+#define FIL_RUNOUT_PIN PC5
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN PG8
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN PF7
+#define X_DIR_PIN PF8
+#define X_ENABLE_PIN PF6
+
+#define Y_STEP_PIN PF10
+#define Y_DIR_PIN PF11
+#define Y_ENABLE_PIN PF9
+
+#define Z_STEP_PIN PF13
+#define Z_DIR_PIN PF14
+#define Z_ENABLE_PIN PF12
+
+#define E0_STEP_PIN PG0
+#define E0_DIR_PIN PG1
+#define E0_ENABLE_PIN PF15
+
+#define E1_STEP_PIN PG3
+#define E1_DIR_PIN PG4
+#define E1_ENABLE_PIN PG2
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC0 // See below for activation of thermistor readings
+#define TEMP_1_PIN PC1 // See below for activation of thermistor readings
+#define TEMP_BED_PIN PC3
+
+// Lergde-S can choose thermocouple/thermistor mode in software.
+// For use with thermistors, these pins must be OUT/LOW.
+// This is done automatically.
+#define TEMP_0_TR_ENABLE_PIN PF3
+#define TEMP_1_TR_ENABLE_PIN PF4
+
+// MAX6675 Cold-Junction-Compensated K-Thermocouple to Digital Converter (0°C to +1024°C)
+// https://datasheets.maximintegrated.com/en/ds/MAX6675.pdf
+
+#define MAX6675_SCK_PIN PB3 // max6675 datasheet: SCK pin, found with multimeter, not tested
+#define MAX6675_DO_PIN PB4 // max6675 datasheet: SO pin, found with multimeter, not tested
+#define MAX6675_SS_PIN PC4 // max6675 datasheet: /CS pin, found with multimeter, not tested and likely wrong
+
+// Expansion board with second max6675
+// Warning: Some boards leave the slot unpopulated.
+
+//#define MAX6675_SCK2_PIN PB3 // max6675 datasheet: SCK pin, found with multimeter, not tested
+//#define MAX6675_DO2_PIN PB4 // max6675 datasheet: SO pin, found with multimeter, not tested
+//#define MAX6675_SS2_PIN PF1 // max6675 datasheet: /CS pin, found with multimeter, not tested
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA0
+#define HEATER_1_PIN PA1
+#define HEATER_BED_PIN PA3
+
+#define FAN_PIN PA15 // heater 0 fan 1
+#define FAN1_PIN PB10 // heater 1 fan 2
+#define FAN2_PIN PF5 // heater 0 fan 2 and heater 1 fan 1 (two sockets, switched together)
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PF5
+#endif
+
+//
+// Průša i3 MK2 Multi Material Multiplexer Support
+//
+//#define E_MUX0_PIN -1
+//#define E_MUX1_PIN -1
+
+//
+// LED / Lighting
+//
+//Lerdge-S board has two LED connectors (this is the one on the mainboard)
+#define CASE_LIGHT_PIN PC7
+
+//on the dual extrusion addon board is a RGB connector
+#define RGB_LED_R_PIN PC7 // Shared with the mainboard LED light connector (CASE_LIGHT_PIN)
+#define RGB_LED_G_PIN PB0
+#define RGB_LED_B_PIN PB1
+
+//
+// Misc. Functions
+//
+#define SDSS PC11 // SD is working using SDIO, not sure if this definition is needed?
+#define LED_PIN PC6 // Mainboard soldered green LED
+#define PS_ON_PIN PB2 // Board has a power module connector
+#define KILL_PIN -1 // There is no reset button on the LCD
+#define POWER_LOSS_PIN -1 // PB2 could be used for this as well
+
+//
+// SD support
+//
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4800000
+
+#define SD_SCK_PIN PC12
+#define SD_MISO_PIN PC8
+#define SD_MOSI_PIN PD2
+#define SD_SS_PIN PC11
+
+#define SD_DETECT_PIN PG15
+
+//
+// Persistent Storage
+// If no option is selected below the SD Card will be used
+// (this section modelled after pins_LONGER3D_LK.h)
+// Warning: Not tested yet! Pins traced with multimeter, mistakes are possible
+//#define SPI_EEPROM
+
+#if ENABLED(SPI_EEPROM)
+ // Lerdge has an SPI EEPROM Winbond W25Q128 (128Mbits) https://www.pjrc.com/teensy/W25Q128FV.pdf
+ #define SPI_CHAN_EEPROM1 1
+ #define SPI_EEPROM1_CS PB12 // datasheet: /CS pin, found with multimeter, not tested
+ #define EEPROM_SCK PB13 // datasheet: CLK pin, found with multimeter, not tested
+ #define EEPROM_MISO PB14 // datasheet: DO pin, found with multimeter, not tested
+ #define EEPROM_MOSI PB15 // datasheet: DI pin, found with multimeter, not tested
+ #define EEPROM_PAGE_SIZE 0x1000U // 4KB (from datasheet)
+ #define MARLIN_EEPROM_SIZE 16UL * (EEPROM_PAGE_SIZE) // Limit to 64KB for now...
+#else
+ #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM
+#endif
+
+//
+// LCD / Controller
+//
+
+// The LCD is initialized in FSMC mode
+#define BEEPER_PIN PD13
+
+#define BTN_EN1 PC14
+#define BTN_EN2 PC15
+#define BTN_ENC PC13
+
+#define TFT_RESET_PIN PD6
+#define TFT_BACKLIGHT_PIN PD3
+
+#define TFT_CS_PIN PD7 // TFT works
+#define TFT_RS_PIN PD11 // TFT works
+
+// There is touch, but calibration is off
+#define TOUCH_CS_PIN PB6
+#define TOUCH_SCK_PIN PB3
+#define TOUCH_MOSI_PIN PB5
+#define TOUCH_MISO_PIN PB4
diff --git a/Marlin/src/pins/stm32f4/pins_LERDGE_X.h b/Marlin/src/pins/stm32f4/pins_LERDGE_X.h
new file mode 100644
index 0000000..606d932
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_LERDGE_X.h
@@ -0,0 +1,155 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4, STM32F4xx)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "LERDGE X only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Lerdge X"
+#define DEFAULT_MACHINE_NAME "LERDGE"
+
+#define STEP_TIMER 4
+#define TEMP_TIMER 2
+
+#define I2C_EEPROM
+
+// USB Flash Drive support
+#define HAS_OTG_USB_HOST_SUPPORT
+
+//
+// Servos
+//
+//#define SERVO0_PIN PD13
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PB12
+#define Y_STOP_PIN PB13
+#define Z_STOP_PIN PB14
+
+//
+// Filament runout
+//
+#define FIL_RUNOUT_PIN PE1
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+//#ifndef Z_MIN_PROBE_PIN
+// #define Z_MIN_PROBE_PIN PB15
+//#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB10
+#define X_DIR_PIN PB2
+#define X_ENABLE_PIN PB11
+
+#define Y_STEP_PIN PB0
+#define Y_DIR_PIN PC5
+#define Y_ENABLE_PIN PB1
+
+#define Z_STEP_PIN PA7
+#define Z_DIR_PIN PA6
+#define Z_ENABLE_PIN PC4
+
+#define E0_STEP_PIN PA4
+#define E0_DIR_PIN PA3
+#define E0_ENABLE_PIN PA5
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC0 // Analog Input
+#define TEMP_1_PIN -1 // Analog Input
+#define TEMP_BED_PIN PC1 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA1
+#define HEATER_1_PIN -1
+#define HEATER_BED_PIN PA2
+
+//#ifndef FAN_PIN
+// #define FAN_PIN PC15
+//#endif
+#define FAN1_PIN PC15
+#define FAN2_PIN PA0
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PC15 // FAN1_PIN
+#endif
+
+//
+// LED / Lighting
+//
+//#define CASE_LIGHT_PIN_CI -1
+//#define CASE_LIGHT_PIN_DO -1
+//#define NEOPIXEL_PIN -1
+
+//
+// Misc. Functions
+//
+#define SDSS PC11
+#define LED_PIN PC7 // Alive
+#define PS_ON_PIN -1
+#define KILL_PIN -1
+
+// Lerdge supports auto-power off and power loss sense through a single pin.
+#define POWER_LOSS_PIN PC14 // Power-loss / nAC_FAULT
+
+#define SD_SCK_PIN PC12
+#define SD_MISO_PIN PC8
+#define SD_MOSI_PIN PD2
+#define SD_SS_PIN PC11
+
+//
+// SD support
+//
+#define SDIO_SUPPORT
+#define SD_DETECT_PIN PA8
+#define SDIO_CLOCK 4800000
+
+//
+// LCD / Controller
+//
+
+// The LCD is initialized in FSMC mode
+#define BEEPER_PIN PD12
+
+#define BTN_EN1 PE3
+#define BTN_EN2 PE4
+#define BTN_ENC PE2
+
+#define TFT_RESET_PIN PD6
+#define TFT_BACKLIGHT_PIN PD3
+
+#define TFT_CS_PIN PD7
+#define TFT_RS_PIN PD11
+
+#define TOUCH_CS_PIN PB6
+#define TOUCH_SCK_PIN PB3
+#define TOUCH_MOSI_PIN PB5
+#define TOUCH_MISO_PIN PB4
diff --git a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN2.h b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN2.h
new file mode 100644
index 0000000..c2f5f32
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN2.h
@@ -0,0 +1,101 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS_ROBIN2 supports up to 2 hotends / E-steppers."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS_ROBIN2"
+#endif
+
+#ifndef DEFAULT_MACHINE_NAME
+ #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+#endif
+
+#define SRAM_EEPROM_EMULATION
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PG8
+#define X_MAX_PIN PG7
+#define Y_MIN_PIN PG6
+#define Y_MAX_PIN PG5
+#define Z_MIN_PIN PG4
+#define Z_MAX_PIN PG3
+
+//
+// Servos
+//
+#define SERVO0_PIN PB0 // XS2-5
+#define SERVO1_PIN PF7 // XS1-5
+#define SERVO2_PIN PF8 // XS1-6
+
+//
+// Steppers
+//
+#define X_STEP_PIN PE6
+#define X_DIR_PIN PE5
+#define X_ENABLE_PIN PC13
+
+#define Y_STEP_PIN PE3
+#define Y_DIR_PIN PE2
+#define Y_ENABLE_PIN PE4
+
+#define Z_STEP_PIN PE0
+#define Z_DIR_PIN PB9
+#define Z_ENABLE_PIN PE1
+
+#define E0_STEP_PIN PG10
+#define E0_DIR_PIN PG9
+#define E0_ENABLE_PIN PB8
+
+#define E1_STEP_PIN PD3
+#define E1_DIR_PIN PA15
+#define E1_ENABLE_PIN PD6
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // T1 <-> E0
+#define TEMP_1_PIN PC2 // T2 <-> E1
+#define TEMP_BED_PIN PC0 // T0 <-> Bed
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PF3 // Heater0
+#define HEATER_1_PIN PF2 // Heater1
+#define HEATER_BED_PIN PF4 // Hotbed
+#define FAN_PIN PA7 // Fan0
+
+//
+// Misc. Functions
+//
+#define SDSS -1 // PB12
+
+#define SD_DETECT_PIN PF9
+#define BEEPER_PIN PG2
diff --git a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h
new file mode 100644
index 0000000..425b95b
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h
@@ -0,0 +1,374 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4, STM32F4xx)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin Nano V3 supports up to 2 hotends / E-steppers."
+#elif HAS_FSMC_TFT
+ #error "MKS Robin Nano V3 doesn't support FSMC-based TFT displays."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin Nano V3"
+
+// USB Flash Drive support
+#define HAS_OTG_USB_HOST_SUPPORT
+
+// Avoid conflict with TIMER_TONE
+#define STEP_TIMER 10
+
+// Use one of these or SDCard-based Emulation will be used
+//#define SRAM_EEPROM_EMULATION // Use BackSRAM-based EEPROM emulation
+//#define FLASH_EEPROM_EMULATION // Use Flash-based EEPROM emulation
+#define I2C_EEPROM
+#define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+
+#define I2C_SCL_PIN PB6
+#define I2C_SDA_PIN PB7
+
+//
+// Release PB4 (Z_DIR_PIN) from JTAG NRST role
+//
+//#define DISABLE_DEBUG
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8 // Enable BLTOUCH
+
+//
+// Limit Switches
+//
+#define X_DIAG_PIN PD15
+#define Y_DIAG_PIN PD2
+#define Z_DIAG_PIN PC8
+#define E0_DIAG_PIN PC4
+#define E1_DIAG_PIN PE7
+
+//
+#define X_STOP_PIN PA15
+#define Y_STOP_PIN PD2
+#define Z_MIN_PIN PC8
+#define Z_MAX_PIN PC4
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+#ifndef X_CS_PIN
+ #define X_CS_PIN PD5
+#endif
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PD7
+#endif
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PD4
+#endif
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PD9
+#endif
+
+#define E1_ENABLE_PIN PA3
+#define E1_STEP_PIN PD15
+#define E1_DIR_PIN PA1
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN PD8
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+// This board only supports SW SPI for stepper drivers
+//
+#if HAS_TMC_SPI
+ #define TMC_USE_SW_SPI
+#endif
+#if ENABLED(TMC_USE_SW_SPI)
+ #if !defined(TMC_SW_MOSI) || TMC_SW_MOSI == -1
+ #define TMC_SW_MOSI PD14
+ #endif
+ #if !defined(TMC_SW_MISO) || TMC_SW_MISO == -1
+ #define TMC_SW_MISO PD1
+ #endif
+ #if !defined(TMC_SW_SCK) || TMC_SW_SCK == -1
+ #define TMC_SW_SCK PD0
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ //
+ // Software serial
+ // No Hardware serial for steppers
+ //
+ #define X_SERIAL_TX_PIN PD5
+ #define X_SERIAL_RX_PIN PD5
+
+ #define Y_SERIAL_TX_PIN PD7
+ #define Y_SERIAL_RX_PIN PD7
+
+ #define Z_SERIAL_TX_PIN PD4
+ #define Z_SERIAL_RX_PIN PD4
+
+ #define E0_SERIAL_TX_PIN PD9
+ #define E0_SERIAL_RX_PIN PD9
+
+ #define E1_SERIAL_TX_PIN PD8
+ #define E1_SERIAL_RX_PIN PD8
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_1_PIN PA2 // TH2
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PE5 // HEATER1
+#define HEATER_1_PIN PB0 // HEATER2
+#define HEATER_BED_PIN PA0 // HOT BED
+
+#define FAN_PIN PB1 // FAN
+#define FAN1_PIN PC14 // FAN1
+
+//
+// Thermocouples
+//
+//#define MAX6675_SS_PIN HEATER_0_PIN // TC1 - CS1
+//#define MAX6675_SS_PIN HEATER_1_PIN // TC2 - CS2
+
+//
+// Misc. Functions
+//
+#define MT_DET_1_PIN PA4
+#define MT_DET_2_PIN PE6
+#define MT_DET_PIN_INVERTING false // LVGL UI filament RUNOUT PIN STATE
+#define PW_DET PA13
+#define PW_OFF PB2
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN MT_DET_1_PIN
+#endif
+#ifndef FIL_RUNOUT2_PIN
+ #define FIL_RUNOUT2_PIN MT_DET_2_PIN
+#endif
+
+//#define MKSPWC
+#ifdef MKSPWC
+ #define SUICIDE_PIN PW_OFF // Enable MKSPWC SUICIDE PIN
+ #define SUICIDE_PIN_INVERTING false // Enable MKSPWC PIN STATE
+ #define KILL_PIN PW_DET // Enable MKSPWC DET PIN
+ #define KILL_PIN_STATE true // Enable MKSPWC PIN STATE
+#endif
+
+//#define MKS_TEST
+
+#if ENABLED(MKS_TEST)
+ #define MKS_TEST_POWER_LOSS_PIN PW_DET // PW_DET
+ #define MKS_TEST_PS_ON_PIN PW_OFF // PW_OFF
+#endif
+
+//#define POWER_LOSS_PIN PW_DET
+//#define PS_ON_PIN PW_OFF
+
+//#define LED_PIN PB2
+
+// Random Info
+#define USB_SERIAL -1 // USB Serial
+#define WIFI_SERIAL 3 // USART3
+#define MKS_WIFI_MODULE_SERIAL 1 // USART1
+#define MKS_WIFI_MODULE_SPI 2 // SPI2
+
+#define WIFI_IO0_PIN PC13 // MKS ESP WIFI IO0 PIN
+#define WIFI_IO1_PIN PC7 // MKS ESP WIFI IO1 PIN
+#define WIFI_RESET_PIN PE9 // MKS ESP WIFI RESET PIN
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+//
+// Onboard SD card
+//
+// detect pin dont work when ONBOARD and NO_SD_HOST_DRIVE disabled
+#if SD_CONNECTION_IS(ONBOARD)
+ #define CUSTOM_SPI_PINS // TODO: needed because is the only way to set SPI3 for SD on STM32 (by now)
+ #if ENABLED(CUSTOM_SPI_PINS)
+ #define ENABLE_SPI3
+ #define SD_SS_PIN -1
+ #define SDSS PC9
+ #define SD_SCK_PIN PC10
+ #define SD_MISO_PIN PC11
+ #define SD_MOSI_PIN PC12
+ #define SD_DETECT_PIN PD12
+ #endif
+#endif
+
+//
+// LCD SD
+//
+#if SD_CONNECTION_IS(LCD)
+ #define CUSTOM_SPI_PINS
+ #if ENABLED(CUSTOM_SPI_PINS)
+ #define ENABLE_SPI1
+ #define SDSS PE10
+ #define SD_SCK_PIN PA5
+ #define SD_MISO_PIN PA6
+ #define SD_MOSI_PIN PA7
+ #define SD_DETECT_PIN PE12
+ #endif
+#endif
+
+//
+// LCD / Controller
+#define SPI_FLASH
+#define HAS_SPI_FLASH 1
+#define SPI_DEVICE 2
+#define SPI_FLASH_SIZE 0x1000000
+#if ENABLED(SPI_FLASH)
+ #define W25QXX_CS_PIN PB12
+ #define W25QXX_MOSI_PIN PC3
+ #define W25QXX_MISO_PIN PC2
+ #define W25QXX_SCK_PIN PB13
+#endif
+
+/**
+ * _____ _____
+ * (BEEPER)PC5 | · · | PE13(BTN_ENC) (SPI1 MISO) PA6 | · · | PA5 (SPI1 SCK)
+ * (LCD_EN)PD13 | · · | PC6(LCD_RS) (BTN_EN1) PE8 | · · | PE10 (SPI1 CS)
+ * (LCD_D4)PE14 | · · PE15(LCD_D5) (BTN_EN2) PE11 | · · PA7 (SPI1 MOSI)
+ * (LCD_D6)PD11 | · · | PD10(LCD_D7) (SPI1_RS) PE12 | · · | RESET
+ * GND | · · | 5V GND | · · | 3.3V
+ *  ̄ ̄ ̄  ̄ ̄ ̄
+ * EXP1 EXP2
+ */
+
+#if ANY(TFT_COLOR_UI, TFT_LVGL_UI, TFT_CLASSIC_UI)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X -17253
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y 11579
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X 514
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y -24
+ #endif
+ #ifndef TOUCH_ORIENTATION
+ #define TOUCH_ORIENTATION TOUCH_LANDSCAPE
+ #endif
+
+ #define TFT_CS_PIN PD11
+ #define TFT_SCK_PIN PA5
+ #define TFT_MISO_PIN PA6
+ #define TFT_MOSI_PIN PA7
+ #define TFT_DC_PIN PD10
+ #define TFT_RST_PIN PC6
+ #define TFT_A0_PIN TFT_DC_PIN
+
+ #define TFT_RESET_PIN PC6
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 1
+
+ #define LCD_BACKLIGHT_PIN PD13
+ #ifndef TFT_WIDTH
+ #define TFT_WIDTH 480
+ #endif
+ #ifndef TFT_HEIGHT
+ #define TFT_HEIGHT 320
+ #endif
+
+ #define TOUCH_CS_PIN PE14 // SPI1_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI1_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI1_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
+
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+ #define BEEPER_PIN PC5
+ #define BTN_ENC PE13
+
+ #define LCD_READ_ID 0xD3
+ #define LCD_USE_DMA_SPI
+
+ #define TFT_BUFFER_SIZE 14400
+
+#elif HAS_SPI_LCD
+ #define BEEPER_PIN PC5
+ #define BTN_ENC PE13
+ #define LCD_PINS_ENABLE PD13
+ #define LCD_PINS_RS PC6
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+ #define LCD_BACKLIGHT_PIN -1
+
+ // MKS MINI12864 and MKS LCD12864B; If using MKS LCD12864A (Need to remove RPK2 resistor)
+ #if ENABLED(MKS_MINI_12864)
+ //#define LCD_BACKLIGHT_PIN -1
+ //#define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PD11
+ #define DOGLCD_CS PE15
+ //#define DOGLCD_SCK PA5
+ //#define DOGLCD_MOSI PA7
+
+ // Required for MKS_MINI_12864 with this board
+ //#define MKS_LCD12864B
+ //#undef SHOW_BOOTSCREEN
+
+ #else // !MKS_MINI_12864
+
+ #define LCD_PINS_D4 PE14
+ #if ENABLED(ULTIPANEL)
+ #define LCD_PINS_D5 PE15
+ #define LCD_PINS_D6 PD11
+ #define LCD_PINS_D7 PD10
+ #endif
+
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(600)
+
+ #endif // !MKS_MINI_12864
+#endif // HAS_SPI_LCD
diff --git a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h
new file mode 100644
index 0000000..5533e35
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h
@@ -0,0 +1,371 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4, STM32F4xx)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin Nano V3 supports up to 1 hotends / E-steppers."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin PRO V2"
+
+// Avoid conflict with TIMER_TONE
+#define STEP_TIMER 10
+
+// Use one of these or SDCard-based Emulation will be used
+//#define SRAM_EEPROM_EMULATION // Use BackSRAM-based EEPROM emulation
+//#define FLASH_EEPROM_EMULATION // Use Flash-based EEPROM emulation
+#define I2C_EEPROM
+#define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+
+// USB Flash Drive support
+#define HAS_OTG_USB_HOST_SUPPORT
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+//#define DISABLE_DEBUG
+
+//
+// Note: MKS Robin board is using SPI2 interface.
+//
+//#define SPI_MODULE 2
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8 // Enable BLTOUCH
+
+//
+// Limit Switches
+//
+#define X_DIAG_PIN PA15
+#define Y_DIAG_PIN PA12
+#define Z_DIAG_PIN PA11
+#define E0_DIAG_PIN PC4
+#define E1_DIAG_PIN PE7
+
+#define X_STOP_PIN PA15
+#define Y_STOP_PIN PA12
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA4 // MT_DET
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+#ifndef X_CS_PIN
+ #define X_CS_PIN PD5
+#endif
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PD7
+#endif
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PD4
+#endif
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PD9
+#endif
+
+#define E1_ENABLE_PIN PA3
+#define E1_STEP_PIN PD15
+#define E1_DIR_PIN PA1
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN PD8
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PD14
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PD1
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PD0
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+
+ #define X_SERIAL_TX_PIN PD5
+ #define X_SERIAL_RX_PIN PD5
+
+ #define Y_SERIAL_TX_PIN PD7
+ #define Y_SERIAL_RX_PIN PD7
+
+ #define Z_SERIAL_TX_PIN PD4
+ #define Z_SERIAL_RX_PIN PD4
+
+ #define E0_SERIAL_TX_PIN PD9
+ #define E0_SERIAL_RX_PIN PD9
+
+ #define E1_SERIAL_TX_PIN PD8
+ #define E1_SERIAL_RX_PIN PD8
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif // HAS_TMC_UART
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_1_PIN PC2 // TH2
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC3 // HEATER1
+#define HEATER_1_PIN PB0 // HEATER2
+#define HEATER_BED_PIN PA0 // HOT BED
+
+#define FAN_PIN PB1 // FAN
+
+//
+// Thermocouples
+//
+//#define MAX6675_SS_PIN PE5 // TC1 - CS1
+//#define MAX6675_SS_PIN PE6 // TC2 - CS2
+
+//
+// Misc. Functions
+//
+//#define POWER_LOSS_PIN PA2 // PW_DET
+//#define PS_ON_PIN PA3 // PW_OFF
+//#define SUICIDE_PIN PB2 // Enable MKSPWC support
+//#define KILL_PIN PA2 // Enable MKSPWC support
+//#define KILL_PIN_INVERTING true // Enable MKSPWC support
+//#define LED_PIN PB2
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+//#define USE_NEW_SPI_API 1
+
+//
+// Onboard SD card
+// NOT compatible with LCD
+//
+// detect pin dont work when ONBOARD and NO_SD_HOST_DRIVE disabled
+#if !defined(SDCARD_CONNECTION) || SDCARD_CONNECTION == ONBOARD
+ #define CUSTOM_SPI_PINS
+ #if ENABLED(CUSTOM_SPI_PINS)
+
+ #if USE_NEW_SPI_API
+ #define SD_SPI MARLIN_SPI(HardwareSPI3, PC9)
+ #else
+ #define ENABLE_SPI3
+ #define SD_SS_PIN -1
+ #define SDSS PC9
+ #define SD_SCK_PIN PC10
+ #define SD_MISO_PIN PC11
+ #define SD_MOSI_PIN PC12
+ #endif
+ #define SD_DETECT_PIN PD12
+ #endif
+#endif
+
+/*
+//
+// LCD SD
+//
+#if SDCARD_CONNECTION == LCD
+ #define CUSTOM_SPI_PINS
+ #if ENABLED(CUSTOM_SPI_PINS)
+ #define ENABLE_SPI1
+ #define SDSS PE10
+ #define SD_SCK_PIN PA5
+ #define SD_MISO_PIN PA6
+ #define SD_MOSI_PIN PA7
+ #define SD_DETECT_PIN PE12
+ #endif
+#endif
+*/
+
+//
+// LCD / Controller
+#define SPI_FLASH
+#define HAS_SPI_FLASH 1
+#define SPI_DEVICE 2
+#define SPI_FLASH_SIZE 0x1000000
+#if ENABLED(SPI_FLASH)
+ #define W25QXX_CS_PIN PB12
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
+
+/**
+ * _____ _____
+ * (BEEPER)PC5 | · · | PE13(BTN_ENC) (SPI1 MISO) PA6 | · · | PA5 (SPI1 SCK)
+ * (LCD_EN)PD13 | · · | PC6(LCD_RS) (BTN_EN1) PE8 | · · | PE10 (SPI1 CS)
+ * (LCD_D4)PE14 | · · | PE15(LCD_D5) (BTN_EN2) PE11 | · · | PA7 (SPI1 MOSI)
+ * (LCD_D6)PD11 | · · | PD10(LCD_D7) (SPI DET) PE12 | · · | RESET
+ * GND | · · | 5V GND | · · | 3.3V
+ *  ̄ ̄ ̄  ̄ ̄ ̄
+ * EXP1 EXP2
+ */
+
+#if ANY(TFT_COLOR_UI, TFT_LVGL_UI, TFT_CLASSIC_UI)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X -17253
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y 11579
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X 514
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y -24
+ #endif
+ #ifndef TOUCH_ORIENTATION
+ #define TOUCH_ORIENTATION TOUCH_LANDSCAPE
+ #endif
+
+ #define TFT_CS_PIN PD11
+ #define TFT_SCK_PIN PA5
+ #define TFT_MISO_PIN PA6
+ #define TFT_MOSI_PIN PA7
+ #define TFT_DC_PIN PD10
+ #define TFT_RST_PIN PC6
+ #define TFT_A0_PIN TFT_DC_PIN
+
+ #define TFT_RESET_PIN PC6
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 1
+
+ #define LCD_BACKLIGHT_PIN PD13
+ #ifndef TFT_WIDTH
+ #define TFT_WIDTH 480
+ #endif
+ #ifndef TFT_HEIGHT
+ #define TFT_HEIGHT 320
+ #endif
+
+ #define TOUCH_CS_PIN PE14 // SPI1_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI1_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI1_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
+
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+ #define BEEPER_PIN PC5
+ #define BTN_ENC PE13
+
+ #define LCD_READ_ID 0xD3
+ #define LCD_USE_DMA_SPI
+
+ //#define TFT_DRIVER ST7796
+ #define TFT_BUFFER_SIZE 14400
+
+#elif HAS_SPI_LCD
+ #define BEEPER_PIN PC5
+ #define BTN_ENC PE13
+ #define LCD_PINS_ENABLE PD13
+ #define LCD_PINS_RS PC6
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+ #define LCD_BACKLIGHT_PIN -1
+
+ // MKS MINI12864 and MKS LCD12864B; If using MKS LCD12864A (Need to remove RPK2 resistor)
+ #if ENABLED(MKS_MINI_12864)
+ //#define LCD_BACKLIGHT_PIN -1
+ //#define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PD11
+ #define DOGLCD_CS PE15
+ //#define DOGLCD_SCK PA5
+ //#define DOGLCD_MOSI PA7
+
+ // Required for MKS_MINI_12864 with this board
+ //#define MKS_LCD12864B
+ //#undef SHOW_BOOTSCREEN
+
+ #else // !MKS_MINI_12864
+
+ #define LCD_PINS_D4 PE14
+ #if ENABLED(ULTIPANEL)
+ #define LCD_PINS_D5 PE15
+ #define LCD_PINS_D6 PD11
+ #define LCD_PINS_D7 PD10
+ #endif
+
+ #ifndef ST7920_DELAY_1
+ #define ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef ST7920_DELAY_2
+ #define ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef ST7920_DELAY_3
+ #define ST7920_DELAY_3 DELAY_NS(600)
+ #endif
+
+ #endif // !MKS_MINI_12864
+#endif // HAS_SPI_LCD
diff --git a/Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h b/Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h
new file mode 100644
index 0000000..a60a278
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h
@@ -0,0 +1,78 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Pin assignments for the RUMBA32
+ *
+ * https://aus3d.com.au/rumba32
+ * https://github.com/Aus3D/RUMBA32
+ */
+
+#define BOARD_INFO_NAME "RUMBA32"
+
+#if NO_EEPROM_SELECTED
+ #if MB(RUMBA32_V1_0)
+ #define FLASH_EEPROM_EMULATION
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+ #elif MB(RUMBA32_V1_1)
+ #define I2C_EEPROM
+ #define MARLIN_EEPROM_SIZE 0x2000 // 8KB (24LC64T-I/OT)
+ #endif
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // Decrease delays and flash wear by spreading writes across the
+ // 128 kB sector allocated for EEPROM emulation.
+ #define FLASH_EEPROM_LEVELING
+#endif
+
+#include "pins_RUMBA32_common.h"
+
+#if MB(RUMBA32_V1_1)
+
+ #define SERVO0_PIN PA15
+ #undef BTN_PIN
+
+ #if HAS_TMC_UART
+ //
+ // TMC2208/TMC2209 stepper drivers - Software Serial is used according to below pins
+ //
+ #define X_SERIAL_TX_PIN PA14
+ #define X_SERIAL_RX_PIN PC14
+
+ #define Y_SERIAL_TX_PIN PA13
+ #define Y_SERIAL_RX_PIN PE4
+
+ #define Z_SERIAL_TX_PIN PB10
+ #define Z_SERIAL_RX_PIN PE0
+
+ #define E0_SERIAL_TX_PIN PD11
+ #define E0_SERIAL_RX_PIN PC13
+
+ #define E1_SERIAL_TX_PIN PB3
+ #define E1_SERIAL_RX_PIN PD5
+
+ #define E2_SERIAL_TX_PIN PB4
+ #define E2_SERIAL_RX_PIN PD1
+ #endif
+#endif
diff --git a/Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h b/Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h
new file mode 100644
index 0000000..4dce7b7
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h
@@ -0,0 +1,90 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Pin assignments for the MKS RUMBA32
+ *
+ * https://github.com/makerbase-mks/MKS-RUMBA32
+ *
+ * The MKS and Aus3D versions have the same pinout but the MKS version
+ * has some added resistors and LEDs. The resistors needed for the
+ * TMC2208/9 UART interface are among the additions. Also added were
+ * connectors and resistors dedicated to the TMC2130 sensorless homing
+ * interface.
+ */
+
+#define BOARD_INFO_NAME "MKS RUMBA32"
+
+#if NO_EEPROM_SELECTED
+ #define FLASH_EEPROM_EMULATION
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // Decrease delays and flash wear by spreading writes across the
+ // 128 kB sector allocated for EEPROM emulation.
+ #define FLASH_EEPROM_LEVELING
+#endif
+
+#include "pins_RUMBA32_common.h"
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PA3
+ #define X_SERIAL_RX_PIN PC14
+
+ #define Y_SERIAL_TX_PIN PA4
+ #define Y_SERIAL_RX_PIN PE4
+
+ #define Z_SERIAL_TX_PIN PD13
+ #define Z_SERIAL_RX_PIN PE0
+
+ #define E0_SERIAL_TX_PIN PD14
+ #define E0_SERIAL_RX_PIN PC13
+
+ #define E1_SERIAL_TX_PIN PD15
+ #define E1_SERIAL_RX_PIN PD5
+
+ #define E2_SERIAL_TX_PIN PD12
+ #define E2_SERIAL_RX_PIN PD1
+#endif
diff --git a/Marlin/src/pins/stm32f4/pins_RUMBA32_common.h b/Marlin/src/pins/stm32f4/pins_RUMBA32_common.h
new file mode 100644
index 0000000..2a0cfa8
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_RUMBA32_common.h
@@ -0,0 +1,187 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Common pin assignments for all RUMBA32 boards
+ */
+
+#if NOT_TARGET(STM32F4)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 3 || E_STEPPERS > 3
+ #error "RUMBA32 boards support up to 3 hotends / E-steppers."
+#endif
+
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+// Use soft PWM for fans - PWM is not working properly when paired with STM32 Arduino Core v1.7.0
+// This can be removed when Core version is updated and PWM behaviour is fixed.
+#define FAN_SOFT_PWM
+
+//
+// Configure Timers
+// TIM6 is used for TONE
+// TIM7 is used for SERVO
+// TIMER_SERIAL defaults to TIM7 and must be overridden in the platformio.h file if SERVO will also be used.
+// This will be difficult to solve from the Arduino IDE, without modifying the RUMBA32 variant
+// included with the STM32 framework.
+
+#define STEP_TIMER 10
+#define TEMP_TIMER 14
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PB12
+#define X_MAX_PIN PB13
+#define Y_MIN_PIN PB15
+#define Y_MAX_PIN PD8
+#define Z_MIN_PIN PD9
+#define Z_MAX_PIN PD10
+
+//
+// Steppers
+//
+#define X_STEP_PIN PA0
+#define X_DIR_PIN PC15
+#define X_ENABLE_PIN PC11
+#define X_CS_PIN PC14
+
+#define Y_STEP_PIN PE5
+#define Y_DIR_PIN PE6
+#define Y_ENABLE_PIN PE3
+#define Y_CS_PIN PE4
+
+#define Z_STEP_PIN PE1
+#define Z_DIR_PIN PE2
+#define Z_ENABLE_PIN PB7
+#define Z_CS_PIN PE0
+
+#define E0_STEP_PIN PB5
+#define E0_DIR_PIN PB6
+#define E0_ENABLE_PIN PC12
+#define E0_CS_PIN PC13
+
+#define E1_STEP_PIN PD6
+#define E1_DIR_PIN PD7
+#define E1_ENABLE_PIN PD4
+#define E1_CS_PIN PD5
+
+#define E2_STEP_PIN PD2
+#define E2_DIR_PIN PD3
+#define E2_ENABLE_PIN PD0
+#define E2_CS_PIN PD1
+
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PA7
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PA6
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PA5
+ #endif
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC4
+#define TEMP_1_PIN PC3
+#define TEMP_2_PIN PC2
+#define TEMP_3_PIN PC1
+#define TEMP_BED_PIN PC0
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC6
+#define HEATER_1_PIN PC7
+#define HEATER_2_PIN PC8
+#define HEATER_BED_PIN PA1
+
+#define FAN_PIN PC9
+#define FAN1_PIN PA8
+
+//
+// SPI
+//
+#define SD_SCK_PIN PA5
+#define SD_MISO_PIN PA6
+#define SD_MOSI_PIN PA7
+
+//
+// Misc. Functions
+//
+#define LED_PIN PB14
+#define BTN_PIN PC10
+#define PS_ON_PIN PE11
+#define KILL_PIN PC5
+
+#define SDSS PA2
+#define SD_DETECT_PIN PB0
+#define BEEPER_PIN PE8
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #define BTN_EN1 PB2
+ #define BTN_EN2 PB1
+ #define BTN_ENC PE7
+
+ #define LCD_PINS_RS PE10
+ #define LCD_PINS_ENABLE PE9
+ #define LCD_PINS_D4 PE12
+
+ #if ENABLED(MKS_MINI_12864)
+ #define DOGLCD_CS PE13
+ #define DOGLCD_A0 PE14
+ #endif
+
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PE13
+ #define LCD_PINS_D6 PE14
+ #define LCD_PINS_D7 PE15
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ // Alter timing for graphical display
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(640)
+ #endif
+ #endif
+
+#endif
diff --git a/Marlin/src/pins/stm32f4/pins_STEVAL_3DP001V1.h b/Marlin/src/pins/stm32f4/pins_STEVAL_3DP001V1.h
new file mode 100644
index 0000000..2567951
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_STEVAL_3DP001V1.h
@@ -0,0 +1,359 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+// Source: https://github.com/stm32duino/Arduino_Core_STM32/blob/master/variants/ST3DP001_EVAL/variant.cpp
+
+/**
+ * HOW TO COMPILE
+ *
+ * PlatformIO - Use the STM32F401VE_STEVAL environment (or the "Auto Build Marlin" extension).
+ *
+ * Arduino - Tested with 1.8.10
+ * Install library per https://github.com/stm32duino/Arduino_Core_STM32
+ * Make the following selections under the TOOL menu in the Arduino IDE
+ * Board: "3D printer boards"
+ * Board part number: "STEVAL-3DP001V1"
+ * U(S)ART support: "Enabled (generic "Serial")"
+ * USB support (if available): "CDC (no generic "Serial")"
+ * Optimize: "Smallest (-Os default)"
+ * C Runtime Library: "newlib Nano (default)"
+ */
+
+#pragma once
+
+#if NOT_TARGET(STM32F4)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#endif
+
+#ifndef MACHINE_NAME
+ #define MACHINE_NAME "STEVAL-3DP001V1"
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN 39 // PD8 X_STOP
+#define Y_MIN_PIN 40 // PD9 Y_STOP
+#define Z_MIN_PIN 41 // PD10 Z_STOP
+
+#define X_MAX_PIN 44 // PD0 W_STOP
+#define Y_MAX_PIN 43 // PA8 V_STOP
+#define Z_MAX_PIN 42 // PD11 U_STOP
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+//#ifndef Z_MIN_PROBE_PIN
+// #define Z_MIN_PROBE_PIN 16 // PA4
+//#endif
+
+//
+// Filament runout
+//
+//#define FIL_RUNOUT_PIN 53 // PA3 BED_THE
+
+//
+// Steppers
+//
+
+#define X_STEP_PIN 61 // PE14 X_PWM
+#define X_DIR_PIN 62 // PE15 X_DIR
+#define X_ENABLE_PIN 60 // PE13 X_RES
+#define X_CS_PIN 16 // PA4 SPI_CS
+
+#define Y_STEP_PIN 64 // PB10 Y_PWM
+#define Y_DIR_PIN 65 // PE9 Y_DIR
+#define Y_ENABLE_PIN 63 // PE10 Y_RES
+#define Y_CS_PIN 16 // PA4 SPI_CS
+
+#define Z_STEP_PIN 67 // PC6 Z_PWM
+#define Z_DIR_PIN 68 // PC0 Z_DIR
+#define Z_ENABLE_PIN 66 // PC15 Z_RES
+#define Z_CS_PIN 16 // PA4 SPI_CS
+
+#define E0_STEP_PIN 71 // PD12 E1_PW
+#define E0_DIR_PIN 70 // PC13 E1_DIR
+#define E0_ENABLE_PIN 69 // PC14 E1_RE
+#define E0_CS_PIN 16 // PA4 SPI_CS
+
+#define E1_STEP_PIN 73 // PE5 E2_PWM
+#define E1_DIR_PIN 74 // PE6 E2_DIR
+#define E1_ENABLE_PIN 72 // PE4 E2_RESE
+#define E1_CS_PIN 16 // PA4 SPI_CS
+
+#define E2_STEP_PIN 77 // PB8 E3_PWM
+#define E2_DIR_PIN 76 // PE2 E3_DIR
+#define E2_ENABLE_PIN 75 // PE3 E3_RESE
+#define E2_CS_PIN 16 // PA4 SPI_CS
+
+// needed to pass a sanity check
+#define X2_CS_PIN 16 // PA4 SPI_CS
+#define Y2_CS_PIN 16 // PA4 SPI_CS
+#define Z2_CS_PIN 16 // PA4 SPI_CS
+#define Z3_CS_PIN 16 // PA4 SPI_CS
+#define E3_CS_PIN 16 // PA4 SPI_CS
+#define E4_CS_PIN 16 // PA4 SPI_CS
+#define E5_CS_PIN 16 // PA4 SPI_CS
+
+#if HAS_L64XX
+ #define L6470_CHAIN_SCK_PIN 17 // PA5
+ #define L6470_CHAIN_MISO_PIN 18 // PA6
+ #define L6470_CHAIN_MOSI_PIN 19 // PA7
+ #define L6470_CHAIN_SS_PIN 16 // PA4
+
+ //#define SD_SCK_PIN L6470_CHAIN_SCK_PIN
+ //#define SD_MISO_PIN L6470_CHAIN_MISO_PIN
+ //#define SD_MOSI_PIN L6470_CHAIN_MOSI_PIN
+#else
+ //#define SD_SCK_PIN 13 // PB13 SPI_S
+ //#define SD_MISO_PIN 12 // PB14 SPI_M
+ //#define SD_MOSI_PIN 11 // PB15 SPI_M
+#endif
+
+/**
+ * Macro to reset/enable L6474 stepper drivers
+ *
+ * IMPORTANT - To disable (bypass) L6474s, install the corresponding
+ * resistors (R11 - R17) and change the "V" to "0" for the
+ * corresponding pins here:
+ */
+#define ENABLE_RESET_L64XX_CHIPS(V) do{ OUT_WRITE(X_ENABLE_PIN, V); \
+ OUT_WRITE(Y_ENABLE_PIN, V); \
+ OUT_WRITE(Z_ENABLE_PIN, V); \
+ OUT_WRITE(E0_ENABLE_PIN,V); \
+ OUT_WRITE(E1_ENABLE_PIN,V); \
+ OUT_WRITE(E2_ENABLE_PIN,V); \
+ }while(0)
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 3 // Analog input 3, digital pin 54 PA0 E1_THERMISTOR
+#define TEMP_1_PIN 4 // Analog input 4, digital pin 55 PA1 E2_THERMISTOR
+#define TEMP_2_PIN 5 // Analog input 5, digital pin 56 PA2 E3_THERMISTOR
+#define TEMP_BED_PIN 0 // Analog input 0, digital pin 51 PC2 BED_THERMISTOR_1
+#define TEMP_BED_1_PIN 1 // Analog input 1, digital pin 52 PC3 BED_THERMISTOR_2
+#define TEMP_BED_2_PIN 2 // Analog input 2, digital pin 53 PA3 BED_THERMISTOR_3
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 48 // PC7 E1_HEAT_PWM
+#define HEATER_1_PIN 49 // PB0 E2_HEAT_PWM
+#define HEATER_2_PIN 50 // PB1 E3_HEAT_PWM
+#define HEATER_BED_PIN 46 // PD14 (BED_HEAT_1 FET
+#define HEATER_BED_1_PIN 45 // PD13 (BED_HEAT_2 FET
+#define HEATER_BED_2_PIN 47 // PD15 (BED_HEAT_3 FET
+
+#define FAN_PIN 57 // PC4 E1_FAN PWM pin, Part cooling fan FET
+#define FAN1_PIN 58 // PC5 E2_FAN PWM pin, Extruder fan FET
+#define FAN2_PIN 59 // PE8 E3_FAN PWM pin, Controller fan FET
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN 58 // FAN1_PIN
+#endif
+
+//
+// Misc functions
+//
+#define SDSS 16 // PA4 SPI_CS
+#define LED_PIN -1 // 9 // PE1 green LED Heart beat
+#define PS_ON_PIN -1
+#define KILL_PIN -1
+#define POWER_LOSS_PIN -1 // PWR_LOSS / nAC_FAULT
+
+//
+// LCD / Controller
+//
+//#define SD_DETECT_PIN 66 // PA15 SD_CA
+//#define BEEPER_PIN 24 // PC9 SDIO_D1
+//#define LCD_PINS_RS 65 // PE9 Y_DIR
+//#define LCD_PINS_ENABLE 59 // PE8 E3_FAN
+//#define LCD_PINS_D4 10 // PB12 SPI_C
+//#define LCD_PINS_D5 13 // PB13 SPI_S
+//#define LCD_PINS_D6 12 // PB14 SPI_M
+//#define LCD_PINS_D7 11 // PB15 SPI_M
+//#define BTN_EN1 57 // PC4 E1_FAN
+//#define BTN_EN2 58 // PC5 E2_FAN
+//#define BTN_ENC 52 // PC3 BED_THE
+
+//
+// Extension pins
+//
+//#define EXT0_PIN 49 // PB0 E2_HEAT
+//#define EXT1_PIN 50 // PB1 E3_HEAT
+//#define EXT2_PIN // PB2 not used (tied to ground
+//#define EXT3_PIN 39 // PD8 X_STOP
+//#define EXT4_PIN 40 // PD9 Y_STOP
+//#define EXT5_PIN 41 // PD10 Z_STOP
+//#define EXT6_PIN 42 // PD11
+//#define EXT7_PIN 71 // PD12 E1_PW
+//#define EXT8_PIN 64 // PB10 Y_PWM
+
+// WIFI
+// 2 // PD3 CTS
+// 3 // PD4 RTS
+// 4 // PD5 TX
+// 5 // PD6 RX
+// 6 // PB5 WIFI_WAKEUP
+// 7 // PE11 WIFI_RESET
+// 8 // PE12 WIFI_BOOT
+
+// I2C USER
+// 14 // PB7 SDA
+// 15 // PB6 SCL
+
+// JTAG
+// 20 // PA13 JTAG_TMS/SWDIO
+// 21 // PA14 JTAG_TCK/SWCLK
+// 22 // PB3 JTAG_TDO/SWO
+
+//
+// Onboard SD support
+//
+#define SDIO_D0_PIN 23 // PC8 SDIO_D0
+#define SDIO_D1_PIN 24 // PC9 SDIO_D1
+//#define SD_CARD_DETECT_PIN 25 // PA15 SD_CARD_DETECT
+#define SDIO_D2_PIN 26 // PC10 SDIO_D2
+#define SDIO_D3_PIN 27 // PC11 SDIO_D3
+#define SDIO_CK_PIN 28 // PC12 SDIO_CK
+#define SDIO_CMD_PIN 29 // PD2 SDIO_CMD
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SDIO_SUPPORT // Use SDIO for onboard SD
+
+ #ifndef SDIO_SUPPORT
+ #define SOFTWARE_SPI // Use soft SPI for onboard SD
+ #undef SDSS
+ #define SDSS SDIO_D3_PIN
+ #define SD_SCK_PIN SDIO_CK_PIN
+ #define SD_MISO_PIN SDIO_D0_PIN
+ #define SD_MOSI_PIN SDIO_CMD_PIN
+ #endif
+#endif
+
+// OTG
+// 30 // PA11 OTG_DM
+// 31 // PA12 OTG_DP
+
+// USER_PINS
+// 34 // PD7 USER3
+// 35 // PB9 USER1
+// 36 // PE0 USER2
+// 37 // PB4 USER4
+
+// USERKET
+// 38 // PE7 USER_BUTTON
+
+// 0 // PA9 TX
+// 1 // PA10 RX
+
+// IR/PROBE
+// 32 // PD1 IR_OUT
+// 33 // PC1 IR_ON
+
+/**
+ * Logical pin vs. port/pin cross reference
+ *
+ * PA0 54 // E1_THERMISTOR PA9 0 // TX
+ * PA1 55 // E2_THERMISTOR PA10 1 // RX
+ * PA2 56 // E3_THERMISTOR PD3 2 // CTS
+ * PA3 53 // BED_THERMISTOR_3 PD4 3 // RTS
+ * PA4 16 // SPI_CS PD5 4 // TX
+ * PA5 17 // SPI_SCK PD6 5 // RX
+ * PA6 18 // SPI_MISO PB5 6 // WIFI_WAKEUP
+ * PA7 19 // SPI_MOSI PE11 7 // WIFI_RESET
+ * PA8 43 // V_STOP PE12 8 // WIFI_BOOT
+ * PA9 0 // TX PE1 9 // STATUS_LED
+ * PA10 1 // RX PB12 10 // SPI_CS
+ * PA11 30 // OTG_DM PB15 11 // SPI_MOSI
+ * PA12 31 // OTG_DP PB14 12 // SPI_MISO
+ * PA13 20 // JTAG_TMS/SWDIO PB13 13 // SPI_SCK
+ * PA14 21 // JTAG_TCK/SWCLK PB7 14 // SDA
+ * PA15 25 // SD_CARD_DETECT PB6 15 // SCL
+ * PB0 49 // E2_HEAT_PWM PA4 16 // SPI_CS
+ * PB1 50 // E3_HEAT_PWM PA5 17 // SPI_SCK
+ * PB3 22 // JTAG_TDO/SWO PA6 18 // SPI_MISO
+ * PB4 37 // USER4 PA7 19 // SPI_MOSI
+ * PB5 6 // WIFI_WAKEUP PA13 20 // JTAG_TMS/SWDIO
+ * PB6 15 // SCL PA14 21 // JTAG_TCK/SWCLK
+ * PB7 14 // SDA PB3 22 // JTAG_TDO/SWO
+ * PB8 77 // E3_PWM PC8 23 // SDIO_D0
+ * PB9 35 // USER1 PC9 24 // SDIO_D1
+ * PB10 64 // Y_PWM PA15 25 // SD_CARD_DETECT
+ * PB12 10 // SPI_CS PC10 26 // SDIO_D2
+ * PB13 13 // SPI_SCK PC11 27 // SDIO_D3
+ * PB14 12 // SPI_MISO PC12 28 // SDIO_CK
+ * PB15 11 // SPI_MOSI PD2 29 // SDIO_CMD
+ * PC0 68 // Z_DIR PA11 30 // OTG_DM
+ * PC1 33 // IR_ON PA12 31 // OTG_DP
+ * PC2 51 // BED_THERMISTOR_1 PD1 32 // IR_OUT
+ * PC3 52 // BED_THERMISTOR_2 PC1 33 // IR_ON
+ * PC4 57 // E1_FAN PD7 34 // USER3
+ * PC5 58 // E2_FAN PB9 35 // USER1
+ * PC6 67 // Z_PWM PE0 36 // USER2
+ * PC7 48 // E1_HEAT_PWM PB4 37 // USER4
+ * PC8 23 // SDIO_D0 PE7 38 // USER_BUTTON
+ * PC9 24 // SDIO_D1 PD8 39 // X_STOP
+ * PC10 26 // SDIO_D2 PD9 40 // Y_STOP
+ * PC11 27 // SDIO_D3 PD10 41 // Z_STOP
+ * PC12 28 // SDIO_CK PD11 42 // U_STOP
+ * PC13 70 // E1_DIR PA8 43 // V_STOP
+ * PC14 69 // E1_RESET PD0 44 // W_STOP
+ * PC15 66 // Z_RESET PD13 45 // BED_HEAT_2
+ * PD0 44 // W_STOP PD14 46 // BED_HEAT_1
+ * PD1 32 // IR_OUT PD15 47 // BED_HEAT_3
+ * PD2 29 // SDIO_CMD PC7 48 // E1_HEAT_PWM
+ * PD3 2 // CTS PB0 49 // E2_HEAT_PWM
+ * PD4 3 // RTS PB1 50 // E3_HEAT_PWM
+ * PD5 4 // TX PC2 51 // BED_THERMISTOR_1
+ * PD6 5 // RX PC3 52 // BED_THERMISTOR_2
+ * PD7 34 // USER3 PA3 53 // BED_THERMISTOR_3
+ * PD8 39 // X_STOP PA0 54 // E1_THERMISTOR
+ * PD9 40 // Y_STOP PA1 55 // E2_THERMISTOR
+ * PD10 41 // Z_STOP PA2 56 // E3_THERMISTOR
+ * PD11 42 // U_STOP PC4 57 // E1_FAN
+ * PD12 71 // E1_PWM PC5 58 // E2_FAN
+ * PD13 45 // BED_HEAT_2 PE8 59 // E3_FAN
+ * PD14 46 // BED_HEAT_1 PE13 60 // X_RESET
+ * PD15 47 // BED_HEAT_3 PE14 61 // X_PWM
+ * PE0 36 // USER2 PE15 62 // X_DIR
+ * PE1 9 // STATUS_LED PE10 63 // Y_RESET
+ * PE2 76 // E3_DIR PB10 64 // Y_PWM
+ * PE3 75 // E3_RESET PE9 65 // Y_DIR
+ * PE4 72 // E2_RESET PC15 66 // Z_RESET
+ * PE5 73 // E2_PWM PC6 67 // Z_PWM
+ * PE6 74 // E2_DIR PC0 68 // Z_DIR
+ * PE7 38 // USER_BUTTON PC14 69 // E1_RESET
+ * PE8 59 // E3_FAN PC13 70 // E1_DIR
+ * PE9 65 // Y_DIR PD12 71 // E1_PWM
+ * PE10 63 // Y_RESET PE4 72 // E2_RESET
+ * PE11 7 // WIFI_RESET PE5 73 // E2_PWM
+ * PE12 8 // WIFI_BOOT PE6 74 // E2_DIR
+ * PE13 60 // X_RESET PE3 75 // E3_RESET
+ * PE14 61 // X_PWM PE2 76 // E3_DIR
+ * PE15 62 // X_DIR PB8 77 // E3_PWM
+ */
diff --git a/Marlin/src/pins/stm32f4/pins_VAKE403D.h b/Marlin/src/pins/stm32f4/pins_VAKE403D.h
new file mode 100644
index 0000000..1135af8
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_VAKE403D.h
@@ -0,0 +1,195 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F4, STM32F4xx)
+ #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "STM32F4 supports up to 2 hotends / E-steppers."
+#endif
+
+#define DEFAULT_MACHINE_NAME "STM32F446VET6"
+#define BOARD_INFO_NAME "STM32F4 VAkE"
+
+//#define I2C_EEPROM
+#define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+
+//
+// Servos
+//
+//#define SERVO0_PIN PE13
+//#define SERVO1_PIN PE14
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PE10
+#define Y_STOP_PIN PE9
+#define Z_STOP_PIN PE8
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN PA4
+#endif
+
+//
+// Filament runout
+//
+#define FIL_RUNOUT_PIN PA3
+
+//
+// Steppers
+//
+
+#define STEPPER_ENABLE_PIN PB2
+
+#define X_STEP_PIN PC6 // X_STEP
+#define X_DIR_PIN PC7 // X_DIR
+#define X_ENABLE_PIN PB2 //
+#ifndef X_CS_PIN
+ #define X_CS_PIN PC8 // X_CS
+#endif
+
+#define Y_STEP_PIN PD9 // Y_STEP
+#define Y_DIR_PIN PD10 // Y_DIR
+#define Y_ENABLE_PIN PB2 //
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PD11 // Y_CS
+#endif
+
+#define Z_STEP_PIN PE15 // Z_STEP
+#define Z_DIR_PIN PB10 // Z_DIR
+#define Z_ENABLE_PIN PB2
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PD8
+#endif
+
+#define E0_STEP_PIN PB1
+#define E0_DIR_PIN PB13
+#define E0_ENABLE_PIN PB2
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PE11
+#endif
+
+#define E1_STEP_PIN PC4
+#define E1_DIR_PIN PC5
+#define E1_ENABLE_PIN PB2
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN PB0
+#endif
+
+#define SD_SCK_PIN PE12 // PA5 // SPI1 for SD card
+#define SD_MISO_PIN PE13 // PA6
+#define SD_MOSI_PIN PE14 // PA7
+
+// added for SD card : optional or not ???
+//#define SD_CHIP_SELECT_PIN SDSS // The default chip select pin for the SD card is SS.
+// The following three pins must not be redefined for hardware SPI.
+//#define SPI_MOSI_PIN SD_MOSI_PIN // SPI Master Out Slave In pin
+//#define SPI_MISO_PIN SD_MISO_PIN // SPI Master In Slave Out pin
+//#define SPI_SCK_PIN SD_SCK_PIN // SPI Clock pin
+
+//
+// Temperature Sensors (Analog inputs)
+//
+
+#define TEMP_0_PIN PC0 // Analog Input
+#define TEMP_1_PIN PC1 // Analog Input
+#define TEMP_2_PIN PC2 // Analog Input
+#define TEMP_3_PIN PC3 // Analog Input
+#define TEMP_BED_PIN PC3 // Analog Input
+
+//
+// Heaters / Fans
+//
+
+#define HEATER_0_PIN PD15
+#define HEATER_1_PIN PD14
+#define HEATER_BED_PIN PD12
+
+#ifndef FAN_PIN
+ #define FAN_PIN PD13
+#endif
+#define FAN1_PIN PB5 // PA0
+#define FAN2_PIN PB4 // PA1
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PD13
+#endif
+
+//
+// Misc. Functions
+//
+
+//#define CASE_LIGHT_PIN_CI PF13
+//#define CASE_LIGHT_PIN_DO PF14
+//#define NEOPIXEL_PIN PF13
+
+//
+// Průša i3 MK2 Multi Material Multiplexer Support
+//
+//#define E_MUX0_PIN PG3
+//#define E_MUX1_PIN PG4
+
+#define LED_PIN PB14 // Alive
+#define PS_ON_PIN PE0
+#define KILL_PIN PD5
+#define POWER_LOSS_PIN PA4 // ?? Power loss / nAC_FAULT
+
+#if ENABLED(SDSUPPORT)
+ #define SD_DETECT_PIN PB7
+ #define SD_SS_PIN PB_15 // USD_CS -> CS for onboard SD
+#endif
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+ #if ENABLED(SDSUPPORT)
+ #define SDSS PB6 // CS for SD card in LCD
+ #endif
+ #define BEEPER_PIN PC9
+ #define LCD_PINS_RS PC12
+ #define LCD_PINS_ENABLE PD7
+ #define LCD_PINS_D4 PD1
+ #define LCD_PINS_D5 PD2
+ #define LCD_PINS_D6 PD3
+ #define LCD_PINS_D7 PD4
+ #define BTN_EN1 PD6
+ #define BTN_EN2 PD0
+ #define BTN_ENC PB12
+#endif
+
+//
+// ST7920 Delays
+//
+#ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+#endif
+#ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+#endif
+#ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(715)
+#endif
diff --git a/Marlin/src/pins/stm32f7/pins_NUCLEO_F767ZI.h b/Marlin/src/pins/stm32f7/pins_NUCLEO_F767ZI.h
new file mode 100644
index 0000000..5e50548
--- /dev/null
+++ b/Marlin/src/pins/stm32f7/pins_NUCLEO_F767ZI.h
@@ -0,0 +1,197 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F767xx)
+ #error "Oops! Select an STM32F767 environment"
+#endif
+
+#define BOARD_INFO_NAME "NUCLEO-F767ZI"
+#define DEFAULT_MACHINE_NAME "Prototype Board"
+
+#if NO_EEPROM_SELECTED
+ #define FLASH_EEPROM_EMULATION // Use Flash-based EEPROM emulation
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // Decrease delays and flash wear by spreading writes across the
+ // 128 kB sector allocated for EEPROM emulation.
+ // Not yet supported on F7 hardware
+ //#define FLASH_EEPROM_LEVELING
+#endif
+
+/**
+ * Timer assignments
+ *
+ * TIM1 -
+ * TIM2 - Hardware PWM (Fan/Heater Pins)
+ * TIM3 - Hardware PWM (Servo Pins)
+ * TIM4 - STEP_TIMER (Marlin)
+ * TIM5 -
+ * TIM6 - TIMER_TONE (variant.h)
+ * TIM7 - TIMER_SERVO (variant.h)
+ * TIM9 - TIMER_SERIAL (platformio.ini)
+ * TIM10 - For some reason trips Watchdog when used for SW Serial
+ * TIM11 -
+ * TIM12 -
+ * TIM13 -
+ * TIM14 - TEMP_TIMER (Marlin)
+ *
+ */
+#define STEP_TIMER 4
+#define TEMP_TIMER 14
+
+/**
+ * These pin assignments are arbitrary and intending for testing purposes.
+ * Assignments may not be ideal, and not every assignment has been tested.
+ * Proceed at your own risk.
+ * _CN7_
+ * (X_STEP) PC6 | · · | PB8 (X_EN)
+ * (X_DIR) PB15 | · · | PB9 (X_CS)
+ * (LCD_D4) PB13 | · · | AVDD
+ * _CN8_ PB12 | · · | GND
+ * NC | · · | PC8 (HEATER_0) PA15 | · · | PA5 (SCLK)
+ * IOREF | · · | PC9 (BEEPER) PC7 | · · | PA6 (MISO)
+ * RESET | · · | PC10 (SERVO1_PIN) PB5 | · · | PA7 (MOSI)
+ * +3.3V | · · | PC11 (HEATER_BED) PB3 | · · | PD14 (SD_DETECT)
+ * +5V | · · | PC12 (SDSS) PA4 | · · | PD15 (LCD_ENABLE)
+ * GND | · · | PD2 (SERVO0_PIN) PB4 | · · | PF12 (LCD_RS)
+ * GND | · · | PG2  ̄ ̄ ̄
+ * VIN | · · | PG3
+ *  ̄ ̄ ̄ _CN10
+ * AVDD | · · | PF13 (BTN_EN1)
+ * _CN9_ AGND | · · | PE9 (BTN_EN2)
+ * (TEMP_0) PA3 | · · | PD7 GND | · · | PE11 (BTN_ENC)
+ * (TEMP_BED) PC0 | · · | PD6 PB1 | · · | PF14
+ * PC3 | · · | PD5 PC2 | · · | PE13
+ * PF3 | · · | PD4 PF4 | · · | PF15
+ * PF5 | · · | PD3 (E_STEP) PB6 | · · | PG14 (E_EN)
+ * PF10 | · · | GND (E_DIR) PB2 | · · | PG9 (E_CS)
+ * NC | · · | PE2 GND | · · | PE8
+ * PA7 | · · | PE4 PD13 | · · | PE7
+ * PF2 | · · | PE5 PD12 | · · | GND
+ * (Y_STEP) PF1 | · · | PE6 (Y_EN) (Z_STEP) PD11 | · · | PE10 (Z_EN)
+ * (Y_DIR) PF0 | · · | PE3 (Y_CS) (Z_DIR) PE2 | · · | PE12 (Z_CS)
+ * GND | · · | PF8 GND | · · | PE14
+ * (Z_MAX) PD0 | · · | PF7 (X_MIN) PA0 | · · | PE15
+ * (Z_MIN) PD1 | · · | PF9 (X_MAX) PB0 | · · | PB10 (FAN)
+ * (Y_MAX) PG0 | · · | PG1 (Y_MIN) PE0 | · · | PB11 (FAN1)
+ *  ̄ ̄ ̄  ̄ ̄ ̄ ̄
+ */
+
+#define X_MIN_PIN PF7
+#define X_MAX_PIN PF9
+#define Y_MIN_PIN PG1
+#define Y_MAX_PIN PG0
+#define Z_MIN_PIN PD1
+#define Z_MAX_PIN PD0
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PB15
+#define X_ENABLE_PIN PB8
+#define X_CS_PIN PB9
+
+#define Y_STEP_PIN PF1
+#define Y_DIR_PIN PF0
+#define Y_ENABLE_PIN PE6
+#define Y_CS_PIN PE3
+
+#define Z_STEP_PIN PD11
+#define Z_DIR_PIN PE2
+#define Z_ENABLE_PIN PE10
+#define Z_CS_PIN PE12
+
+#define E0_STEP_PIN PB6
+#define E0_DIR_PIN PB2
+#define E0_ENABLE_PIN PG14
+#define E0_CS_PIN PG9
+
+#if HAS_TMC_UART
+ #define X_SERIAL_TX_PIN PB9
+ #define X_SERIAL_RX_PIN PB9
+
+ #define Y_SERIAL_TX_PIN PE3
+ #define Y_SERIAL_RX_PIN PE3
+
+ #define Z_SERIAL_TX_PIN PE12
+ #define Z_SERIAL_RX_PIN PE12
+
+ #define E_SERIAL_TX_PIN PG9
+ #define E_SERIAL_RX_PIN PG9
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA3
+#define TEMP_BED_PIN PC0
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA15 // PWM Capable, TIM2_CH1
+#define HEATER_BED_PIN PB3 // PWM Capable, TIM2_CH2
+
+#ifndef FAN_PIN
+ #define FAN_PIN PB10 // PWM Capable, TIM2_CH3
+#endif
+#define FAN1_PIN PB11 // PWM Capable, TIM2_CH4
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN FAN1_PIN
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PB4 // PWM Capable, TIM3_CH1
+#define SERVO1_PIN PB5 // PWM Capable, TIM3_CH2
+
+// SPI for external SD Card (Not entirely sure this will work)
+#define SD_SCK_PIN PA5
+#define SD_MISO_PIN PA6
+#define SD_MOSI_PIN PA7
+#define SD_SS_PIN PA4
+#define SDSS PA4
+
+#define LED_PIN LED_BLUE
+
+//
+// LCD / Controller
+//
+#if IS_RRD_FG_SC
+ #define BEEPER_PIN PC7 // LCD_BEEPER
+ #define BTN_ENC PE11 // BTN_ENC
+ #define SD_DETECT_PIN PD14
+ #define LCD_PINS_RS PF12 // LCD_RS
+ #define LCD_PINS_ENABLE PD15 // LCD_EN
+ #define LCD_PINS_D4 PB13 // LCD_D4
+ #define BTN_EN1 PF13 // BTN_EN1
+ #define BTN_EN2 PE9 // BTN_EN2
+
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(63)
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(780)
+#endif
diff --git a/Marlin/src/pins/stm32f7/pins_REMRAM_V1.h b/Marlin/src/pins/stm32f7/pins_REMRAM_V1.h
new file mode 100644
index 0000000..133dcd2
--- /dev/null
+++ b/Marlin/src/pins/stm32f7/pins_REMRAM_V1.h
@@ -0,0 +1,137 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(STM32F7xx)
+ #error "Oops! Select an STM32F7 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "RemRam v1"
+#define DEFAULT_MACHINE_NAME "RemRam"
+
+#if NO_EEPROM_SELECTED
+ #define SRAM_EEPROM_EMULATION // Emulate the EEPROM using Backup SRAM
+#endif
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "RemRam only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+//
+// Limit Switches
+//
+#if DISABLED(SENSORLESS_HOMING)
+ #define X_MIN_PIN 58
+ #define X_MAX_PIN 59
+ #define Y_MIN_PIN 60
+ #define Y_MAX_PIN 61
+ #define Z_MIN_PIN 62
+ #define Z_MAX_PIN 63
+#else
+ #define X_STOP_PIN 36
+ #define Y_STOP_PIN 39
+ #define Z_MIN_PIN 62
+ #define Z_MAX_PIN 42
+#endif
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 26 // EXT_D1
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 22
+#define X_DIR_PIN 35
+#define X_ENABLE_PIN 34
+#define X_CS_PIN 14
+
+#define Y_STEP_PIN 23
+#define Y_DIR_PIN 38
+#define Y_ENABLE_PIN 37
+#define Y_CS_PIN 15
+
+#define Z_STEP_PIN 24
+#define Z_DIR_PIN 41
+#define Z_ENABLE_PIN 40
+#define Z_CS_PIN 16
+
+#define E0_STEP_PIN 25
+#define E0_DIR_PIN 44
+#define E0_ENABLE_PIN 43
+#define E0_CS_PIN 10
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 64 // THERM_1
+#define TEMP_1_PIN 65 // THERM_2
+#define TEMP_BED_PIN 66 // THERM_3
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 33
+#define HEATER_BED_PIN 31
+
+#ifndef FAN_PIN
+ #define FAN_PIN 30 // "FAN1"
+#endif
+#define FAN1_PIN 32 // "FAN2"
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN 32
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN 26 // PWM_EXT1
+#define SERVO1_PIN 27 // PWM_EXT2
+
+#define SDSS 57 // Onboard SD card reader
+//#define SDSS 9 // LCD SD card reader
+#define LED_PIN 21 // STATUS_LED
+
+//
+// LCD / Controller
+//
+#define SD_DETECT_PIN 56 // SD_CARD_DET
+#define BEEPER_PIN 46 // LCD_BEEPER
+#define LCD_PINS_RS 49 // LCD_RS
+#define LCD_PINS_ENABLE 48 // LCD_EN
+#define LCD_PINS_D4 50 // LCD_D4
+#define LCD_PINS_D5 51 // LCD_D5
+#define LCD_PINS_D6 52 // LCD_D6
+#define LCD_PINS_D7 53 // LCD_D7
+#define BTN_EN1 54 // BTN_EN1
+#define BTN_EN2 55 // BTN_EN2
+#define BTN_ENC 47 // BTN_ENC
+
+//
+// Timers
+//
+
+#define STEP_TIMER 2
diff --git a/Marlin/src/pins/teensy2/pins_5DPRINT.h b/Marlin/src/pins/teensy2/pins_5DPRINT.h
new file mode 100644
index 0000000..908e12e
--- /dev/null
+++ b/Marlin/src/pins/teensy2/pins_5DPRINT.h
@@ -0,0 +1,148 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Rev B 2 JUN 2017
+ *
+ * Converted to Arduino pin numbering
+ */
+
+/**
+ * There are two Arduino IDE extensions that are compatible with this board
+ * and with the mainstream Marlin software.
+ *
+ * Teensyduino - https://www.pjrc.com/teensy/teensyduino.html
+ * Select Teensy++ 2.0 in Arduino IDE from the 'Tools > Board' menu
+ *
+ * Installation instructions are at the above URL. Don't bother loading the
+ * libraries - they are not used with the Marlin software.
+ *
+ * Printrboard - https://github.com/scwimbush/Printrboard-HID-Arduino-IDE-Support
+ *
+ * Installation:
+ *
+ * 1. Go to the above URL, click on the "Clone or Download" button and then
+ * click on "Download ZIP" button.
+ * 2. Unzip the file, find the "printrboard" directory and then copy it to the
+ * hardware directory in Arduino. The Arduino hardware directory will probably
+ * be located in a path similar to this: C:\Program Files (x86)\Arduino\hardware.
+ * 3. Restart Arduino.
+ * 4. Select "Printrboard" from the 'Tools > Board' menu.
+ *
+ * Teensyduino is the most popular option. Printrboard is used if your board doesn't have
+ * the Teensyduino bootloader on it.
+ */
+
+/**
+ * To burn the bootloader that comes with Printrboard:
+ *
+ * 1. Connect your programmer to the board.
+ * 2. In the Arduino IDE select "Printrboard" and then select the programmer.
+ * 3. In the Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
+ * 4. The programmer is no longer needed. Remove it.
+ */
+
+/**
+ * 5DPrint D8 Driver board pin assignments
+ *
+ * https://bitbucket.org/makible/5dprint-d8-controller-board
+ */
+
+#if NOT_TARGET(__AVR_AT90USB1286__)
+ #error "Oops! Select 'Teensy++ 2.0' or 'Printrboard' in 'Tools > Board.'"
+#endif
+
+#define DEFAULT_MACHINE_NAME "Makibox"
+#define BOARD_INFO_NAME "5DPrint D8"
+
+//
+// Servos
+//
+#define SERVO0_PIN 41
+#define SERVO1_PIN 42
+#define SERVO2_PIN 43
+#define SERVO3_PIN 44
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 37 // E5
+#define Y_STOP_PIN 36 // E4
+#define Z_STOP_PIN 19 // E7
+
+//
+// Steppers
+//
+#define X_STEP_PIN 28 // A0
+#define X_DIR_PIN 29 // A1
+#define X_ENABLE_PIN 17 // C7
+
+#define Y_STEP_PIN 30 // A2
+#define Y_DIR_PIN 31 // A3
+#define Y_ENABLE_PIN 13 // C3
+
+#define Z_STEP_PIN 32 // A4
+#define Z_DIR_PIN 33 // A5
+#define Z_ENABLE_PIN 12 // C2
+
+#define E0_STEP_PIN 34 // A6
+#define E0_DIR_PIN 35 // A7
+#define E0_ENABLE_PIN 11 // C1
+
+//
+// Digital Microstepping
+//
+#define X_MS1_PIN 25 // B5
+#define X_MS2_PIN 26 // B6
+#define Y_MS1_PIN 9 // E1
+#define Y_MS2_PIN 8 // E0
+#define Z_MS1_PIN 7 // D7
+#define Z_MS2_PIN 6 // D6
+#define E0_MS1_PIN 5 // D5
+#define E0_MS2_PIN 4 // D4
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 1 // F1 Analog Input
+#define TEMP_BED_PIN 0 // F0 Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 15 // C5
+#define HEATER_BED_PIN 14 // C4
+
+#ifndef FAN_PIN
+ #define FAN_PIN 16 // C6 PWM3A
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 20 // B0
+
+//DIGIPOTS slave addresses
+#ifndef DIGIPOT_I2C_ADDRESS_A
+ #define DIGIPOT_I2C_ADDRESS_A 0x2C // unshifted slave address for DIGIPOT 0x2C (0x58 <- 0x2C << 1)
+#endif
diff --git a/Marlin/src/pins/teensy2/pins_BRAINWAVE.h b/Marlin/src/pins/teensy2/pins_BRAINWAVE.h
new file mode 100644
index 0000000..97d210a
--- /dev/null
+++ b/Marlin/src/pins/teensy2/pins_BRAINWAVE.h
@@ -0,0 +1,126 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Brainwave 1.0 pin assignments (AT90USB646)
+ *
+ * Requires hardware bundle for Arduino:
+ * https://github.com/unrepentantgeek/brainwave-arduino
+ */
+
+/**
+ * Rev B 16 JAN 2017
+ *
+ * Added pointer to a currently available Arduino IDE extension that will
+ * allow this board to use the latest Marlin software
+ */
+
+/**
+ * Rev C 2 JUN 2017
+ *
+ * Converted to Arduino pin numbering
+ */
+
+/**
+ * Marlin_AT90USB - https://github.com/Bob-the-Kuhn/Marlin_AT90USB
+ * This is the only known IDE extension that is compatible with the pin definitions
+ * in this file, Adrduino 1.6.12 and the latest mainstream Marlin software.
+ *
+ * "Marlin_AT90USB" makes PWM0A available rather than the usual PWM1C. These PWMs share
+ * the same physical pin. Marlin uses TIMER1 to generate interrupts and sets it up such
+ * that PWM1A, PWM1B & PWM1C can't be used.
+ *
+ * Installation:
+ *
+ * 1. In the Arduino IDE, under Files -> Preferences paste the following URL
+ * https://rawgit.com/Bob-the-Kuhn/Marlin_AT90USB/master/package_MARLIN_AT90USB_index.json
+ * 2. Under Tools > Board -> Boards manager, scroll to the bottom, click on MARLIN_AT90USB
+ * and then click on "Install"
+ * 3. Select "AT90USB646_TEENSYPP" from the 'Tools > Board' menu.
+ */
+
+/**
+ * To burn the bootloader that comes with Marlin_AT90USB:
+ *
+ * 1. Connect your programmer to the board.
+ * 2. In Arduino IDE select "AT90USB646_TEENSYPP" and then select the programmer.
+ * 3. In Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
+ * 4. The programmer is no longer needed. Remove it.
+ */
+
+#if NOT_TARGET(__AVR_AT90USB646__)
+ #error "Oops! Select 'AT90USB646_TEENSYPP' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Brainwave"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 35 // A7
+#define Y_STOP_PIN 34 // A6
+#define Z_STOP_PIN 33 // A5
+
+//
+// Steppers
+//
+#define X_STEP_PIN 3 // D3
+#define X_DIR_PIN 5 // D5
+#define X_ENABLE_PIN 4 // D4
+#define X_ATT_PIN 2 // D2
+
+#define Y_STEP_PIN 7 // D7
+#define Y_DIR_PIN 9 // E1
+#define Y_ENABLE_PIN 8 // E0
+#define Y_ATT_PIN 6 // D6
+
+#define Z_STEP_PIN 11 // C1
+#define Z_DIR_PIN 13 // C3
+#define Z_ENABLE_PIN 12 // C2
+#define Z_ATT_PIN 10 // C0
+
+#define E0_STEP_PIN 15 // C5
+#define E0_DIR_PIN 17 // C7
+#define E0_ENABLE_PIN 16 // C6
+#define E0_ATT_PIN 14 // C4
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 7 // F7 Analog Input
+#define TEMP_BED_PIN 6 // F6 Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 32 // A4 Extruder
+#define HEATER_BED_PIN 18 // E6 Bed
+
+#ifndef FAN_PIN
+ #define FAN_PIN 31 // A3 Fan
+#endif
+
+//
+// Misc. Functions
+//
+#define LED_PIN 19 // E7
diff --git a/Marlin/src/pins/teensy2/pins_BRAINWAVE_PRO.h b/Marlin/src/pins/teensy2/pins_BRAINWAVE_PRO.h
new file mode 100644
index 0000000..e41fcaa
--- /dev/null
+++ b/Marlin/src/pins/teensy2/pins_BRAINWAVE_PRO.h
@@ -0,0 +1,138 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Brainwave Pro pin assignments (AT90USB1286)
+ *
+ * Requires hardware bundle for Arduino:
+ * https://github.com/unrepentantgeek/brainwave-arduino
+ */
+
+/**
+ * Rev B 16 JAN 2017
+ *
+ * Added pointers to currently available Arduino IDE extensions that will
+ * allow this board to use the latest Marlin software
+ *
+ *
+ * Rev C 2 JUN 2017
+ *
+ * Converted to Arduino pin numbering
+ */
+
+/**
+ * There are two Arduino IDE extensions that are compatible with this board
+ * and with the mainstream Marlin software.
+ *
+ * Teensyduino - https://www.pjrc.com/teensy/teensyduino.html
+ * Select Teensy++ 2.0 in Arduino IDE from the 'Tools > Board' menu
+ *
+ * Installation instructions are at the above URL. Don't bother loading the
+ * libraries - they are not used with the Marlin software.
+ *
+ * Printrboard - https://github.com/scwimbush/Printrboard-HID-Arduino-IDE-Support
+ *
+ * Installation:
+ *
+ * 1. Go to the above URL, click on the "Clone or Download" button and then
+ * click on "Download ZIP" button.
+ * 2. Unzip the file, find the "printrboard" directory and then copy it to the
+ * hardware directory in Arduino. The Arduino hardware directory will probably
+ * be located in a path similar to this: C:\Program Files (x86)\Arduino\hardware.
+ * 3. Restart Arduino.
+ * 4. Select "Printrboard" from the 'Tools > Board' menu.
+ *
+ * Teensyduino is the most popular option. Printrboard is used if your board doesn't have
+ * the Teensyduino bootloader on it.
+ */
+
+/**
+ * To burn the bootloader that comes with Printrboard:
+ *
+ * 1. Connect your programmer to the board.
+ * 2. In the Arduino IDE select "Printrboard" and then select the programmer.
+ * 3. In the Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
+ * 4. The programmer is no longer needed. Remove it.
+ */
+
+#if NOT_TARGET(__AVR_AT90USB1286__)
+ #error "Oops! Select 'Teensy++ 2.0' or 'Printrboard' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Brainwave Pro"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 45 // F7
+#define Y_STOP_PIN 12 // C2
+#define Z_STOP_PIN 36 // E4
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN 11 // C1
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN 9 // E1
+#define X_DIR_PIN 8 // E0
+#define X_ENABLE_PIN 23 // B3
+
+#define Y_STEP_PIN 7 // D7
+#define Y_DIR_PIN 6 // D6
+#define Y_ENABLE_PIN 20 // B0
+
+#define Z_STEP_PIN 5 // D5
+#define Z_DIR_PIN 4 // D4
+#define Z_ENABLE_PIN 37 // E5
+
+#define E0_STEP_PIN 47 // E3
+#define E0_DIR_PIN 46 // E2
+#define E0_ENABLE_PIN 25 // B5
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 2 // F2 Analog Input
+#define TEMP_1_PIN 1 // F1 Analog Input
+#define TEMP_BED_PIN 0 // F0 Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 27 // B7
+#define HEATER_BED_PIN 26 // B6 Bed
+#ifndef FAN_PIN
+ #define FAN_PIN 16 // C6 Fan, PWM3A
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 20 // B0
+#define SD_DETECT_PIN 24 // B4
+#define LED_PIN 13 // C3
diff --git a/Marlin/src/pins/teensy2/pins_PRINTRBOARD.h b/Marlin/src/pins/teensy2/pins_PRINTRBOARD.h
new file mode 100644
index 0000000..2401c97
--- /dev/null
+++ b/Marlin/src/pins/teensy2/pins_PRINTRBOARD.h
@@ -0,0 +1,169 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Rev B 2 JUN 2017
+ *
+ * Converted to Arduino pin numbering
+ */
+
+/**
+ * There are two Arduino IDE extensions that are compatible with this board
+ * and with the mainstream Marlin software.
+ *
+ * Teensyduino - https://www.pjrc.com/teensy/teensyduino.html
+ * Select Teensy++ 2.0 in Arduino IDE from the 'Tools > Board' menu
+ *
+ * Installation instructions are at the above URL. Don't bother loading the
+ * libraries - they are not used with the Marlin software.
+ *
+ * Printrboard - https://github.com/scwimbush/Printrboard-HID-Arduino-IDE-Support
+ *
+ * Installation:
+ *
+ * 1. Go to the above URL, click on the "Clone or Download" button and then
+ * click on "Download ZIP" button.
+ * 2. Unzip the file, find the "printrboard" directory and then copy it to the
+ * hardware directory in Arduino. The Arduino hardware directory will probably
+ * be located in a path similar to this: C:\Program Files (x86)\Arduino\hardware.
+ * 3. Restart Arduino.
+ * 4. Select "Printrboard" from the 'Tools > Board' menu.
+ *
+ * Teensyduino is the most popular option. Printrboard is used if your board doesn't have
+ * the Teensyduino bootloader on it.
+ */
+
+/**
+ * To burn the bootloader that comes with Printrboard:
+ *
+ * 1. Connect your programmer to the board.
+ * 2. In the Arduino IDE select "Printrboard" and then select the programmer.
+ * 3. In the Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
+ * 4. The programmer is no longer needed. Remove it.
+ */
+
+#if NOT_TARGET(__AVR_AT90USB1286__)
+ #error "Oops! Select 'Teensy++ 2.0' or 'Printrboard' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Printrboard"
+
+// Disable JTAG pins so they can be used for the Extrudrboard
+#define DISABLE_JTAG
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 47 // E3
+#define Y_STOP_PIN 20 // B0 SS
+#define Z_STOP_PIN 36 // E4
+
+//
+// Steppers
+//
+#define X_STEP_PIN 28 // A0
+#define X_DIR_PIN 29 // A1
+#define X_ENABLE_PIN 19 // E7
+
+#define Y_STEP_PIN 30 // A2
+#define Y_DIR_PIN 31 // A3
+#define Y_ENABLE_PIN 18 // E6
+
+#define Z_STEP_PIN 32 // A4
+#define Z_DIR_PIN 33 // A5
+#define Z_ENABLE_PIN 17 // C7
+
+#define E0_STEP_PIN 34 // A6
+#define E0_DIR_PIN 35 // A7
+#define E0_ENABLE_PIN 13 // C3
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 1 // Analog Input
+#define TEMP_BED_PIN 0 // Analog Input
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 15 // C5 PWM3B - Extruder
+#define HEATER_1_PIN 44 // F6
+#define HEATER_2_PIN 45 // F7
+#define HEATER_BED_PIN 14 // C4 PWM3C
+
+#ifndef FAN_PIN
+ #define FAN_PIN 16 // C6 PWM3A
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 26 // B6 SDCS
+#define FILWIDTH_PIN 2 // Analog Input
+
+//
+// LCD / Controller
+//
+#if IS_ULTRA_LCD && IS_NEWPANEL
+
+ #define LCD_PINS_RS 9 // E1 JP11-11
+ #define LCD_PINS_ENABLE 8 // E0 JP11-10
+ #define LCD_PINS_D4 7 // D7 JP11-8
+ #define LCD_PINS_D5 6 // D6 JP11-7
+ #define LCD_PINS_D6 5 // D5 JP11-6
+ #define LCD_PINS_D7 4 // D4 JP11-5
+
+ #if ANY(VIKI2, miniVIKI)
+ #define BEEPER_PIN 8 // E0 JP11-10
+
+ #define DOGLCD_A0 40 // F2 JP2-2
+ #define DOGLCD_CS 41 // F3 JP2-4
+ #define LCD_SCREEN_ROT_180
+
+ #define BTN_EN1 2 // D2 TX1 JP2-5
+ #define BTN_EN2 3 // D3 RX1 JP2-7
+ #define BTN_ENC 45 // F7 TDI JP2-12
+
+ #undef SDSS
+ #define SDSS 43 // F5 TMS JP2-8
+
+ #define STAT_LED_RED_PIN 12 // C2 JP11-14
+ #define STAT_LED_BLUE_PIN 10 // C0 JP11-12
+
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+
+ #define BTN_EN1 3 // D3 RX1 JP2-7
+ #define BTN_EN2 2 // D2 TX1 JP2-5
+ #define BTN_ENC 41 // F3 JP2-4
+ #undef SDSS
+ #define SDSS 38 // F0 B-THERM connector - use SD card on Panelolu2
+
+ #else
+
+ #define BTN_EN1 10 // C0 JP11-12
+ #define BTN_EN2 11 // C1 JP11-13
+ #define BTN_ENC 12 // C2 JP11-14
+
+ #endif
+
+#endif // IS_ULTRA_LCD && IS_NEWPANEL
diff --git a/Marlin/src/pins/teensy2/pins_PRINTRBOARD_REVF.h b/Marlin/src/pins/teensy2/pins_PRINTRBOARD_REVF.h
new file mode 100644
index 0000000..d4f9fc7
--- /dev/null
+++ b/Marlin/src/pins/teensy2/pins_PRINTRBOARD_REVF.h
@@ -0,0 +1,281 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Rev B 2 JUN 2017
+ *
+ * Converted to Arduino pin numbering
+ */
+
+/**
+ * There are two Arduino IDE extensions that are compatible with this board
+ * and with the mainstream Marlin software.
+ *
+ * Teensyduino - https://www.pjrc.com/teensy/teensyduino.html
+ * Installation - https://www.pjrc.com/teensy/td_download.html
+ *
+ * Select Teensy++ 2.0 in Arduino IDE from the 'Tools > Board' menu
+ *
+ * Note: With Teensyduino extension, the Arduino IDE will report 130048 bytes of program storage space available,
+ * but there is actually only 122880 bytes due to the larger DFU bootloader shipped by default on all Printrboard RevF.
+ *
+ * Printrboard - https://github.com/scwimbush/Printrboard-HID-Arduino-IDE-Support
+ *
+ * Installation:
+ *
+ * 1. Go to the above URL, click on the "Clone or Download" button and then
+ * click on "Download ZIP" button.
+ * 2. Unzip the file, find the "printrboard" directory and then copy it to the
+ * hardware directory in Arduino. The Arduino hardware directory will probably
+ * be located in a path similar to this: C:\Program Files (x86)\Arduino\hardware.
+ * 3. Restart Arduino.
+ * 4. Select "Printrboard" from the 'Tools > Board' menu.
+ *
+ * Teensyduino is the most popular and easiest option.
+ */
+
+/**
+ * To burn the bootloader that comes with Printrboard HID extension:
+ *
+ * 1. Connect your programmer to the board.
+ * 2. In the Arduino IDE select "Printrboard" and then select the programmer.
+ * 3. In the Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
+ * 4. The programmer is no longer needed. Remove it.
+ */
+
+#if NOT_TARGET(__AVR_AT90USB1286__)
+ #error "Oops! Select 'Teensy++ 2.0' or 'Printrboard' in 'Tools > Board.'"
+#endif
+
+#if !defined(__MARLIN_DEPS__) && !defined(USBCON)
+ #error "USBCON should be defined by the platform for this board."
+#endif
+
+#define BOARD_INFO_NAME "Printrboard Rev.F"
+
+// Disable JTAG pins so EXP1 pins work correctly
+// (Its pins are used for the Extrudrboard and filament sensor, for example).
+#define DISABLE_JTAG
+
+/**
+ * Note that REV F6 of the Printrboard stole the A HOTEND pin and
+ * reassigned it to a second fan for the extruder heater. It's
+ * recommended that you swap the A and B outputs on the Extrudrboard
+ * so EXTRUDERS=2 will still work on F6, using B for E1/HEATER_1/TEMP_1.
+ * See https://printrbot.zendesk.com/hc/en-us/articles/115003072346
+ *
+ * If you have REV F6 you probably also want to set E0_AUTO_FAN_PIN
+ * to PRINTRBOARD_F6_HEATER_FAN_PIN (44).
+ *
+ * Define NO_EXTRUDRBOARD if you don't have an EXTRUDRBOARD and wish to
+ * reassign different functions to EXP1.
+ *
+ * Define NO_EXTRUDRBOARD_OUTPUT_SWAP if you have a REV F5 or lower and
+ * want to use EXTRUDRBOARD A for E1 and EXTRUDRBOARD B for E2.
+ */
+//#define NO_EXTRUDRBOARD
+//#define NO_EXTRUDRBOARD_OUTPUT_SWAP
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 47 // E3
+#define Y_STOP_PIN 24 // B4 PWM2A
+#define Z_STOP_PIN 36 // E4
+
+//
+// Steppers
+//
+#define X_STEP_PIN 28 // A0
+#define X_DIR_PIN 29 // A1
+#define X_ENABLE_PIN 19 // E7
+
+#define Y_STEP_PIN 30 // A2
+#define Y_DIR_PIN 31 // A3
+#define Y_ENABLE_PIN 18 // E6
+
+#define Z_STEP_PIN 32 // A4
+#define Z_DIR_PIN 33 // A5
+#define Z_ENABLE_PIN 17 // C7
+
+#define E0_STEP_PIN 34 // A6
+#define E0_DIR_PIN 35 // A7
+#define E0_ENABLE_PIN 13 // C3
+
+#if DISABLED(NO_EXTRUDRBOARD)
+#if DISABLED(NO_EXTRUDRBOARD_OUTPUT_SWAP)
+ #define E1_STEP_PIN 25 // B5
+ #define E1_DIR_PIN 37 // E5
+ #define E1_ENABLE_PIN 42 // F4
+
+ #define E2_STEP_PIN 2 // D2
+ #define E2_DIR_PIN 3 // D3
+ #define E2_ENABLE_PIN 43 // F5
+#else
+ #define E1_STEP_PIN 2 // D2
+ #define E1_DIR_PIN 3 // D3
+ #define E1_ENABLE_PIN 43 // F5
+
+ #define E2_STEP_PIN 25 // B5
+ #define E2_DIR_PIN 37 // E5
+ #define E2_ENABLE_PIN 42 // F4
+#endif
+#endif // NO_EXTRUDRBOARD
+
+// Enable control of stepper motor currents with the I2C based MCP4728 DAC used on Printrboard REVF
+#define HAS_MOTOR_CURRENT_DAC
+
+// Set default drive strength percents if not already defined - X, Y, Z, E axis
+#ifndef DAC_MOTOR_CURRENT_DEFAULT
+ #define DAC_MOTOR_CURRENT_DEFAULT { 70, 70, 50, 70 }
+#endif
+
+// Number of channels available for DAC
+#define DAC_STEPPER_ORDER { 3, 2, 1, 0 }
+
+#define DAC_STEPPER_SENSE 0.11
+#define DAC_STEPPER_ADDRESS 0
+#define DAC_STEPPER_MAX 3520
+#define DAC_STEPPER_VREF 1 // internal Vref, gain 1x = 2.048V
+#define DAC_STEPPER_GAIN 0
+#define DAC_OR_ADDRESS 0x00
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 1 // Analog Input (Extruder)
+#define TEMP_BED_PIN 0 // Analog Input (Bed)
+
+#if DISABLED(NO_EXTRUDRBOARD)
+#if DISABLED(NO_EXTRUDRBOARD_OUTPUT_SWAP)
+ #define TEMP_1_PIN 2 // Analog Input (Extrudrboard A THERM)
+ #define TEMP_2_PIN 3 // Analog Input (Extrudrboard B THERM)
+#else
+ #define TEMP_1_PIN 3 // Analog Input (Extrudrboard B THERM)
+ #define TEMP_2_PIN 2 // Analog Input (Extrudrboard A THERM)
+#endif
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 15 // C5 PWM3B - Extruder
+#define HEATER_BED_PIN 14 // C4 PWM3C
+
+#if DISABLED(NO_EXTRUDRBOARD)
+#if DISABLED(NO_EXTRUDRBOARD_OUTPUT_SWAP)
+ #define HEATER_1_PIN 44 // F6 - Extrudrboard A HOTEND
+ #define HEATER_2_PIN 45 // F7 - Extrudrboard B HOTEND
+#else
+ #define HEATER_1_PIN 45 // F7 - Extrudrboard B HOTEND
+ #define HEATER_2_PIN 44 // F6 - Extrudrboard A HOTEND
+#endif
+#endif
+
+#ifndef FAN_PIN
+ #define FAN_PIN 16 // C6 PWM3A
+#endif
+
+//
+// LCD / Controller
+//
+//#define USE_INTERNAL_SD
+
+#if HAS_WIRED_LCD
+ #define LCD_PINS_RS 9 // E1 JP11-11
+ #define LCD_PINS_ENABLE 8 // E0 JP11-10
+ #define LCD_PINS_D4 7 // D7 JP11-8
+ #define LCD_PINS_D5 6 // D6 JP11-7
+ #define LCD_PINS_D6 5 // D5 JP11-6
+ #define LCD_PINS_D7 4 // D4 JP11-5
+
+ #if ANY(VIKI2, miniVIKI)
+
+ #define BEEPER_PIN 8 // E0 JP11-10
+ #define DOGLCD_A0 40 // F2 JP2-2
+ #define DOGLCD_CS 41 // F3 JP2-4
+ #define LCD_SCREEN_ROT_180
+
+ #define BTN_EN1 2 // D2 TX1 JP2-5
+ #define BTN_EN2 3 // D3 RX1 JP2-7
+ #define BTN_ENC 45 // F7 TDI JP2-12
+
+ #define SDSS 3 // F5 TMS JP2-8
+
+ #define STAT_LED_RED_PIN 12 // C2 JP11-14
+ #define STAT_LED_BLUE_PIN 10 // C0 JP11-12
+
+ #elif ENABLED(MINIPANEL)
+
+ #if DISABLED(USE_INTERNAL_SD)
+ // PIN FASTIO PIN# ATUSB90 PIN# Teensy2.0++ PIN# Printrboard RevF Conn. MKSLCD12864 PIN#
+ #define SDSS 11 // 36 C1 EXP2-13 EXP2-07
+ #define SD_DETECT_PIN 9 // 34 E1 EXP2-11 EXP2-04
+ #endif
+
+ // PIN FASTIO PIN# ATUSB90 PIN# Teensy2.0++ PIN# Printrboard RevF Conn. MKSLCD12864 PIN#
+ #define DOGLCD_A0 4 // 29 D4 EXP2-05 EXP1-04
+ #define DOGLCD_CS 5 // 30 D5 EXP2-06 EXP1-05
+ #define BTN_ENC 6 // 31 D6 EXP2-07 EXP1-09
+ #define BEEPER_PIN 7 // 32 D7 EXP2-08 EXP1-10
+ #define KILL_PIN 8 // 33 E0 EXP2-10 EXP2-03
+ #define BTN_EN1 10 // 35 C0 EXP2-12 EXP2-06
+ #define BTN_EN2 12 // 37 C2 EXP2-14 EXP2-08
+ //#define LCD_BACKLIGHT_PIN 43 // 56 F5 EXP1-12 Not Implemented
+ //#define SCK 21 // 11 B1 ICSP-04 EXP2-09
+ //#define MOSI 22 // 12 B2 ICSP-03 EXP2-05
+ //#define MISO 23 // 13 B3 ICSP-06 EXP2-05
+
+ // Alter timing for graphical display
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(313)
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(313)
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(313)
+
+ #else
+
+ #define BTN_EN1 10 // C0 JP11-12
+ #define BTN_EN2 11 // C1 JP11-13
+ #define BTN_ENC 12 // C2 JP11-14
+
+ #endif
+
+#endif
+
+//
+// Misc. Functions
+//
+// PIN FASTIO PIN# ATUSB90 PIN# Teensy2.0++ PIN# Printrboard RevF Conn.
+#ifndef SDSS
+ #define SDSS 20 // 10 B0
+#endif
+
+/**
+ * This is EXP1-2, which is also the TEMP_A_PIN for the Extrudrboard.
+ * If using w/ Extrudrboard, cut off pin 2 on the Extrudrboard male
+ * connector to ensure this is disconnected from the A THERM pullups.
+ * You probably want to set EXTRUDERS=2 and swap the Extrudrboard outputs,
+ * which will let you use Channel B on the Extrudrboard as E1.
+ */
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 2 // Analog Input
+#endif
diff --git a/Marlin/src/pins/teensy2/pins_SAV_MKI.h b/Marlin/src/pins/teensy2/pins_SAV_MKI.h
new file mode 100644
index 0000000..bcc456c
--- /dev/null
+++ b/Marlin/src/pins/teensy2/pins_SAV_MKI.h
@@ -0,0 +1,185 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Rev B 2 JUN 2017
+ *
+ * Converted to Arduino pin numbering
+ */
+
+/**
+ * There are two Arduino IDE extensions that are compatible with this board
+ * and with the mainstream Marlin software.
+ *
+ * Teensyduino - https://www.pjrc.com/teensy/teensyduino.html
+ * Select Teensy++ 2.0 in Arduino IDE from the 'Tools > Board' menu
+ *
+ * Installation instructions are at the above URL. Don't bother loading the
+ * libraries - they are not used with the Marlin software.
+ *
+ * Printrboard - https://github.com/scwimbush/Printrboard-HID-Arduino-IDE-Support
+ *
+ * Installation:
+ *
+ * 1. Go to the above URL, click on the "Clone or Download" button and then
+ * click on "Download ZIP" button.
+ * 2. Unzip the file, find the "printrboard" directory and then copy it to the
+ * hardware directory in Arduino. The Arduino hardware directory will probably
+ * be located in a path similar to this: C:\Program Files (x86)\Arduino\hardware.
+ * 3. Restart Arduino.
+ * 4. Select "Printrboard" from the 'Tools > Board' menu.
+ *
+ * Teensyduino is the most popular option. Printrboard is used if your board doesn't have
+ * the Teensyduino bootloader on it.
+ */
+
+/**
+ * To burn the bootloader that comes with Printrboard:
+ *
+ * 1. Connect your programmer to the board.
+ * 2. In the Arduino IDE select "Printrboard" and then select the programmer.
+ * 3. In the Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
+ * 4. The programmer is no longer needed. Remove it.
+ */
+
+#if NOT_TARGET(__AVR_AT90USB1286__)
+ #error "Oops! Select 'Teensy++ 2.0' or 'Printrboard' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "SAV MkI"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+#define DEFAULT_SOURCE_CODE_URL "tinyurl.com/onru38b"
+
+//
+// Servos
+//
+#define SERVO0_PIN 39 // F1 In teensy's pin definition for pinMode (in servo.cpp)
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 25 // B5
+#define Y_STOP_PIN 26 // B6
+//#define Z_STOP_PIN 27 // B7
+#define Z_STOP_PIN 36 // E4 For inductive sensor.
+//#define E_STOP_PIN 36 // E4
+
+//
+// Steppers
+//
+#define X_STEP_PIN 28 // A0
+#define X_DIR_PIN 29 // A1
+#define X_ENABLE_PIN 19 // E7
+
+#define Y_STEP_PIN 30 // A2
+#define Y_DIR_PIN 31 // A3
+#define Y_ENABLE_PIN 18 // E6
+
+#define Z_STEP_PIN 32 // A4
+#define Z_DIR_PIN 33 // A5
+#define Z_ENABLE_PIN 17 // C7
+
+#define E0_STEP_PIN 34 // A6
+#define E0_DIR_PIN 35 // A7
+#define E0_ENABLE_PIN 13 // C3
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 7 // F7 Analog Input (Extruder)
+#define TEMP_BED_PIN 6 // F6 Analog Input (Bed)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 15 // C5 PWM3B - Extruder
+#define HEATER_BED_PIN 14 // C4 PWM3C - Bed
+
+#ifndef FAN_PIN
+ #define FAN_PIN 16 // C6 PWM3A
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 20 // B0
+
+// Extension header pin mapping
+// ----------------------------
+// SCL (I2C)-D0 A0 (An), IO
+// SDA (I2C)-D1 A1 (An), IO
+// RX1-D2 A2 (An), IO
+// TX1-D3 A3 (An), IO
+// PWM-D24 A4 (An), IO
+// 5V GND
+// 12V GND
+#define EXT_AUX_SCL_D0 0 // D0 PWM0B
+#define EXT_AUX_SDA_D1 1 // D1
+#define EXT_AUX_RX1_D2 2 // D2
+#define EXT_AUX_TX1_D3 3 // D3
+#define EXT_AUX_PWM_D24 24 // B4 PWM2A
+#define EXT_AUX_A0 0 // F0 Analog Input
+#define EXT_AUX_A0_IO 38 // F0 Digital IO
+#define EXT_AUX_A1 1 // F1 Analog Input
+#define EXT_AUX_A1_IO 39 // F1 Digital IO
+#define EXT_AUX_A2 2 // F2 Analog Input
+#define EXT_AUX_A2_IO 40 // F2 Digital IO
+#define EXT_AUX_A3 3 // F3 Analog Input
+#define EXT_AUX_A3_IO 41 // F3 Digital IO
+#define EXT_AUX_A4 4 // F4 Analog Input
+#define EXT_AUX_A4_IO 42 // F4 Digital IO
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN -1
+#define LCD_PINS_RS -1
+#define LCD_PINS_ENABLE -1
+
+#if ENABLED(SAV_3DLCD)
+ // For LCD SHIFT register LCD
+ #define SR_DATA_PIN EXT_AUX_SDA_D1
+ #define SR_CLK_PIN EXT_AUX_SCL_D0
+#endif
+
+#if EITHER(SAV_3DLCD, SAV_3DGLCD)
+
+ #define BTN_EN1 EXT_AUX_A1_IO
+ #define BTN_EN2 EXT_AUX_A0_IO
+ #define BTN_ENC EXT_AUX_PWM_D24
+
+ #define KILL_PIN EXT_AUX_A2_IO
+ #define HOME_PIN EXT_AUX_A4_IO
+
+#else // Use the expansion header for spindle control
+
+ //
+ // M3/M4/M5 - Spindle/Laser Control
+ //
+ #define SPINDLE_LASER_PWM_PIN 24 // B4 PWM2A
+ #define SPINDLE_LASER_ENA_PIN 39 // F1 Pin should have a pullup!
+ #define SPINDLE_DIR_PIN 40 // F2
+
+ #define CASE_LIGHT_PIN 0 // D0 PWM0B
+
+#endif
diff --git a/Marlin/src/pins/teensy2/pins_TEENSY2.h b/Marlin/src/pins/teensy2/pins_TEENSY2.h
new file mode 100644
index 0000000..d43e39b
--- /dev/null
+++ b/Marlin/src/pins/teensy2/pins_TEENSY2.h
@@ -0,0 +1,188 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Rev B 2 JUN 2017
+ *
+ * Converted to Arduino pin numbering
+ */
+
+/**
+ * There are two Arduino IDE extensions that are compatible with this board
+ * and with the mainstream Marlin software.
+ *
+ * Teensyduino - https://www.pjrc.com/teensy/teensyduino.html
+ * Select Teensy++ 2.0 in Arduino IDE from the 'Tools > Board' menu
+ *
+ * Installation instructions are at the above URL. Don't bother loading the
+ * libraries - they are not used with the Marlin software.
+ *
+ * Printrboard - https://github.com/scwimbush/Printrboard-HID-Arduino-IDE-Support
+ *
+ * Installation:
+ *
+ * 1. Go to the above URL, click on the "Clone or Download" button and then
+ * click on "Download ZIP" button.
+ * 2. Unzip the file, find the "printrboard" directory and then copy it to the
+ * hardware directory in Arduino. The Arduino hardware directory will probably
+ * be located in a path similar to this: C:\Program Files (x86)\Arduino\hardware.
+ * 3. Restart Arduino.
+ * 4. Select "Printrboard" from the 'Tools > Board' menu.
+ *
+ * Teensyduino is the most popular option. Printrboard is used if your board doesn't have
+ * the Teensyduino bootloader on it.
+ */
+
+/**
+ * To burn the bootloader that comes with Printrboard:
+ *
+ * 1. Connect your programmer to the board.
+ * 2. In the Arduino IDE select "Printrboard" and then select the programmer.
+ * 3. In the Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
+ * 4. The programmer is no longer needed. Remove it.
+ */
+
+/**
+ * Teensy++ 2.0 Breadboard pin assignments (AT90USB1286)
+ * Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
+ * https://www.pjrc.com/teensy/teensyduino.html
+ * See https://reprap.org/wiki/Printrboard for more info
+ *
+ * CLI build: HARDWARE_MOTHERBOARD=84 make
+ *
+ * DaveX plan for Teensylu/printrboard-type pinouts for a TeensyBreadboard:
+ * (ref teensylu & sprinter)
+ *
+ * USB
+ * GND GND |-----#####-----| +5V ATX +5SB
+ * ATX PS_ON PWM 27 |b7 ##### b6| 26 PWM* Stepper Enable
+ * PWM 0 |d0 b5| 25 PWM*
+ * PWM 1 |d1 b4| 24 PWM
+ * X_MIN 2 |d2 b3| 23 MISO_PIN
+ * Y_MIN 3 |d3 b2| 22 MOSI_PIN
+ * Z_MIN 4 |d4 * * b1| 21 SCK_PIN
+ * 5 |d5 e e b0| 20 SDSS
+ * LED 6 |d6 5 4 e7| 19
+ * 7 |d7 e6| 18
+ * LCD RS 8 |e0 | GND
+ * LCD EN 9 |e1 a4 a0 R| AREF
+ * LCD D4 10 |c0 a5 a1 f0| 38 A0 ENC_1
+ * LCD D5 11 |c1 a6 a2 f1| 39 A1 ENC_2
+ * LCD D6 12 |c2 a7 a3 f2| 40 A2 ENC_CLK
+ * LCD D6 13 |c3 f3| 41 A3
+ * Bed Heat PWM 14 |c4 V G R f4| 42 A4
+ * Extruder Heat PWM 15 |c5 c n S f5| 43 A5
+ * Fan PWM 16 |c6 c d T f6| 44 A6 Bed TC
+ * 17 |c7 * * * f7| 45 A7 Extruder TC * 4.7k * +5
+ * -----------------
+ *
+ * Interior E4: 36, INT4
+ * Interior E5: 37, INT5
+ * Interior PA0-7: 28-35 -- Printrboard and Teensylu use these pins for step & direction:
+ * T++ PA Signal Marlin
+ *
+ * Z STEP 32 a4 a0 28 X STEP
+ * Z DIR 33 a5 a1 29 X DIR
+ * E STEP 34 a6 a2 30 Y STEP
+ * E DIR 35 a7 a3 31 Y DIR
+ */
+
+#if NOT_TARGET(__AVR_AT90USB1286__)
+ #error "Oops! Select 'Teensy++ 2.0' or 'Printrboard' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Teensy++2.0"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 2 // D2
+#define Y_STOP_PIN 3 // D3
+#define Z_STOP_PIN 4 // D4
+
+//
+// Steppers
+//
+#define X_STEP_PIN 28 // A0 Marlin
+#define X_DIR_PIN 29 // A1 Marlin
+#define X_ENABLE_PIN 26 // B6
+
+#define Y_STEP_PIN 30 // A2 Marlin
+#define Y_DIR_PIN 31 // A3
+#define Y_ENABLE_PIN 26 // B6 Shared w/x
+
+#define Z_STEP_PIN 32 // A4
+#define Z_DIR_PIN 33 // A5
+#define Z_ENABLE_PIN 26 // B6 Shared w/x
+
+#define E0_STEP_PIN 34 // A6
+#define E0_DIR_PIN 35 // A7
+#define E0_ENABLE_PIN 26 // B6 Shared w/x
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 7 // F7 Analog Input (Extruder)
+#define TEMP_BED_PIN 6 // F6 Analog Input (Bed)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 15 // C5 PWM3B Extruder
+#define HEATER_BED_PIN 14 // C4 PWM3C
+#ifndef FAN_PIN
+ #define FAN_PIN 16 // C6 PWM3A Fan
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 20 // B0
+#define LED_PIN 6 // D6
+#define PS_ON_PIN 27 // B7
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 1 // D1 PWM2B MUST BE HARDWARE PWM
+#endif
+
+//
+// LCD / Controller
+//
+#if IS_ULTIPANEL
+ #define LCD_PINS_RS 8 // E0
+ #define LCD_PINS_ENABLE 9 // E1
+ #define LCD_PINS_D4 10 // C0
+ #define LCD_PINS_D5 11 // C1
+ #define LCD_PINS_D6 12 // C2
+ #define LCD_PINS_D7 13 // C3
+ #define BTN_EN1 38 // F0
+ #define BTN_EN2 39 // F1
+ #define BTN_ENC 40 // F2
+#endif
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_ENA_PIN 5 // D5 Pin should have a pullup!
+#define SPINDLE_LASER_PWM_PIN 0 // D0 PWM0B MUST BE HARDWARE PWM
+#define SPINDLE_DIR_PIN 7 // D7
diff --git a/Marlin/src/pins/teensy2/pins_TEENSYLU.h b/Marlin/src/pins/teensy2/pins_TEENSYLU.h
new file mode 100644
index 0000000..54cee13
--- /dev/null
+++ b/Marlin/src/pins/teensy2/pins_TEENSYLU.h
@@ -0,0 +1,164 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Rev C 2 JUN 2017
+ *
+ * Converted to Arduino pin numbering
+ */
+
+/**
+ * There are two Arduino IDE extensions that are compatible with this board
+ * and with the mainstream Marlin software. All have been used with Arduino 1.6.12
+ *
+ * Teensyduino - https://www.pjrc.com/teensy/teensyduino.html
+ * Select Teensy++ 2.0 in Arduino IDE from the 'Tools > Board' menu
+ *
+ * Installation instructions are at the above URL. Don't bother loading the
+ * libraries - they are not used with the Marlin software.
+ *
+ * Printrboard - https://github.com/scwimbush/Printrboard-HID-Arduino-IDE-Support
+ * This is basically Teensyduino but with a bootloader that can handle image sizes
+ * larger than 64K.
+ *
+ * Installation:
+ *
+ * 1. Go to the above URL, click on the "Clone or Download" button and then
+ * click on "Download ZIP" button.
+ * 2. Unzip the file, find the "printrboard" directory and then copy it to the
+ * hardware directory in Arduino. The Arduino hardware directory will probably
+ * be located in a path similar to this: C:\Program Files (x86)\Arduino\hardware.
+ * 3. Restart Arduino.
+ * 4. Select "Printrboard" from the 'Tools > Board' menu.
+ *
+ * Teensyduino is the most popular option. Printrboard is used if your board doesn't have
+ * the Teensyduino bootloader on it.
+ */
+
+/**
+ * To burn the bootloader that comes with Printrboard:
+ *
+ * 1. Connect your programmer to the board.
+ * 2. In the Arduino IDE select "Printrboard" and then select the programmer.
+ * 3. In the Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
+ * 4. The programmer is no longer needed. Remove it.
+ */
+
+ /**
+ * SILKSCREEN ERROR
+ *
+ * The silkscreen for the endstops do NOT match the schematic. The silkscreen SHOULD
+ * read (from left to right) X-STOP, Y-STOP, Z-STOP & E-STOP. The silkscreen actually
+ * reads E-STOP, X-STOP, Y-STOP & Z-STOP.
+ *
+ * The pin assignments in this file match the silkscreen.
+ */
+
+#if NOT_TARGET(__AVR_AT90USB1286__, __AVR_AT90USB1286P__)
+ #error "Oops! Select 'Teensy++ 2.0' or 'Printrboard' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Teensylu"
+
+//
+// Limit Switch definitions that match the SCHEMATIC
+//
+//#define X_STOP_PIN 25 // B5
+//#define Y_STOP_PIN 26 // B6
+//#define Z_STOP_PIN 27 // B7
+//#define E_STOP_PIN 36 // E4
+
+//
+// Limit Switch definitions that match the SILKSCREEN
+//
+#define X_STOP_PIN 26 // B6
+#define Y_STOP_PIN 27 // B7
+#define Z_STOP_PIN 36 // E4
+//#define E_STOP_PIN 25 // B5
+
+//
+// Steppers
+//
+#define X_STEP_PIN 28 // A0
+#define X_DIR_PIN 29 // A1
+#define X_ENABLE_PIN 19 // E7
+
+#define Y_STEP_PIN 30 // A2
+#define Y_DIR_PIN 31 // A3
+#define Y_ENABLE_PIN 18 // E6
+
+#define Z_STEP_PIN 32 // A4
+#define Z_DIR_PIN 33 // A5
+#define Z_ENABLE_PIN 17 // C7
+
+#define E0_STEP_PIN 34 // A6
+#define E0_DIR_PIN 35 // A7
+#define E0_ENABLE_PIN 13 // C3
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 7 // Analog Input (Extruder)
+#define TEMP_BED_PIN 6 // Analog Input (Bed)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 15 // C5 PWM3B - Extruder
+#define HEATER_BED_PIN 14 // C4 PWM3C
+
+#ifndef FAN_PIN
+ #define FAN_PIN 16 // C6 PWM3A
+#endif
+
+//
+// Misc. Functions
+//
+#define SDSS 20 // B0 JP31-6
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN 0 // D0 IO-14 PWM0B
+#endif
+
+//
+// LCD / Controller
+//
+#if IS_ULTRA_LCD && IS_NEWPANEL
+
+ #define BEEPER_PIN -1
+
+ #if ENABLED(LCD_I2C_PANELOLU2)
+ #define BTN_EN1 3 // D3 IO-8
+ #define BTN_EN2 2 // D2 IO-10
+ #define BTN_ENC 41 // F3 IO-7
+ #define SDSS 38 // F0 IO-13 use SD card on Panelolu2
+ #endif
+
+ #define SD_DETECT_PIN -1
+
+#endif // IS_ULTRA_LCD && IS_NEWPANEL
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#define SPINDLE_LASER_PWM_PIN 24 // B4 IO-3 PWM2A - MUST BE HARDWARE PWM
+#define SPINDLE_LASER_ENA_PIN 39 // F1 IO-11 - Pin should have a pullup!
+#define SPINDLE_DIR_PIN 40 // F2 IO-9
diff --git a/Marlin/src/pins/teensy3/pins_TEENSY31_32.h b/Marlin/src/pins/teensy3/pins_TEENSY31_32.h
new file mode 100644
index 0000000..0edb5cb
--- /dev/null
+++ b/Marlin/src/pins/teensy3/pins_TEENSY31_32.h
@@ -0,0 +1,112 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Teensy 3.1 (MK20DX256) and Teensy 3.2 (MK20DX256) Breadboard pin assignments
+ * Requires the Teensyduino software with Teensy 3.1 or Teensy 3.2 selected in Arduino IDE!
+ * https://www.pjrc.com/teensy/teensyduino.html
+ */
+
+#if NOT_TARGET(IS_TEENSY_31_32)
+ #error "Oops! Select 'Teensy 3.1' or 'Teensy 3.2' in 'Tools > Board.'"
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Teensy3.2"
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 3
+#define Y_STOP_PIN 4
+#define Z_STOP_PIN 5
+
+//
+// Steppers
+//
+#define X_STEP_PIN 5
+#define X_DIR_PIN 6
+#define X_ENABLE_PIN 2
+
+#define Y_STEP_PIN 7
+#define Y_DIR_PIN 8
+#define Y_ENABLE_PIN 2
+
+#define Z_STEP_PIN 9
+#define Z_DIR_PIN 10
+#define Z_ENABLE_PIN 2
+
+#define E0_STEP_PIN 11
+#define E0_DIR_PIN 12
+#define E0_ENABLE_PIN 2
+
+//#define E1_STEP_PIN 33
+//#define E1_DIR_PIN 34
+//#define E1_ENABLE_PIN 35
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 20
+//#define HEATER_1_PIN 36
+#define HEATER_BED_PIN 21
+#ifndef FAN_PIN
+ #define FAN_PIN 22
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 14 // Analog Input - Extruder 2 => A2
+//#define TEMP_1_PIN 0 // Analog Input
+#define TEMP_BED_PIN 15 // Analog Input - Bed
+
+#ifndef FILWIDTH_PIN
+ #define FILWIDTH_PIN 6 // Analog Input
+#endif
+
+//
+// Misc. Functions
+//
+#define LED_PIN 13
+//#define SOL1_PIN 28
+//#define SDSS 16 // 8
+
+//
+// LCD / Controller
+//
+
+/*
+#if HAS_WIRED_LCD
+ #define LCD_PINS_RS 40
+ #define LCD_PINS_ENABLE 41
+ #define LCD_PINS_D4 42
+ #define LCD_PINS_D5 43
+ #define LCD_PINS_D6 44
+ #define LCD_PINS_D7 45
+ #define BTN_EN1 46
+ #define BTN_EN2 47
+ #define BTN_ENC 48
+#endif
+*/
diff --git a/Marlin/src/pins/teensy3/pins_TEENSY35_36.h b/Marlin/src/pins/teensy3/pins_TEENSY35_36.h
new file mode 100644
index 0000000..71c3485
--- /dev/null
+++ b/Marlin/src/pins/teensy3/pins_TEENSY35_36.h
@@ -0,0 +1,152 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/****************************************************************************************
+* Teensy 3.5 (MK64FX512) and Teensy 3.6 (MK66FX1M0) Breadboard pin assignments
+* Requires the Teensyduino software with Teensy 3.5 or Teensy 3.6 selected in Arduino IDE!
+* https://www.pjrc.com/teensy/teensyduino.html
+****************************************************************************************/
+
+#if NOT_TARGET(IS_TEENSY_35_36)
+ #error "Oops! Select 'Teensy 3.5' or 'Teensy 3.6' in 'Tools > Board.'"
+#endif
+
+#if IS_TEENSY35
+ #define BOARD_INFO_NAME "Teensy3.5"
+#elif IS_TEENSY36
+ #define BOARD_INFO_NAME "Teensy3.6"
+#endif
+
+/**
+ * Plan for Teensy 3.5 and Teensy 3.6:
+ * USB
+ * GND |-----#####-----| VIN 5V
+ * X_STEP_PIN MOSI1 RX1 0 | ##### | Analog GND
+ * X_DIR_PIN MISO1 TX1 1 | | 3.3V
+ * Y_STEP_PIN PWM 2 | *NC AREF* | 23 A9 PWM
+ * Y_DIR_PIN SCL2 CAN0TX PWM 3 | *A26 A10* | 22 A8 PWM
+ * Z_STEP_PIN SDA2 CAN0RX PWM 4 | *A25 A11* | 21 A7 PWM CS0 MOSI1 RX1
+ * Z_DIR_PIN MISO1 TX1 PWM 5 | *GND * * 57 | 20 A6 PWM CS0 SCK1 FILWIDTH_PIN
+ * X_ENABLE_PIN PWM 6 | *GND * * 56 | 19 A5 SCL0 E0_STEP_PIN
+ * Y_ENABLE_PIN SCL0 MOSI0 RX3 PWM 7 | * * 55 | 18 A4 SDA0 E0_DIR_PIN
+ * Z_ENABLE_PIN SDA0 MISO0 TX3 PWM 8 | * * 54 | 17 A3 SDA0 E0_ENABLE_PIN
+ * CS0 RX2 PWM 9 | | 16 A2 SCL0 TEMP_0_PIN
+ * CS0 TX2 PWM 10 | | 15 A1 CS0 TEMP_BED_PIN
+ * X_STOP_PIN MOSI0 11 | | 14 A0 PWM CS0 TEMP_1_PIN
+ * Y_STOP_PIN MISO0 12 | | 13 LED SCK0 LED_PIN
+ * 3.3V | | GND
+ * Z_STOP_PIN 24 | 40 * * 53 | A22 DAC1
+ * AUX2 25 | 41 * * 52 | A21 DAC0
+ * AUX2 FAN_PIN SCL2 TX1 26 | 42 * * 51 | 39 A20 MISO0 SDSS
+ * AUX2 Z-PROBE PWR SCK0 RX1 27 | * * * * * | 38 A19 PWM SDA1
+ * AUX2 SOL1_PIN MOSI0 28 | 43 * * 50 | 37 A18 PWM SCL1
+ * D10 CONTROLLER_FAN_PIN CAN0TX PWM 29 | 44 * * 49 | 36 A17 PWM
+ * D9 HEATER_0_PIN CAN0RX PWM 30 | 45 * * 48 | 35 A16 PWM E1_ENABLE_PIN
+ * D8 HEATER_BED_PIN CS1 RX4 A12 31 | 46 * * 47 | 34 A15 PWM SDA0 RX5 E1_DIR_PIN
+ * SCK1 TX4 A13 32 |__GND_*_*_3.3V_| 33 A14 PWM SCL0 TX5 E1_STEP_PIN
+ *
+ * Interior pins:
+ * LCD_PINS_RS 40 * * 53 SCK2
+ * LCD_PINS_ENABLE 41 * * 52 MOSI2
+ * LCD_PINS_D4 42 * * 51 MISO2
+ * LCD_PINS_D5 CS2 43 * * 50 A24
+ * LCD_PINS_D6 MOSI2 44 * * 49 A23
+ * LCD_PINS_D7 MISO2 45 * * 48 TX6 SDA0 BTN_ENC
+ * BTN_EN1 SCK2 46 * * 47 RX6 SCL0 BTN_EN2
+ * GND * * 3.3V
+ */
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 24
+#define Y_STOP_PIN 26
+#define Z_STOP_PIN 28
+
+//
+// Steppers
+//
+#define X_STEP_PIN 22
+#define X_DIR_PIN 21
+#define X_ENABLE_PIN 39
+
+#define Y_STEP_PIN 19
+#define Y_DIR_PIN 18
+#define Y_ENABLE_PIN 20
+
+#define Z_STEP_PIN 38
+#define Z_DIR_PIN 37
+#define Z_ENABLE_PIN 17
+
+#define E0_STEP_PIN 31
+#define E0_DIR_PIN 30
+#define E0_ENABLE_PIN 32
+
+#define E1_STEP_PIN 33
+#define E1_DIR_PIN 34
+#define E1_ENABLE_PIN 35
+
+#define HEATER_0_PIN 30
+#define HEATER_1_PIN 36
+#define HEATER_BED_PIN 31
+#ifndef FAN_PIN
+ #define FAN_PIN 2
+#endif
+
+#define TEMP_0_PIN 2 // Extruder / Analog pin numbering: 2 => A2
+#define TEMP_1_PIN 0
+#define TEMP_BED_PIN 1 // Bed / Analog pin numbering
+
+//
+// Misc. Functions
+//
+#define LED_PIN 13
+#define PS_ON_PIN 1
+#define FILWIDTH_PIN 6
+#define SOL1_PIN 28
+
+//
+// SD Card
+//
+#define SDSS 39 // 8
+
+#if HAS_WIRED_LCD
+ #define LCD_PINS_RS 40
+ #define LCD_PINS_ENABLE 41
+ #define LCD_PINS_D4 42
+ #define LCD_PINS_D5 43
+ #define LCD_PINS_D6 44
+ #define LCD_PINS_D7 45
+#endif
+
+#if IS_NEWPANEL
+ #define BTN_EN1 46
+ #define BTN_EN2 47
+ #define BTN_ENC 48
+#endif
+
+#if IS_RRW_KEYPAD
+ #define SHIFT_OUT_PIN 40
+ #define SHIFT_CLK_PIN 44
+ #define SHIFT_LD_PIN 42
+#endif
diff --git a/Marlin/src/pins/teensy4/pins_T41U5XBB.h b/Marlin/src/pins/teensy4/pins_T41U5XBB.h
new file mode 100644
index 0000000..5f62bb0
--- /dev/null
+++ b/Marlin/src/pins/teensy4/pins_T41U5XBB.h
@@ -0,0 +1,126 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/****************************************************************************************
+* Teensy 4.1 (IMXRT1062) Breadboard pin assignments
+* Requires the Teensyduino software with Teensy 4.1 selected in Arduino IDE!
+* https://www.pjrc.com/teensy/teensyduino.html
+****************************************************************************************/
+
+#if NOT_TARGET(IS_TEENSY41)
+ #error "Oops! Select 'Teensy 4.1' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Teensy4.1"
+
+/**
+ * Plan for Teensy 4.0 and Teensy 4.1:
+ * USB
+ * GND |-----#####-----| VIN (3.65 TO 5.5V)
+ * RX1 CS1 RX1 PWM 0 | ##### | GND
+ * TX1 MISO1 TX1 PWM 1 | | 3.3V
+ * STPX PWM 2 | | 23 A9 PWM
+ * DIRX PWM 3 | | 22 A8 PWM LIMZ
+ * STPY PWM 4 | | 21 A7 RX5 LIMY
+ * DIRY PWM 5 | | 20 A6 TX5 LIMX
+ * STPZ PWM 6 | | 19 A5 PWM SCL0 COOL
+ * DIRZ RX2 PWM 7 | | 18 A4 PWM SDA0 MIST
+ * STPA TX2 PWM 8 | | 17 A3 RX4 SDA1 CYST
+ * DIRA PWM 9 | | 16 A2 TX4 SCL1 EHOLD
+ * STEN PWM 10 | | 15 A1 PWM RX3 PRB
+ * SPDI MOSI0 PWM 11 | | 14 A0 PWM TX3 PANIC
+ * SPEN MISO0 PWM 12 | | 13 LED PWM SCK0 SPWM
+ * 3.3V | | GND
+ * SCL PWM 24 | | 41 A17 KPSTR
+ * SDA PWM 25 | | 40 A16 STENY
+ * STPB MOSI1 26 | | 39 A15 MISO1 STENZ
+ * DIRB SCK1 27 | * * * * * | 38 A14 STENA
+ * LIMB RX7 PWM 28 | | 37 PWM STENB
+ * DOOR TX7 PWM 29 | | 36 PWM ST0
+ * ST1 30 | | 35 TX8 ST3
+ * AUX0 31 | SDCARD | 34 RX8 ST2
+ * AUX1 32 |_______________| 33 PWM AUX2
+ */
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN 24
+#define SERVO1_PIN 25
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 20
+#define Y_STOP_PIN 21
+#define Z_STOP_PIN 22
+
+//
+// Steppers
+//
+#define X_STEP_PIN 2
+#define X_DIR_PIN 3
+#define X_ENABLE_PIN 10
+//#define X_CS_PIN 30
+
+#define Y_STEP_PIN 4
+#define Y_DIR_PIN 5
+#define Y_ENABLE_PIN 40
+//#define Y_CS_PIN 31
+
+#define Z_STEP_PIN 6
+#define Z_DIR_PIN 7
+#define Z_ENABLE_PIN 39
+//#define Z_CS_PIN 32
+
+#define E0_STEP_PIN 8
+#define E0_DIR_PIN 9
+#define E0_ENABLE_PIN 38
+
+#define E1_STEP_PIN 26
+#define E1_DIR_PIN 27
+#define E1_ENABLE_PIN 37
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 31
+#define HEATER_1_PIN 32
+#define HEATER_BED_PIN 33
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 5 // Extruder / Analog pin numbering: 2 => A2
+#define TEMP_1_PIN 4
+#define TEMP_BED_PIN 15 // Bed / Analog pin numbering
+
+//
+// Misc. Functions
+//
+#define LED_PIN 13
+#define SOL0_PIN 17
diff --git a/Marlin/src/pins/teensy4/pins_TEENSY41.h b/Marlin/src/pins/teensy4/pins_TEENSY41.h
new file mode 100644
index 0000000..21a1ff6
--- /dev/null
+++ b/Marlin/src/pins/teensy4/pins_TEENSY41.h
@@ -0,0 +1,131 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/****************************************************************************************
+* Teensy 4.1 (IMXRT1062) Breadboard pin assignments
+* Requires the Teensyduino software with Teensy 4.1 selected in Arduino IDE!
+* https://www.pjrc.com/teensy/teensyduino.html
+****************************************************************************************/
+
+#if NOT_TARGET(IS_TEENSY41)
+ #error "Oops! Select 'Teensy 4.1' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Teensy4.1"
+
+/**
+ * Plan for Teensy 4.0 and Teensy 4.1:
+ * USB
+ * GND |-----#####-----| VIN (3.65 TO 5.5V)
+ * X_STEP_PIN CS1 RX1 PWM 0 | ##### | GND
+ * X_DIR_PIN MISO1 TX1 PWM 1 | | 3.3V
+ * Y_STEP_PIN PWM 2 | | 23 A9 PWM SERVO1_PIN
+ * Y_DIR_PIN PWM 3 | | 22 A8 PWM SERVO0_PIN
+ * Z_STEP_PIN PWM 4 | | 21 A7 RX5
+ * Z_DIR_PIN PWM 5 | | 20 A6 TX5 FILWIDTH_PIN
+ * X_ENABLE_PIN PWM 6 | | 19 A5 PWM SCL0
+ * Y_ENABLE_PIN RX2 PWM 7 | | 18 A4 PWM SDA0 HEATER_1_PIN
+ * Z_ENABLE_PIN TX2 PWM 8 | | 17 A3 RX4 SDA1
+ * E0_STEP_PIN PWM 9 | | 16 A2 TX4 SCL1 TEMP_0_PIN
+ * E0_DIR_PIN PWM 10 | | 15 A1 PWM RX3 TEMP_BED_PIN
+ * MOSI_PIN MOSI0 PWM 11 | | 14 A0 PWM TX3 TEMP_1_PIN
+ * MISO_PIN MISO0 PWM 12 | | 13 LED PWM SCK0 SCK_PIN
+ * 3.3V | | GND
+ * Z_STOP_PIN PWM 24 | | 41 A17
+ * E0_ENABLE_PIN PWM 25 | | 40 A16
+ * FAN_PIN MOSI1 26 | | 39 A15 MISO1 X_STOP_PIN
+ * Z-PROBE PWR SCK1 27 | * * * * * | 38 A14 Y_STOP_PIN
+ * SOL1_PIN RX7 PWM 28 | | 37 PWM HEATER_0_PIN
+ * FAN_PIN TX7 PWM 29 | | 36 PWM HEATER_BED_PIN
+ * X_CS_PIN 30 | | 35 TX8 E1_ENABLE_PIN
+ * y_CS_PIN 31 | SDCARD | 34 RX8 E1_DIR_PIN
+ * Z_CS_PIN 32 |_______________| 33 PWM E1_STEP_PIN
+ */
+
+//
+// Servos
+//
+#define SERVO0_PIN 22
+#define SERVO1_PIN 23
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN 39
+#define Y_STOP_PIN 38
+#define Z_STOP_PIN 24
+
+//
+// Steppers
+//
+#define X_STEP_PIN 0
+#define X_DIR_PIN 1
+#define X_ENABLE_PIN 6
+//#define X_CS_PIN 30
+
+#define Y_STEP_PIN 2
+#define Y_DIR_PIN 3
+#define Y_ENABLE_PIN 7
+//#define Y_CS_PIN 31
+
+#define Z_STEP_PIN 4
+#define Z_DIR_PIN 5
+#define Z_ENABLE_PIN 8
+//#define Z_CS_PIN 32
+
+#define E0_STEP_PIN 9
+#define E0_DIR_PIN 10
+#define E0_ENABLE_PIN 25
+
+#define E1_STEP_PIN 33
+#define E1_DIR_PIN 34
+#define E1_ENABLE_PIN 35
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN 37
+#define HEATER_1_PIN 18
+#define HEATER_BED_PIN 36
+#ifndef FAN_PIN
+ #define FAN_PIN 29
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN 2 // Extruder / Analog pin numbering: 2 => A2
+#define TEMP_1_PIN 0
+#define TEMP_BED_PIN 1 // Bed / Analog pin numbering
+
+//
+// Misc. Functions
+//
+#define LED_PIN 13
+#define SOL0_PIN 28
+//#define PS_ON_PIN 1
+//#define FILWIDTH_PIN 6 // A6
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif