Group Assignment

Testing and Third Party Frabrication

Please for group assignment details visit Anderson Zelarayan Web Page.

Individual Assignment

EDA Tool: KiCad

We select KiCad to design our boards. To proceed we instaled the Fab library (i/ all FabAcademy listed electronics components) following the instruction at GitLab repository., licensed by Fab Academy and contributors 2021.

  • We need to be sure that both Libraries, Symbol (a) - for Schematics editor - and Footprint (b) - for PCB editor -, are updated.
  • It is important to decide which components we will use for our circuit
  • We will start working on schematic Editor (a), and from that design we will automatically obtain the baseline to generate our PCB design.

PCB Designing

We select Module XIAO RP2040 as a starting point to develop a basic board to interact and communicate with a embedded microcontroller. Thus, it will include a push bottom and a LED. Based on this minimun components we proceed to work on our project schematic. The electronic components considered as listed as follow:

When working on schematics, we need to be careful with labeling each component in/out or GND adequately. This means that each component pins label must be the same with the ones labaled at the board. This to avoid problems when working on PCB Editor

This is the schematic where you can see all the components. You can download Schematic design file and the PNG file here.

PCB Designing

To obtain PCB design and fabricate it, we need to take the following steps:

  1. Select the PCB Editor File from the KiCad Principal Menu.
  2. Update PCB from Schemnatic option located at Tools Menu on PCB Editor.
  3. Set track sizes (width) and appereance (material) option located at Edit Board SetUp Menu. Here we set 0.4 for traces width and 0.8 for ground traces.
  4. Setup constraints option located at Edit Board SetUp Menu. The most important it is to setup cleareance at 0.4 to no exceed the end mill diameter
  5. Start drawing the traces selecting width and layer correctly

This is the pcb design where you can see all the components. You can download design file and the SVG files here.

PCB Machining Setting

To fabricate PCB design we use SVG files applying following steps within FabModules Software:

  1. Upload SVG Board file.
  2. Convert SVG image inverted it using 1000dpi.
  3. Set mill traces (material) using 1/64" end mill (select 2 as offsetting number).
  4. Calculated Mill raster 2D.
  5. Visualize the image selecting width and material correctly
  6. Applied same steps for Cutting Edges but use 1/32" End Mill

The machining was made with a Modela MDX-20 in two parts. First traces using 1/64¨ y secondly cutting the edges using 1/32¨ end mills.

PCB Soldering

To proceed with soldering I fix the PCB with double contact tape. Thus, we can avoid any movement when tin soldering

  1. I started soldering the with small components
  2. The strategy was to fix one (pin) of each component and then the others
  3. At The final step I soldered the Seed Studio Xiao

The following photo shows the final result and the soldering process

PCB Testing

The testing process was undertake in two steps:

  1. First PBC testing with the multimeter aim to look for potential problems with the soldering process. The testing was successful, and due to the design, only ground traces produced sound during testing, like shown in the video below.

  2. The funtioning test was made with basic programing using ArduinoIDE. We upload the example code available at at Arduino IDE software to test LED functioning as follow:
    • Open Arduino IDE software.
    • Connect the serial port to the board (RP2040).
    • Within Arduino IDE go to File.
    • Look for Examples.
    • Once there, down Built-in Examples choose 01.Basics-Blink. which turns an LED on for one second, then off for one second, repeatedly.

    • I only replace the pin number that correspond (Pin 26) at every line of the code that said "LED_BUILTIN", like shown in the code shown below
    • 
      // 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);
      }
      	
      // 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
      }
      
      
    • The "void setup" is a function that contains the initialization of the component that I want to control (output), or that will send me information (input)
    • "pin mode", will configure the pin 26 to behave either as an input or an output, in this case as an output
    • "void loop" allows to repeat your code over and over again
    • "digitalWrite", will set a HIGH or a LOW value to a digital pin, in this case pin 26 (LED Connection). Because the pin has been configured as an OUTPUT with pinMode(),its voltage was set to receiving 5V - 3.3V for HIGH (turn LED on), 0V (ground) for LOW (turn LED off).
    • We need to upload the codeinto the XIAO RP2040 like shown in the folowing video
    • run the program and check for LED lightining like shown in the video below

You can get access to the LED code here.

Reflections

  1. KIDCad software has really friendly interface, even for a newbee on electronics like me
  2. Soldering process could be challenging, it would be easier to develop a third robotic arm like this one, developed by Joshua Belofsky
  3. There is a basic tip while soldering electronics, that is, for any component, to attach one first pin that could help you fix the electronic component, to solder the rest ones with less complexity. At the end you can improve the first pin soldered.
  4. The use of Arduino IDE basic coding library and test it how it function with your microcontroller, is a recommendable way to start your process on learning the logic of codding