dewy721 / emc-2-arduino Goto Github PK
View Code? Open in Web Editor NEWArduino + LinuxCNC = Your very own FREE high-end CNC controller.
Arduino + LinuxCNC = Your very own FREE high-end CNC controller.
Hi
I am totaly new on arduino, and I do not know if this project is still alive.
Anyway I would like to build small 4 axis CNC router and see that yours project should filfull my requirements. But I am getting an error during compilation.
I downloaded latest version of HAL2Arduino_0_6d and latest AccelStepper_1.57 library, fixed:
#if useAccelStepper
#include <AccelStepper.h> // load the library, if needed.
to
#if useAccelStepper
#include "AccelStepper.h" // load the library, if needed.
As it couldn't find Accel Stepper.h file.
Compilation starts but calls an error:
HAL2Arduino_0_6d.cpp.o: In function _GLOBAL__sub_I_canMove': HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setPinsInverted(bool, bool, bool)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setPinsInverted(bool, bool, bool)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setPinsInverted(bool, bool, bool)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setPinsInverted(bool, bool, bool)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setPinsInverted(bool, bool, bool)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setEnablePin(unsigned char)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setEnablePin(unsigned char)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setEnablePin(unsigned char)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setEnablePin(unsigned char)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setEnablePin(unsigned char)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setMaxSpeed(float)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setAcceleration(float)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::enableOutputs()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setMinPulseWidth(unsigned int)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setMaxSpeed(float)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setAcceleration(float)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::enableOutputs()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setMinPulseWidth(unsigned int)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setMaxSpeed(float)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setAcceleration(float)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::enableOutputs()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setMinPulseWidth(unsigned int)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setMaxSpeed(float)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setAcceleration(float)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::enableOutputs()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setMinPulseWidth(unsigned int)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setMaxSpeed(float)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setAcceleration(float)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::enableOutputs()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setMinPulseWidth(unsigned int)' HAL2Arduino_0_6d.cpp:359: undefined reference to
AccelStepper::run()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::currentPosition()' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::distanceToGo()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setMaxSpeed(float)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::distanceToGo()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::run()' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::currentPosition()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::distanceToGo()' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setMaxSpeed(float)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::distanceToGo()' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::run()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::currentPosition()' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::distanceToGo()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setMaxSpeed(float)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::distanceToGo()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::run()' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::currentPosition()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::distanceToGo()' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::setMaxSpeed(float)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::distanceToGo()' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::run()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::currentPosition()' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::distanceToGo()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::setMaxSpeed(float)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::distanceToGo()'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::moveTo(long)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::moveTo(long)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::moveTo(long)' HAL2Arduino_0_6d.cpp:2896: undefined reference to
AccelStepper::moveTo(long)'
HAL2Arduino_0_6d.cpp:2896: undefined reference to AccelStepper::moveTo(long)' HAL2Arduino_0_6d.cpp:347: undefined reference to
AccelStepper::AccelStepper(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, bool)'
HAL2Arduino_0_6d.cpp:350: undefined reference to AccelStepper::AccelStepper(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, bool)' HAL2Arduino_0_6d.cpp:353: undefined reference to
AccelStepper::AccelStepper(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, bool)'
HAL2Arduino_0_6d.cpp:356: undefined reference to AccelStepper::AccelStepper(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, bool)' HAL2Arduino_0_6d.cpp:359: undefined reference to
AccelStepper::AccelStepper(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, bool)'
collect2: error: ld returned 1 exit status
Can anybody tell me what to do with that?
And one more thing where to find some guide how to config this software to my case?
Hi,
i'm triying to get HAL2Arduino to work and i'm stuck at some point here.
What i have done is download HAL2Arduino-0.5 and change the pinning and stepsPerInchX/Y/Z for my machine (modAccelStepper ) and the limit switches (modLimSwitch). I compiled it and flashed it to my arduino nano (with Atmega 328p). I connected my cnc to the configured pins. Then i went to linuxcnc and get the Ubuntu 10.04 package with all linuxcnc related stuff included and installed it in a virtualbox.
I followed the instrucions.txt from your github repo and created a new config 'my-mill', changed the path for the python script and modified the config that linuxcnc will find the script. The Arduino is connected to the virtualbox and it's been recgnized with /dev/ttyUSB0.
When i try to start linuxcnc with the shortcut on the desktop for my configuration i receive the following errors:
Can not find -sec MOT -var MOD -num 1
Can not find -sec IO - var IO -num 1
Can not find -sec LINUXCNC -var NML_FILE -num 1
Can not find -sec EMC -var NML_FILE -num 1
Waiting for component 'Hal2Arduino' to become ready......................................Traceback )most recent call last):
File "/opt/HAL2Arduino-0.5.py", line 2020, in
ser.close()
NameError: global name 'ser' is not defined
custom.hal:2. /opt/HAL2Arduino-0.5.py exited without becoming ready
1474
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
Can anyone tell me what's going on there?
HI, I am trying to figure out how to get the modLCD example to work. I see the HAL2Arduino.ino and the Program.ino- Where do I place the modLCD code in either of those file? Or is that completely wrong?
Hi .
I'm new for EMC2Arduino. I have a problem , help me please.
List hardware
I should to will config at #define minStepTime 25 //delay in MICROseconds between step pulses. ???
And config in file my-mill.ini
[TRAJ]
AXES = 3
COORDINATES = X Y Z
MAX_ANGULAR_VELOCITY = 2.166666667
DEFAULT_ANGULAR_VELOCITY = 1.8
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
CYCLE_TIME = 0.001
DEFAULT_VELOCITY = 1.8
MAX_LINEAR_VELOCITY = 2.166666667
value of MAX_LINEAR_VELOCITY and MAX_ANGULAR_VELOCITY same your file example.my-mill .
But if I change screw , pitch to change . I should to calcutator for config it ?
Thank you.
Hello, I have some misconfiguration and i hardly guess what is wrong
I can run accelstepper example on 2,3,4,5 pin with a stepper motor and a 4 input l298n controller.
But the linuxcnc cant move my motor. Am I miss something?
I connected only one stepper motor, but i defined 3 axis. First I defined one axis (X) but I can't run example file on it.
I modified modAccelstepper accordingly my motor pins: .
#define useAccelStepper true
// Requires the AccelStepper Library 1.31 or higher.
// Available at http://www.open.com.au/mikem/arduino/AccelStepper
#if useAccelStepper
#include <AccelStepper.h> // load the library, if needed.
#define numAxises 3 // How many axises do you have?
// (Too intensive for slower 8/16bit MCUs like Mega2560/UNO/etc.)
// Automatically set max speed, based on input vectors.
//Use only with: Arduino Due, ChipKit 32, Maple or other high-speed 32bit MCUs.
#define autoSpeedAdjust false
#define enablePins false // Some drivers have dedicated 'enable' pins.
//If you don't need any, set to false and skip the enablePins section.
#define pinInversion false // If NONE are needed, set to false and skip the pinInversion section.
#define stepperX true // enable to bind this stepper to axis0 (X axis).
#define stepperY true // enable to bind this stepper to axis1 (Y axis).
#define stepperZ true // enable to bind this stepper to axis2 (Z axis).
#define stepperA false // enable to bind this stepper to axis3 (A axis).
#define stepperB false // enable to bind this stepper to axis4 (B axis).
#define stepperC false // enable to bind this stepper to axis5 (C axis).
#define stepperU false // enable to bind this stepper to axis6 (U axis).
#define stepperV false // enable to bind this stepper to axis7 (V axis).
#define stepperW false // enable to bind this stepper to axis8 (W axis).
// Set your steps per unit of measure, inch/mm. (labels just say Inch, but it really should say 'Unit')
#define stepsPerInchX 10
#define stepsPerInchY 10
#define stepsPerInchZ 10
#define stepsPerInchA 200
#define stepsPerInchB 200
#define stepsPerInchC 200
#define stepsPerInchU 200
#define stepsPerInchV 200
#define stepsPerInchW 200
// Define some steppers and the pins they will use.
// Read http://www.open.com.au/mikem/arduino/AccelStepper/
// for documentation on how to setup different kinds of steppers.
#if stepperX
AccelStepper stprX(AccelStepper::FULL4WIRE, 2, 3, 4, 5); //type, stepPin, dirPin
#endif
#if stepperY
AccelStepper stprY(AccelStepper::FULL4WIRE, 6, 7, 8, 9); //type, stepPin, dirPin
#endif
#if stepperZ
AccelStepper stprZ(AccelStepper::FULL4WIRE, 10, 11, 12, 13); //type, stepPin, dirPin
#endif
#if stepperA
AccelStepper stprA(1, 34, 32);
#endif
#if stepperB
AccelStepper stprB(1, 99, 99);
#endif
#if stepperC
AccelStepper stprC(1, 99, 99);
#endif
#if stepperU
AccelStepper stprU(1, 99, 99);
#endif
#if stepperV
AccelStepper stprV(1, 99, 99);
#endif
#if stepperW
AccelStepper stprW(1, 99, 99);
#endif
///Doing some math here. Just skip past it.
#if stepperX
float stpsPrInX=10000.0/stepsPerInchX;
#endif
#if stepperY
float stpsPrInY=10000.0/stepsPerInchY;
#endif
#if stepperZ
float stpsPrInZ=10000.0/stepsPerInchZ;
#endif
#if stepperA
float stpsPrInA=10000.0/stepsPerInchA;
#endif
#if stepperB
float stpsPrInB=10000.0/stepsPerInchB;
#endif
#if stepperC
float stpsPrInC=10000.0/stepsPerInchC;
#endif
#if stepperU
float stpsPrInU=10000.0/stepsPerInchU;
#endif
#if stepperV
float stpsPrInV=10000.0/stepsPerInchV;
#endif
#if stepperW
float stpsPrInW=10000.0/stepsPerInchW;
#endif
unsigned long deltaTimeOld[10];
long deltaPosOld[10];
void stepperSetup(){
for(int i=36;i<40;i++){
pinMode(i,OUTPUT);
digitalWrite(i,LOW);
}
for(int i=0;i<10;i++){
deltaPosOld[i]=0;
deltaTimeOld[i]=millis();
}
///// pinInversion section /////
#if pinInversion
// example: stepper#.setPinsInverted(step, direction, enable);
#if stepperX
stprX.setPinsInverted(false, false, true);
#endif
#if stepperY
stprY.setPinsInverted(false, false, true);
#endif
#if stepperZ
stprZ.setPinsInverted(false, false, true);
#endif
#if stepperA
stprA.setPinsInverted(false, false, true);
#endif
#if stepperB
stprB.setPinsInverted(false, false, false);
#endif
#if stepperC
stprC.setPinsInverted(false, false, false);
#endif
#if stepperU
stprU.setPinsInverted(false, false, false);
#endif
#if stepperV
stprV.setPinsInverted(false, false, false);
#endif
#if stepperW
stprW.setPinsInverted(false, false, false);
#endif
#endif
///// enablePins section /////
#if enablePins
// example: stepper#.setEnablePin(q); change 'q' to the enable pin for this axis.
#if stepperX
stprX.setEnablePin(39);
#endif
#if stepperY
stprY.setEnablePin(38);
#endif
#if stepperZ
stprZ.setEnablePin(37);
#endif
#if stepperA
stprA.setEnablePin(36);
#endif
#if stepperB
stprB.setEnablePin(0);
#endif
#if stepperC
stprC.setEnablePin(0);
#endif
#if stepperU
stprU.setEnablePin(0);
#endif
#if stepperV
stprV.setEnablePin(0);
#endif
#if stepperW
stprW.setEnablePin(0);
#endif
#endif
#if stepperX
stprX.setMaxSpeed(3.1333*stepsPerInchX);
stprX.setAcceleration(10.0*stepsPerInchX);
#endif
#if stepperY
stprY.setMaxSpeed(3.1333*stepsPerInchY);
stprY.setAcceleration(10.0*stepsPerInchY);
#endif
#if stepperZ
stprZ.setMaxSpeed(3.1333*stepsPerInchZ);
stprZ.setAcceleration(10.0*stepsPerInchZ);
#endif
#if stepperA
stprA.setMaxSpeed(3.1333*stepsPerInchA);
stprA.setAcceleration(10.0*stpsPrInA);
#endif
#if stepperB
stprB.setMaxSpeed(3.1333*stepsPerInchB);
stprB.setAcceleration(10.0*stepsPerInchB);
#endif
#if stepperC
stprC.setMaxSpeed(3.1333*stepsPerInchC);
stprC.setAcceleration(10.0*stepsPerInchC);
#endif
#if stepperU
stprU.setMaxSpeed(3.1333*stpsPrInU);
stprU.setAcceleration(10.0*stepsPerInchU);
#endif
#if stepperV
stprV.setMaxSpeed(3.1333*stpsPrInV);
stprV.setAcceleration(10.0*stepsPerInchV);
#endif
#if stepperW
stprW.setMaxSpeed(3.1333*stpsPrInW);
stprW.setAcceleration(10.0*stepsPerInchW);
#endif
#define enableSlpRstMicroStepCode true
#if enableSlpRstMicroStepCode
//Sparkfun's Quadstepper Specific settings.
// (Ie: header pins used to directly plug a quadstepper into Mega2560 pins 22~35, 40~53)
//set SLP/RST pins
for(int i=22;i<26;i++){
pinMode(i,OUTPUT);
digitalWrite(i,HIGH);
pinMode(i+28,OUTPUT);
digitalWrite(i+28,HIGH);
}
//set MS1,MS2,MS3 pins (set stepping mode)
for(int i=26;i<32;i++){
pinMode(i,OUTPUT);
digitalWrite(i,LOW);
pinMode(i+18,OUTPUT);
digitalWrite(i+18,LOW);
}
//end of////////TEMPORARY CODE
#endif
}
void runSteppers(){
if(canMove){
#if stepperX
stprX.run();
#endif
#if stepperY
stprY.run();
#endif
#if stepperZ
stprZ.run();
#endif
#if stepperA
stprA.run();
#endif
#if stepperB
stprB.run();
#endif
#if stepperC
stprC.run();
#endif
#if stepperU
stprU.run();
#endif
#if stepperV
stprV.run();
#endif
#if stepperW
stprW.run();
#endif
}
}
#if autoSpeedAdjust
float deltaOld[9];
unsigned long getDelta(int axis,long pos)
{
unsigned long time=millis();
unsigned long deltaTime=time-deltaTimeOld[axis];
long delta;
if(pos<deltaPosOld[axis]){delta=deltaPosOld[axis]-pos;}else{delta=pos-deltaPosOld[axis];}
if(delta<0){delta*=-1;}
if(pos==deltaPosOld[axis]){delta=0;}
deltaTimeOld[axis]=time;
deltaPosOld[axis]=pos;
long deltaRet=(delta/deltaTime)*1000;
if(deltaRet>0){
return deltaRet; // rate of change per second.
}else{
return 1;
}
}
#endif
#endif
This is my custom.hal :
#First load the Python user module named /user/bin/9axis_Hal2Arduino with the name 'Hal2Arduino'
loadusr -Wn Hal2Arduino /home/g1ra/linuxcnc/configs/my-mill/HAL2Arduino-0.5.py
#Second 'unlinkp' our pins to make them available for use.
# Then use 'net' to recreate/hook into them.
# Comment out any sections that your machine doesn't have.
unlinkp axis.0.motor-pos-cmd
#net xpos-cmd axis.0.motor-pos-cmd Hal2Arduino.axis_0_motor-pos-cmd
unlinkp axis.1.motor-pos-cmd
#net ypos-cmd axis.1.motor-pos-cmd Hal2Arduino.axis_1_motor-pos-cmd
unlinkp axis.2.motor-pos-cmd
#net zpos-cmd axis.2.motor-pos-cmd Hal2Arduino.axis_2_motor-pos-cmd
unlinkp axis.0.joint-pos-cmd
unlinkp axis.1.joint-pos-cmd
unlinkp axis.2.joint-pos-cmd
net xpos-cmd Hal2Arduino.axis_0_joint-pos-cmd
net ypos-cmd Hal2Arduino.axis_1_joint-pos-cmd
net zpos-cmd Hal2Arduino.axis_2_joint-pos-cmd
unlinkp axis.0.home-sw-in
net home-X Hal2Arduino.axis_0_home-sw-in axis.0.home-sw-in
unlinkp axis.1.home-sw-in
net home-Y Hal2Arduino.axis_1_home-sw-in axis.1.home-sw-in
unlinkp axis.2.home-sw-in
net home-Z Hal2Arduino.axis_2_home-sw-in axis.2.home-sw-in
unlinkp axis.0.neg-lim-sw-in
unlinkp axis.1.neg-lim-sw-in
unlinkp axis.2.neg-lim-sw-in
net min-X Hal2Arduino.axis_0_neg-lim-sw-in axis.0.neg-lim-sw-in
net min-Y Hal2Arduino.axis_1_neg-lim-sw-in axis.1.neg-lim-sw-in
net min-Z Hal2Arduino.axis_2_neg-lim-sw-in axis.2.neg-lim-sw-in
unlinkp axis.0.pos-lim-sw-in
unlinkp axis.1.pos-lim-sw-in
unlinkp axis.2.pos-lim-sw-in
net max-X Hal2Arduino.axis_0_pos-lim-sw-in axis.0.pos-lim-sw-in
net max-Y Hal2Arduino.axis_1_pos-lim-sw-in axis.1.pos-lim-sw-in
net max-Z Hal2Arduino.axis_2_pos-lim-sw-in axis.2.pos-lim-sw-in
unlinkp axis.0.joint-vel-cmd
unlinkp axis.1.joint-vel-cmd
unlinkp axis.2.joint-vel-cmd
#net getXspeed Hal2Arduino.axis_0_joint-vel-cmd
#net getXspeed Hal2Arduino.axis_1_joint-vel-cmd
#net getXspeed Hal2Arduino.axis_2_joint-vel-cmd
This is my-mill.hal :
# Generated by stepconf at Sun Mar 18 14:52:32 2012
# If you make changes to this file, they will be
# overwritten when you run stepconf again
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
#loadrt probe_parport
#loadrt hal_parport cfg="0x378 out "
#setp parport.0.reset-time 2000
loadrt stepgen step_type=0,0,0,0
loadrt pwmgen output_type=0
#addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.make-pulses base-thread
#addf parport.0.write base-thread
#addf parport.0.reset base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
net spindle-cmd <= motion.spindle-speed-out => pwmgen.0.value
net spindle-enable <= motion.spindle-on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 0.0
setp pwmgen.0.scale 1166.66666667
setp pwmgen.0.offset 0.114285714286
setp pwmgen.0.dither-pwm true
#net spindle-on <= motion.spindle-on
net spindle-cw <= motion.spindle-forward
net spindle-ccw <= motion.spindle-reverse
net spindle-brake <= motion.spindle-brake
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
net probe-in => motion.probe-input
net dout-00 <= motion.digital-out-00
#net spindle-on => parport.0.pin-01-out
#net spindle-cw => parport.0.pin-02-out
#net spindle-ccw => parport.0.pin-03-out
#net spindle-pwm => parport.0.pin-04-out
#net spindle-brake => parport.0.pin-05-out
#net coolant-mist => parport.0.pin-06-out
#net coolant-flood => parport.0.pin-07-out
#net estop-out => parport.0.pin-08-out
#net dout-00 => parport.0.pin-09-out
#net spindle-cw => parport.0.pin-14-out
#net spindle-pwm => parport.0.pin-16-out
#net xenable => parport.0.pin-17-out
#net home-x <= parport.0.pin-10-in
#net home-y <= parport.0.pin-11-in
#net home-z <= parport.0.pin-12-in
#net home-a <= parport.0.pin-13-in
#net probe-in <= parport.0.pin-15-in
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 17000
setp stepgen.0.dirsetup 17000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable
net home-x => axis.0.home-sw-in
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 17000
setp stepgen.1.dirsetup 17000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable
net home-y => axis.1.home-sw-in
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 17000
setp stepgen.2.dirsetup 17000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable axis.2.amp-enable-out => stepgen.2.enable
net home-z => axis.2.home-sw-in
#setp stepgen.3.position-scale [AXIS_3]SCALE
#setp stepgen.3.steplen 1
#setp stepgen.3.stepspace 0
#setp stepgen.3.dirhold 17000
#setp stepgen.3.dirsetup 17000
#setp stepgen.3.maxaccel [AXIS_3]STEPGEN_MAXACCEL
#net apos-cmd axis.3.motor-pos-cmd => stepgen.3.position-cmd
#net apos-fb stepgen.3.position-fb => axis.3.motor-pos-fb
#net astep <= stepgen.3.step
#net adir <= stepgen.3.dir
#net aenable axis.3.amp-enable-out => stepgen.3.enable
#net home-a => axis.3.home-sw-in
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
This is stepconf:
<?xml version="1.0" ?>
<stepconf>
<property name="ahomepos" type="int" value="0"/>
<property name="ahomesw" type="int" value="0"/>
<property name="ahomevel" type="float" value="0.05"/>
<property name="alatchdir" type="int" value="0"/>
<property name="aleadscrew" type="int" value="8"/>
<property name="amaxacc" type="int" value="1200"/>
<property name="amaxlim" type="int" value="9999"/>
<property name="amaxvel" type="int" value="360"/>
<property name="amicrostep" type="int" value="2"/>
<property name="aminlim" type="int" value="-9999"/>
<property name="apulleyden" type="int" value="1"/>
<property name="apulleynum" type="int" value="1"/>
<property name="ascale" type="int" value="0"/>
<property name="asteprev" type="int" value="200"/>
<property name="axes" type="int" value="0"/>
<property name="classicladder" type="bool" value="False"/>
<property name="createshortcut" type="bool" value="True"/>
<property name="createsymlink" type="bool" value="True"/>
<property name="customhal" type="int" value="1"/>
<property name="digitsin" type="float" value="15.0"/>
<property name="digitsout" type="float" value="15.0"/>
<property name="dirhold" type="float" value="20000.0"/>
<property name="dirsetup" type="float" value="20000.0"/>
<property name="drivertype" type="string" value="other"/>
<property name="floatsin" type="float" value="10.0"/>
<property name="floatsout" type="float" value="10.0"/>
<property name="halui" type="bool" value="False"/>
<property name="ioaddr" type="string" value="0x378"/>
<property name="ioaddr2" type="string" value="Enter Address"/>
<property name="ioaddr3" type="string" value="Enter Address"/>
<property name="ladderconnect" type="bool" value="True"/>
<property name="ladderhaltype" type="int" value="0"/>
<property name="laddername" type="string" value="custom.clp"/>
<property name="latency" type="float" value="15000.0"/>
<property name="machinename" type="string" value="my-mill"/>
<property name="manualtoolchange" type="bool" value="True"/>
<property name="md5sums" type="eval" value="[('/home/g1ra/linuxcnc/configs/my-mill/README', '90801d5712c655a42bedd285be380e25'), ('/home/g1ra/linuxcnc/configs/my-mill/my-mill.ini', 'b20f4c7eeefb5dceb610e12ec1b2afc0'), ('/home/g1ra/linuxcnc/configs/my-mill/my-mill.hal', '2f33f6ead38f6cb401b59c7338d4ee07')]"/>
<property name="modbus" type="bool" value="False"/>
<property name="number_pports" type="int" value="1"/>
<property name="period" type="int" value="25000"/>
<property name="pin1" type="string" value="estop-out"/>
<property name="pin10" type="string" value="unused-input"/>
<property name="pin10inv" type="bool" value="False"/>
<property name="pin11" type="string" value="unused-input"/>
<property name="pin11inv" type="bool" value="False"/>
<property name="pin12" type="string" value="unused-input"/>
<property name="pin12inv" type="bool" value="False"/>
<property name="pin13" type="string" value="unused-input"/>
<property name="pin13inv" type="bool" value="False"/>
<property name="pin14" type="string" value="spindle-cw"/>
<property name="pin14inv" type="bool" value="False"/>
<property name="pin15" type="string" value="unused-input"/>
<property name="pin15inv" type="bool" value="False"/>
<property name="pin16" type="string" value="spindle-pwm"/>
<property name="pin16inv" type="bool" value="False"/>
<property name="pin17" type="string" value="xenable"/>
<property name="pin17inv" type="bool" value="False"/>
<property name="pin1inv" type="bool" value="False"/>
<property name="pin2" type="string" value="xstep"/>
<property name="pin2inv" type="bool" value="False"/>
<property name="pin3" type="string" value="xdir"/>
<property name="pin3inv" type="bool" value="False"/>
<property name="pin4" type="string" value="ystep"/>
<property name="pin4inv" type="bool" value="False"/>
<property name="pin5" type="string" value="ydir"/>
<property name="pin5inv" type="bool" value="False"/>
<property name="pin6" type="string" value="zstep"/>
<property name="pin6inv" type="bool" value="False"/>
<property name="pin7" type="string" value="zdir"/>
<property name="pin7inv" type="bool" value="False"/>
<property name="pin8" type="string" value="astep"/>
<property name="pin8inv" type="bool" value="False"/>
<property name="pin9" type="string" value="adir"/>
<property name="pin9inv" type="bool" value="False"/>
<property name="pp2_direction" type="int" value="0"/>
<property name="pp3_direction" type="int" value="0"/>
<property name="pyvcp" type="bool" value="False"/>
<property name="pyvcpconnect" type="bool" value="True"/>
<property name="pyvcphaltype" type="int" value="0"/>
<property name="pyvcpname" type="string" value="custom.xml"/>
<property name="s32in" type="float" value="10.0"/>
<property name="s32out" type="float" value="10.0"/>
<property name="spindlecarrier" type="float" value="100.0"/>
<property name="spindlecpr" type="float" value="100.0"/>
<property name="spindlefiltergain" type="float" value="0.01"/>
<property name="spindlenearscale" type="float" value="1.5"/>
<property name="spindlepwm1" type="float" value="0.2"/>
<property name="spindlepwm2" type="float" value="0.8"/>
<property name="spindlespeed1" type="float" value="100.0"/>
<property name="spindlespeed2" type="float" value="800.0"/>
<property name="stepspace" type="float" value="5000.0"/>
<property name="steptime" type="float" value="5000.0"/>
<property name="tempexists" type="int" value="0"/>
<property name="units" type="int" value="0"/>
<property name="usespindleatspeed" type="bool" value="False"/>
<property name="xhomepos" type="float" value="0.0"/>
<property name="xhomesw" type="float" value="0.0"/>
<property name="xhomevel" type="float" value="0.05"/>
<property name="xlatchdir" type="int" value="0"/>
<property name="xleadscrew" type="float" value="20.0"/>
<property name="xmaxacc" type="float" value="1.0"/>
<property name="xmaxlim" type="float" value="8.0"/>
<property name="xmaxvel" type="float" value="0.1"/>
<property name="xmicrostep" type="float" value="1.0"/>
<property name="xminlim" type="float" value="0.0"/>
<property name="xpulleyden" type="float" value="1.0"/>
<property name="xpulleynum" type="float" value="1.0"/>
<property name="xscale" type="float" value="1920.0"/>
<property name="xsteprev" type="float" value="96.0"/>
<property name="yhomepos" type="float" value="0.0"/>
<property name="yhomesw" type="float" value="0.0"/>
<property name="yhomevel" type="float" value="0.05"/>
<property name="ylatchdir" type="int" value="0"/>
<property name="yleadscrew" type="float" value="20.0"/>
<property name="ymaxacc" type="float" value="30.0"/>
<property name="ymaxlim" type="float" value="8.0"/>
<property name="ymaxvel" type="float" value="1.0"/>
<property name="ymicrostep" type="float" value="2.0"/>
<property name="yminlim" type="float" value="0.0"/>
<property name="ypulleyden" type="float" value="1.0"/>
<property name="ypulleynum" type="float" value="1.0"/>
<property name="yscale" type="float" value="8000.0"/>
<property name="ysteprev" type="float" value="200.0"/>
<property name="zhomepos" type="float" value="0.0"/>
<property name="zhomesw" type="float" value="0.0"/>
<property name="zhomevel" type="float" value="0.05"/>
<property name="zlatchdir" type="int" value="0"/>
<property name="zleadscrew" type="float" value="20.0"/>
<property name="zmaxacc" type="float" value="30.0"/>
<property name="zmaxlim" type="float" value="8.0"/>
<property name="zmaxvel" type="float" value="1.0"/>
<property name="zmicrostep" type="float" value="2.0"/>
<property name="zminlim" type="float" value="-4.0"/>
<property name="zpulleyden" type="float" value="1.0"/>
<property name="zpulleynum" type="float" value="1.0"/>
<property name="zscale" type="float" value="8000.0"/>
<property name="zsteprev" type="float" value="200.0"/>
</stepconf>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.