Skip to content

4. Electronics Production

Welcome to the world of electronics production, where we’ll learn how to make electronic circuits. In this assignment, we’ll explore how to create paths for tools, mill materials, assemble components, fix any issues, and program circuits.

Learning Outcomes:

  • Described the process of tool-path generation, milling, stuffing, de-bugging and programming

  • Demonstrate correct workflows and identify areas for improvement if required

Group Assignemt:

For this week’s group assignment, we delved into the realm of electronics production, exploring the intricacies of PCB (Printed Circuit Board) fabrication and the utilization of precision tools such as the Roland SRM-20 milling machine.

Key Highlights:

  1. Machine Specifications: We utilized the Roland SRM-20, a versatile fine milling machine capable of handling various materials including modeling wax, acrylic, and PCB board. Its precise X, Y, and Z operation strokes, coupled with adjustable spindle speeds, make it ideal for intricate milling tasks.

  2. Safety Measures: Safety was paramount throughout the process. We adhered to safety guidelines and familiarized ourselves with the machine’s safety features, ensuring a secure working environment.

  3. PCB Production Process: Using ModsProject, we generated toolpaths for milling traces and outlines on a test PCB file. We carefully adjusted settings such as feeds, spindle speed, and depth of cut to achieve optimal results.

  4. Workflow for External PCB Production: We explored the workflow for sending PCB designs to external board houses like PCBWay and JLCPCB, obtaining quotations and navigating the file submission process.

  5. Learning Reflections: The assignment provided valuable insights into the intricacies of electronics production, from PCB design to fabrication. We honed our skills in utilizing precision tools and navigating the complexities of PCB production.

Individual Assignment: Quentorres development Board

Introduction:

In this project, the primary objective was to create a Quentorres development board utilizing a Xiao RP2040 microcontroller. However, various challenges arose throughout the process, notably the unavailability of the required Xiao RP2040 due to shipping issues. Consequently, I made the decision to adapt and utilize a Xiao SAMD21 microcontroller instead. It’s worth noting that the SAMD21 shares the same footprint and architecture as the RP2040, allowing for seamless integration into the project despite the initial setback. Despite this deviation from the original plan, the project’s core objectives remained unchanged, focusing on the fabrication of a functional Quentorres development board for subsequent testing and programming. Throughout the documentation, I will detail the journey of overcoming obstacles and achieving the project’s goals despite the initial setbacks.

Design:

To start with the development of the Quentorres development board, I initially downloaded KiCad to modify the design files. The necessity arose from the unavailability of one of the header connectors required for the project. Consequently, I had to make adjustments to some of the traces to accommodate an alternative header connector. This initial phase required careful consideration and precise modifications to ensure compatibility and functionality.

Toolpath Generation:

  1. In preparation for milling, I exported black and white SVG files representing the traces, through holes, and outline of the Quentorres development board. These files underwent modification using Inkscape, where I ensured precise adjustments and alignments according to the project specifications. After refining the SVG files, I utilized ModsProject to translate them into toolpaths compatible with the milling machine.

  2. After uploading the SVG files, I proceeded to select the appropriate milling bits for the milling operation. For milling the intricate traces of the PCB design, I opted for a finer milling bit with a diameter of 1/64 inch (approximately 0.4 mm). This choice allowed me to achieve intricate details and precise trace widths necessary for the design.

Subsequently, for cutting the through-holes and outlining the PCB, I selected a slightly larger milling bit with a diameter of 1/32 inch (approximately 0.8 mm). This larger bit facilitated efficient material removal while ensuring clean and accurate edges for the through-holes and PCB outline.

  • Settings Used:
Process Feeds Spindle Speed Plunge Rate Depth of Cut Milling Bit Used
Trace Milling 4 mm/s 7000 4 mm/s 0.15 mm 1/64 in
Outline Cutting 4 mm/s 7000 4 mm/s 0.6 mm 1/32 in
  1. With the milling bits chosen and parameters configured within Mods Project, I proceeded to generate the toolpaths for our PCB milling operation. Mods Project seamlessly translated the design elements from the uploaded SVG files into precise milling instructions, taking into account the selected milling bits and desired cutting parameters.

Once the toolpaths were generated and validated, I exported the files from Mods Project in a format compatible with our Roland SRM-20 milling machine. These exported files contained the necessary instructions for the milling machine to execute the cutting operations accurately, ensuring alignment with the intended PCB design.

Board Fabrication:

Setting up the milling machine for othe PCB fabrication process was a crucial step in ensuring precise and accurate results. This involved several key tasks, including inserting the milling bit using the setscrew mechanism and zeroing the machine’s axis for optimal positioning.

  1. Inserting the Milling Bit:

Using the setscrew mechanism provided, I carefully secured the milling bit in place to ensure it remained firmly attached during operation. This step required delicate handling to prevent any potential damage to the milling bit and to guarantee stability throughout the milling process.

  1. Zeroing the Axis:

