I've been seeking my personal holy grail of one-off home PCB manufacturing for a while - sounds simple but it's surprisingly not. I've tried stripboard, protoboard, PCB transfers, laser toner transfer and UV exposure - not one of these has been a great solution for all sorts of reasons including (but not limited to) cost, time, reliability, repeatability and shelf-life (of chemicals). Recently, however, I've seen some Youtube videos about PCB milling which looked promising, so when I saw a Tom Sanladerer video about a new open source project called "Ant PCB Maker", I couldn't resist building one.
I won't cover the whole build in detail here (although I've uploaded a few build progress photos for posterity) as the project's official Youtube channel already has excellent video documentation. Instead, I'll cover where I've diverged from their designs for cost or availability reasons.
Step 1: Stepper Motors
The original project specifies a couple of cute little NEMA 11 motors. I don't have any of those and purchasing them would have cost me about £30, which would be fine if it wasn't for the fact that I have about a dozen NEMA 17 steppers lying around doing nothing. So I designed a couple of mounts for those based on the original designs. During assembly, I found the new mounts flexed quite a lot so I also designed some lower retainers to counter that.
Step 2: CoreXY GT2 Pulleys
The Ant designs specify various toothed and smooth pulleys at different points in the CoreXY layout to ensure the GT2 belts run smoothly. Some of these can be a bit problematic to source and I had some flanged bearings which an old printer used for the same purpose so I used those instead. It seems to work well enough and these are much easier and cheaper to source so are a worthwhile consideration for anyone building this project.
Step 3: Controller Board
The project creators have ported the GRBL firmware to a Nucleo STM32 board and customised it to suit their specific configuration. I'm not building exactly to their spec, however, and I really want to avoid acquiring yet another expensive microcontroller board if I can avoid it. As the upstream GRBL project is written for cheap 8-bit Arduinos, I salvaged one of these and the CNC shield from an old project and used that instead. It was easy enough to configure for a CoreXY layout - the only thing missing was the spindle code for the brushless ESC controller the Ant uses (more on that shortly).
Step 4: Electronics Housing
I found it quite difficult to understand how the original electronics enclosure holds together and what I did eventually implement felt unsatisfying. After a failed attempt at using magnets to hold the front cover in place, I remodelled the back to have solid pillars which come up to the correct height to meet the front cover. This works reliably and, as the front cover is held in place by 4 short machine screws, it's easy to get at the electronics when needed.
Step 5: Brushless Motor
The motor and the alternative, which the Ant project specify can be difficult to source. I have a couple of types of potentially suitable brushless motors from old drone projects so I decided to try those. My first attempt was with a cheap 1000KV 2212 motor which is very common on eBay. There's a modified head on Thingiverse which fits this and it looked promising at first, but I needed a longer shaft on it and, because this has an obscure diameter (3.17mm), I was unable to use this motor satisfactorily.
My second, more successful attempt was with an older E-Max 1200KV 2822 motor. This has a removable mounting plate which allowed me to clamp the motor core directly in the head, ensuring a very solid fit. It also uses a standard 3mm spindle so I was able to extend this easily. These motors are still available on eBay and are reasonably priced so worthy of consideration if you can't source the recommended motors. I used a generic 20A ESC which was originally paired with the 2212 motor but is also suitable for the E-Max.
As I've mentioned in an earlier step, the GRBL project doesn't support brushless ESC controllers out of the box. For testing, I used a servo tester to control the motor speed but I'm now building a simple adapter to read the duty cycle of the standard spindle speed output and convert that to a signal the brushless ESC can understand. I'm considering making it a closed-loop controller so I can accurately set the spindle speed from GCODE. I'll update this post when it's finished.
Step 6: Spindle and Chuck
Although I was able to find the 6mm/ER8 spindle/chuck combination online, I had a lot of trouble finding the corresponding bearings in the UK and I didn't want to wait over a month to get them from China so I investigated alternatives. I found matching 5mm bearings and spindles but a 5mm ER8 chuck eluded me. However, larger ER11 chucks which fit a 5mm spindle are readily available so I ordered one of those. This change in bearing size and my new motor meant that I had to modify the head quite extensively - thankfully the Ant project posted their .stp files at around the same time. To accommodate the larger chuck, I also needed to increase the cutout on the lower head plate and use longer vertical Makerbeams (80mm)
Step 7: Motor/Spindle Pulleys
My first test with the finished router didn't go very well. The motor pulley lost its grip on the 3mm shaft and promptly melted. It's quite a delicate part so, instead of printing it in a more heat-resistant plastic, I redesigned it to use the same mounting method as the spindle pulley, which uses a metal lock collar to clamp to the shaft. This is a much more robust approach and if, like me, you purchased your lock collars in a set, you should already have a suitable 3mm collar for this.
Step 8: PCB Probe Clamp
To make it easier to connect the probe to the PCB, I drilled some holes in one of the PCB clamps with a 0.8mm bit and a pin vice, threaded some solid core wire through these holes and used a ring terminal and magnet to allow me to quickly fit and remove the cable.
Step 9: Conclusion
After a little tuning, this PCB router seems to work very well. The modifications I've made allowed me to save some money by reusing common parts from 3D printer builds and avoid to the long wait for parts direct from China. I still need to get more familiar with the software and milling bits/speeds/feed rates but I've already made a very nice little Grove button module (didn't really need it but it was an ideal simple test circuit). The real advantages of this method of PCB manufacture for me are that I can design the PCB in standard software and that I don't need to store or use unpleasant, short shelf-life, chemicals to manufacture the board. If I do decide to do a larger run of any boards I design, I can also send exactly the same output files to a PCB manufacturer.
Step 10: Parts (additional to Original Spec)
E-Max CF2822 brushless motor
5mm x 100mm Silver Tone HSS Boring Tool Round Lathe Bar Rod
Drill Stop Assortment Set, 8-Piece
ER11 5MM Motor Shaft Collet Chuck
E5 Magneto Angular Contact Bearing 5x16x5mm
F623ZZ Mini Metal Double Shielded Flanged Ball Bearings
Arduino Uno (clone)
Step 11: Resources
"The Ant PCB Maker" Reddit channel: https://www.reddit.com/r/TheANT/
GRBL firmware project: https://github.com/gnea/grbl
Custom 3D models used in this build: https://www.thingiv erse.com/stuartm/collections/pc...