Hi,
1. Can linuxCNC be used for much lower-level numerical control? Say for example, running a program which loops every half an hour, which simply tells a bunch of stepper motors to step forward and backward at reasonably precise timings.
Depends what you mean by
low-level.
LinuxCNC is quite high level, in that all the pulse generation to run steppers etc is done below the radar and you just have to worry about where you want the tool to go.
But it would be quite possible to do something like that in a combination of gcode and some hal connections, you will have to expand upon exactly what you want to do, someone has probably done it before, saving you the re-invention of the wheel.
Is there a good resource for learning how to program G-Code?
The best learning is actually doing, but obviously there needs to be some input before you get to that.
Search the net, what you want is something that covers RS-474 standard which is what Linuxcnc is based upon.
What you don't want is anything that is aimed at old controllers, with strict line numbering blocks etc
This is one I found for a simple start .....
cncutil.org/gcode-introduction.html
Then you want to read the LinuxCNC documentation on gcode to understand the principles of offsets etc
linuxcnc.org/docs/2.5/html/gcode/overview.html
As a more advanced tutorial, Ed Nisleys articles entitled 'Along the G code way' in the Digital Machinist magazine
are always worth checking, especially as he works purely in LinuxCNC and goes into the more complex areas
of named variables, calling subs etc.
If you have done some programming in C you will have a head start regards conditional tests / loops etc. so should quite quickly pick it up.
One of the easiest ways to learn and test out g code is to use one of the simulator configs and you can do whatever you like, without danger of crashing bits of rotating tool steel into things.
regards