Using Linux Software Toolchain
Hello,
I would like to buy a StepCraft 420 for 3d printing and pcb milling. (un) Fortunatly my software tool chain is based on linux software and work fine. I would like before buying if it is possible to use the Stepcraft hardware with linux.
I had been looking a the very few elements in the construction manual and the machine parameter and its look like there is no real documentation about the protocols and commands used to comunicate with the controler board.
This boards looks having the same functions implementations used for 3d printers (Ramps + usb converter interpreter Arduino Mega) or the hardware used in CNCLinux.
I would like to get your help on this topic and be able to use it in linux.
I am also ready to contribute in terms of software development if necessary.
Thanks
Henri
Hello Jubin,
I'm interested about the topic too. I've see other CNC milling machine working well with LinuxCNC so I see no valid reason for Stepcraft not working too, but I have no direct experience until now (I'm a linux user too).
All I know is what reported in this blog, unfortunately my knowledge of german language is... sehr schlect.
SC300 + Spindle HF500 + Portalerhöhung + LinuxCNC + gsimple
The controller board has been developed by WinPC NC developer and is propriatary, so without hacking it will only work with WinPC NC.
But you don't have to buy this controller board. You can buy the parallel port and connect it to the parallel port of a PC to run the stepcraft with Mach3 or CNCLinux. (There is a thread about that which contains all the necessary settings for CNCLinux - I think it was in german, but as this is a pretty friendly forum, there will be help if you want to go that way)
The interface of the stepper-driver-board is straight forward and it should be easy to attach other interface-cards to it. So, it should be easy to connect other hardware - like controllers which work with Mach3. There is also a thread about an arduino solution. There is a java program available which simply sends g-code files to the arduino board.
SC 420 mit DIY parallel + Proxxon mit Mod + HF500 + SprintLayout + LibreCAD/QCAD + FreeCAD +WinPC starter/USB->EstlCAM + EstlCAM LPTAdapter + EstlCAM Handrad + DIY Vakuumtisch
Gruß, Andreas
Thanks MagIO2,
just to fix ideas, may you check if the list below is correct?
Controller Board = hardware driving the physical movements of the motors
G3 = format of instructions for the controller board
Control Software = software program sending G3 instructions to the controller board
CAM software = software program for solid drawings producing files that can be loaded by control software
STL or DXF = formats of files that can be loaded by control software to produce G3 instructions
Examples of control software = WinPC NC, LinuxCNC, Mach3, etc.
From what above, strictly speaking, I don't need to buy/use specialized CAM software, I could use AutoCAD for solid drawings (dxf format). Is this correct?
Another question: in case of CAM software, the calculus/optimization of cutting paths is made by it or is delegated to the Control Software as second step? Or CAM software produces G3 instructions that can be used "as is" by the control software?
Wow! A lot of questions... :blush:
SC300 + Spindle HF500 + Portalerhöhung + LinuxCNC + gsimple
CAM interprets Geometry (STL / DXF) and generates Gcodes (usually). At this stage its - Geometry in - Gcode out. The Gcode contains the details of the CAM process settings - the actual paths the cutter is instructed to move at - what tool radius compensation - ramp plunges etc. These settings are implemented onto the Geometry and the Gcode is produced.
Think of the Gcode as a set of instructions that the CAM software has generated in order to reproduce the part shape we have designed, constrained by certain settings.
But the important aspect here is that AutoCAD and Soild works will generate DXF/STL files. This cannot be used directly with the machine controller. You have to convert it into a format / tooling strategy (CAM) that the machine can interpret. Solid works does have a CAM package output too - so its possible to go straight to Gcode with Solid works with correct software addition.
Once you have Gcode - then you can move into the machine control domain. UCCNC, MAch3, LinixCNC, WinPC are controllers. In that they can control the machine movement. BUT they need to be given "instruction" in the form of machine toolpaths - the Gcodes.
Some machine controllers have built in CAM internally - so you can generate this with the same software you control the machine with. So in some cases - you can inport a DXF file and us the software to control the machine. BUT this is an example of a CAM package AND and Controller package combined.
the process in summary is
- design you part in a CAD package
- Apply tooling strategies (CAM)
- Setup the machine and run the toolpath (CNC / Machine controller)
The STEPCRAFT with the WinPC USB module - is a machine with a control card - in that - the WinPC software sister to the control card is the machine controller.
WinPC starter - allows direct import of PLT files from Corel - so the WinPC starter is a basic CAM/Controller. You can apply some settings and do machining from a PLT file import. Think of a PLT file as a DXF file in different form.
WinPC USB/UCCNC/MAch3/LinuxCNC are full Gcode controllers (correct me if I'm wrong - not 100% familiar with WinPC USB and Linux). So these can control the machine but require toolpaths.
With no control card in the machine you simply have a breakout system where the signals connected to the limit switches and the motor drives are just left open to connect to. There is no machine controller. Connect the WinPC cards and the WinPC controller generates the signals for the machine
Connect the UC100 and the PArallel card and you have Mach3/UCCNC controlling the machine.
whats very important is the quality and method used to generate the signals for machine movement. If the pulses from the controller to the stepper drives are not clean and uniform from the controller then you can have torque loss and poor performance that is nothing to do with the machine.
Its also important HOW the controller generates the pulses. Moving along the edges of a square - the X and Y axes must speed up and slow down. Accelerate and decelerate. laws of physics. The way in which the controller does this is important. Ask the machine to accelerate to fast - the motors will stall. The controller side is very complex.
USB based controllers like the UC100 and WinPC USB have overcome a lot of the older issues associated with LPT based control.
LinuxCNC was much better before the USB controllers came out as it does not hold the control system to the same ransom as windows does.
However - the issue with linux is that there is still no decent CAM controller combination. So it remains a small user group. Again - I welcome to be corrected here.
it would be interesting to see a linux based application here. Will do what I can to support.
@Rory: I started writing ages ago, but a colleague did not stop talking to me, so your response came earlier than mine. Don't mind if I repeat something or don't tell anything new at all. Just don't want to turn my time into wasted time by not sending my response ;o)
The big PCB of the stepcraft is driving the motors. It has an interface which accepts direction and step information for each of the 3 stepper motors.
To this interface you connect either a simple parallel board (which only brings the signal lines closer to the housing of the stepcraft) or you connect a controller board. With a parallel interface the PC has to do all the signal generation and is in full control of the movements. But it also has to take care that the signal timings are met. This is why you should not do anything else but run Mach3 or CNCLinux when milling because each interrupt can cause delays in the signal generation.
Today you hardly find PCs with parallel interface but all have USB ports. USB is not meant for transfering the realtime signals needed by CNC machines.
That's where the controller board comes into play. The PC sends line and arc information to the controller and the controller creates the signals needed by the motor drivers. The program for sending this information is for example WinPC NC or for a Mach3 controller it is a Mach3-plugin.
In CNC world (and in 3D printer world) g-code is common to describe the motions of a machine on the level of lines and arcs ... and speed, spindle on / off ....
Ok ... this is the hardware part, now let's go to software-part.
First you have a CAD program to create computer models of the parts. LibreCAD, Inkscape, CorelDraw, QCAD ...
Here you usually create the parts with the right measurements either in 2D or in 3D.
With CAM you prepare the computer models for the machine that you are using to produce the parts. For 3D printing the CAM systems are called slicer. These have to take into account which nozzle your pinter has, what layer size it is ...
For the steppi a lot of people use EstlCAM. Here the CAM needs to know which cutters are used, how deep to cut with each run ....
In the end the CAM software creates the files that are needed by the machine control system ( either a controller board or Mach3/CNCLinux ), which is for example a g-code-file (or a *.plt-file for WinPC NC starter).
On a controller based setup you might need a piece of software to send the file created by CAM to the machine. (WinPC NC, Mach3, g-code-sender ....)
Besides this clear view of duties, any kind of mixtures do exist. For example with the current version of EstlCAM you can directly send the g-code to an arduino based controller board.
Mach3 surely has possibilities which more look like CAD/CAM.
For 3D printers you might even have single software solutions.
What you mean with G3, I don't know!
SC 420 mit DIY parallel + Proxxon mit Mod + HF500 + SprintLayout + LibreCAD/QCAD + FreeCAD +WinPC starter/USB->EstlCAM + EstlCAM LPTAdapter + EstlCAM Handrad + DIY Vakuumtisch
Gruß, Andreas
Hello Rory,
wow! A lot of information! But I still have to decide if I understood or not... :huh:
I mean... what you wrote make sense me, but I still have not a general overview of the argument (fmy fault for sure).
This usually happens when a lot of technical jargon is involved (for example to me it's quite obvious why the camshaft of a Ducati motorbike is made in that manner and how it works, but it's hard to explain that to somebody that has no idea of what an "engine" is).
I need to read ten times your post and I will be back :blush:
SC300 + Spindle HF500 + Portalerhöhung + LinuxCNC + gsimple
Hi julius,
you can use the stepcraft machines with LinxCNC. Just order the "parallel port" version.
You can use the setup as described here:
What you need in addition is a converter tool whoch translates .dxf/.dwg files (generated by you CAD program) to a usable G-Code file for the controller (inside the SC).
dxf2gcode ( http://code.google.com/p/dxf2gcode/) works fine. Some CAD programs are capable of generating gcode directly. But those are often found in the up market region.
The other possibility would be to exchange the controller with another one so you are more flexible.
If you use the 3D printing functions you may need a different approach as 3D printing is an additive method and needs an additional parameter for the 3D printing head (feeding).
If I am right the LinuxCNC crew is working on some ideas on how to implemet 3D printing funtions. But I don't know how far they are up to yet.
I also use LinuxCNC and had no problems so far. I also want to order the 3D printing head somewhen later.
Panta rhei...nur wohin?
@MagIO2: yes! That's the kind of information I was looking for!
Honestly, while looking at photos on the Stepcraft on the website, I was searching for that unaesthetic box that you usually see with other (not all) CNC machines. But no way to find it. By googling I've got photos of the internal PCB and the rear part of the machine, so I thought: "the controller board is that!". But I was wrong.
For this reason some things of the explanation by Rory was not completely clear to me.
Hint:
I think that a clear collection of front, rear, top, bottom photos of the Stepcraft machine should be added on the website (no way to discover where that black cables ends... 🙂 )
So, as I understand, the best solution is Steppie + Control Board + "g-code-sender software" + "whatever you want software for CAD and CAM"
The cheaper solution is to use your PC like a controller board (preferably with a parallel port to the Steppie).
please... forget about "G3"..... :blush:
SC300 + Spindle HF500 + Portalerhöhung + LinuxCNC + gsimple
Treat it as three stages - try to understand each stage
CAD - where the Geometry is created
- solid works
- autocad
- Alibre
- Corel Draw
- Creo
- Catia
- Illustrator
- Fusion
CAM - where the tooling strategies and machining settings are supplied
-VcarvePro
-Cut2D
-Cut3D
-STEPCRAFT slicer for 3D print
-Cura for 3D print
-Cambam
- and others.
CNC - where the machine carries out the process.
-WinPC USB
-WinPC Starter (CAM internally also - but very simple)
- UCCNC
- Mach3 (with some CAM wizards)
The choice for CNC will dictate the hardware you need for the SC machine.
maybe we should open up another post with the list of compatible systems? I'm sure others can add more than me
Well ... if you say that dedicating a PC to the CNC is cheaper than a controller board.
Currently I use Netbook + WinPC controller + WinPC NC Starter
The nice thing about this solution is, that the Netbook can be used while running a job on the Steppi (Preparing the next part, visit the forum ...) ... and it is "Plug and Play".
Using a different controller like the arduino is a little bit more extra work. Soldering adapter, install software on the arduino.
In the parallel solution the PC IS your controller board. The hardware-part is also Plug and Play. And the configuration is described here in the forum.
My future solution more looks like:
Raspberry + uC + g-code-sender
But it is still a long way to go. 🙂
SC 420 mit DIY parallel + Proxxon mit Mod + HF500 + SprintLayout + LibreCAD/QCAD + FreeCAD +WinPC starter/USB->EstlCAM + EstlCAM LPTAdapter + EstlCAM Handrad + DIY Vakuumtisch
Gruß, Andreas
Hi julius,
you can use the stepcraft machines with LinxCNC. Just order the "parallel port" version.
Thanks Aldronaigh, I will check the links you provided. I saw other machines working with LinuxCNC so was strange to me that an SC cannot work with it.
What you need in addition is a converter tool whoch translates .dxf/.dwg files (generated by you CAD program) to a usable G-Code file for the controller (inside the SC).
Accordingly to what Rory and MagIO wrote above, maybe the word "controller" is not correct. A more appropriate term should be "driver board", or not? I mean... the board inside the SC is "stupid", not "intelligent" like a controller. It just commutes digital signals to power signals for steering the motors. I'm right?
SC300 + Spindle HF500 + Portalerhöhung + LinuxCNC + gsimple
Well ... aldronaigh really means the controller board, which in fact is also inside of the steppi housing.
PS:
If you have a look at page 7 of the construction manual excerpt, you see an image of the PCB.
On the right hand there is a free space which is meant for the 4th axis driver boart.
On the left hand there is also a plug, which is already occupied with the controller board.
This is where you'd put the parallel board if you prefere parallel / LinuxCNC.
The big rest of the PCB is the driver board.
SC 420 mit DIY parallel + Proxxon mit Mod + HF500 + SprintLayout + LibreCAD/QCAD + FreeCAD +WinPC starter/USB->EstlCAM + EstlCAM LPTAdapter + EstlCAM Handrad + DIY Vakuumtisch
Gruß, Andreas
Well ... if you say that dedicating a PC to the CNC is cheaper than a controller board.
Currently I use Netbook + WinPC controller + WinPC NC Starter
The nice thing about this solution is, that the Netbook can be used while running a job on the Steppi (Preparing the next part, visit the forum ...) ... and it is "Plug and Play".
Using a different controller like the arduino is a little bit more extra work. Soldering adapter, install software on the arduino.
In the parallel solution the PC IS your controller board. The hardware-part is also Plug and Play. And the configuration is described here in the forum.
My future solution more looks like:
Raspberry + uC + g-code-senderBut it is still a long way to go. 🙂
Are you assuming that I know what a WinPC controller is? Or what a WinPC NC starter? By checking the website is absolutely not clear for a rookie (like me) to understand what I'm buying. The information presented is somehow "obscure".
Just now, with help by you and Rory, I understand that the "WinPC controller" should be some hardware, while the "WinPC NC Starter" should be the control software able to generate g-code for the controller.
I think I'm not the only one in such situation, when a newbie approaches to the website there a lot of things, clear and obvious to the manufacter, are quite confusing for "normal people".
I think that jargon and lack in communication are the main obstacle to the diffusion of (lovely) CNC machines.
Another thing: no idea about what an UC100 is until 5 minutes ago :blush:
SC300 + Spindle HF500 + Portalerhöhung + LinuxCNC + gsimple
Well ... not exactly.
WiPC NC is the software. But there is a starter version (which is included in the controller board option) and there is a full version, which costs ~200€ extra.
The starter can't handle g-code-files, which means that it is a pure 2D version. It works with plt-files (plotter files). These can be created directly by CorelDraw or Inkscape or you can use EstlCAM with WinPC NC Starter setting.
For different heights manual work is needed. Impossible to mill real 2.5D, impossible to do 3D printing (as far as I know).
The full version can handle g-code and do 3D printing.
SC 420 mit DIY parallel + Proxxon mit Mod + HF500 + SprintLayout + LibreCAD/QCAD + FreeCAD +WinPC starter/USB->EstlCAM + EstlCAM LPTAdapter + EstlCAM Handrad + DIY Vakuumtisch
Gruß, Andreas
- 44 Foren
- 7,406 Themen
- 63.4 K Beiträge
- 2 Online
- 26.5 K Mitglieder