MKS Monster8
June 13, 2022 09:49AM
Ho acquistato la scheda MKS Monster 8. Devono essere passati alcuni anni da quando ho configurato l'ultimo firmware Marlin. Utilizzavo il sito di Marlinkimbra che era molto pratico, ma che ha chiuso.
Ora mi ritrovo con una scheda, che ha molta documentazione che non sono in grado di capire, perché abituato a pensare con la procedura Arduino. Ma anche MKS aveva un sistema comodo. Ho avuto una scheda MKS dove - per cambiare il firmware - bastava modificare un file di testo. Ma questa proprio mi ha spiazzato. Ammesso anche che io riesca a configurare... non capisco proprio come fare l'aggiornamento. Sono certo che dovrò procedere a pasi graduali e caricherò firmware non adeguati o con step da sistemare o pin da correggere... però io sono in difficoltà con le fondamenta. Ho scritto a MKS, che in risposta mi ha mandato il solito link con molta documentazione che a tratti mi pare in contrasto... forse questa scheda ammette approcci differenti.
Qualcuno ne sa qualcosa? Io semplicemente la metterei su reprap cartesiana con 2 z e 2 endstop in z e bltouch. Mentre per i motorini penso non ci siano problemi, non capisco invece come definire il secondo endstop.
Ancora... questa scheda permette di definire il voltaggio delle ventole. Ma di solito che voltaggio hanno? Ho molte altre domande, ma se solo riuscissi a configurare la prima versione da modificare poi sarebbe una cosa grande.
Re: MKS Monster8
June 13, 2022 10:56PM
The way I like to put new firmware on the controller is to 1) compile using VSCode, 2) copy the mks_monster8.bin file to an TFT card, 3) insert the TFT card into the controller and 4) power cycle (reset) the controller. The controller will search the card for the BIN file, load it into memory and, if successful, rename the file mks_monster8.CUR.

mks_monster8.bin will be found in the following directory (assuming your top Marlin directory is named Marlin):

PlatformIO via VSCode is the preferred method of compiling Marlin. The Arduino system still usually works but trouble shooting failed builds can be a big problem. Marlin has an AUTO_BUILD system that takes care of 99.9% of the compile time complexities. See installing Marlin on how to start using VSCode. The main steps are (much more detail in the link):
  1. Install VSCode
  2. Install Marlin's PlatformIO extension into VSCode
  3. Point VSCode at the top Marlin directory
  4. Click on the Auto_Build icon
  5. Click on build

Here's Marlin's main doc page. I suggest downloading as 2.1 still seems to have some problems.

Almost all Marlin options are set via the configuration.h and configuration_adv.h files. Don't be intimidated by all the options in there. 95% of what you need is already in the files you developed with marlinkimbra. I like using an editor that shows a side by side view of your old configuration file and the one you're modifying. NotePad++ has a Compare plugin that I like to use. Just be aware that there's now a lot more options, some names are a bit different and things have been re-arranged. It takes me about an hour to do my updates so I expect it'll take you longer.
Re: MKS Monster8
June 14, 2022 01:12AM
What printer are you upgrading? There are example configurations for most of the popular printers. Comparing it to your marlinkimbra configuration files is a good starting point.

Usually, the fan will say what voltage it is. If not, then they're probably the same as the motor voltage.

Start out by setting your endstop voltage to 5V on you controller card unless you know for sure differently.

Do you have the V1 or V2 Monster 8 board? The endstops are different between them and I think that Marlin currently uses the V1 endstop definitions. Not a big deal but will require some extra steps if you have a V2 board.

One thing to be aware of on MKS products is they have the LCD connectors EXP1 and EXP2 rotated 180 degrees from other vendors. Unless you're using a MKS LCD you'll need to reverse them. I usually just gently pry the shrouds up off the board, rotate them and re-install.

Edited 1 time(s). Last edit at 06/14/2022 01:22AM by
Re: MKS Monster8
June 14, 2022 03:02AM
Marlinkimbra no longer exists. The site has disappeared. Is there something similar or someone who has carried out the same project on another site?
I like the information you have listed for me by numbering them.
I don't know if monster8 is 1 or 2, I can't find this indication.
HTA3d metal printer. I use the MKS panel. I didn't have the problem connecting it.
Re: MKS Monster8
June 14, 2022 10:21AM
Monster8 V1 or Monster8 V2 is on the silkscreen. Also, V1 has 6 endstop connectors while V2 has 5 plus a neopixel and a BLTouch.

I didn't find an example configuration for your printer. If you no longer have configuration.h for your printer then you'll need to do some experimenting to see how fast the motors are and steps_per_unit.

