Skip to content

8. Electronics Production

This week we had to:

  • characterize the design rules for our in-house PCB production process

  • submit a PCB design to a board house

Dilijan and Gyumri Laboratories

Both our laboratories use the Roland SRM-20 CNC machine for PCB fabrication.

Electronic Components

This week our instructor Onik Babajanyan introduced us to the basic electronic components and explained their role in electronic circuits: resistors, capacitors, LEDs, diodes, MOSFET transistors, voltage regulators, and transistors.

Onik Babajanyan

Preparation

After finishing the file generation, we had to complete some preparation steps before starting the actual PCB milling process.

Securing the Board to the Bed

The SRM-20 bed surface is made of MDF. To secure the copper board to it, we use double-sided tape:

Securing the Board 1

Since the copper sheet may have some warping, and the milling depth for traces is only 0.1mm, any unevenness can cause inaccuracies — either insufficient cutting or cutting too deep. The tape presses the board firmly against the surface and prevents this.

To ensure even stronger adhesion, we also placed an 18mm plywood sheet on top of the board, clamped it with two clamps, and left it for 10–15 minutes.

Securing the Board 2

Once the PCB sheet is securely attached to the MDF surface, the removable table is placed in place and secured with screws:

Securely bed

Control Software

We use VPanel for SRM-20 to operate the CNC milling machine:

Control Software

Machine Calibration

Since the copper board is replaced almost every session, and a new board is not always positioned in the same spot, XY zero coordinates need to be recalibrated each time.

To calibrate XY, we use the movement controls to move the bit to the desired position — typically the bottom-left corner — and press the X/Y button. That point becomes the (0, 0) origin.

XY zweo

When changing the bit, the Z position may also shift and require recalibration. To zero the Z axis, we manually lower the bit close to the board. Once it is close enough, we use the appropriate hex key to release the bit and carefully lower it until it touches the surface. Once contact is made, we tighten the screw and press the Z button to zero the Z axis.

Z zweo

It is also worth noting that when using .nc files, multiple coordinate systems are available, controlled by codes G54 through G59. When files are generated with modsproject, the default coordinate system is G54.

NC code

When zeroing coordinates, make sure to select the correct coordinate system accordingly.

Coordinate Systems

G-code Generation

As a test, we used the ready-made line test traces design from Fab Academy.

We tested two types of bits — a 1/64 Flat end mill and an inch V-bit — to see which one performs better.

bits

For G-code generation we used Fab Mods. It supports multiple file formats. Go to Programs, then select mill 2D PCB from the list.

The program accepts two file types: SVG and PNG. In our case it’s PNG, so we click select png file.

Select PNG file

G-code for the Flat End Mill

After loading the file, we select the operation type and tool. We choose Traces as the operation and 1/64 flat as the tool.

Default settings are applied automatically: tool diameter, cut depth, max depth, offset number, and offset stepover.

Traces

The only parameter we changed was tool diameter — set to 0.4mm for the Gyumri lab, as their bits are metric. Max depth stays at 0.1mm, which is sufficient since the copper layer is only 0.07mm thick. Cut depth is also left unchanged at 25% of the bit diameter, which is a safe value.

Speed and spindle RPM settings were applied in a separate panel:

Speed

As we later discovered, the actual spindle speed of our machine does not reach the specified value and runs at around 9000 RPM.

After reviewing the settings, click calculate. A 3D visualization window opens automatically:

3D visualization

A path preview also appears at the bottom of the panel:

Preview

To save the file, go to the corresponding panel and click save file:

Save file

G-code for the V-bit

The process for the V-bit is almost identical to the flat end mill, except for the tool selection. The standard panel offers two V-bit options: 60° and 40°. However, the V-bit available in our lab has a 30° angle. For this case, there is a V-bit calculator.

V-bit calculator

Here we set the tip diameter — in our case 0.1mm — and the angle, which is 30°. It is also important to specify the cut depth; as mentioned earlier, we set it to 0.1mm, and the calculator automatically computes the cut width. To apply the result, click send calculated settings.

Send calculated settings

The values are then passed to the next panel for G-code generation, and the process repeats:

G-code generation

Milling Process

Once the preparation and G-code generation were complete, we proceeded to the actual milling.

Open VPanel for SRM-20 and click Cut:

Cut 1

A dialog window will open. The program remembers the last loaded file, so first click Delete All, then click Add to open a file browser and load the new file from the computer.

Cut 2

Once the file is loaded, click Output and the machine will start:

Cut 3

Results

The top pattern was milled with the 1/64 flat end mill, the bottom one with the V-bit.

Results

The test evaluates each bit’s ability to clear tight gaps, maintain trace integrity at different widths, and produce clean edges. The numbers on the board indicate trace/gap widths in inches.

The flat end mill produced clean, well-defined traces across all widths. Even the narrowest gaps at .001” are clearly separated.

The V-bit results are less consistent. Since the offset number was set to 4 in both cases, and the V-bit tip diameter is very small, it does not cover the adjacent copper area between passes — leaving some zones incompletely cleared. It is also worth noting that after milling, we sanded only the V-bit section of the board, which affected the surface appearance in that area.

For reliable PCB fabrication, the 1/64 flat end mill is the preferred choice.


Last update: May 23, 2026