5. Electronics production

This week I learned the PCB fabrication process and we use a CNC machine for the group and personal assigments.

Group assignment

Group assignment page

Design rules

MODS

The first thing we learned was to use the MODS. I was surprised for the easy way to obtain a G-code from a png. file with this software. To do that we realized the following work-flow:

  1. Open MODS in the browser
  2. Right drag an select programs
  3. Then Open server program
  4. Go to G-code and select mill 2D png

First of all I select a png file. After that my tutor explained us how the program works and teach us about the setting.

  • Tool diamater:
    1/64 inches so 0.39687 mm for traces
    1/32 inches so 0,79375 mm for cuttings
  • Cut depth:
    The distance the tool will go down each offset in the Z axis util the Max depth be completed.
  • Max depht:
    The total distance the tool will go down in de Z axis.
  • Offset number:
    The offset number the copper board will be milled in de XY plane from the traces to outside.
  • Offset stepover:
    Is the percentage of the milling machine cutter diameter will remove each step.
  • Direction:
    Climb for soft materials
    Conventional for hard materials.
  • Path merge
  • Path order
  • Calculate:
    The button to generate the G-code from the png. file.

After that I make a line test and a cutting test with the following png. files:

  1. line test
  2. Cutting test

Those are the nc. files, I was not sure about the setting values at this first time. We reconfirm the good values the next class because we realised that the G-code format was setted in inches.

We characterized settings with the folowing values:

Mill Raster 2D
  • Tool diamater:
    1/64 inches so 0.39687 mm for traces
    1/32 inches so 0,79375 mm for cuttings
  • Cut depth: Almost 50% of the tool diameter.
    0.1 mm for traces
    0.3 mm for outlines
  • Max depht: The thickeness of the board
    1.7 mm
  • Offset number: 3-5
  • Offset stepover: 0.5
  • Direction:Climb
  • Path merge
  • Path order

Path to GCode
  • Cut speed: 20 mm/s
  • Plunge speed: 120 mm/s
  • Jog speed: 75 mm/s
  • Jog height: 5 mm
  • Spinfle speed: 10 000 RPM
  • tool: 1
  • coolant: on
  • format: inch


If we know enough about settings we can confirm in this toolpath visualizer if we are ok.

Autolevel

We start dowloading an auto-levelling

At that moment we already knew how to get the G-code so we learned how to add an autoleveling code to the trace G-code. The PC ask me to download a software able to open that program so I download Java

We had only to:

  1. Set with the LinuxCNC option
  2. to upload the [trace GCode](../files/w5/linetest.nc)
  3. Click to Create Levelled GCode
  4. Save the new .ngc file in a key to open it into the machine's computer.

Tooling

After that we came into the CNC machine’s room. - We stick the copper board up to a piece of wood with doublesided tape. - We met the 1/32 and 1/64 endmills:

One of ours tutors shows us how to install the tool. Also he tolds us the precautions we need to look at to don’t hurt ourselves neither the endmill tool.

Production

Work Flow

  • Take safety precautions like picking up your hair, take away hanging accesories and loose clothes, staying away from the right side of the machine, put protection glasses and hearing protectors. Be two persons in the room.
  • Turn on the transformer switch
  • Turn on the computer
  • Turn on the machine
  • open Linux CNC software

Then we opened the autolevel GCode file in the machine’s PC to delete the first part of the code and save it:

After we opened that file in the CNC software:

For the autolevel process we put on 0 the x and y axis and we let the milling tool’s z axis between 1 and 2 mm on the board(manually).

Then we put the electric sensor on the board to play the code.

After the autolevel ran we continue running the Gcode step by step until the spindle turned on and reached a constant speed. After that we let run the entire Gcode.

To make the cutting we changed the 1/32 sized endmill by the 1/64 one. Then we had to reset the z axis on 0, we did that by lowing the endmill by milimeter fractions with the electric sensor on the board until the following message appears on the screen:

Then we run the GCode step by step first to let the the spin reach a constant speed and then we click on play to run the whole toolpath.

The group assigment result was this board:

Conclusion

The fabrication proccess of a electronic board is not a complicate thing, there are precise step to be accomplished and if there are done correctly there is not too much possibilities to make mistakes. The smallest thinnest line we can make with the lab’s milling machine is 0.02mm.

Individual Assignment

Design rules and Tooling

I started taking Alex version traces and cutting and I added a personal detail with Illustatror.

I make the MODS process to convert the .png file onto a .nc file. And the Autolevel one to add the autollevel GCode to the trace GCode.

When I opened the toolpath in LinuCNC I found a problem.

The toolpath of the profile was not completed because the thickness of lateral surfaces were to small to the tool pass over them. I could change the diameter of the tool, but instead I just inverted the .png file in MODS.

The error was succesfully corrected.

The board was milled by following the same steps of the group assigment.

This is my first PCB fabrication result: Hero shot!

Soldering

Before soldering I test the contuctivity of the circuits and I verified that there were not short circuits with an mutlimeter:

After that I cheked the components I had to weld and I identified them helping myself with this diagram:

Resistors don’t have poles so they can be oriented anyway. LED, capacitors and diodes have a mark on it negative side.

After soldering all the components I realized that the microchip pin’s were welded together so i had to clean that.

Finally I connected the PCB to the computer and the led turn’s on! Here is my HERO SHOT!

Programming

To start I need to install the following programs and files:

To update the path I entered to the Panel Control and I follow the steps showed here below.

After that I opened Git Bash in this folder.

To confirm the Programmer was being readed by the PC I entered to the Administation panel this way:

I type de following codes:

make -v

avr-gcc –version (No screenshot)

Connect the programmer to a USB port an type make clean and then the code avrdude -c USBtiny -p t45.

I maked a mistake typping the code so I wrote it an other time.

Then I type make fuses and I had some errors

I type the code make clean and then make flash

Some steps that i don’t remember

And finally I type the code rstdisbl

Now my programmer can’t be reprogrammed.

Learning outcomes

  • [x] Described the process of milling, stuffing, de-bugging and programming
  • [x] Demonstrate correct workflows and identify areas for improvement if required

Have you?

  • [x] linked to the group assignment page
  • [x] Documented how you made (mill, stuff, solder) the board
  • [x] Documented that your board is functional
  • [x] Explained any problems and how you fixed them
  • [x] Included a ‘hero shot’ of your board