Kcam - Its Free And Will Jog All Axis
I am putting together a 4 axis system, but have a rather odd interface. I have managed to get an ISA 4-axis pid controller card made by tech80, which i want to use to control my servos. The problem i am having is that i only have drivers for this card in windows, and the manufacturer arent being very helpful. Although i have a library to access the card in windows, i dont have full source, so porting to linux to use EMC is going to be a pain.
Are there any windows based cnc control programs which have a software api for communicating with motion hardware? If i could get step+direction signals in software i could use this to command the card, the problem is i cant seem to find software which supports this.
Kcam - Its Free And Will Jog All Axis
Cant see any mention on kcams page of having a software interface available. It appears to only support lpt connections to stepper systems. I am using an isa motion controller, and so need access to step+dir in software, not via the printer port.
The reason i am after a windows package is that i have a windows driver for the motion controller, and the people who made it wont give me the linux driver they developed. My only other option is to reverse engineer their drivers and use EMC2.
Knowerofall: how do you interface to kcam in software?
You can't use KCAM. But you might be able to use DeskCNC.Originally Posted by daedalus
Mach3 2010 Screenset
(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)
have taken a look at deskcnc, and it only supports serial or parallel connections. I think i may be able to trick the software into working with my setup, but i would have to write a new proxy dll to replace the library it uses for port io, then decode the step + dir signals that way, which imho is a right pain in the ass.
I cant understand why these software developers dont just expose an api for hardware comms, that way adding support for different setups would be trivial.
I guess its time for me to drop the drivers i have into a decompiler and try and figure out whats going on under the hood. Really didnt want to have to do driver development for this, but looks like EMC2 is the best bet at this point, as it looks to have a relatively easy hardware abstraction layer.
Anyone else got any better ways to solve this problem?
Hi,have taken a look at deskcnc, and it only supports serial or parallel connections.
DeskCNC's API only supports it's own interface card. The interface communication is serial 9 pin or USB with an adapter to serial.
If all you require is step and direction and some I/O's - how about building an interface from the parallel port to your tech80 card then use a Windows based CNC software that supports step and direction?
i had considered that option, but if i was to go down the hardware hack route then serial would be easier, as i could install an extra 2 serial ports and use a null modem cable to connect them both together.
DeskCNC uses a 3rd party dll to talk to the parallel port, so i could write a dummy dll to take the place of this driver, sending port outputs directly to my software, however both these approaches are messy hacks, and they may not be supported by future versions of the software (driver change / proprietary protocol change).
To be honest i am looking to see if there are any easier ways to do this then porting the tech80 drivers to linux, which is looking like the easiest and most reliable option right now. Just didnt want to have to deal with the couple hundred pages of low level interfacing manual im gonna have to read.
I cant believe noone produces cnc software with a hardware abstraction layer for windows, guess there is little demand for alternatives to parallel, as most users of motion control cards probably get gcode interpreters bundled from manufacturer.
Thanks for the ideas though, will have to make some posts to the emc forum, see if there are any downsides to my planned approach.
Yes, interfacing Windows with real-time is a pain - and will only get worse as new Window versions come out.
This is incorrect.Originally Posted by daedalus
DeskCNC is an integrated hardware and software solution. It utilizes the serial port to manage an intelligent, external machine controller. The dedicated machine controller delivers a faster and more accurate pulse stream than any parallel port solutions. The external controller card is approximately 2" by 2".
There IS a DLL involved, but it is NOT a 3rd party development.
Purchase of the DeskCNC software license and hardware includes access to the user programmable API. The API utilizs the DLL to access the hardware controller card. (Purchase also includes license to use all the CAM functions for programming pockets, drilling, contouring, 3D surface machining, engraving, pcb, etc) Neither the deskcnc controller, the dll, nor the API are available for linix.
In order to use the hardware, you are required to purchase a software license.
You can drive your ISA driver card with the step and direction output from the DeskCNC controller. The controller can be mounted "daughterboard style" right on the ISA bus card, and connected to the computer's serial port. DeskCNC is not licensed or offered in any other configurations.
Fred Smith - IMService
sorry, was thinking of kcam, deskcam looks to be completely useless for what i want to do. I already have a very nice high speed PID controller board which does pid in hardware, and which is controlled directly from software. There is no point adding another proprietary interface card, then having to read the step and direction signals into the pc again in order to feed them back into the pid controller card.
i may not have made this clear, but i have drivers for this card in windows, and so a windows based solution would have allowed me to avoid linux altogether, and the associated driver development effort, however this doesnt seem to be possible. If i am going to the effort of writing drivers for linux, then the last thing im going to do is pay for a gcode interpreter, when EMC is free and well supported.
Just to make this clear, the idea in windows would have been to hook the output of some cnc package in software, then use this to generate the target position for the pid controller in software, and then command the isa board. As this seems to be near impossible with the packages ive looked at, im off to write linux drivers.