ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board

More
3 years 9 months ago #262907 by TOLP2

Welcome to the club. Good to hear it works, gives me a boost to go on with developing. 

Please Log in to join the conversation.

More
3 years 9 months ago #262923 by deroj
Yes. It feels great :cheer:
One question for the 5A-75B examples. The encoders have no Z Input.
Because the hardware cannot handle this?
For the 75E you have encoders with A/B/Z.
Because I will need Z...

Please Log in to join the conversation.

More
3 years 9 months ago #262971 by wuyatom
 

Attachment not found

Now there is a new problem

Please Log in to join the conversation.

More
3 years 9 months ago #262984 by TOLP2

Yes. It feels great :cheer:
One question for the 5A-75B examples. The encoders have no Z Input.
Because the hardware cannot handle this?
For the 75E you have encoders with A/B/Z.
Because I will need Z...
It is perfectly possible to use the ABZ encoders on the 75A. It's just an example, you can change it to your needs. 

Please Log in to join the conversation.

More
3 years 9 months ago #262986 by TOLP2

 

Attachment not found

Now there is a new problem
 
​​​​​​The total length of any pin name cannot exceed 80 characters in LinuxCNC. This name is longer and therefore gets truncated, therefore the original (too long) name does not exists. 

To solve, try to limit your board name to 16 characters or less. 

Please Log in to join the conversation.

More
3 years 9 months ago #262998 by wuyatom
Can you send your hal and ini files for my reference

Please Log in to join the conversation.

More
3 years 9 months ago #263001 by wuyatom
 

Attachment not found

My emergency stop button can't be pressed

Please Log in to join the conversation.