I suggest just grabbing the configuration.h that comes with Marlin and start modifying as needed. The mother board name for your controller is BOARD_MKS_MONSTER8. After your first pass please post it & I'll do a sanity check.
Re: MKS Monster8
June 14, 2022 10:36PM
Setting up the dual Z endstops isn't that complicated. Assuming that you home to Z max then you'll have one endstop inserted into ZMAX plug/socket and the other inserted into any unused endstop plug/socket. Let's say that you picked the ZMIN endstop socket/plug for the second Z endstop. You then point Marlin at this via settings in configuration_adv.h and enable the ZMIN plug in configuration.h

#define Z_MULTI_ENDSTOPS          // Other Z axes have their own endstops
    #define Z2_USE_ENDSTOP   _ZMIN_   // Z2 endstop board plug. Don't forget to enable USE_*_PLUG.
    #define Z2_ENDSTOP_ADJUSTMENT 0   // Z2 offset relative to Y endstop

//#define USE_IMIN_PLUG
//#define USE_JMIN_PLUG
//#define USE_KMIN_PLUG
//#define USE_UMIN_PLUG
//#define USE_VMIN_PLUG
//#define USE_WMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG

There's two run time steps:
  • You'll have to experiment to see which endstop shuts off which Z motor. If you trigger the left endstop but the right motor stops then just swap the plugs on the controller.
  • Z2_ENDSTOP_ADJUSTMENT needs to be set to something. I'm not aware of a nice method of determining this. All I've done is move the head to one side, do a M48 to determine the height, move the head to the other side (keeping Z constant) and do M48 again. Use the difference to adjust Z2_ENDSTOP_ADJUSTMENT. Repeat until happy. Don't try to get the difference to zero - the bed leveling system will be able to handle small differences.
Re: MKS Monster8
June 15, 2022 09:26AM
i have cartesian printer.
2 z axes (I would like to put z2 in Ymax to give place to bltouch)
I also have an optical filament presence sensor. I don't know where to put the cables or even how to set it up.
i found only these two config files ... i don't know if i should take marlin 2 and replace them ... i think so. Ok ... but after?

With Arduino it was simple ... I compiled and sent to the board.
open | download - Configuration.h (114.1 KB)
open | download - Configuration_adv.h (178.4 KB)
Re: MKS Monster8
June 15, 2022 10:35PM
Do you have the V1 or V2 board? It says on the silkscreen right after Monster8. I think you have a V1 since you mentioned Ymax which is only on the V1.
Do you home Z to the max? Right now the config file says you home to the minimum. I expect to the max because of the dual Z endstops.
Do you have an LCD? I didn't see one enabled.
What type of filament sensor do you have? Does it sense just present/not-present or does it also sense if it's stuck (not moving)?
Why did you set the E2 driver type to 2209 and not E0?
Are you running a 12V or 24V system? Should set CHOPPER_DEFAULT_12V or CHOPPER_DEFAULT_24V accordingly.

I've disabled SD card support. Right now there's reports of freezes when the SD card is enabled so let's avoid that until we have some confidence.
I've disabled SOFTWARE_ENDSTOPS. They can get in the way when trouble shooting homing issues and verifying steps_per_unit.
I've left EEPROM_SETTINGS enabled. Just remember to do a M502 followed by a M500 after every new change to configuration.h and/or configuration_adv.h or else you may be using the old values.

Here's the configuration.h, configuration_adv.h and resulting mks_monster8.bin file. Put the BIN file onto an 8G TFT card, insert the card into the controller and then reset (or power cycle) the board. That'll load the new firmware.
open | download - (170.4 KB)
Re: MKS Monster8
June 16, 2022 12:48AM
Most of the jumpers I reference are shown in the JPGs board_1 and board_2.

