BritishIdeas
Interesting Tech Projects
Interesting Tech Projects
Jan 14th
The Acer Aspire One is a pretty nice netbook – for a reasonable price you get 1Gb RAM, 160Gb hard drive, 1024 x 600 screen and 5 1/2 hours of battery life. However it comes with Windows XP or Linpus, which is a customized Linux distribution from Acer. Neither of these options appealed to me. In particular the Aspire One user forums seemed to have a lot of postings on limitations with Linpus.
Enter Ubuntu Netbook Remix (UNR), which is a special version of Ubuntu 8.04 for netbooks. Essentially it is the same as Ubuntu 8.04, but with some additions that make it easier to use on a small screen with limited height. Because netbooks don’t have optical drives it presents a challege to get a new operating system installed. Below is the process I found to work for me. I used Ubuntu on a desktop PC for all the steps.
Firstly note that I tried and failed to get a USB hard drive to work. I partitioned and formatted it every way I could and couldn’t get it to work. I managed to the the UNR installer to boot, but it always failed with “sdb: unknown partition table”. The process only seems to work with USB flash drives. I used a Sandisk Cruzer Micro 4Gb.
1. Download UNR 1.0.1 image from:
http://oem-images.canonical.com/unr/unr-1.0.1.img
2. Plug in USB drive and identify device location. Mine was /dev/sdb mounted to /media/disk.
3. At command prompt:
sudo dd if=./unr-1.0.1.img of=/dev/sdb bs=1024
4. fdisk -l will then show:
Disk /dev/sda: 250.0 GB, 250000000000 bytes
255 heads, 63 sectors/track, 30394 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x88000000
Device Boot Start End Blocks Id System
/dev/sda1 1 8 64228+ de Dell Utility
/dev/sda2 9 1314 10485760 7 HPFS/NTFS
Partition 2 does not end on cylinder boundary.
/dev/sda3 * 1315 7769 51849787+ 7 HPFS/NTFS
/dev/sda4 7770 30394 181735312+ 5 Extended
/dev/sda5 7770 23109 123218518+ 7 HPFS/NTFS
/dev/sda6 23110 29908 54612936 83 Linux
/dev/sda7 29909 30394 3903763+ 82 Linux swap / Solaris
Disk /dev/sdb: 4016 MB, 4016045568 bytes
124 heads, 62 sectors/track, 1020 cylinders
Units = cylinders of 7688 * 512 = 3936256 bytes
Disk identifier: 0x8ef631df
This doesn't look like a partition table
Probably you selected the wrong device.
Device Boot Start End Blocks Id System
/dev/sdb1 ? 274784 529564 979374166 66 Unknown
Partition 1 has different physical/logical beginnings (non-Linux?):
phys=(734, 123, 14) logical=(274783, 70, 21)
Partition 1 has different physical/logical endings:
phys=(120, 143, 6) logical=(529563, 65, 22)
Partition 1 does not end on cylinder boundary.
/dev/sdb2 ? 448668 961719 1972168331 7 HPFS/NTFS
Partition 2 has different physical/logical beginnings (non-Linux?):
phys=(187, 180, 14) logical=(448667, 16, 52)
Partition 2 has different physical/logical endings:
phys=(784, 0, 13) logical=(403059, 76, 1)
Partition 2 does not end on cylinder boundary.
/dev/sdb3 ? 426615 680707 976730017 7d Unknown
Partition 3 has different physical/logical beginnings (non-Linux?):
phys=(252, 59, 46) logical=(426614, 84, 39)
Partition 3 has different physical/logical endings:
phys=(139, 118, 4) logical=(122048, 22, 28)
Partition 3 does not end on cylinder boundary.
/dev/sdb4 ? 36178 37261 4161536 6f Unknown
Partition 4 has different physical/logical beginnings (non-Linux?):
phys=(370, 101, 50) logical=(36177, 96, 57)
Partition 4 has different physical/logical endings:
phys=(10, 114, 13) logical=(37260, 47, 62)
Partition 4 does not end on cylinder boundary.
Partition table entries are not in disk order
Don’t worry about the errors – they don’t seem to be important.
5. Unmount the USB drive by right-clicking on the icon on the desktop.
6. Plug USB drive into Aspire one and boot. At Acer screen press F12 to get to the boot menu.
7. On the boot menu the USB drive will appear twice:
USB Floppy Drive
USB CDROM
This because there is a second hard-coded, read only partition that appears as a CDROM drive. Choose the floppy drive option. Press Enter at the prompt and UNR will now install. Follow the on-screen instructions.
8. At this point you probably want to change the name of the computer. It seems to default to the name of the first user. Go to Administration -> Network, click on “Unlock” and enter your password.
9. Click on the General tab and enter a new name in the Hostname field.
10. Reboot. Clicking on “Quit…” didn’t seem to work. Holding down the power button for a second or so brought up the shutdown options screen. Note that after the reboot the “Quit…” option started working, so I guess the reboot is necessary.
Cleaning Up Your USB Drive
1. Install GParted from Add/Remove…
2. Go to System -> Administration -> Partition Editor
3. Plug in the USB drive and select it from the list at the top right (for example /dev/sdb).
4. Right click on the drive on the desktop and unmount it.
5. Select the partition (there will only be one for some strange reason) and delete it. Click on Apply to confirm.
6. Create a new FAT32 primary partition. Click on Apply.
7. Remove and insert the USB drive to mount it.
Oct 25th
There are a couple of features that I’ve come to the conclusion are essential, when generating g-code. Sure, there are a lot of features that are necessary, but these are features that perhaps a newcomer to CNC might overlook.
Tab Generation:
When cutting out a part from a piece of wood, there is a moment when the bit will cut through the last piece of wood holding the part to the rest of the wood. At this point the forces may cause the part to simply be forced out instead of precisely cut out. If the part is complex it is possible that this may happen even earlier in the last cutting pass, causing the wood to be snapped and the part to be damaged.
The solution is holding tabs. These are small pieces of wood that are left in place to hold the part to the rest of the wood. After cutting has finished the tabs can be broken, perhaps with a Dremel, then sanded away. This creates control over the process of removing the part, and will avoid any damage.
It is possible to manually design in the tabs when creating the part in a CAD program, but then some manipulation is required in the g-code generator to obtain the correct toolpaths. A quicker and easier solution is to use a g-code generate that can automatically generate the tabs. The usefulness of this should not be overlooked.
Lead In Moves:
Plunges, where the bit is moved vertically into the wood, put a lot of strain on the CNC machine and the spindle. For example on my CNC machine I can sometimes see the Z-axis assembly move slightly up and back when it encounters the resistance of the wood.
The solution is to use lead in moves. These are moves that gradually move the bit vertically into the wood at an angle or from the side. This reduces the stress on the mechanical components, which should last longer. As an example for my current projects I use a lead in move of seven degrees.
Sep 23rd
The best introduction I have found is from the Enco catalog. Fortunately you can view the catalog online. The introduction covers materials, types, number of flutes (including the trade offs), end cut type, shank type and surface treatments.
View the introduction at:
http://www.use-enco.com/CGI/INPDFF?PMPAGE=123
Note that this gives you page 123. Enco’s next release of the catalog may change the location of this introduction to another page. If you see this link is out of date please let me know the new page number.
Sep 15th
Recently I wrote about the steps I took to reduce the cutting time of a particular part from 67 minutes down to 20 minutes. I have now purchased a couple of 1/8″ four flute endmills from Enco.
I can now cut the 1/8″ wide groove in the design, plus the outer profile with holding tabs much more quickly. In addition I can use the 1/8″ bit to perform a quick roughing pass on the pocket operation. Once complete I switch to the 0.0571″ endmill and make a finishing pass around the edges of the pocket, increasing the detail.
The new time, including the manual tool change, is about 10 minutes. Not bad. At the end of the cutting process the motors, stepper driver chips, transformer and dremel are all a lot cooler.
One small downside is that the 1/8″ bit make a lot of noise.
Sep 15th
Previously I wrote about a DXF exporter for Inkscape. Bob has updated his Better DXF Output exporter for Inkscape 0.46. All the files are now in one place and it is under the GPL v2 license. This is great news for CNC users and I hope it leads to more use for this handy Inkscape extension!
Sep 11th
I am working on a design that basically involves cutting out a 4″ diameter disk from 1/4″ thick wood, with some shapes pocketed into the surface of the disk. I have been using 10 inches per minute (IPM) to cut through the Poplar and I had no clue if this is average, fast or slow. What I do know is that it is painful to watch.
At 10 IPM cutting out the design took 67 minutes. That is probably split 60%/40% with the majority on the pocketing. Too long for my liking. I decided to try and reduce the cutting time. First I increased the speed to 30IPM, which is nearly the maximum that my PC can go. Next I reduced the depth of the pockets from 0.15″ to 0.10″. This saves an extra pass.
The new time to cut? 20 minutes. Less than 1/3 of the original time. But that’s no good if the result is a ragged mess. Tonight I found out – there are more burrs on the wood, but the vertical edges look just as good as the ones cut at 10 IPM. So I will likely continue to use 30 IPM in the future.
My next aim is to split the cutting into two parts. The pocketing with a 0.0571″ end mill and the rest with a 1/8″ end mill. This should reduce the time even further.
Sep 7th
If you search around for ideas on how to import DXF files into Inkscape or convert DXF files to SVG files, there are a lot of results. But they mostly seem to be shareware or orphaned applications that haven’t been updated for years. However there is a simple, obvious (once you see it) and free solution to converting DXF files to SVG files (which Inkscape can load).
It’s called Open Office Draw.
Yes, that’s right. Open Office Draw can load a DXF file and save an SVG file. I’ve tried it and it worked – I was able to take a DXF file, convert to SVG, load into Inkscape, edit, save as DXF (see my other posting from a couple of days ago on this) then load into CamBam for CAM processing.
Sep 4th
Update: see this later post before following the instructions below.
I don’t care for most of the DXF editors available. They seem a bit clunky and not too friendly. But I do like Inkscape. Unfortunately it doesn’t export DXF files.
Here is a way of getting Inkscape 0.46 to export DXF files which can then be processed in a CAM program to generate g-code for a CNC machine.
Firstly install Inkscape 0.46. It must be this version.
Next go to this post on BobandEileen.com, right click on the link to “dxf_templates.py” and save it in C:\Program Files\Inkscape\share\extensions.
Next step is to go to another post on BobandEileen.com, right click on the two .py files (“simpletransform.py” and “better_dxf_outlines.py”) and save in the same place. Then do the same for “better_dxf_outlines.inx”.
Restart Inkscape.
Create a drawing and then move it to the bottom left corner of the page. This corner ends up being the origin. If you want your drawing centered on the origin then center it on the corner of the page.
Go to File -> Save As…
From the list of file types in the save dialog window choose “Better DXF Output (*.dxf)” and save the file.
Now open the DXF file in your favourite CAM program, such as CamBam.
Note that you may need to scale the drawing in your CAM program. Even though I had my drawings correctly sized in Inkscape, they seemed to be quite a bit bigger. If anyone knows how to solve that please post a comment.
Jul 18th
CamBam Plus has the option to automatically generate tabs. This is pretty nice and might make me change how I use fixtures to hold workpieces down. I’m starting to have concerns about the double-sided carpet tape, as I’ve seen the wood moving slightly during cutting.
I decided to create a simple test – cut a 0.5″ x 0.5″ square with tabs, in 1/4″ poplar. Also I cut the entire piece out so I could examine it and show it off to people (total size is 1″ x 1″).
CamBam Plus automatically generated the position of the tabs, but I needed to decide on the height and thickness. My first test using tabs with gears failed as the tabs were so thin they were non-existent. In this test they are 0.1″ wide and 0.07″ high. In order to saw the tabs later the outer profile cut has to be wide enough to get a tool in there. In this test it is 0.125″ wide.
The feedrate was 10IPM.
Here is the video – the final piece is shown at the end. In the EMC2 image you can clearly see the tabs at the bottom of the cube on each side. Sorry about the poor quality.
Jul 13th
Today it was time to give some new gear generation code a try. Using CamBam I created gcode for a gear with a 2″ pitch diameter, 18 teeth, 20 degree pressure angle and a diametral pitch of nine. I then cut a couple of them out.
The original plan was to work on precise cutting of two sides of an object. That idea failed so I had to eyeball it. Here is a video of my Fireball CNC V90 and EMC2 (running on Ubuntu Gutsy) in action:
The gears fit together nicely.