====== PCB Mill - Bungard CCD/MTC CNC ====== {{:equipment:cnc:pcbmill:pcb_mill.jpg?600|}} This equipment requires an induction prior to use. For your own safety and to avoid damage to the equipment do not attempt to use it until you have been inducted. This equipment is hazardous to the user or those around them, take care during use. ====PCB Milling==== Printed circuit board milling (also: isolation milling) is the process of removing areas of copper from a sheet of printed circuit board material to recreate the pads, signal traces and structures according to patterns from a digital circuit board plan known as a layout file. Similar to the more common and well known chemical PCB etch process, the PCB milling process is subtractive: material is removed to create the electrical isolation and ground planes required. However, unlike the chemical etch process, PCB milling is typically a non-chemical process and as such it can be completed in a typical office or lab environment without exposure to hazardous chemicals. High quality circuit boards can be produced using either process. In the case of PCB milling, the quality of a circuit board is chiefly determined by the system's true, or weighted, milling accuracy and control as well as the condition (sharpness, temper) of the milling bits and their respective feed/rotational speeds. By contrast, in the chemical etch process, the quality of a circuit board depends on the accuracy and/or quality of the mask used to protect the copper from the chemicals and the state of the etching chemicals. The main advantage of PCB milling is the quick turn around time, hence milling is best used for rapid PCB prototyping. ====Considerations when designing a PCB for milling ==== When designing a PCB for milling it is recommended to increase your trace width and clearances compared to what you would use if the board was being manufactured by a professional fabricator. a minimum trace width of 0.5mm and a minimum clearance of 0.4mm works well. Also some PCB design programs desing the PCB as if looking from the top down whereas the PCB mill mills the PCB from the bottom up so you may have to mirror your design before exporting it from your chosen PCB design software. ==== Controlling the CNC ==== The CNC takes GCode. The program we use to send this from the PC is Candle. This is installed on the PC with a shortcut on the desktop. A benifit of using Candle is it allows you to use a probe input to create a "Height Map" of the PCB surface allowing the CNC to make minute adjustment to the depth of the cut which allows it to compensate for the PCB surface not being completely flat and level to the gantry. ====Generating the GCode==== To generate the GCode from the PCB design we use a software called FlatCAM. A version of this is installed on the CNC PC as well as the PC in the back of the main room. You will be shown the basics of FlatCAM during the induction but you can also find a helpful tutorial here https://www.youtube.com/watch?v=--Cb11heuHc ====Bit recommendations==== For the isolation milling, milling out the board pads and traces, it is recommended to use an engraving V bit that has a 30 degree 0.2mm tip and a 3.175mm(1/8") shaft. For milling out the board outline a 1.6mm endmill is recommended. ====Speeds and Feeds==== Bellow is a list of Feeds and Speeds that have proven to produce good results. If you find a better combination then do please add it to the list ^ Milling Operation ^ X-Y Feedrste ^ Z Feedrate ^ Spindle Speed ^ Cut Depth ^ | Isolation Milling | 120 | 60 | 30,000 | -0.1mm | | Component hole drilling | 120 | 150 | 30,000 | -(Thickness of the board + 0.2mm) eg. -1.8mm for a 1.6mm board thickness| | Board outline Milling | 120 | 60 | 30,000 | -(Thickness of the board + 0.2mm) eg. -1.8mm for a 1.6mm board thickness| ===== Page Archive===== Below is the page archive ==== 2.5D vs 3D mode==== There are two separate ways of setting up the CNC. One is to have full control over the three axis as you would expect in a CNC. This is '3D mode'. It works well, but for PCBs, it can be quite unforgiving as the PCBs aren't generally perfectly flat. Especially if they're stuck down with double sided tape which can result in bumps. 2.5D mode makes the Z axis slightly spring loaded. There's a skirt that can attach to the z-axis. The depth of the cut is then defined by how far the tool protrudes from the skirt rather than what is in the gcode. This gives a significant margin for error on the depth of the cut and works well on non-flat PCBs. However, only one depth of cut is possible (unless you re-adjust the skirt). The skirt has two metal parts. Twisting these adjusts the height of the skirt, but it is very stiff. You still have to set the Z-height, but it's very forgiving. Just make sure the tool is resting of the surface when you zero the Z height. You might want to make sure that you increase the height of your travels to avoid it dragging the tool There's a locking bolt. When this is in position, it disables the 'wobble' that make the 2.5D work. if you're unsure what mode it currently is in, give the toolhead a wobble. If it moves up or down a little (about 10mm) then it's in 2.5D mode. {{:equipment:cnc_parts.png?direct&200|}} The CNC parts: 1) the z-axis locking bolt 2) the '2.5 axis' sock 3) the spindle release bolt The position shown in the above image is the 'storage' position for the locking bolt. Put it here when it's in 2.5D mode to avoid loosing it! If you want to go into 3D mode, remove it and put it the other threaded hole on the knob. ====The new controller==== In October 2020 a [[botlab:hsproposals:proposal_2020-09-21-pcbcnc-new-controller-parts-proposal|proposal]] went through to make a new controller. The idea behind this was to make it accept standard G-Code, and for it to have the same workflow as the larger metal mill. Have a read through the proposal to understand the technical choices behind the build. Here are some useful docs for the new controller: * {{:equipment:ccd_control_box_connections.ods|Control Box Connections}} * {{:equipment:pcb_cnc_pinout.ods|Control Box Connections (Alternative testing)}} ==== Controlling the CNC ==== The CNC takes GCode. You can send this via either Universal GCode Sender or bCNC. These are both installed on the CNC PC, and should take the same gcode. The choice is yours. There are probably other options, but these are both tested and work. Whichever you use, you'll need to connect to the CNC via the com port. This seems to usually come up as either COM5 or COM6. The speed is 115200. ====Starting the mill==== When you first turn on the mill, it will be in an 'Alarm' state. This is just because it doesn't know where the toolhead is, and it needs to be homed. To get it out of 'Alarm' run the following Gcode: ''$H'' You can enter this is Universal Gcode Sender, or bCNC (using the command text box in the bottom left ====Milling a single sided surface mount PCB==== You can generate GCode in a huge number of ways. This method is just the one that works for me * first design your PCB in whatever EDA tool you like. A few key considerations are: * * track width -- I've used 1mm tracks. This is overkill, but thick tracks makes your chances of success much higher. * * number of sides: It's not impossible to do 2-sided PCBs on the mill, but it may be challenging (I've not tried it). * * holes -- The mill can drill holes. again, this is untested by me (ben) * Generate a gerber file. You might end up with a zip, or you might end up with a directory full of files depending on your EDA tool. If you get a ZIP, you'll need to extract it. * Install FlatCAM (if you haven't already) on your machine. You can get it from http://flatcam.org/ * Flatcam has a pretty good guide for generating GCode from a Gerber http://flatcam.org/manual/iso.html, so I won't repeat it here. However: * First make sure that your design is near the origin. This will help later on. I try to put the bottom left corner next to the origin. You use the offset vector here. Make sure you know what offset vector you use as you'll want to use the same offset on every part of the gerber file (e.g. board outline, top layer). * * When generating geometery, I've used two pass with combine passes checked. * * When generating the CNC job, Feedrate -- I've experimented a bit and found that 10mm/s works well. * * Export the GCode and save it to a file. * You should now have a GCode file that you can transfer to the CNC machine. Set up the CNC * Make sure you've got the green '2.5 axis' sock * Make sure the z-axis locking bolt is removed * Insert V-bit for milling. This should be protruding very slightly below the green collar. Think about half a mm or so. I've done this by removing the spindle, loosening the collet (push down the black knob on the top and twist), and let the bit fall with gravity. Place the spindle on a flat surface with the green collar down and tilt it slightly so one half of the green collar lifts up about a mm or so, then while holding this in place, tighten the collet. Set up the PC * Turn on the PC and the mill. * Open bCNC (There is also UCS installed if you'd rather use this). * Use the file tab to connect to the CNC (it seems to like connecting on com 5, but this could change) at 115200 bps. * When it connects, it will be in an alarm state because it hasn't been homed. Enter '$H' in the command box at the bottom of the screen and hit enter. it should now home all three axies. * If all has gone to plan, you should now be able to move the milling head in the control tab. * Load your GCode file. You should now see an image of the tool path in the main pane. * use the jogging controls in the control tab to move the toolhead to where you want the origin to be (e.g. if you've created your gcode with the origin in the bottom left corner, you can now position the toolhead where you want the bottom left corner to be and press XY=0 on the control tab to set the origin to this point. * Once you're happy with everything, switch back to the control tab. Use the slider to ramp the spindle up to full speed (or whatever speed you like) and you might need to click the spindle button to start it spinning. * Press the play arrow to start your toolpath. * It all goes well, you should now have the traces routed on your PCB Milling the board outline * Settings I've used. This seems a bit rough-and-ready, but is working using one of the slightly chunkier end mills: * * cut Z: -0.08 (in inches) * feed rate: 10 * depth/pass: 0.02 * tab size = 0.05 * There is a tool for making a basic square outline in flatcam. You can also do custom outlines -- see here for details: https://caram.cl/software/flatcam/board-cutout-with-flatcam/ * You can also import SVG files directly into flatcam. This might be a better option if you have a fancy board outline. Drilling the holes * If using EasyEDA, then flatcam seems to have a problem with units. Instead of importing the drill file in mm, it imports it in 1/10th of an inch. To correct this, go to the selected tab (with the drill file selected) and scale by 0.3937008 That seems to do the trick. It will still have the hole size wrong, but that doesn't matter as the hole size is determined by what drill bit you put in rather than the size shown. * if the drill's pushed all the way in, then you have to be careful not to push the z-axis below it's minimum point. This will upset the CNC and it might prove impossible to get it properly started again. I have the drill bit about 5mm out from pushed all the way in and this seems to work well. ==== Milling two sided PCBS ==== * I've been following the guide on the flatCAM website: [[http://flatcam.org/manual/doubleside.html|double sided PCBs]] * There's a set of 2mm brass pins in the red box (and a set of 2mm drill bits) * DO NOT PUT AN ALIGHMENT HOLE AT 0,0 IT WILL CRASH THE TOOL HEAD WHEN YOU TRY TO MILL THE SECOND LAYER * I've been drilling holes 5mm through a 2.5(ish)mm PCB. This seems to work ok. Deeper holes might give more accuracy? * with the drill pushed all the way in, drilling into the bed for the alightment holes will cause the Z axis to go too deep. Don't put the drill bit all the way in. * If you want to use the 2.5Dsetup for milling the second side, you need to place the pins far enough away for the skirt not to hit them * putting the pins in 2mm holes is a tight fit. You'll need to hit them with a hammer. DO NOT DO THIS ON THE MILLING BED. Take the PCB out and then tap the pins in * I've been getting alright accuracy. OK for standard 2.54mm pitch holes. If you need to go much lower, then you might struggle. It might be possible to nail this down a bit futher. Maybe with deeper holes? More of them? ==== Picking your milling bit ==== You can mill with either an engraving v-bit or an end mill. I'm having better success with an end mill (the v bit does work, but I'm getting messy results. Might just need more practice. I'm currently using a 0.7mm end mill to reasonable success. [[https://support.bantamtools.com/hc/en-us/articles/115001656913-Engraving-Bit-Isolation-Milling | See here for some info about the options from Bantam]]