Skip to content

5. Electronics Production


group assignment:

  • characterize the design rules for your PCB production process

individual assignment:

  • make an in-circuit programmer by milling the PCB,
  • program it, then optionally try other PCB processes

Group assignment


Fab Lab Barcelona have two different Roland milling machines:


The Roland Modela MDX-20 is a small milling machine and a 2 1/2D precision scanner. This machine is mostly used for milling circuit boards, though it can also mill in other soft materials like machinable wax. For milling circuit boards you should export you design into a black&white monocroome png. For milling out 3 dimensional molds you should export your design as .stl The second use of this machine is scanning. It uses a thin needle to gently touch the object and calculates from this a 2 and a half dimensional model. Though slow at processing, it can create a high detailed model. Work area: 203 x 152 x 60 mm From wikipedia


This machine is capable of cutting a wide variety of materials including chemical wood, acrylic, and ABS. It is also capable of a range of accuracy settings from prototype to product design. Plus its small size and fully covered design allows you to enjoy cutting more safely and with peace of mind. Work area: 203 x 152 x 71 mm from User Manual

Milling bits

We have two different bits to work with our PCBs.

1/64” - Used for milling the trails on the board

1/32” - Used for drilling holes and cutting the board


Our instructors recommended us to test the machines generating files from two different softwares: MODS and Fab Modules.



Right click program, open server program, machines, Roland, mill, SRM-20, PCB

Steps followed: 1. load png file 2. select trace or cut 3. change settings for the machine to origin 0,0,0 and home 0,0,5 (x,y,z) 4. delete the WebSocket module 5. add the save module instead 6. calculate path

And then you’ll get the rlm file

Fab Modules

Download the line test document linetest.png

Open the Fabmodules:

Click fab modules, than index.html and open the format png-document. Select Roland mill and PCB traces.

Insert settings:

Work file:

Now we do the same procedure with the outline cut. Dropping the “linetestinginterior.png” file into the Fab Modules. Same machine (Roland Mill) and different cutting (PCB Outline 1/32).

Process description

Choose the correct mill bit for the job and insert it into the machine. Than adjust the z-axis “by hand”.

After that, set origin point for all axis

Then press “cut” to get to add the file “linetest.rml” and the job will start.

Make sure the milling is going smoothly. It cannot be too low on the board otherwise it will break the mill. And of course if it’s flying over the board it will not work.

When it stops. Press view so the board comes forward.

Then we get the milled piece.

Compare results


Using the same machine, bits and board; MODS presented better results. Begin able to mill up to .005 lines when fab modules only could do .011.

So our software of choice for the rest of the process will be MODS.

Individual assignment

Making the PCB

There is a beautiful tutorial on FabAcademy Docs giving the directions to build a FabISP.

This is the desired result:

Download files

Download the PNG files for the traces and the board outline:


Outline Cutout


After loading the file on MODS and creating the .rml file. Time to mill. This was the final result:

Board diagram


1x - ATTiny 44 microcontroller
1x - Capacitor 1uF
2x - Capacitor 10 pF
2x - Resistor 100 ohm
1x - Resistor 499 ohm
1x - Resistor 1K ohm
1x - Resistor 10K
1x - 6 pin header
1x - USB connector
2x - jumpers - 0 ohm resistors
1x - Crystal 20MHz
2x - Zener Diode 3.3 V
1x - usb mini cable
1x - ribbon cable
2x - 6 pin connectors

Important note: In Fab lab Barcelona, you need to update this spreadsheet whenever you take components out of the stock.

A great tip to organize your life when soldering is to have all the components lined up with tape.


With the diagram and components ready, it was time to start soldering.

I don’t have glasses. But after this week I think I’ll probably need it. The magnifier glass was a big help.

After a few tries and retries, I got a hand for it and things started to go smoothly.

It took me around an hour to get it done. But I was really pleased with the result. Specially because after plugging it in my computer, it showed no errors. So the soldering was ok.

This is the result:


Since I use MacOS, I had to install Crosspack AVR

Then, download the firmware and unzip it.

We have to use a programmer to program the programmer. So I just borrowed one from the lab.

Then, inside the firmware folder, I had to run

make clean    
make hex
make fuse
make program

Pro tip: After installing AVR, you need to close the terminal and open it again for it to work. I was trying to compile before that and it wasn’t working.

After that, to test if everything is working, the device needs to show in your computer as an USB device.

That means everything is working.

Now, when you remove the jumper SJ1, your board becomes a programmer :)