PCB Maker

Laser etching and milling machine based on Tenlog TL-D3 Pro FDM printer.

What we’ve done?

Key changes:

  1. Display board removed.

  2. Control board flashed with Klipper.

  3. First toolhead replaced with a 15W laser.

  4. Second toolhead replaced with a drill spindle.

  5. Entirely reworked power supply circuitry to add safety switches, E-Stop, spindle and laser control.

Preparing PCB

We share the pretty same workflow as any other PCB fabrication house – you export Gerbers (.gbr) and Excellon (.drl) files, and voilà!

Current limitations are:

  • We can’t fabricate double-sided PCBs yet. You’re very welcome to help us with it!

  • No milling yet :(

  • We consistently do 0.3mm tracks.

  • Expect ±0.15mm offset on drilling.

  • We use 0.6mm drill bit for all PTH/NPTH. You’ll likely need to extend holes manually after.

The following guide is about KiCad, but your CAD of choice must have pretty much all of these features.

Boundaries & Grid Origin

  1. Make sure that you defined PCB boundaries on Edge Cuts layer.

  2. Place Drill (1) and Grid (2) Origins to the same point in PCB designer if not yet. Usually, it’s a left-bottom outer corner of the PCB.


Jumpers, Vias, and Background Copper

While we don’t support fully-fledged two-layer fabrication, you still can use it for jumpers with Vias. Trick is to either:

  • Cut traces on Bg.Cu manually, using PTHs as landmarks.

  • Solder jumper wires between those Vias.

Example of jumper trace on Bg.Cu which I've cut manually after engraving

Example of jumper trace on Bg.Cu which I've cut manually after engraving


Exporting fabrication files

You need to export Gerbers (1) and Drill Files (2) before moving forward to FlatCAM.

Go to "File" → "Fabrication Outputs"

Go to "File" → "Fabrication Outputs"


Gerber


On Gerber Plot dialog make sure to:

  1. Check F.Cu layer.

  2. Check Edge.Cuts layer.

  3. Check “Use drill/place” file origin.

  4. Uncheck other layers.

Click “Plot” and you’re done.

Drill


On “Drill Files” dialog:

  1. Select “Excellon” as Drill File Format.

  2. Select “Drill/place file origin” as Drill Origin.

  3. Click on “Generate Drill File”.

Summary

You now should have four additional files in your project’s directory:


  1. Gerber for Edge.Cuts layer (PCB boundaries).

  2. Gerber for F.Cu layer (front copper layer).

  3. Excellon (drill) for NPTH (Non Plating Through Hole).

  4. Excellon for PTH (Plated Through Hole).

FlatCAM

Now we need to convert our fabrication files into GCode for machine.

Preparing software

  1. Install latest version of FlatCAM Beta from @jpcgt/FlatCAM.

  2. Clone the @b4ck5p4c3/pcb-manufacture repo.

  3. Copy flatcam/bksp_drill.py and flatcam/bksp_engrave.py files into lib/preprocessors directory in your FlatCAM installation. In my case, FlatCAM ended up in Documents folder (idk why, tho 🤷).

Importing fab files


Known problems

My PCB has inner cuts. How to avoid FlatCAM engraving these areas?

After inverting Gerber in FlatCAM you may find your cutout areas filled with green – meaning, they will be engraved, which is huge waste of time.

Cape for BeagleBone with inner cutout for 8P8C connector.

Cape for BeagleBone with inner cutout for 8P8C connector.


Excess engraving job generated for this cutout after inverting

Excess engraving job generated for this cutout after inverting


To hint FreeCAM not to fill these areas just cover them with zones in your PCB design before exporting Gerber files:


  1. Draw a zone using Rectangle tool on the primary copper level (usually, it’s F.Cu).

  2. Adjust it to match your cutout. You may need to use multiple Rectangles for this.

  3. Check ✅ Filled, and set Line Width to zero for each Rectangle.

After importing your shiny new Gerbers, FlatCAM should consider those areas as “filled with Copper” and won’t fill them.