Use Makelangelo firmware on custom plotter without endstops? (Ramps 1.4)

Home Forum Makelangelo Polargraph Art Robot Use Makelangelo firmware on custom plotter without endstops? (Ramps 1.4)

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
  • #27887
    AvatarMarinus de Beer

    Hi all,

    I’ve been building a wonderful platform with really smart nifty mechanically designed parts. The idea was to make it as simple as possible.

    Now I managed to get it all working, LCD, Ramps 1.4, it’s all working, the menu shows up.

    The only issue being not having endstops and setting up the size of the machine, since it’s a custom machine the distance between the motors and the size of the drawing table is custom.

    Can anyone point me to a solution? Maybe I could use old pre MA5 firmware as I understand endstops were introduced in MA5. But I haven’t been able to figure out which firmware version I would need.

    Eventually I will add endstops, so there will be no problem in the end, but I first want to get this model working because I need to create a proof of concept for someone else (non-commercial, it’s just a project we’re working on as hobbyists and they want to try and see if the plotter can plot out patterns on fabric, she is a fashion designer).

    To show I’m pretty serious, here’s a photo of the machine I designed:

    View post on

    • This topic was modified 8 months, 1 week ago by DanDan.
    • This topic was modified 8 months ago by DanDan.

    in the firmware, search for “d11”. this is the command to setup default values for an M5. by following this example you should be able to set custom values for your machine.

    since you have no switches, make sure HAS_LIMIT_SWITCH is not defined.

    Have you considered using Trinamic drivers with Stallguard? it can be used as a limit switch instead of adding physical switches.

    AvatarMarinus de Beer

    Thanks, I had already gone on and found out how it worked (the post was waiting for approval for 4 to 5 days so I decided to go ahead myself and figured it out eventually 🙂 ).

    Indeed, I have disables HAS_LIMIT_SWITCH and also removed the ‘go home’ from the menu because even though limit switches were disabled, it still displayed the option. Now, my rotary encoder really doesn’t work nicely in the firmware so I sometimes by accident clicked on the ‘go home’ option causing the machine to crash into itself a bit.

    Right now the machine is slowly improving. This is where I am now:

    The maze outline is supposed to be an A4 rectangle. The base paper is an A3. So you can clearly see it’s not correctly set up.

    I have tried lowering the home position by a lot but then it shrinks down the entire image by a lot and still has the bulging top. And the image stays way too small in the x-plane/horizontal axis.

    What I did:
    – set correct dimensions in firmware and software
    – set correct pulley teeth (16)
    – correct 200 steps/rev
    – set 1/32 microstepping in both FW and jumpers on the ramps
    – tried lowering the home position manually to get a better picture

    The centers of the motor shaft are 958 mm apart.
    Home position was started at 217 mm down from the center of the shafts and was moved down to see if it improved anything.

    Maybe I misunderstood the D11 settings. I have changed the settings in the firmware to match my own machine:

    void makelangelo5Setup() {
      // if you accidentally upload m3 firmware to an m5 then upload it ONCE with this line uncommented.
      float limits[NUM_AXIES * 2];
      limits[0] = 479.0;
      limits[1] = -479.0;
      limits[2] = 479.0;
      limits[3] = -479.0;
      limits[4] = PEN_UP_ANGLE;
      limits[5] = PEN_DOWN_ANGLE;
      calibrateLeft = 1025;
      calibrateRight = 1025;
      float homePos[NUM_AXIES];
      homePos[0] = 0;
      homePos[1] = limits[2] - 217.0;
      homePos[2] = 50;

    After uploading the firmware I run D11 through the serial of Arduino to install the settings from the firmware in the EEPROM (I am assuming it works this way).

    Another issue is that I have set the servo speed between 100 and 1000 in the software, but it still moves really slow whereas when I use ‘pen up’ and ‘pen down’ it just switches really fast. Can it be there is something buggy in the firmware, or can it be the machine runs differently with timing pen up and down when drawing (and moving the stepper motors)?

    AvatarMarinus de Beer

    Okay nevermind, I fixed it.

    I don’t know why, but I tried to upload the firmware again, did another D11 and this time the only thing I did differently was that I ran M101 to check the values. And somehow now the new values stuck in the memory and it drew a PERFECT A4 hahaha.

    I’ll add a video soon since I can’t edit my posts I’ll do that in a new reply, sorry for that.

    AvatarMarinus de Beer

    Here is the video of the latest success!!

    Now the only thing left to fix is the responsiveness of the rotary encoder on the LCD panel (any way I can set the sensitivity?) and fix the servo being absolutely slow as hell. Would you know a fix?

    AvatarMarinus de Beer

    Okay, so I have found out three things:

    1. The servo speed is not working correctly. I have compared it to my other plotter that is running with Marlin and the servo speed is really slow on the Makelangelo firmware. I am not sure what the issue is but I’d like to have some tips on how I can troubleshoot this. I will convert the carriage soon so that it doesn’t lift the carriage but instead only lifts the pen.

    2. The ‘spiral’ option in Makelangelo software creates spirals that slow down the plotter. My guess is that the circles have too small segments. Whenever I print anything with curves the machine slows down and speeds up in predictable intervals. Once again, I am not sure what the cause is, but the machine has no trouble working through any other generated file.
    The spiral file is so heavy on the hardware that even the rotary encoder becomes unresponsive.

    3. The rotary encoder knob is very hard to use, I have tried three different panels that all work fine on Marlin-based machines. So there must be a setting in the firmware to tune this. Any hints on where I can try out different values for the rotary encoder knob settings?

    The machine now has perfect dimensions and all lines are straight so props to the designers of the firmware. I am really surprised to see such high definition in the prints that the machine makes even though my machine is still in development.

    I have created one file with gcode that draws a template onto the base plate with all paper sizes outlined in both landscape and portrait mode. This works beautifully. The base is made out of a metal plate that is glued to a wooden plate with spray adhesive by 3M so paper can be fixed to the machine with small flat magnets.

    Another improvement I made is to add a cooling fan to blow on the heatsinks of the Ramps board. I didn’t have issues with overheating yet but this is will lengthen the lifespan of the DRV8825’s. The drivers are working really well however, I have two spare TMC2208’s and am planning to swap them out some time in the future. I will have to find out how to map the pins for these drivers.

    Eventually I decided I want to turn the machine into the best vplotter ever but I just got scammed yesterday and lost all my money and savings so I cannot invest in any new parts for the coming year I guess.

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.