MKS Monster 8 v2.0 with dual endstops

Has anyone built the Primio with dual endstops using the MKS Monster 8 v2.0 controller board? The board itself has pretty much everything i need on it, however, it is fairly limited on the number of digital inputs, hence wondering how others have solved this.
Side note: I have been referring to some of the sample configs on the MarlinBuilder page, so thanks Ryan and others that have provided those examples. They answered many questions I had already :slight_smile:

1 Like

This is the first I’m hearing of the MKS Monster 8. In some ways it appears similar to the BTT Octopus.

If someone were considering buying one:

  • It looks like it only has 5 endstops, not 6, which is enough for almost all applications but IDEX LR3 needs 6.
  • It appears that the 5V supply is not enough to power Raspberry Pi, whereas the Octopus can power Raspberry Pi and eliminate a separate supply.
  • I’m not seeing a connection for TFT35 display, only EXP1/EXP2 for 12864 LCD (or TFT35 emulating 12864).
  • I don’t see any advantage over BTT Octopus, only disadvantages, so I would recommend the Octopus board over this one.

Having said that, if you already have one, then to configure, it looks like you have four connectors pre-defined as endstops, and one input defined as “MT_DET” for filament runout apparently.

The baseline pins file defines:

// Limit Switches for endstops
#define X_MIN_PIN                           PA14
#define Y_MIN_PIN                           PA15
#define Z_MIN_PIN                           PB13
#define Z_MAX_PIN                           PB12

(You can ignore all the DIAG pins.)

I think you can get dual X/Y endstops and Z_MIN (probing or homing) to work by removing the Z_MAX_PIN definition and defining

#define X_MAX_PIN PB12
#define Y_MAX_PIN PA13

This would be within the file Marlin\src\pins\stm32f4\pins_MKS_MONSTER8_common.h.

You should already have this within Configuration.h:

#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
...
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG

That is my best guess. If you have compile errors or if M119 is not giving the expected responses, then post the results here and we can try something else.

5 Likes

Welcome to the v1engineering forum. You ask if anyone else has solved it - and so far it doesn’t seem like it - but then one of the forum heroes comes to help by solving it for you! (and pointing out some limitations when it comes to an IDEX build) This place is amazing. Enjoy the stay :smiley:

2 Likes

Thanks Jamie.

That big advantage of the Monster is cost. It’s half the price of the octopus and i set myself some boundaries. For 3D printing I use Klipper, so adding in extra I/O boards is not an issue.

You are correct about the Monster not having sufficient power for a Pi (as noted in other forums) so not the best choice if that is the intention. My current preference is to use a Pi powered from the PSU via a buck converter and hang relays off the GPIO to do things such as power on the main/controller board. Pro’s and cons of both approaches.

I bought the board with a MKS Mini12864 v3.0 LCD display. I’d say, adequate for basic functions though I suspect I’ll hook up a Pi and run Octopi or some alternate setup.

I was thinking very much along the same lines as per your suggested config. and will do some testing over the next couple of days and post the results here in case they are of any use to others.

Thanks for the suggestions.

Terry

1 Like

:grinning: That it is. Love to see all the great/crazy/ genius/you decide ideas that people share and the general vide of this section of the maker community. Respect to everyone that contributes, big or small

1 Like

Could the pi zero 2 w hit the sweet spot? Not as power hungry, but still enough computing power to run octopi?

1 Like

Yes, quite possibly. It might be a good use case for this setup. I know that its slightly off topic but i don’t think it cuts the mustard for running klipper and a webcam though.
The continual improvements in controller capabilities vs cost never ceases to amaze me.

1 Like

In the end I decided to modify pins_MONSTER8_V2.h as that calls commons and takes precendence for the defines;

//
// Limit Switches
//
#define X_STOP_PIN PA14
#define Y_STOP_PIN PA15

// TRS add additional defines for dual X and Y limit switches
// uses Z max and MT detect pins
#define X_MAX_PIN PB12
#define Y_MAX_PIN PA13

Marlin 2.1.2.1 seems to have deprecated the use of USE_*_PLUG, so i’ve removed those.

Thanks for your guidance.

1 Like

Ah ok, I was basing off of 2.1.1 where the pins were specified differently.

Looks like I need to get up to speed on the new schema if USE_*_PLUG is no longer used to control the endstop availability. Thanks for the heads up.

1 Like