Zeroing the axis of the milling machine was essential for establishing a reference point from which all subsequent movements would be measured. By accurately zeroing the machine’s axis, I ensured precise positioning of the milling bit relative to the workpiece. This involved carefully aligning the machine coordinates with user-defined coordinates to establish the starting point for the milling operation.

Zeroing the axis also facilitated consistency and repeatability in the milling process, allowing for uniform cutting depths and accurate execution of milling tasks. Through meticulous calibration and adjustment, I optimized the machine setup to minimize errors and ensure optimal performance during PCB fabrication.

  1. Milling the PCB:

With the machine set up and ready, I initiated the milling process, executing the toolpaths generated for the PCB design. This step involved carefully monitoring the milling operation to ensure accurate cutting and proper material removal, ultimately producing the desired PCB layout.

  1. Soldering:

Once the PCB was milled, I transitioned to the next phase of the fabrication process: soldering the electronic components onto the board. Before starting, I ensured that my workstation was prepared with all necessary tools and equipment. This included setting up a soldering iron, securing components with helping hands and a vise, and having flux solder, tweezers, and a rubber mat on hand. These tools aided in the soldering process, allowing for precise alignment and secure attachment of components to their designated pads on the PCB. With meticulous attention to detail, I soldered each component in place, ensuring reliable electrical connections and completing the fabrication of the PCB for subsequent functional testing and integration into electronic devices.

Board Components:

Component Quantity
CONN HEADER SMD 10POS 1.27MM 1
CONN HEADER SMD R/A 6POS 2.54MM 1
Tactile Switch SPST-NO Top Actuated Surface Mount 1
LED BLUE CLEAR 1206 SMD 3
RES 1K OHM 1% 1/4W 1206 4
RES 499 OHM 1% 1/4W 1206 1
CONN HDR 7POS 0.1 TIN SMD* 2

After completing the group assignment, I gained familiarity with the Roland SRM-20 milling machine, which proved instrumental in fabricating the Quentorres development board. Initially, I encountered some challenges handling the small surface-mount device (SMD) components. However, with persistence and practice, I quickly adapted to the process. To secure the SMD components, I applied a small amount of flux to the traces and carefully positioned them before soldering. Using a soldering iron and precise soldering techniques, I successfully soldered the components onto the board. Throughout the process, attention to detail and patience were key in achieving reliable connections and a functional board.

Testing:

After soldering the components onto the board, I proceeded with thorough functional testing to ensure its proper operation. Employing a multimeter, I meticulously examined the board for any shorts and verified the correct orientation of the LEDs. Fortunately, no issues were detected during the testing phase, indicating successful assembly and soldering. With the functional testing completed and no anomalies found, I confidently proceeded to the next phase of the project.

Programing:

After assembling the board and ensuring its functionality, the next step involved programming the Quentorres development board. Initially, I encountered challenges with adding the correct library to the Arduino IDE, which was necessary for compiling and uploading the code. However, through diligent research and seeking assistance from engineers at Techworks Fab Lab, I was able to resolve these issues effectively.

Once the library compatibility was ensured, I uploaded the source code to the Quentorres board using the Arduino IDE. Initially, we began by using the example blink code from Arduino as a foundation. However, we had to adjust the pin numbers to accommodate the Xiao SAMD’s specific configuration.

With the code successfully uploaded and the board functioning as intended, I proceeded to validate its operation and ensure that all programmed functionalities were executing as expected.

Testing LED Functionality and Button Control

To ensure the proper functionality of the board, I conducted tests on all three LEDs using the modified code from the Arduino example. Additionally, I tested the button functionality with the following code:

// Define the pin numbers for the button and the LED
const int buttonPin = D1;
const int ledPin = D0;

// Variable to store the button state
int buttonState = 0;

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pins as inputs or outputs
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  // read the state of the pushbutton value
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed
  // if it is, the buttonState is HIGH
  if (buttonState == HIGH) {
    // turn LED on
    digitalWrite(ledPin, HIGH);
  } else {
    // turn LED off
    digitalWrite(ledPin, LOW);
  }
}

Problem Solving:

Throughout the fabrication and testing phases of the individual assignment, I encountered various challenges that required innovative solutions and troubleshooting. These included component compatibility issues, design modifications, toolpath generation difficulties, library integration problems, and LED functionality and button testing issues. By addressing each challenge systematically and leveraging collaborative resources, I gained valuable insights into problem-solving strategies and the importance of adaptability in electronics fabrication and testing.

Conclusion:

Reflecting on the experience, it emphasized the importance of adaptability, resilience, and effective communication. Areas for improvement include proficiency in design software, refining troubleshooting techniques, and deepening understanding of electronic components. Overall, the assignment served as a platform for growth, learning, and skill development in electronics fabrication and testing.