Skip to content

5. Electronics production

End result This week I worked on charazterising the design rules of out labs PCB production process. In our lab we have two CNC mills directed towards PCB milling. - Roland SRM-20 - 3018 proVER

CNC SOP

Our current process uses 0.4 and 0.7mm end mills for isolation routing and cutout processes respectivly. However, we have been informed about the benefits of v-bits and today I plan to run some tests to compare the milling bits and the two machines.

I will use the test PNGs provided and modsproject website to create the gcode. Traces test Coutout test

Roland SRM-20

Roland SRM-20

End Mills

End Mills The end mills we use normally are from APT Carbide Micro-Dia Square End Mills in sizes 0.4mm for traces and 0.7mm for holes and cutouts. These are very small and quite fragile, easy to break if misshandled. However, they do produce good results.

You do need to change the tool between tool processes by losening the grub screw. grub screw You then need to re-zero the z axis, but do not chnage the x-y zero as it would cause missalignment. re zero z

Mods Project

  1. Programs
  2. Open Programs
  3. Roland SRM-20, mill 2D PCB
  4. Select PNG

Traces

  1. F_CU File png
  2. Ensure the traces are white, invert if needed
  3. Select ‘Milling Traces’ default milltraces
  4. Set x, y, z values to 0
  5. Turn file output on file output on
    • Tool dimeter = 0.4
    • Cut depth = 0.13
    • Max depth = 0.13
    • Offset = 4
  6. Calculate

Cut and Holes

  1. Edge Cuts / User Drawing File
  2. Ensure the center are white, invert if needed
  3. Select ‘mill outline’ default
  4. Set x, y, z values to 0
  5. Turn file output on
    • Tool dimeter = 0.7
    • Cut depth = 0.6
    • Max depth = 0.18
    • Offset = 1
  6. Calculate

View the cut file generated. Ensure the mill lines and curves are smoove and follow the expected path. They should go around the traces and pads.

file preview traces files preview outline

Open V-Panel for SRM-20.

v panel

Move the head to the bottom left corner of the area you wish to mill within. Zero X and Y. Lower the head close to the PCB, loosen the grub screw allow the bit to touch the PCB. Tighten and set z axis to zero.

zero z

Raise the head up again off the PCB.

Click ‘cut’. Load the traces rml file. Only have one file visible, delete uncessessary ones.Click ‘output’.

When it is completed hoover any dust created, change the tool bit to 0.7mm, re-zero the Z axis. Load up the hole cut file or the outline cut file. Make sure to delete the traces file. Then select ‘output’.

Final test end mill

I did make a mistake of not deleting the traces file but I stopped the cut and fixed that issue. You can see the first trace is smaller and missing the end due to this, it was fine beforehand.

V-Bits

V-bits

First time using the v-bits was a bit daunting and I made some mix ups which I will go through before detailing the final process.

I had seen on modsproject that there is a new section for v-bit calculation. V-Bit ModsProject I set the tip diameter to 0.1mm and angle to 30 degrees and left everything else as default. This was a mistake as the default values set the cut depth to be 1.14mm, way too deep. The sound was a fast giveway to abort the cut as you can see in the video.

Deafult mistake picture

I had not realised you needed to set the desired cut depth or width as well in the v-bit calulator. I dropped the cut depth and continued to slowly lower it, attempting to find the sweet spot. Attempts However, when I reached values as low as 0.01 and it was still not a clean cut John pointed out the issue. I did not know you had to use an adaptor because the shaft diameter was smaller than the usual end mills we use. I had just tightened the grub screw which caused spindle rollover. runout The tool was too small so was pushed to the side and no longer turned centrally. This causes a lot of burrs and ripping off the traces and pads. smooshed traces

The bit was pushed off center by roughly 0.4mm which is a lot for a 0.1mm point.

Using the adaptor and correcting the desired depth allowed a decent finishing mill. Adaptors

Mods Project

  1. Programs
  2. Open Programs
  3. Roland SRM-20, mill 2D PCB
  4. Select PNG

Traces

  1. F_CU File
  2. Ensure the traces are white, invert if needed
  3. Select ‘Milling Traces’ default
  4. V-bit parameters
    • Tip diameter = 0.1mm
    • Tip angle = 30 degrees
    • Cut depth = 0.04 (Cut width = 0.121)
    • Offset number = 4
  5. Send calculated settings
  6. Set x, y, z values to 0
  7. Turn file output on
  8. Calculate

Cut and Holes

  1. Edge Cuts / User Drawing File
  2. Ensure the center are white, invert if needed
  3. Select ‘mill outline’ default
  4. V-bit parameters
    • Tip diameter = 0.1mm
    • Tip angle = 30 degrees
    • Cut depth = 0.8 (Cut width = 0.525)
    • Max depth = 1.6mm
    • Offset number = 1
  5. Send calculated settings
  6. Set x, y, z values to 0
  7. Turn file output on
  8. Calculate

cut width 0.121

We looked under a microscope camera. You can clearly see the bit was milling too deep on the other attempts. Alt text Alt text

3018 proVER

3018 proVER The workflow that we currently use for the 3018s use flatcam to generate the gcode from gerbers rather than modsproject. There are benefits to both methods. However I will use mods project to compare the workflow to the SRM-20.

I will used the generic CNC 2D Mill PCB preset in modsproject. Inputing the same images.

I will also use the same v-bit settings as the ones that worked on the final attempt.

The only main difference is that tabs are on by default, these are not needed for the way we fixture our PCB material down so I will turn them off.

The software we use is Candle we have also tried Univeral Gcode Sender. They both work about the same, I have not chosen a favourite.

We step the head over to the desired X-Y start cordinates and zero them.

We have a probe set up on the CNC. It detects electrically when the tool is touching the probe. You have to remember to connect the crocodile clip to the tool or it will not stop and plough into the probe!

I have a sneaking feeling the measurement that you input into the code to account for the height of the probe is not quite accurate as it has a tendancy of milling deep. Probe

Here is the result of the milling. It was incredibly clean streight off the machine. It manages to mill smaller size traces than the end mills. 3018 test

Its default speed is quite low which means the mill takes longer, however we can try tune this in the future to max-min quality and speed.

Here are all the results of the milling we have done this week along with the Quentorres PCB I milled for my individual project. I opted to mill on the 3018 machines because it produces the cleanest results. Final Results

Board Houses

The extra credit for this week involves ordering a PCB from a board house. These are companies (usually in China) who will accept design files for your PCB and create a high quality PCB in small batches.

This is would be the step after you have a fully working prototype board and need 5+ boards.

You are able to order multilayer boards with silkscreen decorations. There are also options for pick and place services for the components.

There are a few companies but the two I checked prices for were PCBWay and JLCPCB. I ended up ordering from JLC. JLC Site Alt text

I had designed a custom keyboard for a game I like to play called Sequence Storm.

The layout is specific for my playstyle so not super useful for other people but thats what makes it special. Alt text

The instructional videos from Noah Kiser were a great help for creating it.

Here is the schematic: Alt text

Here is the PCB with the traces: Alt text

The 3D renders of the board. Alt text Alt text

In order to export the neccessary files a plugin took away any complexity. I recomend installing ‘Gerber-to-Order’. Alt text

It output a series of zipped files. I chose the one for JLCPCB and uploded to the website.

A little over a week later the PCBs arrive safely on my doorstep. alt text

I will go into more detail on completing this project on my individual page