I ran into a challenge recently where I didn’t have enough spare pins that could PWM on ramps. I want to add LEDs for lighting and to signify certain events. To work around the issue, I decided to make an i2c-rgb led adapter. I2C lets me have up to 127 devices. I plan to make a similar one with a mosfet for a fan.
I’m putting the finishing touches on the widgitmaster router that I bought long ago. I started by turning down an acme screw to replace one that was missing in the package. Then I had to make 2″ couplers because the nema 23 steppers had short shafts. Finally, I needed to mount my Wolfgang spindle to it. Unfortunately the wolfgang adapter had holes for 3/16 screws which wouldn’t work with the small t-slots on the widget master mini. I thought about making a new mount plate, but decided against it because I’d like one mount plate that works with any of my mills. My solution was to make spacers with a rim so that it could take 6-32 screws. If I decide to mount that spindle on my Taig, I can just remove the spacers and use a different pair of screws. Below are the fruits of my labor.
In the first part, I created took the circuit and created the gcode that the machine would use. This part will show it actually running on the machine.
First, the overall setup that I’m using. I’m using a Taig CNC Mill with a vacuum table to hold down the PCB.
The first thing we do is load up the gcode file into emc2, put the bit in, home it, and get started. You can see two videos below of the etching process. The first is an overview and the second is a closeup.
Etching is the first step in the process. As an option in pcb2gcode, I have predrill the holes in the copper. The next step is to drill.
After we drill we need to mill the board. Milling is effectively cutting out just the part of the PCB that you need. A video of the milling process is below.
The end result of the process is in the following picture. I didn’t go deep enough with the drill or milling bits. Since this was my first attempt at milling/drilling, I don’t feel so bad
Unfortunately I was not able to cut it the rest of the way out. Its easy enough to do another board, and I want to get it right anyway. Look for more updates to come.
So you’ve see my milling examples in previous posts. I’ve been working on getting the toolchain right, getting the hardware right, etc, etc. I’m going to walk you through the steps on milling a PCB. For his example, I downloaded a RBBB arduino from this instructable. You can see the board pulled up in my Eagle window.
The next step is to run the pcb2gcode ulp program. I’ll leave it up to you to google on how to install and configure it. Needless to say, the configuration requires a lot of customization for your setup. Once we run it, it generates a negative image of the cut path. There are two images below, one for etching and the second for milling. I’m not sure why drilling doesn’t show up.
These aren’t particularly riveting images. They do allow you to check that the paths look right and the right files are generated. The output of pcb2gcode is a series of ngc files. Next, you load these up into emc2. Emc is the cnc controller that I use. When you load them up, they look like the following:
What I typically do is run the emc2 software in a emulator to simulate the run before running it in the actual mill. I like to make sure that the tolerances are correct and that the gcode doesn’t make the machine do something strange. I’ll add the actually milling in part 2.
So one of my goals in getting into CNC was to be able to prototype my own PCBs (Printed Circuit Boards). I’ve gotten some special equipment to do it, but this isn’t an easy thing to figure out how to do. Its taken me some time, but here is my first attempt. I’m using the hold downs that I put on the v90 with some steel bars to help hold it flat. This isn’t ideal. More on that to come …
Below is the etched result. I’m pretty pleased with the result.
May 2013 S M T W T F S « Feb 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- February 2013 (2)
- January 2013 (7)
- December 2012 (7)
- November 2012 (5)
- October 2012 (1)
- September 2012 (6)
- August 2012 (2)
- July 2012 (4)
- June 2012 (5)
- May 2012 (9)
- April 2012 (2)
- March 2012 (2)
- February 2012 (5)
- January 2012 (2)
- December 2011 (1)
- November 2011 (2)
- October 2011 (10)
- September 2011 (4)
- June 2011 (3)
- May 2011 (1)
- January 2011 (3)
- December 2010 (17)