Gcode
CNC version 2.0
I finally finished putting together my second CNC machine. Again this one is put together with surplus parts, but they are much better surplus parts. I have the luxury of three linear slides from Newmark Systems, that have dual profile rails and recirculating ball slides, along with 16TPI precision screws and recirculating ball guides. In short, the new machine is solid as a rock, and has more torque.

My homebuilt CNC machine
I finally assembled enough surplus parts and scrap material to build a halfway decent CNC machine. I have been looking forward to actually completing this task for some time, but the appropriate parts and materials are prohibitively expensive for the individual on a budget. This spring I managed to complete the project.
Most of the machine is made out of either aluminum or acrylic. These materials are both easy to work with when all you have available is various hand tools and a drill press with a cross slide vise. The motors are NEMA 23 high torque, the threaded rods are 1/2-10 precision ACME and the nuts are anti-backlash. This results in pretty decent X-Y movement. I made the slides from extruded aluminum profiles available at the hardware store and some strips of Teflon.

I made all of the electronics that support the machine. I made the optical home and limit switches, as well as both parallel port interface boards. I also assembled the stepper motor drivers and built power filters/regulators for the input to the stepper motor drives on all three axes. This prevents inductive feedback spikes from the motors ruining the stepper motor control ICs. I need this because I’m running the motors at 48VDC and the controller IC has an absolute maximum voltage rating of 60VDC. I also wanted to keep any switching noise and voltage dips from the switch-mode power supply out of the stepper drives. Each filter has a FET-regulated output that clamps the voltage and then sends it out to some big capacitors to prevent the voltage from dropping.
The parallel interface boards completely isolate the controlling PC from the drives and other electronics. Buffers handle all the appropriate levels and opto-isolators keep the ports safe.

I’ve run it extensively with TurboCNC, but I don’t get any of the limit and home functionality because TurboCNC only supports legacy port addresses, and most parallel port PCI cards can’t map to legacy addresses. This leaves me with only the one on-board parallel port, which is mostly used up by the 3 axis step and direction signals. It works in Mach3 CNC, but I can’t afford to buy that program right now. So I’ve used it in evaluation mode for doing simple text engraving on plastics and acrylic. Oddly enough I couldn’t get it to work at all in Mach2. The pulse train output to the stepper drives was inconsistent enough that the motors would stall. I even tried it on a few different computers, one of which was a brand new XP install.
The machine mostly cranks out PC boards thanks to Eagle CAD and PCB2GCode. I’ve made quite a few since the machine was finished. It does a pretty good job, and holds flatness to a couple thousandths. It’s enough to get routine 0.020″ isolation on traces and pads, and clean 0.012″ trace widths. It’s a bit slow because of the low-buck slides, the motors stall if I speed it up much. It’s not exactly a high precision machine, so I can live with slow.
I’ve got some better parts since I built this one, and I’m planning on building another one with much better accuracy in the near future. This machine won’t handle the fine traces necessary to make boards with the newer components.
Here’s a video of the machine in action:
You can see more videos at youtube: imsolidstate’s CNC machine
Other Stuff
- 0.008″ PCB trace isolation on my CNC
- 1_Wire_Driver
- 12 Volts on the trailer without a truck
- 330 Watt power supply for Alienware M17x
- 330W power supply for M17x update
- 6970m power issues
- 6970m vBIOS ISP / Pm25LD010
- 6CY7 dual triode valve amplifier
- Acrylic polishing and scratch removal
- Air quality sensor (TVOC and eqCO2)
- Alienware AlienFX repair
- Alienware M17x BIOS / EC corrupted flash fix
- Atmel’s new micro with integrated boost converter
- Automotive rear fill “surround sound” with Boss DD-3
- Breathe life into your Xoom
- BT5 USB flash drive persistent install
- Build a 9-digit Pulse Counter for under $20
- Build a spot welder from a battery charger
- Canon A70 CCD replacement
- Canon DSLR shutter release from any switch contact
- Cascade process heater
- CNC version 2.0
- Continuous vs. batch water changes
- Diesel, sulfur, NOx, and EGR
- Digital RPM indicator
- DIY Router table
- Ducati 749/999 Tail Light
- Electronic choke
- ELM327 emulator
- Fast idle mod
- Fix your Keurig
- Fix your Keurig – again
- Flash a monitor’s EDID with an mbed and RealTerm
- Flatbed scanner panoramic camera
- Forza 3 multiscreen setup
- GSXR Instruments C Source
- Horizont: a true panoramic camera
- How much electric current does a truck really use?
- Instruments for the GSXR
- LED backlit desk sign
- Light pipe tail light for the GSXR
- M17x 6990m / 6970m overheating
- M17x inverter brightness fix
- MAX4173 Current sense amplifier
- mbed 1-wire EPROM driver (DS2502)
- MEMS Accelerometers
- Modifying a digital camera for infrared (IR) photography
- Moisture Meter for Plants
- My homebuilt CNC machine
- Netgear WGR614v7
- Netgear wireless router repair
- PAR / Spectrum analyzer
- PCB layouts and schematics for my CNC
- PIC32 Ethernet Starter Kit and MPLAB X
- Piezo pump
- Pressure mapping with DIY foam load cells
- SMS remote control
- Sony VAIO FW series laptop battery hack
- SPI programmer for SST25VF016B
- Spring tester / weight scale
- Spring tester C source
- Strain-Guage based Pressure Sensor
- Textile needle loom
- Trailer turn signal update
- Training halter fixes pulling back, lunging problems
- Turn signals for a trailer
- Upgrade M17x R1 to R2 motherboard
- Xbox 360 red lights issue
Recent Posts
Archives
- May 2019 (2)
- April 2017 (3)
- October 2015 (1)
- May 2015 (1)
- March 2014 (2)
- December 2013 (1)
- July 2013 (1)
- November 2012 (1)
- October 2012 (4)
- September 2012 (1)
- August 2012 (3)
- June 2012 (1)
- March 2012 (1)
- February 2012 (1)
- January 2012 (1)
- October 2011 (3)
- July 2011 (1)
- June 2011 (3)
- May 2011 (2)
- April 2011 (1)
- December 2010 (1)
- August 2010 (1)
- July 2010 (3)
- April 2010 (2)
- March 2010 (2)
- January 2010 (2)
- December 2009 (2)
- October 2009 (2)
- September 2009 (1)
- August 2009 (15)