Git Product home page Git Product logo

emc-2-arduino's People

Contributors

dewy721 avatar rdpowers avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

emc-2-arduino's Issues

Compilation error

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?

Getting this to work

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?

modLCD Question

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?

I have a problem to config motor in emcarduino_07b.ino

Hi .
I'm new for EMC2Arduino. I have a problem , help me please.

List hardware

  • stepper 1.8 degree full step is 200 step / turn.
  • I use a TB6600 1/16 = 3200 step/ turn .
  • Pitch of screw is 2 mm.

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.

Some misconfiguration

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>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.