ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
25 Jan 2023 21:55 #262907
by TOLP2
Replied by TOLP2 on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
Welcome to the club. Good to hear it works, gives me a boost to go on with developing.
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
26 Jan 2023 08:15 #262923
by deroj
Replied by deroj on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
Yes. It feels great
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...
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 or Create an account to join the conversation.
27 Jan 2023 02:23 #262971
by wuyatom
Replied by wuyatom on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
Attachments:
Please Log in or Create an account to join the conversation.
27 Jan 2023 07:42 #262984
by TOLP2
Replied by TOLP2 on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
It is perfectly possible to use the ABZ encoders on the 75A. It's just an example, you can change it to your needs.Yes. It feels great
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 or Create an account to join the conversation.
27 Jan 2023 07:47 #262986
by TOLP2
To solve, try to limit your board name to 16 characters or less.
Replied by TOLP2 on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
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.Now there is a new problem
To solve, try to limit your board name to 16 characters or less.
The following user(s) said Thank You: wuyatom
Please Log in or Create an account to join the conversation.
27 Jan 2023 12:22 #262998
by wuyatom
Replied by wuyatom on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
Can you send your hal and ini files for my reference
Please Log in or Create an account to join the conversation.
27 Jan 2023 12:26 - 27 Jan 2023 12:28 #263001
by wuyatom
Replied by wuyatom on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
Attachments:
Last edit: 27 Jan 2023 12:28 by wuyatom.
Please Log in or Create an account to join the conversation.
27 Jan 2023 12:30 #263003
by wuyatom
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
Replied by wuyatom on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
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 or Create an account to join the conversation.
27 Jan 2023 17:24 #263016
by deroj
Replied by deroj on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
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
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 or Create an account to join the conversation.
27 Jan 2023 22:11 #263029
by TOLP2
Replied by TOLP2 on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
@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!
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 or Create an account to join the conversation.
Time to create page: 0.278 seconds