More
3 years 9 months ago #263003 by wuyatom
Code:
        loadrt [KINS]KINEMATICS
        loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
        loadrt litexcnc
        loadrt litexcnc_eth config_file="[LITEXCNC]CONFIG_FILE"
        loadrt pos2vel number=6
        loadusr -W hal_manualtoolchange
        
        # Add the functions to the thread
        addf [LITEXCNC](NAME).read servo-thread
        addf motion-command-handler servo-thread
        addf motion-controller servo-thread
        addf pos2vel.convert servo-thread
        addf [LITEXCNC](NAME).write servo-thread
        
        ########################################################################
        #STEPGEN
        ########################################################################
        # - timings (prevent re-calculation)
        net pos2vel.period-s       <= [LITEXCNC](NAME).stepgen.period-s
        net pos2vel.period-s-recip <= [LITEXCNC](NAME).stepgen.period-s-recip
        
        #STEPGEN - X-AXIS
        ########################################################################
        # POS2VEL
        # - position control
        net xpos-fb  <= [LITEXCNC](NAME).stepgen.00.position_prediction
        net xpos-fb  => joint.0.motor-pos-fb
        net xpos-fb  => pos2vel.0.position-feedback
        net xvel-fb  pos2vel.0.velocity-feedback <= [LITEXCNC](NAME).stepgen.00.velocity-prediction
        net xpos-cmd pos2vel.0.position-cmd      <= joint.0.motor-pos-cmd
        # - settings
        setp pos2vel.0.max-acceleration [JOINT_0]STEPGEN_MAXACCEL
        # setp pos2vel.0.debug 1
        
        # STEPGEN
        # - Setup of timings
        setp [LITEXCNC](NAME).stepgen.00.position-scale   [JOINT_0]SCALE
        setp [LITEXCNC](NAME).stepgen.00.steplen          5000
        setp [LITEXCNC](NAME).stepgen.00.stepspace        5000
        setp [LITEXCNC](NAME).stepgen.00.dir-hold-time    10000
        setp [LITEXCNC](NAME).stepgen.00.dir-setup-time   10000
        setp [LITEXCNC](NAME).stepgen.00.max-velocity     [JOINT_0]MAX_VELOCITY
        setp [LITEXCNC](NAME).stepgen.00.max-acceleration [JOINT_0]STEPGEN_MAXACCEL
        # setp [LITEXCNC](NAME).stepgen.00.debug 1
        # - Connect velocity command
        net xvel_cmd pos2vel.0.velocity-cmd => [LITEXCNC](NAME).stepgen.00.velocity-cmd
        # - Set the acceleration to be used (NOTE: pos2vel has fixed acceleration)
        setp [LITEXCNC](NAME).stepgen.00.acceleration-cmd [JOINT_0]STEPGEN_MAXACCEL
        # - enable the drive
        net xenable joint.0.amp-enable-out => [LITEXCNC](NAME).stepgen.00.enable
        
        #STEPGEN - Y-AXIS
        ########################################################################
        # POS2VEL
        # - position control
        net ypos-fb  <= [LITEXCNC](NAME).stepgen.01.position_prediction
        net ypos-fb  => joint.1.motor-pos-fb
        net ypos-fb  => pos2vel.1.position-feedback
        net yvel-fb  pos2vel.1.velocity-feedback <= [LITEXCNC](NAME).stepgen.01.velocity-prediction
        net ypos-cmd pos2vel.1.position-cmd      <= joint.1.motor-pos-cmd
        # - settings
        setp pos2vel.1.max-acceleration [JOINT_1]STEPGEN_MAXACCEL
        # setp pos2vel.0.debug 1
        
        # STEPGEN
        # - Setup of timings
        setp [LITEXCNC](NAME).stepgen.01.position-scale   [JOINT_1]SCALE
        setp [LITEXCNC](NAME).stepgen.01.steplen          5000
        setp [LITEXCNC](NAME).stepgen.01.stepspace        5000
        setp [LITEXCNC](NAME).stepgen.01.dir-hold-time    10000
        setp [LITEXCNC](NAME).stepgen.01.dir-setup-time   10000
        setp [LITEXCNC](NAME).stepgen.01.max-velocity     [JOINT_1]MAX_VELOCITY
        setp [LITEXCNC](NAME).stepgen.01.max-acceleration [JOINT_1]STEPGEN_MAXACCEL
        # setp [LITEXCNC](NAME).stepgen.00.debug 1
        # - Connect velocity command
        net yvel_cmd pos2vel.1.velocity-cmd => [LITEXCNC](NAME).stepgen.01.velocity-cmd
        # - Set the acceleration to be used (NOTE: pos2vel has fixed acceleration)
        setp [LITEXCNC](NAME).stepgen.01.acceleration-cmd [JOINT_1]STEPGEN_MAXACCEL
        # - enable the drive
        net yenable joint.1.amp-enable-out => [LITEXCNC](NAME).stepgen.01.enable
        
        #//////////////////////////////////////////////////////////////////////////////
        #STEPGEN - Z-AXIS
        ########################################################################
        # POS2VEL
        # - position control
        net zpos-fb  <= [LITEXCNC](NAME).stepgen.02.position_prediction
        net zpos-fb  => joint.2.motor-pos-fb
        net zpos-fb  => pos2vel.2.position-feedback
        net zvel-fb  pos2vel.2.velocity-feedback <= [LITEXCNC](NAME).stepgen.02.velocity-prediction
        net zpos-cmd pos2vel.2.position-cmd      <= joint.2.motor-pos-cmd
        # - settings
        setp pos2vel.2.max-acceleration [JOINT_2]STEPGEN_MAXACCEL
        # setp pos2vel.0.debug 1
        
        # STEPGEN
        # - Setup of timings
        setp [LITEXCNC](NAME).stepgen.02.position-scale   [JOINT_2]SCALE
        setp [LITEXCNC](NAME).stepgen.02.steplen          5000
        setp [LITEXCNC](NAME).stepgen.02.stepspace        5000
        setp [LITEXCNC](NAME).stepgen.02.dir-hold-time    10000
        setp [LITEXCNC](NAME).stepgen.02.dir-setup-time   10000
        setp [LITEXCNC](NAME).stepgen.02.max-velocity     [JOINT_2]MAX_VELOCITY
        setp [LITEXCNC](NAME).stepgen.02.max-acceleration [JOINT_2]STEPGEN_MAXACCEL
        # setp [LITEXCNC](NAME).stepgen.00.debug 1
        # - Connect velocity command
        net zvel_cmd pos2vel.2.velocity-cmd => [LITEXCNC](NAME).stepgen.02.velocity-cmd
        # - Set the acceleration to be used (NOTE: pos2vel has fixed acceleration)
        setp [LITEXCNC](NAME).stepgen.02.acceleration-cmd [JOINT_2]STEPGEN_MAXACCEL
        # - enable the drive
        net zenable joint.2.amp-enable-out => [LITEXCNC](NAME).stepgen.02.enable
        
        #net estop-out  =>     [LITEXCNC](NAME).gpio.j1:8.out
        
        # toolchange setup
        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
        
        
        
        
        
 

Please Log in to join the conversation.

More
3 years 9 months ago #263016 by deroj
To find out you can open terminal and run "halrun".
then load the two modules with
loadrt litexcnc
loadrt litexcnc_eth config_file="/path/to/config.json"

after successfully loaded type
show pin

which gives you a list of all pins and their names

Please Log in to join the conversation.

More
3 years 9 months ago #263029 by TOLP2
@wuyatom: please clarify what you mean with 'cannot press E-Stop'. Is this in the GUI, or is it a physical button?

In case of the GUI: I cannot help you as you are using Axis and I use GMOCCAPY.

If it is a physical button. In the HAL file you posted I don't see any input defined for the E-stop. If you have an input assigned to the E-Stop and it is still not running, please verify you've modified the buffers. The default buffers are output only!

Please Log in to join the conversation.

Time to create page: 0.380 seconds
Powered by Kunena Forum