My build and questions
don't understand what people mean by the $ hotkey. Can I just use shift 4 are are they talking about something else?
Shift-4 only works if you are running the gantrykins kinematics. You haven't said if you are or not.
There is more than one way to run a gantry, some very simple indeed, some less simple.
The very simplest method is simply to wire the step and direction outputs to two separate stepper drives. There is no way to home the sides independently this way.
The next simplest is to connect two stepgens in the HAL file to the Y-axis position command. (net Y-pos axis.1.motor-position-cmd stepgen.1.position-cmd stepgen.3.position-cmd)
The "A" axis is a rotary axis. You are confused about the difference between axes (positions in space corresponding to G-code commands) and "joints", the positions of actual actuators. This is not uncommon, and in fact LinuxCNC itself is very confused about this internally. This is being improved.
Another option is a modification of the second idea (two stepgens in HAL) which incorporates a HAL component to handle the homing process. I think this is solving the problem in the wrong place, but the component exists: github.com/machinekit/machinekit/blob/ma...mponents/gantry.comp
The "right" way to do it is with a kinematics module such as gantrykins. The issue here is that gantrykins seems to add more problems than it solves. If you run the gantrykins "sim" configuration from the samples (with no hardware attached) then you will get a feel for what gantrykins is like. You will also then see that the "$" shortcut works, and what it does.
The longer-term "right" way will be "gentrivkins" in the "joints-axes-4" version of LinuxCNC, which finally sorts out the confusion between joints and axes. Gentrivkins allows you to map more than one "joint" to a single "axis" but doesn't require a switch to workd mode from joint mode. but also at the moment it does not support wheel-jogging and there are reports that it does not avoid hitting the soft limits.
Please Log in or Create an account to join the conversation.
- yoshimitsuspeed
- Offline
- Premium Member
- Posts: 148
- Thank you received: 0
Which bit of this was not clear?
Although I know more about programming than the vast majority of the world I am still pretty novice when it comes to this stuff.
I still feel like I must know more that your average person who would come on here asking for advice.
Maybe it will help if I change the context a little bit.
Someone comes on a car forum complaining that their transmission is grinding.
I feel like most of the advice I have found in searches and recieved here is akin to someone saying "well you just need to take your transmission out, take it apart, replace everything that is bad and put it all back together.
For someone who spends all day rebuilding transmissions this is pretty much all they need to know. Of course they aren't coming on the forums asking for advice so that response really helps no one.
Now in the car world it's easy because you can just provide them with a link to the manual, tell them to RTFM and ask any questions they may have after that.
Unfortunately here I can find no good documentation when it comes to this.
A car manual is a perfect example of what I am talking about.
Take the transmission out means nothign to someone who isn't intimately familiar with the process. They need the manual that says
Step 1.
Remove the intake manifold.
Step 2. Remove the exhaust manifold.
Now for someone like me who can swap motors blindfolded it seems like this should be more than enough info but novices still constantly come on looking for help and when they do you try to give them explicet instructions at their level of understanding as best possible.
Your post was not even a little bit clear.
How was I supposed to know that stepconf wouldn't be usable after edititing it manually?
More importantly how am I supposed to navigate the INI when I am completely unfamiliar with it?
In stepconf screw pitch is easy. Since no one answered my question about it yesterday it was after messing with things for a couple hours today that I realized and understood the correlation of screw pitch and scale. I still have no idea how it translates or what it's talking about but at least I know that when you change one in the stepconf that's what changes in the INI.
Between here and the IRC a number of people have said.
"Oh just edit the INI"
How does that not seem vague and unclear?
I could just delete the whole thing. There edited.
I could replace everything that is different but that didn't work.
I can try and slectively copy and past things in but I DON"T KNOW HALF OF WHAT I"M LOOKING AT.
Between say a file setup in stepconf and say gantry. I don't know what should stay unchanged in the gantry file and what I should paste in from the other file. Or maybe I should do it the other way around.
I'm sorry if I sound a little ticked but everything I have found and seen is all so big picture that it leaves too many unanswered questions for someone who isn't already familiar with it and people telling you the same big picture thing over and over does not help.
Oh just edit the INI file.
No frikken kidding
If you cannot see a menu item to switch in and out of world mode, you are probably not running gantrykins.
Again no kidding.
Nowhere is it made clear exatcly what you need to do, if you need to do, how to set it up, what to edit, how to edit it etc.
Instead of moaning at the lack of personalised info for your particular problem, why not accept the offer of just that
I will post my files in a little bit.
I would much rather someone, or even better a manual or guide to tell me how to set it up myself. Not only would it help me get familiar with it but it would help the next person who comes along looking for the same info.
Once again something that covers all the big easy stuff then from there deal with the individual issues.
For example.
Setup a stepconf file and test all your axis. Once working as best as possible save it.
Create a new profile using Gantry.
Open up the INI from your first stepconf profile and the INI from your gantry profile.
Copy
This line from one to the other.
Copy this line from one to the other.
Copy this section from one to the other.
Oh and here is a cheat sheet to tell you what all the important things mean, how to change axis information, speeds, travel direction etc directly in the INI because you will no longer be able to use stepconf.
Please Log in or Create an account to join the conversation.
- yoshimitsuspeed
- Offline
- Premium Member
- Posts: 148
- Thank you received: 0
don't understand what people mean by the $ hotkey. Can I just use shift 4 are are they talking about something else?
Shift-4 only works if you are running the gantrykins kinematics. You haven't said if you are or not.
I didn't know if I was or not. Didn't know how to set it up ir if I had to. Definitely didn't know that these settings were only available in gantrykins or how to make it work.
There is more than one way to run a gantry, some very simple indeed, some less simple.
The very simplest method is simply to wire the step and direction outputs to two separate stepper drives. There is no way to home the sides independently this way.
The next simplest is to connect two stepgens in the HAL file to the Y-axis position command. (net Y-pos axis.1.motor-position-cmd stepgen.1.position-cmd stepgen.3.position-cmd)
I got it running today by configuring two pin outputs to both control y in stepconf as I found in instructions on cnczone. unfortunatley I keep getting errors. I will report more on that at the bottom.
The "A" axis is a rotary axis. You are confused about the difference between axes (positions in space corresponding to G-code commands) and "joints", the positions of actual actuators. This is not uncommon, and in fact LinuxCNC itself is very confused about this internally. This is being improved.
Another option is a modification of the second idea (two stepgens in HAL) which incorporates a HAL component to handle the homing process. I think this is solving the problem in the wrong place, but the component exists: github.com/machinekit/machinekit/blob/ma...mponents/gantry.comp
The "right" way to do it is with a kinematics module such as gantrykins. The issue here is that gantrykins seems to add more problems than it solves. If you run the gantrykins "sim" configuration from the samples (with no hardware attached) then you will get a feel for what gantrykins is like. You will also then see that the "$" shortcut works, and what it does.
The longer-term "right" way will be "gentrivkins" in the "joints-axes-4" version of LinuxCNC, which finally sorts out the confusion between joints and axes. Gentrivkins allows you to map more than one "joint" to a single "axis" but doesn't require a switch to workd mode from joint mode. but also at the moment it does not support wheel-jogging and there are reports that it does not avoid hitting the soft limits.
don't understand what people mean by the $ hotkey. Can I just use shift 4 are are they talking about something else?
Lol okay.
When I researched this six months ago I was under the impression that this was a much more developed feature.
Right now I don't have home/limit switches but I do plan on adding them.
For now should I just use the setup I currently have, square the gantry with the machine turned off and then run it as the 3 axis it's currently setup as?
If so then I still need to figure out why I am getting errors.
It is very inconsistent but the UI will crash from time to time. Sometimes when the machine is running, sometimes when I am homing or doing something else and just as often even if the machine is just sitting there.
After it crashes this is the report.
I tried to read through it but couldn't make anything of it.
Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/share/linuxcnc/tcl/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.5
LINUXCNC - 2.5.4
Machine configuration directory is '/home/yoshi/linuxcnc/configs/XYZ'
Machine configuration file is 'XYZ.ini'
INIFILE=/home/yoshi/linuxcnc/configs/XYZ/XYZ.ini
PARAMETER_FILE=linuxcnc.var
TASK=milltask
HALUI=
DISPLAY=axis
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Starting TASK program: milltask
Starting DISPLAY program: axis
Shutting down and cleaning up LinuxCNC...
Killing task linuxcncsvr, PID=1706
Killing task milltask, PID=1756
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Cleanup done
Debug file information:
Can not find -sec MOT -var MOT -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
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1413, in __call__
return self.func(*args)
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 498, in callit
func(*args)
File "/usr/bin/axis", line 520, in actual_tkRedraw
self.tkRedraw_perspective()
File "/usr/bin/axis", line 480, in tkRedraw_perspective
self.redraw_perspective()
File "/usr/lib/pymodules/python2.6/rs274/glcanon.py", line 275, in inner
return f(self, *args, **kw)
File "/usr/lib/pymodules/python2.6/rs274/glcanon.py", line 444, in redraw_perspective
self.redraw()
File "/usr/bin/axis", line 557, in redraw
GlCanonDraw.redraw(self)
File "/usr/lib/pymodules/python2.6/rs274/glcanon.py", line 929, in redraw
glMatrixMode(GL_PROJECTION)
TypeError: expected string or Unicode object, dictionary for instance variables (if defined) found
drmRadeonCmdBuffer: -22. Kernel failed to parse or rejected command stream. See dmesg for more info.
1706
PID TTY STAT TIME COMMAND
1756
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
Kernel message information:
[ 276.820730] I-pipe: Domain RTAI registered.
[ 276.820739] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[ 276.820744] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) .
[ 276.820811] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[ 276.820817] PIPELINE layers:
[ 276.820823] f8fc6e20 9ac15d93 RTAI 200
[ 276.820829] c085cb20 0 Linux 100
[ 276.847884] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[ 276.848162] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
[ 276.848170] RTAI[sched]: hard timer type/freq = APIC/12500378(Hz); default timing: periodic; linear timed lists.
[ 276.848175] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 3000300000 hz.
[ 276.848178] RTAI[sched]: timer setup = 999 ns, resched latency = 2944 ns.
[ 276.849370] RTAI[usi]: enabled.
[ 276.920138] RTAI[math]: loaded.
[ 277.007148] config string '0x378 out '
[ 945.201236] Forbidden register 0x00C0 in cs at 1596
[ 945.201244] [drm:radeon_cs_ioctl] *ERROR* Invalid command stream !
[ 947.826483] RTAI[math]: unloaded.
[ 947.880451] SCHED releases registered named ALIEN RTGLBH
[ 947.912627] RTAI[malloc]: unloaded.
[ 948.012032] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[ 948.016301] I-pipe: Domain RTAI unregistered.
[ 948.016386] RTAI[hal]: unmounted.
Please Log in or Create an account to join the conversation.
......even better a manual or guide to tell me how to set it up myself. Not only would it help me get familiar with it but it would help the next person who comes along looking for the same info.
www.linuxcnc.org/docs/html/config/ini_config.html
Please Log in or Create an account to join the conversation.
Now in the car world it's easy because you can just provide them with a link to the manual, tell them to RTFM and ask any questions they may have after that.
Maybe you haven't found TFM?
www.linuxcnc.org/docs/html/ is a page I go to several times a day (mainly to find links to post to the forum).
The most useful bits are the individual HAL component manual pages near the bottom, but also there are the two sections that you appear to need:
www.linuxcnc.org/docs/html/config/ini_config.html
www.linuxcnc.org/docs/html/hal/intro.html
Please Log in or Create an account to join the conversation.
- yoshimitsuspeed
- Offline
- Premium Member
- Posts: 148
- Thank you received: 0
It is true that I could have found the answer to the question about what the screw pitch in stepconf translates to in the INI.
It doesn't seem like there is much of anything as far as getting a gantry setup, how to do it or anything about gantrykins.
I will admit I haven't read it front to back but I have read many sections, scanned much of it and searched it extensively looking for answers.
Really now I have two basic questions.
Should I just keep it setup as it is now with y set to to two pins in stepconf? That works for me for now as long as I can solve the crashing.
And then why is it crashing?
If not or if this setup is why it's crashing then which next solution would be the best? It sounds like every option has some notable disadvantages or weaknesses.
Please Log in or Create an account to join the conversation.
If that works for you then it's a perfectly valid thing to do.Should I just keep it setup as it is now with y set to to two pins in stepconf? That works for me for now as long as I can solve the crashing.
The log saysAnd then why is it crashing?
[ 277.007148] config string '0x378 out '
[ 945.201236] Forbidden register 0x00C0 in cs at 1596
[ 945.201244] [drm:radeon_cs_ioctl] *ERROR* Invalid command stream !
[ 947.826483] RTAI[math]: unloaded.
so it looks like LinuxCNC is perfectly happy for 10 minutes, then the radeon (graphics card?) driver crashes, and 3.5 seconds later LinuxCNC exits (or you exit LinuxCNC).
On the face of it it looks like a graphics card problem.
Please Log in or Create an account to join the conversation.
- yoshimitsuspeed
- Offline
- Premium Member
- Posts: 148
- Thank you received: 0
I would like to have automated homing and some other features in the future but this will work for now.
Thanks also for your input on the error.
It was running on an on board graphics card so I put a real card in.
Hours later I had a crash but ignored the error hoping it wouldn't happen again. It did again at the end of the day and I was in a hurry to get out so I still didn't get read/copy the log. I will do that tomorrow if it happens again.
Still much less frequent though.
Other than that it was a successful day.
You will have to bear with the crappy vid. Don't have anything better than my cell phone.
Was using a drill bit initially just in case I crashed it.
Also had one axis reversed.
Got the Axis all straighted out and threw in an end mill.
I am quite impressed with the machine so far.
Tomorrow we start testing cutting some aluminum.
Please Log in or Create an account to join the conversation.
You can probably use the onboard graphics (I always do).It was running on an on board graphics card so I put a real card in..
A few things to try here:
wiki.linuxcnc.org/cgi-bin/wiki.pl?Troubl...oting#Display_Issues
Please Log in or Create an account to join the conversation.
- yoshimitsuspeed
- Offline
- Premium Member
- Posts: 148
- Thank you received: 0
Here is one problem that's been scaring the piss out of me.
I am running the RCNC brushless motor adapter to run the spindle.
When I go to load linuxcnc and as the splash screen is loading the spindle will spin up for about a second and then stop.
There is no other time the motor goes when it's not supposed to. Maybe it's the adapter but it seems to me like the software or something must be sending a signal to spin right at that moment. Does anyone have any ideas?
Please Log in or Create an account to join the conversation.