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
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.
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
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
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
Could the pi zero 2 w hit the sweet spot? Not as power hungry, but still enough computing power to run octopi?
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.
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.
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.