LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Showing revision 12
Back on Friday, May 13th, 2005, I finished rebuilding my CNC conversion/retro-fit
of a VERY old Rong-Fu RF31 (larger bench top mill/drill, basically a Grizzly G1005Z)

I was forced to rebuild it after running it for about a year and a half,
due to an accidental (and freak) fire that destroyed my controller computer.

When I completed the new computer, I went to go grab a BDI CD image, and get back to making some parts.
In the time that I'd been away, dealing with life, I'd found that people had been working very hard on EMC.

I discovered the "new" Sherline interface, and immediately loved it.
Too, I found that some of the suggestions I'd (as well as others)
made with regards to having an EMC system capable of performing other
tasks had been taken to heart, and the BDI was now a very nice Debian system.

With all the bells and whistles, I was sure that I was going to have some fun with the "new" EMC.

Well, I did, if briefly...

While running some tests to set up my .ini file and tune the system
(for speeds and backlash), I found my machine suddenly acting very strangely.
I first noticed it when I tried to cut the "Chips" program included on the CD.

While running the dome test program that is included in the gcode folder of the
BDI, I found it wasn't cutting a dome at all, but rather some sort of funky elipse.
So, I started making notes on what settings resulted in what.

Having been away from the various lists and such during the time I'd been
running EMC, I went looking for them again, and found the link to the IRC channel.
I went there, and asked some questions about the behavior my machine was exhibiting.
John Kasunich started working with me, asking questions & suggesting tests,
and after a while, it began to look like I'd stumbled upon a bug in EMC.

It seems that it only happens with stepper motors, only when you use backlash
compensation, and only when your program is making a large number of moves that reverse direction.
From what I gathered of John's explanation, the bug related to the motion control portion of EMC
in that it would affect the backlash compensation at a speed that was basically too much for the steppers
on my system, regardless of what I had told EMC (via the .ini file) was a suitable speed for my motors.

After discussing it with John, he proposed that I should submit a bug report at sourceforge, so I did.
It can be viewed here - http://sourceforge.net/tracker/index.php?func=detail&aid=1202215&group_id=6744&atid=106744

After a week of time, John got back to me, and informed me that
he had indeed figured the problem out, but that it was going to
be some trouble getting it implimented within the original EMC code.
Also, it was pointed out to me (by some others), that the original
EMC was pretty much depricated by now, in favor of moving on to EMC2.

It'd been a while for me, and I hadn't realized
that EMC, or even EMC2 had progressed that far.
Right about that time, John got back to me, and asked if I wouldn't mind moving into
EMC2, if only for the sake of testing it to see if I could reproduce the problems, there.
I had no problem with trying it, so he sent me instructions on how to do the upgrade.

I really don't think it could have been any easier.
(Well, maybe if it was scripted for you, and all you hadda
do was click an icon, but c'mon... how lazy d'ya wanna be...?)

I went to the BDI install page at
and followed the instructions, with the exception of
changing which version of EMC I was actually upgrading to.
(John sent me a specific version to get)

It took about 20 minutes over a DSL connection.

After, John sent me a temporary set of configuration files to test my new EMC2 with.

Simply put, I was stunned.
My little machine moved faster, smoother, and better than
it EVER had, even with the old controller I had been running.
In fact, it made its former self look pitiful...

In short, I (with John's help) had the mill up and
running in what I consider to be exceptionally short time.

It's running so well, that I put it to work within *minutes*.

Here's some shots of it, almost completed.
All that's really left for now is to connect a coolant return
hose, and possibly make some covers for the motors and belts.
(if I decide to go ahead and cover them)

Plans for the future are to look into controlling the coolant with EMC, hanging a
butterfly implact wrench over the drawbar as sort of bodged up power draw bar, possibly adding
limit switches, and maybe doing something with the spindle motor to make it controllable by EMC.

*ALL* of the above are on the long list, as all I really wanna do right now is make parts... (:>)


It was asked if I could tell someone the steps that John gave
me (and which branch) to upgrade my BDI-4.20 installation to EMC2.

These are those steps.

Use the exact procedure and steps given in this page -
until you get to the part where it says -

"The build environment is now ready for the EMC source code.
Due to the number of changes required to get EMC to compile with a 2.6 kernel,
it was decided to use a branch in the emc2 tree. To get the latest sources, do:

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/emc login"

Disregard that part, and everything that comes after it, replacing it with these instructions -

In your terminal window (command line) -

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/emc login

Press enter when asked for a password, and then:

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/emc checkout emc2

Now you can configure and then compile:

cd emc2
cd src

Do _not_ run "make install", we will run emc2
directly from the directory where you compile it.
(Safer that way, and will have no effect on your existing installation.)

Note that the above will do as it says.
Namely, leave your original installation in tact.
If you want to replace it, you would carry on and do the "make install" part.

And that's it. You're done.

You can run EMC2 by going into the directory and running one command -

cd emc2
sudo /scripts/emc.run

Since I was in my home directory when I did this, it deposited everything there.
To start EMC2, I simply created a BASH script to do
it, so I wouldn't have to open a terminal all the time.

Here's an example - (saved as an executable file on my desktop)

cd /home/weyland/emc2
sudo scripts/emc.run

Please note that you will still have to configure EMC2, just like you did with EMC1.

I hope that helps.

I'll make an update when I get time to install the AXIS interface...



LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions | View current revision
Edited June 7, 2005 7:04 pm by Jmkasunich (diff)
Published under a Creative Commons License