• September 5, 2017 at 04:29 #13973

    Hello Dan, I tried applying D1 L1.27323954 command first:

    > adjustPulleyDiameter dia=1.27
    cir=4.00
    SPT=6400.00
    tps*1000=0.63

    But the system is behaving the same way.

    When Sending several times:
    G0 X0
    G0 X1
    G0 X0
    G0 X1

    V stepper releases always the cable and L Stepper doesn’t move. Let’s wait for Rumba board to arrive to see if it works on RUMBA.

    Could the problem be because I’m not using the servo and somehow the code is misusing the steppers?

    Can you send me your configuration files and the firmware config to check all your parameters like board size, etc..? I’m not sure how to define the limits.

    Thanks.

    September 5, 2017 at 11:37 #13977

    Hello Dan,

    I received the RUMBA Board and started to test. I have also strange behaviour. V motor always reels out when I send G0 X0 or G0 X5 movement

    Dan
    September 5, 2017 at 13:01 #13978

    Did my previous suggestion about M102 and M101 help? I don’t remember seeing a reply.

    Dan
    September 5, 2017 at 14:54 #13980

    Can you send me your configuration files and the firmware config to check all your parameters like board size, etc..? I’m not sure how to define the limits.

    Everything I have is checked into github:

    https://github.com/MarginallyClever/Makelangelo-firmware/tree/dev
    https://github.com/MarginallyClever/Makelangelo-software/tree/dev

    Dan
    September 5, 2017 at 14:56 #13981

    Have you tried to invert a motor in software (M101) and then jogging it (D1)? I want to check if it reverses direction.

    Dan
    September 8, 2017 at 13:51 #13998

    I set up my zarplotter with a RAMPs board this morning and ran some tests. I can confirm that the current firmware appears to have a bug that makes one motor turn only in one direction. Thank you, @kukomiguel, for the report.

    I have updated the makelangelo-firmware to clean up the confusion that allowed D0 to work but not G0. now they are the same so that if one doesn’t work, they are both broken.

    I’ve also removed all the firmware inversions. If you want a motor to run the other way, change the physical wiring. This will run faster and use less code that could break.

    Please let me know if that helps.

    September 10, 2017 at 03:57 #14001

    Hello Dan, I was not able to test, I fried my RUMBA board when changing the drivers from drv8825 to drv4988 (wrong direction), and when I tried to test it on the RAMPS board, I get a compilation error when configuring the code for RAMPS.

    This is the config:
    ——-
    // machine styles supported
    //#define POLARGRAPH 1 // uncomment this line if you use a polargraph like the Makelangelo 3 or 5
    //#define TRADITIONALXY 3 // uncomment this line if you use a traditional XY setup.
    //#define COREXY 2 // uncomment this line if you use a CoreXY setup.
    #define ZARPLOTTER 4 // uncomment this line if you use a 4 motor Zarplotter

    #define MACHINE_STYLE ZARPLOTTER // change this

    #include “robot_polargraph.h”
    #include “robot_traditionalxy.h”
    #include “robot_corexy.h”
    #include “robot_zarplotter.h”

    // Boards supported
    #define BOARD_RUMBA 1
    #define BOARD_RAMPS 2
    #define BOARD_SANGUINOLULU 3
    #define BOARD_TEENSYLU 4

    #define MOTHERBOARD BOARD_RAMPS // change this
    ———-

    and this is the compilation error:

    /Users/Miguel/Downloads/Makelangelo-firmware-dev/makelangeloFirmwareRumba/makelangeloFirmwareRumba.ino: In function ‘void setup()’:
    makelangeloFirmwareRumba:921: error: ‘PEN_UP_ANGLE’ was not declared in this scope
    setPenAngle(PEN_UP_ANGLE);
    ^
    /Users/Miguel/Downloads/Makelangelo-firmware-dev/makelangeloFirmwareRumba/motor.ino: In function ‘void setPenAngle(int)’:
    motor:241: error: ‘PEN_DOWN_ANGLE’ was not declared in this scope
    if(posz<PEN_DOWN_ANGLE) posz=PEN_DOWN_ANGLE;
    ^
    motor:242: error: ‘PEN_UP_ANGLE’ was not declared in this scope
    if(posz>PEN_UP_ANGLE ) posz=PEN_UP_ANGLE;
    ^
    /Users/Miguel/Downloads/Makelangelo-firmware-dev/makelangeloFirmwareRumba/robot_zarplotter.ino: In function ‘void IK(float, float, float, long int*)’:
    robot_zarplotter:20: error: ‘threadPerStep’ was not declared in this scope
    dy = abs(y – limit_ymax)-ZARPLOTTER_COMPENSATION; dx = abs(x – limit_xmin)-ZARPLOTTER_COMPENSATION; L = sqrt(dx*dx+dy*dy); motorStepArray[0] = lround( L / threadPerStep ); // M0 (top left)
    ^
    /Users/Miguel/Downloads/Makelangelo-firmware-dev/makelangeloFirmwareRumba/robot_zarplotter.ino: In function ‘void FK(long int*, float&, float&)’:
    robot_zarplotter:45: error: ‘threadPerStep’ was not declared in this scope
    float a = (float)motorStepArray[0] * threadPerStep;
    ^
    exit status 1
    ‘PEN_UP_ANGLE’ was not declared in this scope

    Dan
    September 10, 2017 at 09:05 #14003

    Oh no, the drivers! :O

    I’ve retested for all the machines styles and for RAMPs. Should be better now. Sorry for not testing every option more thoroughly. I got hung up on a polargraph issue and when I was done I thought “that’s it! Ship it!” Never make a major commit on a friday afternoon, they warned me…

    September 11, 2017 at 00:33 #14006

    It worked!! I was able to run the motor on RAMPS and move correcly the plotter.

    A few small issues though:

    1. It seems X and Y coordinates are inverted.
    My config is:
    L motor – Northwest – X on RAMPS
    R motor – Northest – Y on RAMPS
    U motor – Southwest – Z on RAMPS
    V motor – Southeast – E0 on RAMPS

    When I send G0 X50 I was expecting the robot to move to the west, but is moving to the north, towards L and R motors.
    When I send G0 Y50 I was expecting the robot to move to the north, but is moving to the west, towards L and U motor.

    2. The movement is bellow the board limits.
    My board size is 150cm (east-west) and 75cm (South-Nort), so I configured the limits as:
    ——-
    // plotter limits, relative to the center of the plotter.
    float limit_ymax = 45; // distance to top of drawing area.
    float limit_ymin = -45; // Distance to bottom of drawing area.
    float limit_xmax = 75; // Distance to right of drawing area.
    float limit_xmin = -75; // Distance to left of drawing area.
    —–
    The fist issue is that the robot doesn’t seem to pick the values, I had to send the command “M101 T45 B-45 R75 L-75” to do it.
    The second issue is that I’m not able to move the plotter to the corner by sending command G0 X-75 Y-45, the movement is a lot shorter, to move it to the corner I have to put higher values like G0 X-150 Y-200 (those are not the exact ones, but what I mean is that I need to send a coordinate that is a lot higher than the board size.

    Dan
    September 14, 2017 at 14:10 #14043

    BTW:

    M101 let’s you adjust the size of the machine by setting the top, bottom, left, and right from the origin. It works the same as the Makelangelo.

    M101 TH B-H L-W RW

    Where W is width/2 and H is height/2.
    Width and height should be measured from the edge of the motor mounts where they touch the edge of the board.

    madcowswe
    October 15, 2017 at 22:21 #14223

    Hi Dan,

    I make an open source controller for precision (encoder feedback) control of ~1000W hobby brushless motors. The aim is to make industrial power/precision robotics available to the maker. You can check it here: https://odriverobotics.com.

    One of the projects I’ve been wanting to do with it is exactly a 4-point parallel cable robot, which is the same kinematics as your skycam. The thing is, I don’t really have the time right now to build this myself, but I’d love to see one come into existence.

    If you are interested in collaborating to make a prototype using ODrive (instead of slow steppers), I’d be happy to send you some gear.
    If so, feel free to follow up by email: [email protected]

    Cheers,
    Oskar

    disneytoy
    October 20, 2017 at 19:33 #14346

    Gang,

    I’ve just started following this. Very cool. Also very interesting seeing the inner workings how this project is getting fleshed-out and debugged. I’m learning a lot from this:-)

    Max

    November 16, 2017 at 14:19 #14612

    Hello Dan,

    I noticed that in latest version 7.15, you removed the plotter limits from the firmware file (// plotter limits, relative to the center of the plotter) where should we define the board size now?

    Also would be possible to include the following changes.
    1. The ZARPLOTTER_PLOTTER_SIZE (6.0f) to be a rectangle (xsize and ysize) instead of a square.
    2. The size of the board to have a different shape than a square, for this we would need to define the relative position of each of the steppers.

    Thanks.

    Dan
    November 17, 2017 at 12:57 #14620

    Hi @kukomiguel,

    In 7.15 the top, bottom, left, and right limits are relative to the origin (0,0). They can be adjusted so that the machine is a rectangle.

    For skycams the Z limit would also have to be adjusted. I assume that the origin is on same plane as the four motors. The motors are assumed to all be at the same height, in a rectangle, above the floor.

    I agree that fine-tuning motor positions would create a more accurate model and might create better movement.

    Edit: Apparently I left this answer open for two days and failed to hit ‘send’ 😛

    Vladimir
    December 18, 2017 at 07:11 #15003

    Hello, to all from Russia (St. Petersburg).

    Some time I used Polargraph Sandy Noble, very inspiring, but I prefer Zarplotter or it is necessary to build a machine with rectangular axes according to the CNC principle.
    I want to build Zarplotter …
    I bought a table and firmware. ))
    I have Arduino Mega 2560 R3 + Ramps1.4 + 4 stepper motor 17HS4401 + 2004 LCD Smart Controller with memory card
    Problem in compiling the firmware!
    in configure.h
    I replaced in rows
    33
    #define MACHINE_STYLE ZARPLOTTER
    57
    #define MOTHERBOARD BOARD_RAMPS
    79-86
    #define MICROSTEPS (16.0) // change this. microstepping on this microcontroller
    #define DEGREES_PER_STEP (1.8) // change this. as advertised by the stepper motor maker

    #define NORMAL_MOTOR_STEPS (200.0 / DEGREES_PER_STEP) // 360 / 0.9 = 400. 360 / 1.8 = 200.
    #define STEPS_PER_TURN (NORMAL_MOTOR_STEPS * MICROSTEPS) // default number of steps per turn * microsteps
    #define PULLEY_PITCH (2 * 20.0) // 2mm per tooth, 20 teeth.
    #define THREAD_PER_STEP (PULLEY_PITCH / STEPS_PER_TURN)
    #define MICROSTEP_PER_DEGREE (STEPS_PER_TURN / 360.0)

    I get a compilation error:
    //////////////////
    Arduino: 1.6.7 (Windows 10), Плата:”Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

    In file included from sketch\Makelangelo-firmware.ino.cpp:1:0:

    C:\Users\kio\Documents\Arduino\Makelangelo-firmware-new\Makelangelo-firmware\robot_zarplotter.ino: In function ‘void IK(float*, long int*)’:

    C:\Users\kio\Documents\Arduino\Makelangelo-firmware-new\Makelangelo-firmware\robot_zarplotter.ino:23:16: error: ‘limit_ymax’ was not declared in this scope

    dy = abs(y – limit_ymax)-ZARPLOTTER_COMPENSATION; dx = abs(x – limit_xmin)-ZARPLOTTER_COMPENSATION; L = sqrt(dx*dx+dy*dy); motorStepArray[0] = lround( L / THREAD_PER_STEP ); // M0 (top left)

    ^

    C:\Users\kio\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h:94:18: note: in definition of macro ‘abs’

    #define abs(x) ((x)>0?(x):-(x))

    ^

    C:\Users\kio\Documents\Arduino\Makelangelo-firmware-new\Makelangelo-firmware\robot_zarplotter.ino:23:67: error: ‘limit_xmin’ was not declared in this scope

    dy = abs(y – limit_ymax)-ZARPLOTTER_COMPENSATION; dx = abs(x – limit_xmin)-ZARPLOTTER_COMPENSATION; L = sqrt(dx*dx+dy*dy); motorStepArray[0] = lround( L / THREAD_PER_STEP ); // M0 (top left)

    ^

    C:\Users\kio\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h:94:18: note: in definition of macro ‘abs’

    #define abs(x) ((x)>0?(x):-(x))

    ^

    C:\Users\kio\Documents\Arduino\Makelangelo-firmware-new\Makelangelo-firmware\robot_zarplotter.ino:24:67: error: ‘limit_xmax’ was not declared in this scope

    dy = abs(y – limit_ymax)-ZARPLOTTER_COMPENSATION; dx = abs(x – limit_xmax)-ZARPLOTTER_COMPENSATION; R = sqrt(dx*dx+dy*dy); motorStepArray[1] = lround( R / THREAD_PER_STEP ); // M1 (top right)

    ^

    C:\Users\kio\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h:94:18: note: in definition of macro ‘abs’

    #define abs(x) ((x)>0?(x):-(x))

    ^

    C:\Users\kio\Documents\Arduino\Makelangelo-firmware-new\Makelangelo-firmware\robot_zarplotter.ino:25:16: error: ‘limit_ymin’ was not declared in this scope

    dy = abs(y – limit_ymin)-ZARPLOTTER_COMPENSATION; dx = abs(x – limit_xmin)-ZARPLOTTER_COMPENSATION; U = sqrt(dx*dx+dy*dy); motorStepArray[2] = lround( U / THREAD_PER_STEP ); // M2 (bottom left)

    ^

    C:\Users\kio\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h:94:18: note: in definition of macro ‘abs’

    #define abs(x) ((x)>0?(x):-(x))

    ^

    C:\Users\kio\Documents\Arduino\Makelangelo-firmware-new\Makelangelo-firmware\robot_zarplotter.ino: In function ‘int FK(long int*, float*)’:

    C:\Users\kio\Documents\Arduino\Makelangelo-firmware-new\Makelangelo-firmware\robot_zarplotter.ino:49:14: error: ‘limit_xmax’ was not declared in this scope

    float b = (limit_xmax-limit_xmin);

    ^

    C:\Users\kio\Documents\Arduino\Makelangelo-firmware-new\Makelangelo-firmware\robot_zarplotter.ino:49:25: error: ‘limit_xmin’ was not declared in this scope

    float b = (limit_xmax-limit_xmin);

    ^

    C:\Users\kio\Documents\Arduino\Makelangelo-firmware-new\Makelangelo-firmware\robot_zarplotter.ino:64:14: error: ‘limit_ymax’ was not declared in this scope

    axies[1] = limit_ymax – (sqrt( 1.0 – theta * theta ) * a);

    ^

    exit status 1
    ////////////////////

    What am I doing wrong or what have I not done !?

    Dan
    December 18, 2017 at 09:44 #15005

    I have submitted an update on the development branch of the code that should fix your compile errors. you’ll have to poke configure.h again.

    https://github.com/marginallyclever/makelangelo-firmware/tree/dev

    Vladimir
    December 18, 2017 at 10:13 #15006

    with the new configure.h file
    First there was an error due to a lack of the robot_arm6.h file
    when I added the missing robot_arm6.h file
    again error:
    Arduino: 1.6.7 (Windows 10), Fee: “Arduino / Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

    C: \ Users \ kio \ Documents \ Arduino \ Makelangelo-firmware-zarplotter \ Macelangelo-firmware \ motor.ino: In function ‘void motor_setup ()’:

    motor: 157: error: ‘struct motor’ has no member named ‘limit_switch_state’

         motors [i] .limit_switch_state = HIGH;

                   ^

    In file included from sketch \ Makelangelo-firmware.ino.cpp: 1: 0:

    C: \ Users \ kio \ Documents \ Arduino \ Makelangelo-firmware-zarplotter \ Makelangelo-firmware \ robot_zarplotter.ino: In function ‘void IK (float *, long int *)’:

    robot_zarplotter: 23: error: ‘limit_ymax’ was not declared in this scope

       dy = abs (y – limit_ymax) -ZARPLOTTER_COMPENSATION; dx = abs (x – limit_xmin) -ZARPLOTTER_COMPENSATION; L = sqrt (dx * dx + dy * dy); motorStepArray [0] = lround (L / THREAD_PER_STEP); // M0 (top left)

                    ^

    C: \ Users \ kio \ AppData \ Local \ Arduino15 \ packages \ arduino \ hardware \ avr \ 1.6.20 \ cores \ arduino / Arduino.h: 94: 18: note: in definition of macro ‘abs’

     #define abs (x) ((x)> 0? (x) 🙁 x))

                      ^

    robot_zarplotter: 23: error: ‘limit_xmin’ was not declared in this scope

       dy = abs (y – limit_ymax) -ZARPLOTTER_COMPENSATION; dx = abs (x – limit_xmin) -ZARPLOTTER_COMPENSATION; L = sqrt (dx * dx + dy * dy); motorStepArray [0] = lround (L / THREAD_PER_STEP); // M0 (top left)

                                                                       ^

    C: \ Users \ kio \ AppData \ Local \ Arduino15 \ packages \ arduino \ hardware \ avr \ 1.6.20 \ cores \ arduino / Arduino.h: 94: 18: note: in definition of macro ‘abs’

     #define abs (x) ((x)> 0? (x) 🙁 x))

                      ^

    robot_zarplotter: 24: error: ‘limit_xmax’ was not declared in this scope

       dy = abs (y – limit_ymax) -ZARPLOTTER_COMPENSATION; dx = abs (x – limit_xmax) -ZARPLOTTER_COMPENSATION; R = sqrt (dx * dx + dy * dy); motorStepArray [1] = lround (R / THREAD_PER_STEP); // M1 (top right)

                                                                       ^

    C: \ Users \ kio \ AppData \ Local \ Arduino15 \ packages \ arduino \ hardware \ avr \ 1.6.20 \ cores \ arduino / Arduino.h: 94: 18: note: in definition of macro ‘abs’

     #define abs (x) ((x)> 0? (x) 🙁 x))

                      ^

    robot_zarplotter: 25: error: ‘limit_ymin’ was not declared in this scope

       dy = abs (y – limit_ymin) -ZARPLOTTER_COMPENSATION; dx = abs (x – limit_xmin) -ZARPLOTTER_COMPENSATION; U = sqrt (dx * dx + dy * dy); motorStepArray [2] = lround (U / THREAD_PER_STEP); // M2 (bottom left)

                    ^

    C: \ Users \ kio \ AppData \ Local \ Arduino15 \ packages \ arduino \ hardware \ avr \ 1.6.20 \ cores \ arduino / Arduino.h: 94: 18: note: in definition of macro ‘abs’

     #define abs (x) ((x)> 0? (x) 🙁 x))

                      ^

    C: \ Users \ kio \ Documents \ Arduino \ Makelangelo-firmware-zarplotter \ Makelangelo-firmware \ robot_zarplotter.ino: In function ‘int FK (long int *, float *)’:

    robot_zarplotter: 49: error: ‘limit_xmax’ was not declared in this scope

       float b = (limit_xmax-limit_xmin);

                  ^

    robot_zarplotter: 49: error: ‘limit_xmin’ was not declared in this scope

       float b = (limit_xmax-limit_xmin);

                             ^

    robot_zarplotter: 64: error: ‘limit_ymax’ was not declared in this scope

       axies [1] = limit_ymax – (sqrt (1.0 – theta * theta) * a);

                  ^

    exit status 1
    ‘struct Motor’ has no member named ‘limit_switch_state’

      This message will contain more information than
      “Display output at compile time”
      is included in the File> Settings

    Dan
    December 18, 2017 at 15:05 #15009

    I believe you are missing some files from the repository. I get none of these errors when compiling the code here.

    Vladimir
    December 18, 2017 at 15:14 #15011

    Thank you. I copied all the files. I compiled and loaded the firmware without errors. Now the start button and home in the Meakelangelo software window are not activated. I’ll continue in the morning, we are far past midnight …))

    Dan
    December 18, 2017 at 15:24 #15012

    When you connect to the robot it displays a message in the log.
    In the bottom left corner of the makelangelo app are two small arrows. click them to expand the log window. the log is also saved to log.html. Please show me the contents of the log file when you can.

    Vladimir
    December 19, 2017 at 03:27 #15017

    INFO дек 19,2017 13:43
    INFO дек 19,2017 13:43

    INFO дек 19,2017 13:43 HELLO WORLD! I AM ZARPLOTTER #-1
    INFO дек 19,2017 13:43 Firmware v8
    INFO дек 19,2017 13:43 == https://www.marginallyclever.com/ ==
    INFO дек 19,2017 13:43 M100 – display this message
    INFO дек 19,2017 13:43 M101 [Tx.xx] [Bx.xx] [Rx.xx] [Lx.xx]
    INFO дек 19,2017 13:43 – display/update board dimensions.
    INFO дек 19,2017 13:43 As well as the following G-codes (http://en.wikipedia.org/wiki/G-code):
    INFO дек 19,2017 13:43 G00,G01,G02,G03,G04,G28,G90,G91,G92,M18,M114
    INFO дек 19,2017 13:43

    INFO дек 19,2017 13:43 Converter=Sandy Noble Style
    INFO дек 19,2017 13:43 Converting gcode5041968477280912431.ngc
    INFO дек 19,2017 13:43 Completed

    But the buttons in the section
    Manual Driving
    Popular Driving Commands
    and
    Animation control
    not active

    Vladimir
    January 4, 2018 at 08:03 #15191

    Hello, Dan. Could not fix the error?

    Dan
    January 5, 2018 at 10:09 #15197

    Please try the latest version (7.15.2), it should support zarplotter better. if it still does not work let me know and I will run more tests. I apologize for the slowness, I am getting a lot of tricky customer support questions right now.

    Vladimir
    January 5, 2018 at 13:36 #15201

    we all really appreciate your work. Thank you !!!

    Vladimir
    January 15, 2018 at 07:41 #15312

    firmware 5.17.3
    if in configure.h specifies zarplotter, the LCD panel does not work
    if in configure.h specifies polargraph, the LCD panel is work

Viewing 25 posts - 26 through 50 (of 115 total)

You must be logged in to reply to this topic.

0
Save & Share Cart
Your Shopping Cart will be saved and you'll be given a link. You, or anyone with the link, can use it to retrieve your Cart at any time.
Back Save & Share Cart
Your Shopping Cart will be saved with Product pictures and information, and Cart Totals. Then send it to yourself, or a friend, with a link to retrieve it at any time.
Your cart email sent successfully :)