← Back to list

Electronics Production

February 19, 2024

Electronics Production

Challenge


Group Assignment:

This week’s assignment proved to be immensely valuable for several reasons. Foremost, it provided me with the opportunity to invest time in gaining a deeper understanding of the machine I am working with, delving into its capabilities and limitations.

Conducting tests on various bits, specifically V-Bits with angles of 10, 20, and 30 degrees, provided insightful results. While the precision achieved with these V-Bits was commendable, the finish quality emerged as a consideration. Comparatively, End-Mills appeared to excel in finish quality. Notably, the V-Bit with a 0.1mm diameter and a 20-degree angle demonstrated impressive results at a depth of 0.0532mm. However, in contemplating a depth of 0.1mm, there is a consideration for potential improvements in edges and trace isolation.

For more information about the results refer to this Link

Group assignment image


Individual Assignment

Board built

During the Fabrication

Generating the tool path

As for the generation of tool path I’m used to Flatcam as I use it in my daily work

Importing Gerbers and Excellon

Generating the Geometry

Isolation tool

Choosing the tool and number of passes

Generate the geometry

Generating the Path

Generate the Path

Important Note:

In flatcam the use of V-bit is different from End-Mill as the depth of cut here are going to be 0 which means the bit will only surface the trace but it will remove copper but only with the fine tip of the V-Bit.

To over come this you can use multi-depth or just change the tool from V-Bit to Normal (END-MILL) and choose the depth to 0.05mm or 0.1mm Depends on the quality of the bit you are using.

Generating the G-code

Generate the G-code

Now we are ready to run the machine to cut engrave the board on the copper.

Generate the drilling file

Generate Drilling file

Select the drilling settings

Generate the G-Code

Cutout path

Cutout tool

Cutout geometry

Cutout path

Cutout G-code

Fabricate the Board

To fabricate the PCB Im using [Roland MonoFab SRM20]

Zero the axis

Zero Z Axis

Milling the PCB

V-Panel to cut

This is because (FlatCam) generate {NC codes} so we have to choose work-piece coordination system which is (G54-G59).

User coordination system is more related to RML-1 Codes.

Check this documentation

Important Note: The machine will be able also to execute this file on the user coordinate system option but to stay on the safe side keep in mind to Zero the coordinate of G54, So you won’t go into complications.

V-Panel to cut

Drilling

Important Note

We will use the same X-Y home previously set in order to have the same Transform when we cut the holes.

Drilled Board

Cutout the Board

In this part we will separate the PCB from the Board on the bed.

The Board Is Ready

Board Is Ready

Reflection on the process

The Three boards

As you see the 1st board was good but the finish quality are so bad, the second one is perfect but it wont wrong at the end, but the third one was very good but not like the second one

Solder the Board

We will solder the parts now on the board

All the parts together

I have used the solder wire as we don’t have solder paste at the meanwhile, I have used a fine tip solder as the pads on the board are small.

After one Hour and a half the board is ready now

Board Is Ready

Programming the Board

The board can be programmed using the Arduino IDE

Installing the Board library

Board Url

Board Manager

Download the board Library

Package installed

Blink Example

Selecting the board

Choosing the board

UPload

UPload check

Important Note:

To Enter the Boot mode I had to press on the B button on the Xiao board after pressing the upload so the board can take the compiled code from the Arduino IDE.

Then to run the code just Hit the R Button on the board.

Here We Go The Board is working fine

Done

For the Code to run Properly we need to change some of the pens on the code so instead of builtLED variable Change it to 26 {Which is the first LED at the top}

To run all the LED’s just add the other pins {0 and 1}

All the LEDS

Code

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(26, OUTPUT);
  pinMode(1, OUTPUT);
  pinMode(0, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(26, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(26, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second

  digitalWrite(1, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(1, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second

  digitalWrite(0, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(0, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second
}