3-axis CNC-control packages uploaded to the OBEX by Don Starkey
StefanL38
Posts: 2,292
Hi Everybody,
I just discovered this and want to give a heads up to a - not only an "object" - but a complete package that forms a 3-axis CNC-control.
3-Axis CNC Control Package
Don Starkey has uploaded his code and some documentation to the OBEX. Wow ! This looks very promising.
It is an already working system with some minor bug and potential to expand on.
I started the same project but didn't come to far. So I will switch over to this code. Working my way into understanding it
and then going on expanding new functions that seem useful to me.
Who would like to collaborate in this?
Some of the features are listed below:
- 3-Axis stepper driven control for a small milling machine.
- Analog feed rate override pot to adjust the feed on the fly. I like the intuitive feel of a knob over
push buttons. I use 0-200% over ride but it can be from 0 to any percentage you choose.
- Over travel / home limit switches on both ends of all 3-axis.
- Runs completely on 1 Parallax Propeller.
- Uses an external VT-100 terminal (free software running on an attached notebook computer)
for the user interface.
- 3-Axis linear interpolation with acceleration / deceleration.
- 2-Axis circular interpolation (with acceleration / deceleration) in XY plane.
- Limited amount of Z-axis movement during circular interpolation mode allowing for helical
interpolation.
- User configurable logic states for over travel/home switches for each axis.
- User configurable logic states for Step & Direction.
- User configurable Step pulse state & width.
- Tool length offsets, Fixture offsets.
- Setup screen for Steps/Inch, Rapid Feed rate Amount, Feed rate Override Pot Amount.
- Manual JOG mode.
- MDI editor.
- CNC Program editor.
- Single step mode.
- Program storage on attached SD card.
- Program overlay stored on SD card to allow very large SPIN programs to be loaded as modules.
Wow to me this is like chrismas and eastern pre-dated to january!
I just discovered this and want to give a heads up to a - not only an "object" - but a complete package that forms a 3-axis CNC-control.
3-Axis CNC Control Package
Don Starkey has uploaded his code and some documentation to the OBEX. Wow ! This looks very promising.
It is an already working system with some minor bug and potential to expand on.
I started the same project but didn't come to far. So I will switch over to this code. Working my way into understanding it
and then going on expanding new functions that seem useful to me.
Who would like to collaborate in this?
Some of the features are listed below:
- 3-Axis stepper driven control for a small milling machine.
- Analog feed rate override pot to adjust the feed on the fly. I like the intuitive feel of a knob over
push buttons. I use 0-200% over ride but it can be from 0 to any percentage you choose.
- Over travel / home limit switches on both ends of all 3-axis.
- Runs completely on 1 Parallax Propeller.
- Uses an external VT-100 terminal (free software running on an attached notebook computer)
for the user interface.
- 3-Axis linear interpolation with acceleration / deceleration.
- 2-Axis circular interpolation (with acceleration / deceleration) in XY plane.
- Limited amount of Z-axis movement during circular interpolation mode allowing for helical
interpolation.
- User configurable logic states for over travel/home switches for each axis.
- User configurable logic states for Step & Direction.
- User configurable Step pulse state & width.
- Tool length offsets, Fixture offsets.
- Setup screen for Steps/Inch, Rapid Feed rate Amount, Feed rate Override Pot Amount.
- Manual JOG mode.
- MDI editor.
- CNC Program editor.
- Single step mode.
- Program storage on attached SD card.
- Program overlay stored on SD card to allow very large SPIN programs to be loaded as modules.
Wow to me this is like chrismas and eastern pre-dated to january!
Comments
Please keep the thread updated so I can follow your progress
It takes G-code as input, so can we just use the G-code output from skeinforge or kisslicer?
the propeller-chip creates the signals for step and direction. So any stepperdriver-board that has step / direction-input
will work together with this control. Maybe a voltage-shifter from 3.3V to 5V is needed.
Examples:
An L293D will not work because this chip needs signals for each H-bridge (at least four signal-lines)
A L297-L298 combination will work or a TB6560 will work.
The logic state of the outputs and pulse-length is user-configurable.
As I am myself are just starting with this software I haven't tested it myself yet.
If the G-Code is really standard G-Code I think it will work.
Can you post some example-G-code produced by skeinforge and kissslicer?
If I can look inside the G-Code I can say more.
best regards
Stefan
minimum is a "Dremel". If you want to have more cutting-power a high-speed spindle 10-15.000 rpm 750W up to 2 kW is used.
The power of the spindle depends on what you want to mill. milling and drilling PCBs a dremel will do well.
For wood if you have plenty of time it will do too.
For aluminium or steel you need a real stiff mechanic and big stepper-motors (6A 3Nm) for the axis
and a 1 -2 kW spindle
best regards
Stefan
Mickster
Yes you are completely right.
benezan electronics
steppermotors with a very good price performance ratio
high power stepper drivers (propeller-based !)
now show me anything else with this specs and this low price
best regards
Stefan
http://benezan-electronics.de/shop/product_info.php?products_id=4
Mickster
This is a VERY nice piece of work!!!!
Mickster.
I have to tile a floor
Actually because its messy and I get to use power tools
So were is this "Config.ovl.zip" file located?
I could not see it on the OBEX page.
cheers,
rich
I see it now placed in same zip file
http://boardforge.com/
They have the chassis started (based on shapeoko), and the developer is working on the GUI.
The motor control isn't nailed down yet, and arduino per reprap is being considered. But the don't have an embedded controls guy on the team yet.
I told the developer about this thread, he's considering using the prop and will give the code a look. Anybody interested in pick and place?
(including me as I have to mount endswitches to my mechanic before I can start.) But there seems to be quit a good amount of interest.
So I would like to ask some questions:
- who has tested the softtware-package on a real CNC-machine?
- if you have already tested it: what would you like to change/improve?
- who is planning to using it?
If you answer one question with yes I would appreciate if you post your experience and/or plans
best regards
Stefan
and you manualy doing the stepping that you can expand in to halfstep and even microsteps.
This is a SpinDemo of half-stepping on my quadstepper quickboard
http://forums.parallax.com/showthread.php/138695-Now-Available-QuadStepper-board-for-QuickStart?highlight=quadstepper
thank you for sharing your code.
The code from Don can handle only Dir/Step. I guess this is for several reasons:
- The pattern how to switch ON/OFF the H-bridges is strict logical fpr full/half/microstep-mode so it can be done easily from a small piece of hardware (no FPGA needed ;-)
- for high frequencies you need much more horsepower of the MCU to do all the details of the H-bridge switching
- for switching the H-bridge you need twice as much IO-pins for the interface MCU-stepperdriver
best regards
Stefan
P.S.: I want to point to my main thing: who is willing to collaborate the further development of this code?
Thanks for pointing us to this work done by Don. And a huge thanks to Don for your efforts here.
I would love to work on this, my prop skills are rather minimal but growing daily, but my pc programming skills are a little more advanced.
Andrew
If I have understood Don right, he himself has no time to develop it further but shared his code so that others (me and who else?) can develop it.
MY CNC-mechanic will need some work until I can start really. But right now I have the flu (and can't work in my workshop) and after beeing healthy again
my daily work and a community-project I'm involved needs a lot of time for the next 6 weeks. So my progress will be just in small steps.
Do you have a CNC that is ready to run?
Except for tweaking / expanding menues there is not much possible without a working hardware.
best regards
Stefan
I've got a factory full of the things, but I do have a 4 axis engraver that I have been using as a test bed for my tinkering. I have a busy schedule for the week, but after that I will pull the current drives off it (I have been playing with drives that accept commands from a can bus - not a huge success), and put a set of gecko step and direction drives back on it, this should only take a couple of hours - then I will be good to go.
Regards
Andrew
Is this not where the Prop shines? (puts those cogs to work)
I will make a stand alone cog that will interpet the DIR-STEP for Dons Obex.
And you simple use find-and-replace: Mov OUTA with Wrlong SoftOUTA (a hub ram location)
Actually I have mused about a pick-and-place intelligent robot... I was thinking with some serious but cheap compute power like a RaspPi connected to camera on
the head assembly and a high-res camera looking at a parts tray, it might be possible for software to figure out which components are which, perhaps with
some human intervention and dialog, and it would go to it. So instead of needing reel holders and so forth you just spread components on the tray in
groups, do a brief touch-screen interaction to label the groups the machine can't figure out, then let it run...
Obviously some sort of visual recognition package with training ability would be essential.
As I said it is musings only at the moment, as it the pick-and-replace machine for recycling components from boards
They've already started talking to the guy from openCV.
http://www.embedded-vision.com/eric-gregori-biography
http://buildsmartrobots.ning.com/group/usingopencvforrobotics
So right not the main group is focused on the system design, with attention to the GUI and the physical parts for the CNC motion. They are looking for the low level control for the steppers and vacuum pump etc, and have stubs for the vision system.
I told them I would send folks their direction, if you want to get in on this sign up and introduce yourself. This is going to be really nice.
I want to come back on the original CNC-code for milling. I'm still busy with my daily work.
Has anybody tested more than I? (I tried editing storing and re-reading a G-Code file).
Has anybody tested the code with a real CNC-mill? At least move to home-position until home-switches
turned On/Off?
best regards
Stefan
I just finished building a small XY table in my home shop for testing CNC applications. Right now I am trying Mach3 with it, but I am having some problems with it. However I would prefer a solution that does not involve Windows.
I would be willing to do some testing, but I am a better machinist than programmer so it be would useability testing and such.
Thanks,
Robi
welcome to the propeller-forum. As this is your first post. Do you already have a propeller-chip?
Don's code needs a PC with a VT100-Terminal software. I'm sure there are terminal-apps for linux.
So this solution would avoid windows but would still need a PC. I would like to modify the code
that a second propeller-chip works as the user-interface by using a small TV-screen or a VGA-Monitor.
for Output and takes the userinput via PS/2-Keyboard.
The download-package includes a schematic. There you can see which propeller-Chip-IO-pin is connected to what.
The minor bug I mentioned is that Don wrote if the buffer is used in same cases a single step gets lost. If buffer is deactivated
(in the source-code) everything works fine. So I would appreciate it if you would do useability testing.
If you have any questions about the schematic or the code just post them here.
best regards
Stefan
There are probably hundreds, but "screen" is the obvious choice I believe.
I had a brief go at using "screen" without any luck - just hanging... To be specific I tried:
Using BST the VT100 output is unreadable, all one line.
[edit: realised I needed to change my DTR->reset circuit to a capacitor (was a diode) to be compatible
with screen (holds DTR low) - can see the VT100 interface now, but with an SDcard can't do much more,
manual jog doesn't seem to do what I expect]
I'm glad that people start testing the software. Your questions show what of information new users of this software need.
So a new version of the manual should emphasise on the VT-100 terminal standard. So keep the questions coming.
I tested it with tera term and everything worked fine. I don't know much about the VT100 standard. But the little I know is that it uses special characters for cursor-positioning
clearing the screen etc.
So you really need a terminal-software that is able to display things according to the VT100 standard.
The file Propeller CNC project.pdf is some kind of a manual and this manual says:
"When the main program (CNC6.spin) is started, it loads all the required PASM code and displays the
main menu on the attached VT-100 serial terminal. I use Teraterm, version 4.72 as the terminal
emulation software on an attached notebook computer. All GUI is done using the serial terminal, all CNC
code execution is done on the propeller and is not limited in any way by the speed of the terminal
program or the laptop computer. The step calculation is very fast."
So here is a downloadlink to Tera Term 4.76
http://en.sourceforge.jp/projects/ttssh2/releases/
best regards
Stefan
first a message about "SDcard possibly corrupt?" since it can't talk to a card, but then it draws the main
control screen:
I don't seem to be able to get any of the position figures to change (I've tied the limit switch pins (P10..P15) high.
You can select Manual Jog (5), then Keyboard Jog (1), and select from 0.001, 0.01 etc, but the keypad arrows
don't seem to do anything - the code is looking for those codes but it doesn't seem to have any effect,
perhaps because the feed rate isn't configured? Shall pop an SDcard interface onto the breadboard at some
point and have another attempt no doubt
Having looked at the code it seems to do absolutely all calculations in floating point which will be a limiting factor.
(Actually I think Bressenham's uses integers, but then the step pulses are timed using floating point calculations
for acceleration/decelaration)
Just thought I would let you know I got my little test machine up and running today. I have had a very quick play with Dons code AND IT WORKS!!!!!!!
I still need to get myself an ADS1000 chip soldered onto my proto board for the feed override, but I can jog, home and run a program ok.
I need to play with the accel table a bit though as it isn't super smooth motion.
I will play a bit more tommorrow if time permits, and let you know how I go.
Regards
Andrew
about right except there are 3 missing values at the start, it should start 22.94, 13.02, 10.05, before the 8.4733,7.4651, ....
[but really you should generate your own table from knowing the max acceleration allowable and your step size]