Skip to content

8. Electronics Production

This week we focused on two things: characterizing the design rules for our in-house PCB milling process, and submitting a PCB design to a board house.

This week’s work started as a group effort. We characterized the milling process together, which gave me a solid foundation for my individual work. More details on the group assignment can be found here.


Our Setup

Both the Dilijan and Gyumri labs use the Roland SRM-20 CNC machine for milling PCBs. Before starting the practical work, our instructor Onik Babajanyan walked us through the essential electronic components — resistors, capacitors, LEDs, diodes, MOSFETs, voltage regulators, and transistors — and explained how each one functions in a circuit.

Instructor introduction / components


Preparing the Board

To secure the copper board to the MDF bed, we used double-sided tape. The milling depth for traces is only 0.1mm, so even slight warping can cause problems — either not cutting deep enough, or cutting too deep. The tape keeps the board flat and firmly in place.

Taping the board

For stronger adhesion, we placed an 18mm plywood sheet on top and clamped it down for 10–15 minutes before starting.

Plywood clamping

Once the board was secure, we put the removable table back in and fastened it with screws.

Table secured


Machine Calibration

We used VPanel for SRM-20 to control the machine.

VPanel interface

Because the board is replaced almost every session and isn’t always in the same position, XY zero needs to be reset each time. We moved the bit to the bottom-left corner and pressed the X/Y button to set the origin.

XY zeroing

Z calibration is done manually — we lowered the bit close to the surface, released it with a hex key, let it touch the board, then tightened and pressed Z to zero.

Z zeroing

One important detail: when using .nc files, coordinate systems G54–G59 are available. Files generated with modsproject default to G54, so the zeroing needs to match that.

NC code / coordinate system selection


G-code Generation

As a test we used the standard Fab Academy line test design. We wanted to compare two bit types: a 1/64” flat end mill and a 30° V-bit.

Both bits

For G-code we used Fab Mods — under Programs → mill 2D PCB. It accepts SVG or PNG input; we used PNG.

Fab Mods file selection

Flat End Mill

We selected Traces as the operation and set the tool diameter to 0.4mm (metric bits in the Gyumri lab). Max depth was left at 0.1mm — the copper layer is only 0.07mm thick, so that’s enough. Cut depth stayed at 25% of the bit diameter.

Trace settings

Speed/RPM settings

Worth noting: the actual spindle speed doesn’t reach the set value — it runs at around 9000 RPM in practice.

After clicking Calculate, a 3D preview and path visualization appeared before saving the file.

3D visualization

Path preview

V-bit

The process is the same, but the standard tool options only offer 60° and 40° — our bit is 30°. We used the V-bit calculator, entered a tip diameter of 0.1mm and a 30° angle, set cut depth to 0.1mm, and clicked Send calculated settings.

V-bit calculator


Milling

We opened VPanel, clicked Cut, cleared the previous file with Delete All, loaded the new .nc file, and clicked Output.

Cut dialog

Milling in progress


Results

Finished test board

The flat end mill produced clean, well-defined traces across all widths — even the narrowest gaps at 0.001” were clearly separated.

The V-bit results were less consistent. With the offset number set to 4 and a very small tip diameter, some copper areas between passes weren’t fully cleared. We also sanded the V-bit section after milling, which affected how it looks in comparison.

For reliable PCB fabrication, the flat end mill is the clear choice.