Here's how I recommend setting up your monster8 controller:
  • Set the jumpers in/under the X, Y, Z, E0 and E1 sockets. They should all look like this.
  • Set the Driver IC Power jumper to select 3.3V. See DRIVE IC-PWR.jpg in the ZIP. This is jumper 1 in board_1.jpg.
  • Insert the TMC2209s into the X, Y, Z, E0 and E1 sockets. Be sure they are oriented correctly. Putting one in backwards will burn up your controller. All 18 pins will go into the socket. See the beginning of this video for details. Ignore the section on setting sensorless homing jumpers. Since we're not using that mode then all those jumpers are NOT installed.
  • Attach the motor cables., X to DRIVER0, Y to DRIVER1, one of the Z motors to DRIVER2-1, leave DRIVER2-2 unused (DRIVER2-2 is a clone of DRIVER2-1), extruder to DRIVER3 and the second Z motor to DRIVER4.
  • I2C/CAN jumpers (jumper set 2 in board_1.jpg) - leave in the I2C position. This enables the EEPROM.
  • Sensorless homing jumpers (jumper set 4 in board_1.jpg) - leave all these open. We're not using sensorless homing.
  • Endstop voltage selection (jumper 5 in board_1.jpg) - set to 5V.
  • USB-PWR (see USB-PWR.jpg). Setting it to ON allows you to boot the controller before you hook up the 12V. In this mode the board is powered by the USB cable (the motors and other 12V stuff won't be powered up). Just a safe way to test USB communications before hooking up 12V. BE SURE TO CHANGE THIS BACK TO OFF BEFORE APPLYING 12V.

Also included is how to wire up the BLTouch to the Zmin endstop.

I need to look further at the fan voltage selection. I have not seen anything that is easy to understand.
open | download - (914.9 KB)
Re: MKS Monster8
June 16, 2022 07:47AM
the display does not come on anymore. I have never connected the card to usb ... but I do not make sure that I have turned on with the jumper off / on in the correct position.
Re: MKS Monster8
June 16, 2022 02:03PM
I didn't enable the display because I don't know what display you have.
Re: MKS Monster8
June 16, 2022 02:16PM
Leave the fan power jumpers in their default (far left) position. Far left is Vin (stepper motor voltage), middle is 12V and for right is 5V.
Re: MKS Monster8
June 16, 2022 02:22PM
Does your display have an SD card slot?

If yes, will you be using the SD card on the display or the one built into the Monster8? This would be for files to print.
Re: MKS Monster8
June 16, 2022 03:48PM
I don't know what I may have done. the display went, it stopped working. The only doubt is that you have repositioned the usb jumper to power the board from usb. But I've never connected it with usb.
The display has sd slot and is MKS Mini 12864 V3
Re: MKS Monster8
June 16, 2022 03:49PM
I think I did something wrong and now it doesn't recognize it, but I can't see the board messages.
Re: MKS Monster8
June 16, 2022 06:31PM
You did nothing wrong. The LCD was not enabled so the display should be blank.

Move the board power jumper back to OFF.

Here are three images, all with the LCD enabled.
LCD enabled, no SD card
LCD enabled, SD on LCD enabled
LCD enabled, SD on controller enabled
open | download - mks_monster8 with LCD - SD on (117.1 KB)
open | download - mks_monster8 with LCD - SD on (117.2 KB)
open | download - mks_monster8 with (106.6 KB)
Re: MKS Monster8
June 16, 2022 08:19PM
Here's a link to a video I did a couple of years ago showing how easy it is to install and use VSCode to compile Marlin. By now I'm sure there have been minor changes.
Re: MKS Monster8
June 22, 2022 10:06AM
Marlin just pushed SD card fixes to bugfix_2.1.x. It should be safe to download it & enable SD card support.
Re: MKS Monster8
June 22, 2022 10:20AM
i have some evidence to follow your video, but i can't complete the steps. Build doesn't and won't allow me selections.
But initially I saw the LCD working even if the settings were wrong. What could I have done to not see anymore?
According to MKS it is not enabled in the firmware or the current is not enough. I would like to think about the firmware ... but how could I have deleted the display from the firmware since I am not yet able to generate one?
open | download - screen.png (167.5 KB)
Re: MKS Monster8
June 22, 2022 04:17PM
I see that you've installed VSCode and the Marlin Auto Build extension. Very good!

You've selected the wrong directory for the top directory in your workspace. You need to go up one more level. The next higher level is also named Marlin. Yes, it is confusing. You know you have it correct when you see the file platformio.ini at the top level (same level as the second Marlin). Attached is how it'll look when correct. Note the three highlighted items.

Also attached are:
  • a BIN file that has the LCD enabled and the SD card on the LCD enabled.
  • configuration.h
  • configuration-adv.h

These are using the bugfix_2.1.x branch. It has the SD card fixes so it should be useable.
open | download - (205 KB)
open | download - Marlin_Marlin.jpg (77.6 KB)
Re: MKS Monster8
June 23, 2022 03:26AM
if I leave the connections as they were originally (working) it does not turn on. If I invert the connections, the panel turns on, but nothing is seen. If I rotate the slider (I hope for some contrast control maybe) nothing happens. I didn't understand what happened because I can't see the panel anymore.
Loading marlin you sent me works because I insert sd and hear silence, then 3 beeps and then the card turns on. When I turn off and on only one beep ... but always without the panel.
open | download - 1655968723599.jpg (152.9 KB)
Re: MKS Monster8
June 23, 2022 03:34PM
Just in case it's the SD card problem, here's an image with SD support disabled.

If this doesn't work then I wonder if the LCD selection is correct. Right now it's set to MKS_MINI_12864_V3. Please double check if this is correct.
open | download - (106.6 KB)
Re: MKS Monster8
June 24, 2022 08:57PM
I was reading about the MKS-MINI12864-V3 and found out that it is a Neopixel based unit so the Neopixel feature also needs to be enabled. Maybe it's been working all along but with a black on black display.

Attached are the updated config and BIN files.

If still no display then please do the following:
  • Check that the file has been renamed to mks_monster8.cur. If not put the disk into the controller and power cycle until it's been renamed from BIN to CUR.
  • Attach a USB cable between your controller and your PC. Use a host program (pronterface, repetier host, ...) to connect to it at 250000 baud. Send it the command M114. There should be some response.
open | download - Marlin (207.7 KB)
Re: MKS Monster8
June 27, 2022 05:40AM
you are right!!
Now the display is back to work !!

thank you!
Now at least I have to change only the other parameters eventually
Re: MKS Monster8
June 27, 2022 09:23AM

Have you been able to compile Marlin?
Re: MKS Monster8
June 28, 2022 08:00AM
no I'm trying but I don't understand anything. I put the files in the folder and open the folder with VSCode, but it doesn't work.
Re: MKS Monster8
June 28, 2022 06:02PM
I suspect that VSCode isn't setup correctly. Please send a screenshot of VSCode.

You may want to revisit my comment of June 22, 2022 04:17PM. Getting the right directory at the top of the VSCode workspace could be the problem.
Re: MKS Monster8
June 29, 2022 03:01AM
Explorer ... Open Editors ... are all entries that I cannot find. Then when I select the marlin options to compile ... I only see the clock spinning. Only difference is that at least I see platformio.ini, but it's the only compliant thing.
open | download - screen2.png (58.5 KB)
open | download - screen1.png (156.7 KB)
Re: MKS Monster8
June 29, 2022 05:16AM
screen1.png shows two problems.
  • There are two top level directories. The one circled in blue (Marlin) shouldn't be there. Right click on it and select Remove Folder From Workspace.
  • The one circled in red (Marlin-bugfix-2.0.x) is too old. Right click on it and select Remove Folder From Workspace.

I want you to be working with Marlin-bugfix-2.1.x.
  1. Please download it from this link.
  2. Unzip it.
  3. Add the folder Marlin-bugfix-2.1.x to the VSCode workspace.
  4. Overwrite the config files with the last ones I supplied.
  5. Start the compile process per the video I supplied earlier.
open | download - Screenshot 2022-06-29.jpg (62.6 KB)
Re: MKS Monster8
June 29, 2022 02:39PM
it works, but there are some things I need to fix. First I have two z motors and two z endstops. I would also like to use bltouch and the filament sensor (which I really don't know where to connect).
I then realized that the heated bed is disabled, but I can easily enable that. It's a step forward!

Marlin\src\inc\Warnings.cpp:195:6: warning: #warning "Note: Auto-assigned Z2 STEP/DIR/ENABLE_PINs to unused En_STEP/DIR/ENABLE_PINs. (Define NO_AUTO_ASSIGN_WARNING to suppress this warning.)" [-Wcpp]
195 | #warning "Note: Auto-assigned Z2 STEP/DIR/ENABLE_PINs to unused En_STEP/DIR/ENABLE_PINs. (Define NO_AUTO_ASSIGN_WARNING to suppress this warning.)"
| ^~~~~~~
Marlin\src\inc\Warnings.cpp:728:6: warning: #warning "Motherboard DIAG jumpers must be removed when SENSORLESS_HOMING is disabled. (Define DIAG_JUMPERS_REMOVED to suppress this warning.)" [-Wcpp]
728 | #warning "Motherboard DIAG jumpers must be removed when SENSORLESS_HOMING is disabled. (Define DIAG_JUMPERS_REMOVED to suppress this warning.)"
| ^~~~~~~
Marlin\src\inc\Warnings.cpp:739:4: warning: #warning "Contrast cannot be changed when LCD_CONTRAST_MIN >= LCD_CONTRAST_MAX." [-Wcpp]
739 | #warning "Contrast cannot be changed when LCD_CONTRAST_MIN >= LCD_CONTRAST_MAX."
| ^~~~~~~
Marlin\src\module\planner.cpp: In static member function 'static void Planner::buffer_sync_block()':
Marlin\src\module\planner.cpp:2899:35: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'block_t' {aka 'struct block_t'} with no trivial copy-assignment; use value-initialization instead [-Wclass-memaccess]
2899 | memset(block, 0, sizeof(block_t));
| ^
In file included from Marlin\src\module\planner.cpp:65:
Marlin\src\module\planner.h:186:16: note: 'block_t' {aka 'struct block_t'} declared here
186 | typedef struct block_t {
Sorry, only registered users may post in this forum.

Click here to login