Hi there!
I apologize ahead if I am posting in the wrong forum
Or if I am looking at the following issues the wrong way!
and for this really long post!
I am a total and a complete nooob... building and trying out my first cnc!
I have the following set up:
X- axis - 1x Nema 23 (10.1kgcm)
Y- axis - 2x Nema 23 (10.1kgcm)
Z- axis - 1x Nema 17 (4.2 kgcm)
4 Drv8825 polulu drivers on a perf board with a custom pin/wiring scheme
Which is as follows:
Enable for X- 8
Y-9
Z-10
Direction Pins for X- 7
Y- 5
Z-11
Step Pins for X- 6
Y- 4
Z- 3
12V 30A power supply and the Drv8825 get 3.3V and 12v as per the specs
Gt2 timing belt with 2mm pitch and 20 teeth pulleys for X, Y axis
I have been able to use a simple arduino code:
// The following is a simple stepper motor control procedures
/*# define EN 8 //stepper motor enable , active low
# define EN 9 //stepper motor enable , active low
# define EN 10 //stepper motor enable , active low*/
# define ENX 8 //stepper motor enable , active low
# define ENY 9 //stepper motor enable , active low
# define ENZ 10 //stepper motor enable , active low
# define X_DIR 7 //X -axis stepper motor direction control
# define Y_DIR 5 //y -axis stepper motor direction control
# define Z_DIR 11 //z axis stepper motor direction control
# define X_STP 6 //x -axis stepper control
# define Y_STP 4 //y -axis stepper control
# define Z_STP 3 //z -axis stepper control
/*
/ / Function : step . function: to control the direction of the stepper motor , the number of steps .
/ / Parameters : dir direction control , dirPin corresponding stepper motor DIR pin , stepperPin corresponding stepper motor " step " pin , Step number of step of no return value.
*/
void step (boolean dir, byte dirPin, byte stepperPin, int steps)
{
digitalWrite (dirPin, dir);
delay (50);
for (int i = 0; i <steps; i++)
{
digitalWrite (stepperPin, HIGH);
delayMicroseconds (800);
digitalWrite (stepperPin, LOW);
delayMicroseconds (800);
}
}
void setup () { // The stepper motor used in the IO pin is set to output
pinMode (X_DIR, OUTPUT); pinMode (X_STP, OUTPUT);
pinMode (Y_DIR, OUTPUT); pinMode (Y_STP, OUTPUT);
pinMode (Z_DIR, OUTPUT); pinMode (Z_STP, OUTPUT);
/* pinMode (EN, OUTPUT);
digitalWrite (EN, LOW);*/
pinMode (ENX, OUTPUT);
pinMode (ENY, OUTPUT);
pinMode (ENZ, OUTPUT);
digitalWrite (ENX, LOW);
digitalWrite (ENY, LOW);
digitalWrite (ENZ, LOW);
}
void loop () {
step (false, X_DIR, X_STP, 400); // X axis motor reverse 1 ring, the 200 step is a circle.
step (false, Y_DIR, Y_STP, 400); // y axis motor reverse 1 ring, the 200 step is a circle.
step (false, Z_DIR, Z_STP, 400); // z axis motor reverse 1 ring, the 200 step is a circle.
delay (1000);
step (true, X_DIR, X_STP, 400); // X axis motor forward 1 laps, the 200 step is a circle.
step (true, Y_DIR, Y_STP, 400); // y axis motor forward 1 laps, the 200 step is a circle.
step (true, Z_DIR, Z_STP, 400); // z axis motor forward 1 laps, the 200 step is a circle.
delay (1000);
}
and all the motors moved as expected.
So I took the shopbotShield-pinout.h as i felt it met my needs better than the gshield pinout and modified it to fit the needs. Been able to compile it and upload it to the Due. I have not modified the motate_pin_assignments.h as I did not see a point in modifying it as all the pins in use are defined here??
The pinout and compiled files
Here are the issues
1) Chilipeppr- Cant jog and get {"sr":{"stat":3}} when I try to make it jog. I do edit the config settings like velocity and jerk and step.. use whole steps (Would love if chilipeppr supported 32 microsteps)
But when I ask for the default chilipeppr logo G code to be sent over serial. I actually have the x and y axis moving. Not sure about the accuracy as i haven't tested that yet. But yes there is definite movement to match the directions and values shown in the DRO.
2) Goko- Cant jog get the same {"sr":{"stat":3}}
I understand that "stat":3 is machine has encountered program stop. Is there a jog enable command?
3) UGS version 2.0, Platform versions- nothing happens. I select Tiny G from the drop down and it says
"**** Connected to COM9 @ 115200 baud ****"
when i give it a jog command
like move Y20 3times
>>> {"gc":"G21G91G0Y20F1"}
>>> {"gc":""}
>>> {"gc":"G21G91G0Y20F1"}
>>> {"gc":""}
>>> {"gc":"G21G91G0Y20F1"}
>>> {"gc":""}
>>> {"gc":"G21G91G0Y20F1"}
thats all i get and it just goes non responsive.
What am I doing wrong?? Why cant I get it to jog?
Other questions:
What tool do you guys recommend to be used for sending the Gcode?
Is chillipeppr good?? I feel it makes me a little claustrophobic... way too many dialog boxes and clutter on the screen.
Does Mach 3 work well in this custom scenario? How about Linux CNC?
Firmware Build 100 {fb:100.xx}