BritishIdeas
Interesting Tech Projects
Interesting Tech Projects
Nov 4th
My first test after assembling the board was to connect one motor to each axis in turn and test using Windows XP SP2 and Mach3. The test involved going to the motor tuning section and pressing the up and down arrows.
On the X and Y axis it was clear that steps were being lost. I had to turn the settings down to the lowest speed and even then there was the occasional loss of a step.
On the Z axis however the shaft only twitched. With identical settings to the X and Y axis it would not spin. So, the conclusion I drew was that there is a board problem with the Z axis.
Now I am testing with EMC2 running on Linux. My first test showed that all three axis, X, Y and Z appear to work just fine. The shaft spins quite happily on the Z axis…
So the moral of the story is that if one axis behaves differently it could be Windows causing it and not the board.
If you are stuck with Windows probably the only ways to determine where the problem lies are to either use a modified cable to swap pins around (so the problem axis is controlled by the pins for another axis) or to switch to TurboCNC and try that (perhaps with FreeDOS).
Nov 3rd
I just completed the first test of running EMC2/LinuxCNC on Ubuntu with the HobbyCNC board. I connected a motor to the X-axis and started EMC2 with the “Axis” interface. I then told it to execute the default G-code file it loads with. Lo and behold the motor started spinning! I then moved the motor to the Y and Z axis and repeated. Seems to work well.
I didn’t notice any stalling so the problems I experienced with Windows XP and Mach3 must be due to Windows XP…
Here is a video:
Details on how to install EMC2 from source along with RTAI will follow when I have them ready. Also I will post the configuration files for the HobbyCNC board a bit further on in the project when I have more confidence that they are correct.
Oct 31st
I have completed a basic test of the board and motors. The motors seem to miss steps even at a very low speed, and I think this is either because there is no load on the motor’s shaft or my laptop doesn’t generate the pulses properly (happens with some PCs). Here is what I did (use at your own risk!).
I installed Mach3 and went to Config -> Select Native Units and chose Inches.
I next went to Config -> Ports and Pins -> Motor Outputs Tab and configured the software for the pins that my board uses. I set direction and step to active low. Consult your board documentation for the settings here.
I then connected a single motor to the X axis, set the jumpers on the board for the largest step, connected the board to my PC’s printer port, turned on the power to the board (24VDC regulated from a bench power supply) and clicked on the large Reset button in Mach3.
Currently I only have a 30VDC, 3A bench power supply to use. Because of this I could only connect one motor at a time. Even so this is a prudent thing to do anyway. If you make a mistake then you risk damaging only one of the expensive driver chips.
Next in Mach3 I went to Config -> Motor Tuning and clicked on the X axis button. I entered the following settings:
Steps per: 16000
Velocity: 0.19998
Acceleration: 0.2296875
Step Pulse: 1
Dir Pulse: 0
I then clicked on Save Axis Settings and pressed the up and down arrow buttons. Each press of the buttons caused the motor shaft to turn a little bit. Holding down the button causes it to turn repeatedly. I did see some missed steps but I think this is due to either my PC or the fact that there was no load on the motor.
I then moved the motor to the Y axis and the X axis and repeated the test at each stage, making sure to turn the power off to the board when connecting and disconnecting motors and my PC.
Finally I took the other two motors and connected them to the X axis in turn and repeated the test.
Oct 30th
I am still working on getting EMC2 working in Ubuntu 7.10, but in the meantime I decided to give Virtual Box a try. The Virtual Box website has deb files for Ubuntu so installation was easy. I created a new virtual machine with 192MB of RAM and 6Gb of drive space and stuck the XP SP2 CD in the drive and started the machine. From that point the XP installer went through it’s machinations until I had the desktop running.
I am pretty impressed. The speed of XP is almost as fast as if it were running on it’s own. It’s perfectly usable, has network access and can resize the desktop to match the window on the fly. It automatically captures the mouse pointer when it goes over the window, and it is possible to take snapshots of the PC and restore them. In other words, no waiting for XP to boot up; just go straight to the desktop.
Oct 24th
I found out that the linux-rt kernel is not suitable for running EMC2/LinuxCNC. Sorry if you followed those steps. You can remove it using sudo apt-get remove linux-rt. Instead the kernel must be patched with RTAI. I’m currently working out the correct steps to do this. So far I tried the pre-built kernel in the Gutsy experimental folder but ethernet was broken. I don’t recommend bothering with those packages. Instead I hope to come up with the steps to install EMC2/LinuxCNC manually.
I have received most of the parts for the 24VDC, 10A power supply that is needed for the HobbyCNC board. Once I have that completed I will post a complete bill of materials with Digi-Key part numbers.
I damaged once of the stepper drivers on my HobbyCNC board while performing some simple tests with a bench power supply I have. The motor was connected incorrectly. Now I have to order a replacement. Luckily I was testing only one axis, otherwise I could have damaged all the drivers.
As you can see slow progress is being made on several fronts. Hopefully I will have something concrete to post soon.
Oct 22nd
Well…the splash screen was not centered. I think this was because the installation detected my monitor as “generic plug and play” with more limited capabilities than it really has. I changed the display settings in Gnome so I can get 1152 x 864 at 75Hz, but this left the splash screen off center. Here is the fix:
Edit /etc/usplash.conf to set the correct x and y resolution.
Run: sudo update-initramfs -k all -u
The update-initramfs needs the “-k all” option to update all kernels. In my case I have the generic and real time kernels.
Oct 19th
EMC2 requires a real-time kernel (which Windows XP and Vista are not). Installing it on Ubuntu 7.10 was pretty simple.
sudo apt-get install linux-rt
and waitAfter the PC rebooted Gnome complained that the theme manager wasn’t working. Another reboot fixed that problem. Running:
uname -v
gives:
#1 SMP PREEMPT RT Mon Oct 15 01:05:51 GMT 2007
So the real-time kernel is now installed and working. I will play around with the desktop for a while to make sure it is stable before proceeding further.
Oct 18th
The kit arrived and here is a picture of everything received:
Here is a close up of one of the motors:
And here is the board assembled (took about 1 1/2 hours):
Now I need to hook it up to a PC and test it with a single motor. I can’t connect all three motors until I have built a 10A power supply. My current supply is only 3A so can’t safely drive more than one motor.
Oct 18th
Today the latest version of Ubuntu was released – version 7.10. I am hoping to use this with EMC2 a.k.a. LinuxCNC for controlling my CNC machine. Why? Because Linux offers a real time version of the Kernel. The alternatives are Windows with Mach2/3 (which is not free) or DOS and TurboCNC (also not free). Windows is not a real time operating system, so the only software that works properly has to code around this. As far as I know that is the Mach programs. I will still need Windows however for DXF and CAM applications.
Downloading Ubuntu from the mirrors was painfully slow, and attempting to using the official torrent file resulted in “connection refused”. I presume a large number of people are also downloading the OS today. So I used the torrent file on this page. I pulled down the ISO image in two hours. Not bad. Burnt it to CD, added a second hard drive to my desktop PC (not required, but I chose to do it this way), created an image of the Windows partition and booted with the CD in. The install was pretty smooth. Only a couple of glitches. Grub failed to boot because I needed to enable the second drive in the BIOS. And the package manager decided to not install anything, which was quickly solved with this information in this thread.
Hopefully I will be able to get the real time kernel and EMC2 installed. If so I will post instructions, otherwise I will probably have to switch to 6.06 a.k.a. Dapper Drake.
Oct 17th
In order to set up the CNC software we need to know the pitch of the leadscrew being used. I found a Pitch Conversions Table to help with this. I have purchased a 6ft 1/4″-20 (20 threads per inch) threaded rod to use as a leadscrew. According to the table this is a pitch of 1.27mm.
With 200 steps per revolution that will give 6.35um per step. Using 1/16 microstepping that should give an average of 0.397um per microstep. However there will likely be a bit of play between the nut on the leadscrew and the leadscrew, eroding this accuracy somewhat. Also the threaded rod and the motor are made to specific tolerances and are not exact.